作者:躺在地球上的熊 | 来源:互联网 | 2023-08-18 18:12
可以说,代码要具有可扩张性,其核心就是“高内聚,低耦合”的设计思想,这已经不只是一项优秀的程序员素质,可以说是初级程序员向高级程序员的重要标准。变成忽悠简直不可思议。某些人把代
可以说,代码要具有可扩张性,其核心就是“高内聚,低耦合”的设计思想,这已经不只是一项优秀的程序员素质,可以说是初级程序员向高级程序员的重要标准。变成忽悠简直不可思议。
某些人把代码的可扩展性忽悠成对需求预测的精确性,指出对需求预测十分困难,因此代码就很难具有可扩展性。十分可笑,面面俱到的代码是扩展性最差的代码。
“程序的可扩展性必须建立在对未来需求的准确把握上”这句话本身就是大忽悠,恰恰相反,程序的可扩展性必须建立在能够对需求变化快速响应上。开发人员花费大量时间研究设计模式,研究架构设计,研究各种协议,其目的不只是为了预测需求,其最重要的目的是使事情(或事物)更合理,我对“合理”的理解就是当某个过程(或对象)发生变化时,其对关联方的影响最小,核心正是“高内聚,低耦合”。这点重不重要?十分重要!影响最小意味着关联方的变化最小,关联方对变化的响应也就能更快速。举个简单的例子,《大话设计模式》中的简单工厂模式,为何花费如此多的功夫将简单的超市收费一步步细化成如此详细的各种对象,其目的不正是使各对象“高内聚,低耦合”,当需求发生变化时,其代码拥有更好的可扩展性?
某些人对迭代开发、敏捷编程十分崇拜,我亦十分欣赏,但正是因为其十分重要,我需要清楚的阐明我对其思想的理解。结合这些年的工作经验,我十分希望我的代码具有良好的可扩展性,“高内聚,低耦合”正是我追求的目标,而不是所谓的“需求预测”,需求预测是预研部门或市场部门的工作,还轮不到我越俎代庖。
我的建议是如果想让自己的代码具有更好的扩展性,《UNIX设计艺术》、《代码大全》、《大话设计模式》都是非常好的资料,而不是未来需求预测。
最后一句,基本功能的实现固然十分重要,但是只有对架构进行合理的分析设计,其才能够快速响应新的需求变化,这才是“可扩展性”的精髓。
188 个解决方案
我在做一个进销存,我能预测到很多需求,但我必须有所取舍,我不能把所有能预测的需求都预留扩展,这不是SAP。我还是先保证严谨的架构,把基本功能实现吧。
某些人把代码的可扩展性忽悠成对需求预测的精确性,指出对需求预测十分困难,因此代码就很难具有可扩展性
---------------------
要代码具有可扩展性的主要原因就是需求无法精确预测,所以架构和模块需要按照一定的模式去设计。如果需求能精确预测,就不需要什么模式了,直接完成所有的需求,或者完成一部分,给剩下的留下存根就行了。
架构设计师需要预测的不是用户的需求,而是平台变化和通用的约束条件,比如开发手机应用,需要考虑自适应手机屏幕、跨平台移植、适应不同分辨率等等,这些都不是具体的用户需求。
需求预测是预研部门或市场部门的工作,还轮不到我越俎代庖。
---------------------------------------------------------------
不认同这句话,无形之中,已经被束缚在整个软件工程固有的框框里面.需求预测和设计或编码其实还是可以统一在一起看,就看怎么看,看呀看不出来.所以今天看到一个新闻:李开复:中国需重建教育体系才能出谷歌级大公司,也是深有感触.
楼上的,该高调要高调,那在中国,这样比较靠普:做人务虚低调,做事务实高调.
我觉得可扩展性在做系统结构设计的时候就要考虑了,考虑的根据是需求有可能会发生变更的地方。
楼主的主要意思应该是说高内聚低耦合,这样在扩展的时候即使需要改动,也只是个别模块变更,而不是动筋骨的改变.应该不是说要你去预测用户可能需要的功能,然后提前写好代码.用户的需求是不可预测的.
说的都是一些朴素的道理,但如果要研究设计模式,还是要看《设计模式-可复用面向对象软件的基础》,我始终认为《大话设计模式》这书太山寨。
所有预测到的需求都已经是现实的需求,未预测到的需求就是不存在的。
对于现实的需求可以区分需要立即实现的和未来需要实现的。
在架构层面应该尽可能地支持所有已知的需求,以减少未来重新设计底层的可能。
一般而言,列为未来实现的需求都应该是枝节性的。否则,要么强行插入新功能导致架构混乱,要么重新设计。
这个世界不是非黑即白。
每个概念的外延和内涵也不是那么清晰。
因此有了很多争论。
大师的话真如“大音希声扫阴翳”,犹如”拨开云雾见青天”,使我等网民看到了希望,看到了未来!晴天霹雳,醍醐灌顶或许不足以形容大师文章的万一;巫山行云,长江流水更难以比拟大师的文才!黄钟大吕,振聋发聩!你烛照天下,明见万里;雨露苍生,泽被万方!透过你深邃的文字,我仿佛看到了你鹰视狼顾,龙行虎步的伟岸英姿;仿佛看到了你手执如椽大笔,写天下文章的智慧神态;仿佛看见了你按剑四顾,江山无数的英武气概!