CoC: Context over Code, Coaching Pattern Series

作者:JerryXia | 发表于 , 阅读 (0)
Code is cheap, show me the talk. — from 力岩.
模式名称
CoC, Context over Code意图
通过讲解背景问题和历史, 而不是目前的方案, 使新人(新换入的pair)更快速和透彻的理解目前的代码动机
当新人加入项目开始Pair, 或者交换Pair后, 留守Feature的人要负责向新Pair讲解目前的设计和代码. 而一个坏味道是, 留守的人往往急于开始编码, 草草带着新人过一遍代码就开始新任务了. 我们可以使用Navigator/Observer的结对模式来降低新人写代码的难度, 可新人对于代码的粗浅的理解, 长久的困惑, 始终会影响着效率以及设计质量. 这个影响在以下情况下会更明显:
软件功能越来越强大, 内置的业务逻辑/corner case越来越多, 而现有代码的表达能力无法使高层的需求直接映射到底层实现上, 即从代码中难以看出”为什么这么做”的意图在两个相对独立的Feature Team中交换pair时新人刚加入项目组开始编码时这时, 我们需要更好的coaching的技巧
方案
穿透历史的迷雾才能看清现状. 而...阅读全文

Navigator Pattern: 导航者模式

作者:JerryXia | 发表于 , 阅读 (0)
模式名称
Navigator/导航者意图
封装报文数据复杂的内部结构, 通过提供有业务含义的寻址操作来避免危险的指针运算, 以减少重复和出错的可能, 并提供更清晰的业务意义动机
在网络通信软件的开发中, 为了传输效率或完整性的考虑, 通常在应用层协议的定义中, 一次可以发送多个单位的净荷数据, 其具体数量可用报文头中的某个字段来描述. 另外一些时候报文体的长度是不定的, 通常也用报文头中的某个字段来表示实际的报文多长.
而此类软件通常以C语言开发完成. 经典的实现方案是为报文定义如下的数据结构, 并以指针运算来寻址特定的数据. 而当数据结构有嵌套时, 其指针运算将变的异常复杂和易错:
...阅读全文

On Knowledge Inflation: 知识通胀时代来临, 及为什么员工动力不足是伪命题

作者:JerryXia | 发表于 , 阅读 (0)
2012-08-10
On Knowledge Inflation: 知识通胀时代来临, 及为什么员工动力不足是伪命题客户提到说我们也希望员工能提高自己, 可总是有人动力不足. 徐昊又讲了一遍如何散布恐慌. 基本的论述如下:
知识在加速贬值. 你花了几年时间积累的知识, 现在学校都已经开始教了, 比如有的学校都开始讲敏捷了, 作为软件工程的课程内容. 换句话说, 一个毕业生在技能上已不输一个工作几年的人, 而起薪要低的多.
事实上, 知识通胀时代已经来临. 大家知道货币超发会引发通货膨胀, 可现在每个行业每天都在产生大量的知识. 各种前所未有, 想都想不到的技能技巧技术海水般涌现出来, 并借助互联网迅速传播. 你辛辛苦苦积累下来的知识淹没在这片汪洋中, 不值一提.
知识的获取速度在提高, 门槛在降低, 过去千军万马过独木桥, 现在条条大路通学校. 一个人, 只要能听能看能说能写, 就能学到你过去需要在课堂上, 需要跟名师才能学到的知识.
就像你管理你的资产避免被通胀稀释一样, 你也必须管理你的知识. 赚钱相当于学新知识, 而投资组合就相当于你的知识结构, 学习策略. ...阅读全文

SAD Pattern: Simple API for Datagram

作者:JerryXia | 发表于 , 阅读 (0)
模式名称
SAD, Simple API for Datagram意图
分离网络报文的解析和处理, 使解析代码和处理代码不再耦合在一起, 便于扩展. 类似SAX(Simple API for XML)将XML文档的解析和处理分离到不同的单元中动机
在网络通信软件的开发中, 经常要处理网络上接收到的各种数据报文. 而收到某种报文后, 需要进行的处理逻辑上可能不止一件事情. 处理过程中会用到报文中的数据, 因此需要对报文进行解析. 而报文的结构通常存在动态部分, 而在C语言中, 无法定义一个数据结构可以直接将报文映射到该结构. 参见<<Navigator Pattern: 导航者模式>>
缺乏考虑的做法通常会把解析和处理放在一起, 一个大函数, 用局部变量甚至全局变量来保存解析出来的数据, 并对其进行各种处理. 这样做的问题是:
难以扩展: 当需要增加新的处理时, 需要在解析过程中多个地方插入处理代码难以理解: 不同的处理代码混在一起, 和报文解析的逻辑也混在一起, 难以看清楚真正做了什么事容易出错: 不同的处理共享解析出来的数据, 容易互相影响, 引入错误另外一种常见的做法是每...阅读全文

学习的逻辑: 知识经济学

作者:JerryXia | 发表于 , 阅读 (0)
2012-11-28
学习的逻辑: 知识经济学万物有始皆有终. 我们的逻辑链条起源于为什么要持续学习, 然后是学习什么, 怎么证明学到了, 最后是为什么只学一门不够
为什么要持续学习 — 知识通胀时代来临
大家大部分都是在职的, 平时应该会存钱. 存钱最害怕什么? 对, 通货膨胀. 一旦央行开动印钞机, 并大量放贷制造流动性, 我们辛苦多年的积蓄就会被迅速稀释甚至蒸发. 然而现在有一样东西, 正以前所未有的速度被制造出来, 这就是知识. 并且其流动性在互联网的推动下简直泛滥成灾. 换句话讲, 知识正在通货膨胀. 过去各行各业积攒的各种知识, 各种独门秘笈, 都大白于天下. 过去少数人才能接受大学教育, 现在哈佛,斯坦福的公开课唾手可得. 前几天微博上刚流传一哥们一年时间自学33们麻省理工课程. 在这种情况下, 我们现在的知识积累, 知识储备, 会被迅速稀释, 我们的身价也会迅速贬职. 那怎么办? 拿存钱来说, 一方面我们要投资保值或增值, 一方面也要不断赚钱. 放到知识上是一样的. 我们要不断学习, 而我们可以投资的, 只有我们的时间. 那么问题来了, 就像要考虑是投资股...阅读全文