每周学算法/读英文/知识点心得分享 1.28

 每周一个 Algorithm,Review 一篇英文文章,总结一个工作中的技术 Tip,以及 Share 一个传递价值观的东西!

Algorithm: 学习算法

题目:String to Integer (atoi)

解题过程:

这题主要考虑异常情况,比如空字符串,开头 +/- ,非数字字符,空格,最大最小边界值处理。学到一个Char转Int技巧就是直接用字符减去‘0’获得差值就是数字。

第三次提交通过的。

解法:https://raw.githubusercontent.com/chy996633/leetcode/3cd4c9acaeefd0ad6e1b907a0c88f6ed580bb632/src/Atoi.java. (可以直接用wget下载)

Review: 学习英文

题目:https://markheath.net/post/effective-debugging-with-divide-and-conquer

内容概述:如何对使用分治法调试代码? 作者使用了一个音乐软件为例,音乐需要录音、处理、编码、通过网络传送、接收、解码…… 当面对数千行代码时,最有效率的办法是把代码按结构分成一半(传送网络前后),先将音乐存入WAV而不是传送到网络,听下保存的WAV是否完整,然后对剩下一部分进行调试。

还学到一个短语zero in on sb/sth, 意味瞄准并投入某事/物

Tips: 知识点

设计模式之中间人模式 Mediator

意图是:用一个中介对象来封装一系列对象的交互。中介者使得对象之间不需要在互相显式地引用,可以独立的改变它们之间的交互。

看到一个例子,阿里有一个开源框架用于解决不同结构的数据源之间同步的问题。

他做的改变如下图,就是终结者模式的应用。

我写了一个简单的示例代码,上传到github。

代码地址:https://github.com/chy996633/design_mode/tree/master/pattern/src/main/java/design_mode/behaviour/mediator/database

Share: 价值观

通过画流程图帮助梳理代码结构。这周基于遗留代码开发一个功能,通过xls上传系统中的实体类,要求自动映射实体类的属性,并做对应的类型转换。

通过画流程图明白了应该在哪个阶段进行映射和转换的工作,从而在一两天内完成了主要开发和测试工作。

下面是手工画的图,比较简陋 : )

原文地址:https://www.cnblogs.com/andrew-chen/p/10347771.html