战略与战术--再论软件设计的度

简介:

软件开发的时候总是面临着各种决策,大到模块的划分,小到函数体的写法,这些都是设计的问题。做设计不难,难的是做一个好的设计。然而什么是好的设计?标准是什么?

军事上常说“战术是为战略服务的”。这句话换到软件上来可以变成很多说法:函数是为对象服务的;对象是为底层设计服务的;底层设计是为构架服务的;构架是为需求服务的;需求是为了客户的生产生活服务的……不同的抽象层次上对应不同的战略与战术。

做好一个设计的根本就在于不仅仅着眼于当前的工作层面,而应该能够很好的理解当前工作服务的那个层面!

比如写函数体吧,就需要理解该函数在当前对象上下文中所处的地位和作用,不理解当然也能完成工作,但却称不上一个“好”字。也许有人会问“什么是好?我把当前函数优化到常数复杂度算是好了吧?”那也未必,“好”与“不好”需要放到大局中去看,如果当前函数只在系统启动的时候调用一次,那就没有优化的意义,尽快完成该函数才叫做“好”!

在需求分析方面这一点更重要、更明显!“需求总在变”这话一点儿不假,但是不变的是用户开发这个软件的目的,这才是用户的真正需求。想办法满足用户这个目的就是做好当前项目的捷径。比如现在大部分的中小企业、特别是事业单位的门户或者部门网站,提需求的时候吹得天花乱坠,什么在线办公、客户管理、内部互动啦,说得很好听,其实做了都不用,老板(领导)在意的就俩字:美工!客户的真正目的是什么?政绩!

因此,只有战术在战略层面的地位和意义,才能恰如其分的完成手头工作。把每件事情都做到精益求精的不是工程师,是艺术家。就好比憋足了吃奶、如厕、行房的劲打赢每一场丈的指挥官不一定合格,且不说伤亡巨大、天怒人怨,如果连本来应该败掉的诱敌之战也赢了,那就地军法处置!

对于.NET企业级应用,涉及的层次理论,可以这么粗略的划分:

电子电路 — 汇编 — 系统内核 — CLR — 函数 — 对象 — 设计模式 — 架构 — 需求 — 客户的生产力(竞争力)

搞.NET的大部分工作在函数、对象、设计模式这个层面上,构架师当然是工作在构架的层面、需求分析师以需求为主。敏捷软件开发提倡的一点就是软件的目的在于提升客户(在它们那个领域)的竞争力,这明确的提出软件工程中一个更高级别的抽象层次。剩下的通常不属于咱们操心的范围了。

写函数的时候看看对象;看对象的时候关注一下模式;搞模式的时候瞅瞅构架;做构架的时候不能忘了需求。这不但是职业规划,更是做好当前工作的必要条件,难怪人家说:不想当将军的士兵不是好士兵!

本文转自冬冬博客园博客,原文链接:http://www.cnblogs.com/yuandong/archive/2008/08/04/strategy_and_tactics_in_sofware_develop.html ,如需转载请自行联系原作者
相关文章
|
9月前
|
敏捷开发 监控 测试技术
软件架构的艺术:探索演化之路上的18大黄金原则
实际工作表明,一步到位的设计往往不切实际,而演化原则指导我们逐步优化架构,以灵活响应业务和技术的变化。这不仅降低了技术债务和重构风险,还确保了软件的稳定性和可扩展性。同时,架构的持续演进促进了团队协作,激发了成员间的知识共享与技能提升。
156 0
软件架构的艺术:探索演化之路上的18大黄金原则
|
9月前
|
搜索推荐 程序员 测试技术
研究思考|关于软件复杂度的困局
本文重点围绕软件复杂度进行剖析,希望能够帮助读者对软件复杂度成因和度量方式有所了解。
|
搜索推荐 程序员 测试技术
研究思考丨关于软件复杂度的困局
研究思考丨关于软件复杂度的困局
1330 14
研究思考丨关于软件复杂度的困局
|
前端开发 测试技术 定位技术
DDD实战之八:冲刺 1 战术之聚合设计(上)
DDD实战之八:冲刺 1 战术之聚合设计(上)
DDD实战之八:冲刺 1 战术之聚合设计(上)
|
前端开发 小程序 Java
DDD实战之八:冲刺 1 战术之聚合设计(下)
DDD实战之八:冲刺 1 战术之聚合设计(下)
DDD实战之八:冲刺 1 战术之聚合设计(下)
|
敏捷开发 消息中间件 前端开发
DDD实战之七: 战术设计、整体流程与首次冲刺
DDD实战之七: 战术设计、整体流程与首次冲刺
DDD实战之七: 战术设计、整体流程与首次冲刺
|
缓存 算法 Java
运用跨界思想体悟软件设计
运用跨界思想体悟软件设计
运用跨界思想体悟软件设计
|
设计模式 开发框架 JSON
了解这些软件设计思想,你的思维至少上升一个段位
在 1994 年,由 Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides 四人合著出版了一本名为 Design Patterns - Elements of Reusable Object-Oriented Software(中文译名:设计模式 - 可复用的面向对象软件元素) 的书,该书首次提到了软件开发中设计模式的概念,四位作者合称 GOF(全拼 Gang of Four),简称四人帮!
|
BI 项目管理
艾伟也谈项目管理,五大绝招 消除项目小组与用户的矛盾
  BI项目实施过程中,会导致用户现有工作量的增加,会对用户现有工作进行重新分配,总之会影响用户的即得利益。在这种情况下,项目小组与用户之间矛盾的增加。虽然说BI系统主要是企业管理者在使用但是这个系统的基石基础数据,则是一线用户所提供的。
995 0
|
敏捷开发 测试技术
敏捷开发管理--任务分解经验之谈
敏捷开发中怎样做好任务分解?
2673 0

热门文章

最新文章