`
chelsea
  • 浏览: 111103 次
  • 来自: ...
社区版块
存档分类
最新评论
文章列表
新家 http://liguanglei.name, 这里是2012年前的存档.   利用这里的电子书制作功能, 把之前的博客汇总了一下: http://chelsea.iteye.com/blog/pdf
背景 本学期我们(娴静, 唱鑫, 光磊)在北航开了一门课, 研一, 软件学院, 两学分, 十次课, 每次三小时, 周日下午上, 课程名原来叫 现代软件工程, 后来被学校改为 一级实践, 是在机房上的实践课, 我们主要练习了极限编程中几个跟编程密切相关的实践, TDD, 重构, 结对, 简单设计, 持续集成等. 我们打算讲一下我们碰到的问题. 这不同于做开发项目. 我们可能是软件开发的熟手, 但学校教育, 100人的课堂, 完全是不同的问题域. 以至于有人问是不是billable, 我们说没多少钱的时候, 晓庆说: "不收你们钱就不错了". 诚哉斯言. 下面讲一下我们对问题的理 ...
万物有始皆有终. 我们的逻辑链条起源于为什么要持续学习, 然后是学习什么, 怎么证明学到了, 最后是为什么只学一门不够 为什么要持续学习 -- 知识通胀时代来临 大家大部分都是在职的, 平时应该会存钱. 存钱最害怕什么? 对, 通 ...
模式名称 SoS, Story over Solution 意图 当改变相对复杂时, 通过一个故事或场景引导团队参与方案的推导过程, 而不是枯燥的说应该这么做, 以使团队对复杂的改变更加支持. 动机 当一种改变看起来与直觉不符, 通常会遇到一些抵制, 典型的反对意见比如”没必要”, “自找麻烦”, “现在这样已经足够了”. 而这些反对意见有时是源于对新改变背后的原理不够了解. 此时如果强制推行, 在实际操作中也会遭到阴奉阳违的抵制, 使效果不够理想. 我们需要一种使团队更加自愿的接受改变的技巧.
Code is cheap, show me the talk. -- from 力岩. 模式名称 CoC, Context over Code 意图 通过讲解背景问题和历史, 而不是目前的方案, 使新人(新换入的pair)更快速和透彻的理解目前的代码 动机 当新人加入项目开始Pair, 或者交换Pair后, 留守Feature的 ...
模式名称 SAD, Simple API for Datagram 意图 分离网络报文的解析和处理, 使解析代码和处理代码不再耦合在一起, 便于扩展. 类似SAX(Simple API for XML)将XML文档的解析和处理分离到不同的单元中 动机 在网络通信软件的开发中, 经常要处理网 ...
模式名称 Navigator/导航者, 一种通信软件报文处理模式 意图 封装报文数据复杂的内部结构, 通过提供有业务含义的寻址操作来避免危险的指针运算, 以减少重复和出错的可能, 并提供更清晰的业务意义 动机 在网络通信软件的开发中, 为了传输效率或完整性的考虑, 通常在应用层协议的定义中, 一次可以发送多个单位的净荷数据, 其具体数量可用报文头中的某个字段来描述. 另外一些时候报文体的长度是不定的, 通常也用报文头中的某个字段来表示实际的报文多长. 而此类软件通常以C语言开发完成. 经典的实现方案是为报文定义如下的数据结构, 并以指针运算来寻址特定的数据. 而当数据结构有嵌套时, 其指针运算 ...
客户提到说我们也希望员工能提高自己, 可总是有人动力不足. 徐昊又讲了一遍如何散布恐慌. 基本的论述如下: 知识在加速贬值. 你花了几年时间积累的知识, 现在学校都已经开始教了, 比如有的学校都开始讲敏捷了, 作为软件工程的课程内容. 换句话说, 一个毕业生在技能上已不输一个工作几年的人, 而起薪要低的多. 事实上, 知识通胀时代已经来临. 大家知道货币超发会引发通货膨胀, 可现在每个行业每天都在产生大量的知识. 各种前所未有, 想都想不到的技能技巧技术海水般涌现出来, 并借助互联网迅速传播. 你辛辛苦苦积累下来的知识淹没在这片汪洋中, 不值一提. 知识的获取速度在提高, 门槛在降低, 过去千军 ...
简单 != 可以有Bug “这种错误情况先不用处理了吧, 简单设计嘛!” 简单不是偷懒的借口. 简单设计是一种宏观的设计策略, 并不意味着微观上的偷工减料: 你可以没有这个功能, 但有的话必须是不能出错的. 是对无法预知的需求推迟设计决定, 而不是对已知的需求视而不见 这种错误情况可能确实不需要现在处理, 但理由不应该是简单设计, 而是价值和优先级分析 简单 != 功能不完整 “这个功能先不用做了, 简单设计嘛!” 当听到这种说法的时候, 请确保团队的理解是一致的: 在产品设计上可能也会有"简单设计"之类的原则, 尽可能的简化功能, 突出主要卖点 但我们提到简单设 ...
<<重构>>里介绍的坏味道, 都是直接去嗅代码. 不过既然我们采用TDD, 那么代码的一切坏味道, 都会反应在测试上, 比如一个函数的测试用例组合太多, 可能意味着函数职责过多. 这在物理上称为对偶性, 即不同的表达方式, 反 ...
See Also Thinking Everyday Thinking Everyday II Thinking Everyday III Thinking Everyday IV Shall We Talk? 如果会议中有人可以不发言, 那他就没有参加会议的必要 项目经理最占便宜 传统团队项目经理最占便宜, 所有人都向他单线汇报, 出了事都找他, 他知道所有的问题和解决方案, 随着项目的进行, 他的知识会被动的越来越丰富. Truck Number的一个实例 公交 vs. 地铁 说的是客户合作和开发节奏. 传统开发就像挤公交, 影响路况的因素太多, 这趟上不去下趟不知啥时候, 所以每次发 ...
主要讨论三个问题: 在纪律和自由, 严格和灵活, 权威和民主之间的取舍 竞争特性: Story分析与"科学家应该绝不认同" 在科学理论上犯错与在工作中犯错 在纪律和自由, 严格和灵活, 权威和民主之间的取舍 开发过程中经常 ...
The Trouble With Physics: The Rise of String Theory, the Fall of a Science 中译本<<物理学的困惑>>. 阿兰・康尼斯 彭罗斯并不是唯一为自己创造量子引力方法的一流数学家。 也许最伟大的一一当然也是最有趣的一健在的数学家是阿兰・ ...
The Trouble With Physics: The Rise of String Theory, the Fall of a Science 中译本<<物理学的困惑>>. 科学的不同风格 多个最聪明、受过最好教育的科学家在最好的条件下研究的弦理论,怎么会面临失败的危险呢?这令我困惑了多年,不 ...
The Trouble With Physics: The Rise of String Theory, the Fall of a Science 中译本<<物理学的困惑>>. 这本书的副标题是"弦理论的崛起与科学的衰落". 全书除了讲述物理学目前面临的五大基础性难题, 还用三分之一的篇幅讲述了为 ...
Global site tag (gtag.js) - Google Analytics