成为系统架构师需要有全面深入的计算机知识吗?
"Now I realize I was mistaken. Hackers need to understand the theory of
computation about as much as painters need to understand paint chemistry.
You need to know how to calculate time and space complexity, and perhaps
also the concept of a state machine, in case you want to write a parser. Painters
have to remember a good deal more about paint chemistry than that."
我一直也有同感,好像计算时空间复杂度是一端,而从设计模式,再到架构这是另一端的知识.
在研究数据结构与算法时,我想得更多的是计算机相关的因素,而在学习设计模式,重构这类知识时,我所侧重思考的则更多的是软件开发者相关的因素.
computation about as much as painters need to understand paint chemistry.
You need to know how to calculate time and space complexity, and perhaps
also the concept of a state machine, in case you want to write a parser. Painters
have to remember a good deal more about paint chemistry than that."
我一直也有同感,好像计算时空间复杂度是一端,而从设计模式,再到架构这是另一端的知识.
在研究数据结构与算法时,我想得更多的是计算机相关的因素,而在学习设计模式,重构这类知识时,我所侧重思考的则更多的是软件开发者相关的因素.
--------------------上述转http://book.douban.com/review/1495564/------------------------
个人以为:
程序效率更靠近计算机的运行过程.开发效率更靠近人的思维过程.两者不可兼得,但可取其平衡.如今计算机性能了得,则更倾向开发效率.敏捷开发顺势而出, 即开发人员,美工人员,市场人员,客户坐在一起,即时开发,即时美工,即时需求分析,即时销售.这非常要求开发人员扎实的基础功.而回归程序的两层三层架 构,是为了美工和开发分离,业务逻辑和数据存取的分离.分离的好处是,一旦客户需求改变,可即时修改页面设计代码而不影响程序逻辑代码.一旦数据库添加字段的话...基于文档的开发模式,文档展示了程序的开发过程,从而展示了程序的架构和功能,从而基于文档快速修改架构,增加或更新功能,应对客户需求.
于是乎,为了可扩展性,可维护性,可分工性,两层架构与三层架构的区别不是非常大,如果开发人员,美工人员都能看懂代码,而各有精通之处,两层与三层几乎就无区别了。
合乎自然而生生不息。。。


浙公网安备 33010602011771号