习惯:
边工作边log的好处:废话少。这个和 嵌入式系统的 logging 的 要点是想通的。
待改进:
1. 编码习惯:
1)参数的顺序:合理地定义参数顺序,有助于记忆,避免查询,提高效率。
2)一致的命名风格:相同实体,一致的命名,减少自动补全的candidate。遵循DRY原则。
并且,实体的类型也应该 一致 。
3)IO 一定要有异常处理,否则,就采用 append。
4)每次重构之后,没有做自动测试框架,来测试重构的正确性。
2.调试:
1)不规范的 “符号”提示。正规的,应该: * :stderr , + :运行状态。 不同的个数,提示不同的level(尤其是深层的 stack)。
2)太多的 print , 而且散落在不同的 文件中。
3)
3.工具使用
1)重复数据使用 marco 生成。
值得思考:
1.写代码的时候,实现的顺序其实有难有易。但是,任何一部分,都无法缺少。是否,要考虑一下先后顺序?
觉得做对的地方:
1.layout 其实还是多分几个好。我始终坚信 locality 的 哲学原理。
但是,分几个layout的问题在于:多了,就要管理。可以通过container,存放 layout以及相关联的properties。这样,可以一次性初始化,避免了很多的重复代码。DRY。
2.有几个函数是需要assert(某个参数的有效性)的。因为重复两遍以上,所以,抽象出来,成为一个函数。
另一方面,因为只有一个函数,所以,知识(具体来说,就是领域知识的comment)可以只有 一处。DRY。
3.工具( grep emacs ,shell in emacs )
emacs其实没有好用的refactor或者符号查找工具的。尤其是我有 注释掉一些无用代码,然后放置到当前编译单元最后面的习惯(有符号查找工具都没有用)。
先不论这个习惯好不好(简直就是在收破烂)。
且说,grep 可以通过 regexp 匹配所有的行。我一般使用的是 -rin 参数。
另一方面,在emacs 中使用shell 真爽:
1)可以补全(hippie-expand就够了)
2)用 grep 找到参数之后,直接在emacs中切换就可以了。
3) -n 参数: emacs 切换到那个文件的buffer,然后 goto-line
不足:
1)颜色混杂
4.双屏真是好。尤其是有一个可以竖起来的显示器。
1)笔记本的小屏幕: 写log(逐渐养成了边开发变log的习惯。效率略低,但抓住了思绪)
2)大竖屏:写code
5. MessageBox 是基本的 utility。Parent Window 最好设置成 None。
6. 做GUI 程序,最好对每个阶段的成果截个图,提醒自己,已经有什么了,还要做什么。
当然,这种活留给 文档,或者 Whiteboard 更好。