本文发表在 rolia.net 枫下论坛码感这个词有些主观了,作为 coder 我们谈谈一些客观的东西。
(如何去读书我就不提了,各个时期有各个时期的编程圣经,每个人都有自己心目中的编程书架。)
这里是我对我写的代码的要求:(假设我们使用高级语言比如 c# / java 编写商务应用程序)
我尽量告诉计算机 what to do, not how to do it
我告诉计算机 what to do,尽量用接近业务需求的人类语言
我写的 method:一个初中级 coder 浏览我的代码,应该能够平均每秒看懂一行,绝大多数 methods 应该在 20 秒之内理解。否则我应该改进。
我设计的 class:一个中高级 coder 浏览我我的 class diagram 应该能够平均每分钟理解一个 class,即如果 object graph 有 10 个 classes,应该 10 分钟内理解 design。否则我应该改进。
那些 coder 看我的 code,应该觉得非常 enjoy it。
(整体架构设计不容易这样定量,这里跳过。)
编写 c# 程序,我使用 resharper,我写的程序,resharper 不应该有疑问,如果有,我一定要 review 并 confirm。
我写的 code 就算没有 unit test code,但设计一定要 unit testable,除非碰到不可抗拒的外因(比如必须使用一个很难 unit test 的第三方框架等等原因)。
回到那个主观的“码感” --- 我觉得如果你 enjoy 读你自己写的 code,别的 coder 也 enjoy 读你的 code,refactoring tool 也喜欢你的 code,unit test framework 喜欢你的 code,甚至 BA 都能理解你的大部分 code (如果你做 business app),你可以说你自己有码感了。更多精彩文章及讨论,请光临枫下论坛 rolia.net
(如何去读书我就不提了,各个时期有各个时期的编程圣经,每个人都有自己心目中的编程书架。)
这里是我对我写的代码的要求:(假设我们使用高级语言比如 c# / java 编写商务应用程序)
我尽量告诉计算机 what to do, not how to do it
我告诉计算机 what to do,尽量用接近业务需求的人类语言
我写的 method:一个初中级 coder 浏览我的代码,应该能够平均每秒看懂一行,绝大多数 methods 应该在 20 秒之内理解。否则我应该改进。
我设计的 class:一个中高级 coder 浏览我我的 class diagram 应该能够平均每分钟理解一个 class,即如果 object graph 有 10 个 classes,应该 10 分钟内理解 design。否则我应该改进。
那些 coder 看我的 code,应该觉得非常 enjoy it。
(整体架构设计不容易这样定量,这里跳过。)
编写 c# 程序,我使用 resharper,我写的程序,resharper 不应该有疑问,如果有,我一定要 review 并 confirm。
我写的 code 就算没有 unit test code,但设计一定要 unit testable,除非碰到不可抗拒的外因(比如必须使用一个很难 unit test 的第三方框架等等原因)。
回到那个主观的“码感” --- 我觉得如果你 enjoy 读你自己写的 code,别的 coder 也 enjoy 读你的 code,refactoring tool 也喜欢你的 code,unit test framework 喜欢你的 code,甚至 BA 都能理解你的大部分 code (如果你做 business app),你可以说你自己有码感了。更多精彩文章及讨论,请光临枫下论坛 rolia.net