软件工程师的大局观
不断的复制粘贴和简单排列组合的人叫码农,明白自己编程设计的人叫软件工程师。 了解 C语言 的过程式,HTML/css/js 的文档声明式,Java/Ruby 的面向对象式,Golang 的组合式和最近看的 Lisp(Scheme) 的函数式这些不同的思维模式让我渐渐明白了:一个优秀的软件工程师应该在基本的计算机知识上,有整体意识,有大局观,在工程中的各个阶段做出最合理的设计决策,注意这里说的是合理,而不是最好,因为工程是为了解放人类脑力和体力。 设计决策大到设计语言选型,数据库,软件架构,网络协议,小到模块设计,类,方法,变量命名。我记得高中有个足球教练说过:一个人会不会踢球,看他踢一脚就够了。 那么问题来了,如何做出合理的设计呢? 对需求的理解 对现实条件的评估 对工程的预期(人月) 平衡...阅读全文