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

Posted andrew-chen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了每周学算法/读英文/知识点心得分享 1.28 - 2.1相关的知识,希望对你有一定的参考价值。

 每周一个 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上传系统中的实体类,要求自动映射实体类的属性,并做对应的类型转换。

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

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

技术图片

 

以上是关于每周学算法/读英文/知识点心得分享 1.28 - 2.1的主要内容,如果未能解决你的问题,请参考以下文章

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

每周算法——“快速排序GET”

“365算法每日学计划”:03打卡-贪心算法

技术分享专题Hbase入门心得篇

技术自媒体变现心得分享 —— 开始尝试认真做 CSDN 的一年后的复盘

读《构建之法》的心得体会