Articles by xiayf

  1. Reactor 官方文档翻译简化版

    2019-06-26 Wed
    By xiayf

    原文:Reactor 3 Reference Guide

    1. 起步

    1.1 Reactor 简介

    Reactor 是为 JVM 准备的一个完全非阻塞的反应式编程基础组件,支持高效的需求管理(以管理“反压”的形式),直接与 Java 8 的函数式 API 集成,尤其是 CompletableFutureStream 以及 Duration,提供可组合的异步序列 API - Flux(适用于 N 个元素的序列)和 Mono(适用于 0 或 1个元素的序列)--- 并且全面地(extensively)实现了 反应式流(Reative Streams) 规范。

    借助 …

  2. Java System.getProperty VS. System.getenv(译)

    2019-06-25 Tue
    By xiayf

    原文:Java System.getProperty vs System.getenv

    1、简介

    Java 应用代码中会自动引入 java.lang 包。这个包包含很多常用的类,包括 NullPointerExceptionObjectMathString 等等。

    其中 java.lang.System 类是一个 final 类,这意味着开发者无法继承它,其所有方法都是静态的(static)。

    System 类中有两个方法,分别来读取系统属性(system properties)和环境变量(environment variables),下面我们来看看这两者的区别。

    2、使用 System.getProperty()

    Java 平台使用一个 Properties 对象来提供本地系统相关的信息和配置 …

    标签: 翻译 Java
  3. Java 单测伴侣 - mockito

    2019-06-17 Mon
    By xiayf

    其实工作以来,我很少写测试/单测代码,一方面是大部分互联网公司团队对测试的要求不高,另一方面是想写好测试代码还挺难的,挺花时间,其中最麻烦的是待测代码可能会访问外部资源(比如数据库、HTTP API),如果不能方便地进模拟访问这些外部资源,那么测试起来会非常麻烦。

    但,对于复杂逻辑,如果不经过严格测试,发布到生产环境,又有些不放心,没底气,或者在代码重构时,如果没有覆盖全面的测试,很难评估代码变动带来的影响。

    直到遇到 mockito,我才觉得是时候认真写写测试代码了。


    mockito 提供两种对象模拟方式:mockspy

    简单来说,mock 模拟的对象是一个完全假的对象,只是具备指定类型的接口,以 java.util.List 为例:

    import static org.mockito.Mockito.mock;
    
    List mockedList = mock(List.class);
    

    虽然 …

    标签: Java mockito 单测
  4. 编写漂亮的 shell 代码

    2018-05-16 Wed
    By xiayf

    使用丑陋的编程语言也能写出漂亮的代码。

    true_then_run() {
        condition=$1
        action=$2
    
        (${condition})
        if [ $? -eq 0 ]
        then
            (${action})
        else
            echo "'$1' is false, don't run '$2'"
        fi
    }
    
    false_then_run() {
        condition=$1
        action=$2
    
        (${condition})
        if [ $? -ne 0 ]
        then
            (${action})
        else
            echo "'$1' is true, don't run '$2'"
        fi
    }
    
    map() {
        for item in $2
        do
            ($1 …
    标签: Bash
  5. 配置 Maven 自动化构建 protobuf 代码依赖

    2018-05-14 Mon
    By xiayf

    1.pom.xml 中添加如下属性配置:

    <properties>
        <!-- protobuf paths -->
        <protobuf.input.directory>${project.basedir}/src/main/protobuf</protobuf.input.directory>
        <protobuf.output.directory>${project.build.directory}/generated-sources</protobuf.output.directory>
        <!-- library versions -->
        <build-helper-maven-plugin.version>3.0.0</build-helper-maven-plugin.version>
        <maven-antrun-plugin.version>1.8</maven-antrun-plugin.version>
        <maven-dependency-plugin.version>3.0.2</maven-dependency-plugin.version …
    标签: java maven protobuf
  6. 《Python 编程之美》译者序

    2018-04-01 Sun
    By xiayf

    从毕业至今,在互联网行业从事软件研发工作,将近五年。这五年间,做过后端开发、前端开发、大数据处理等,使用过的编程语言包括:Python、PHP、Go、Java、JavaScript 等。

    虽说编程语言各异,但我使用它们来写各种项目的代码却一直坚持两点:代码可读性和自解释性/自文档性(self-documentation)。这很大程度上应该是受到 Python 语言设计哲学的影响 - 追求简单易读易懂的代码。

    很多人可能会认为这两点其实是一点 - 代码可读性,但我想做点区分:代码可读性突出对代码阅读者视觉上的影响,是否存在不必要的理解干扰,比如:必要的空行、变量定义与使用之间的距离、函数体/逻辑分支是否过长、逻辑表达是否直观等等。可读性高的代码通常都非常漂亮、赏心悦目。自解释性代码则更突出语义层面,比如:变量名称/函数名称/类名是否恰当、函数/方法/API 是否单一职责、工程目录结构/包/模块拆分是否符合“高内聚低耦合”原则等等 …

    标签: 翻译 书籍

Page 2 / 2