摘要:
1. 方便程序员和可读性是头等大事! 1.1. 函数式API设计更易复合和重用 2. 归约和汇总为一个值 2.1. counting() 2.1.1. 计数 2.2. maxBy 2.2.1. 查找流中的最大值 2.3. minBy 2.3.1. 查找流中的最小值 2.4. summingInt 2 阅读全文
摘要:
1. 流 1.1. 以声明性方式处理数据集合 1.2. 通过查询语句来表达,而不是临时编写一个实现 1.3. 遍历数据集的高级迭代器 1.4. 透明地并行处理 1.5. 从支持数据处理操作的源生成的元素序列 1.5.1. 元素序列 1.5.1.1. 从有序集合生成流时会保留原有的顺序 1.5.2. 阅读全文
摘要:
1. 行为参数化 1.1. 处理频繁变更的需求的一种软件开发模式 1.1.1. 不管你做什么,用户的需求肯定会变 1.1.2. 可让代码更好地适应不断变化的要求,减轻未来的工作量 1.2. 一个方法接受多个不同的行为作为参数,并在内部使用它们,完成不同行为的能力 1.2.1. 类似于在内联“传递代码 阅读全文
摘要:
1. 语言的演变 1.1. C和C++仍然是构建操作系统和各种嵌入式系统的流行工具 1.2. Java和C#等安全型语言在诸多运行资源不太紧张的应用中已经取代了C和C++ 1.3. Java可能会被同样运行在JVM上的竞争对手语言(如Scala或Groovy)取代 1.4. Ada、Algol、CO 阅读全文
摘要:
1. 回头看 日更坚持了31天,精读了《C#代码整洁之道》《编程与类型系统)《函数式编程思维》《Java8函数式编程》这四本书,当月累积码字43690字。 看了大热的电视剧《狂飙》。 2. 感受 保持千字左右非水贴型日更还是很考验人的。 即使是读书笔记,按照读记比例15:1到25:1折算,每天也要读 阅读全文
摘要:
1. 基本信息 函数式编程思维 Functional Thinking [美] 福特(Neal Ford) 著,郭晓刚 译 人民邮电出版社,2015年8月出版 1.1. 读薄率 书籍总字数242千字,笔记总字数9983字。 读薄率9983÷242000≈4.13% 统计口径恢复到版权页书籍总字数,读 阅读全文
摘要:
1. Lambda表达式的单元测试 1.1. 单元测试是测试一段代码的行为是否符合预期的方式 1.2. Lambda表达式没有名字,无法直接在测试代码中调用 1.2.1. 将Lambda表达式放入一个方法测试,这种方式要测那个方法,而不是Lambda表达式本身 1.2.2. 请用方法引用。任何Lam 阅读全文
摘要:
1. SOLID原则 1.1. 开发良好面向对象程序的准则 1.2. Liskov substitution里氏替换 1.3. Interface segregation接口隔离 1.4. Single responsibility单一功能原则 1.4.1. 程序中的类或方法只能有一个改变的理由 1 阅读全文
摘要:
1. 阻塞式I/O 1.1. 一种通用且易于理解的方式,因为和程序用户的交互通常符合这样一种顺序执行的方式 1.2. 将系统扩展至支持大量用户时,需要和服务器建立大量TCP连接,因此扩展性不是很好 2. 非阻塞式I/O 2.1. 异步I/O 2.2. 可以处理大量并发网络连接,而且一个线程可以为多个 阅读全文
摘要:
1. 并发 1.1. 两个任务共享时间段 1.2. 一个程序要运行两个任务,并且只有一个CPU给它们分配了不同的时间片,那么这就是并发,而不是并行 2. 并行 2.1. 两个任务在同一时间发生 2.2. 为缩短任务执行时间,将一个任务分解成几部分,然后并行执行 2.3. 和顺序执行的任务量是一样的, 阅读全文