锁定老帖子 主题:顿悟, 软件的设计
精华帖 (0) :: 良好帖 (2) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-08-07
lz726 写道
用软的方式,思考硬的世界,并抽象出来就叫软件的设计.
|
|
返回顶楼 | |
发表时间:2008-08-07
mazzystar 写道
hetylei 写道
一个合格项目经理应该是此项目所涉及的行业专家 而不在乎于他的技术水平 所谓的企业应用,企业信息化建设最重要的还是提供合理的业务解决方案 而不仅仅是“信息化”
|
|
返回顶楼 | |
发表时间:2008-08-07
zenny 写道 lurena 写道 举个例了
? 楼主是否用五笔打字? 水贴,删了我吧! 呵呵, 是五笔, 以后注意. |
|
返回顶楼 | |
发表时间:2008-08-07
3年左右的经验吧 跟过3个项目。
领悟的东西就是: 用户变更无处不在。 作为设计人员必须的要求: 1.各种模式一定要熟练,不是说模式是万能药,但是模式至少可以未雨绸缪的提前给变更找好台阶下。 2.责任心。 重中之重,客户可以不专心和你讲业务,但是系统架构者必须事无巨细的了解业务。 责任心三字说白了是职业素养。否则程序员会在背后骂你娘的。 |
|
返回顶楼 | |
发表时间:2008-08-07
以XP的观点,呵呵最近对XP有点上瘾, 以XP的观点,不用预设太多模式,好的模式会在渐进式重构中自动浮现出来
|
|
返回顶楼 | |
发表时间:2008-08-07
有句话是这样子说的,分析和设计就是:do right thing 和 do thing right.
这句话很短但是很经典。 所谓的分析这里就是说在领域中寻找到相关的问题域的内容(business或者domain),这个理论上来讲也可以认为是一个建模的过程。 而设计呢?其实他从整个软件过程来看,其实已经是属于实现级别的事情了,也就是对问题域给出的解域。 设计现在分的比较细的话,有架构设计(overall)和具体的软件设计(concrete),架构设计自然是架构师来做的,那么具体的程序设计可能就是由程序设计师来做的,这里可以看到分工的侧重点,架构师掌控整个项目的问题,而设计师在具体的某一部分下功夫。 那么为什么要设计?或者反过来说不做设计又会有什么结果?其实设计就是为了解决现实世界中(问题域)的复杂度,因为我们的软件总是只能模拟现实世界,无法真正替换现实世界,要尽可能地贴近真实世界的首要问题就是如何面对复杂度。比较常规的做法就是分而治之,那么在这里设计的价值就体现出来了,如何分?这就是设计,也就是do thing right. 就像说你要去一个地方,我们都知道走直线是最近的方案,那么这就是一个设计(这就是do thing right),如果你偏要走个三角形虽然也能达到结果但是时间无疑就多了,可是在真实情况下是不是一定能走直线呢?不一定要根据具体的情况来判断,而且会从多个方面来影响你的最终决定,比如花费,为了节约时间你可以“打飞的”,但是成本是不是高了点,虽然时间最短,但是可能你会选坐汽车,这这个角度来说,做设计其实是在多个影响因素中做balance。比如分层架构是不错给你带来很多好处,但是你是否就可以随意多分几个层呢?层太多是否会影响你的效率和开发模式?这些都是balance的因素,也就是说他会影响你的设计。 设计模式是什么也就是说我们面对复杂度的时候有很多已经形成固定习惯的几种解决方案这就是设计模式。低耦合高内聚其实也是面对复杂度的一种模式,所以做设计就是对复杂度的一种分解方案,分解得越好那么软件就越灵活越健壮。 不管是低耦合高内聚还是分层架构还是设计模式解决其实都是分解复杂度的过程中的一些被人们总结出来的套路。 |
|
返回顶楼 | |
发表时间:2008-08-07
amonlei 写道 lurena 写道 为什么ror/grails不能被应用到企业开发领域, 很大程序上是由于它不能对domain model的支持, 软件的灵活性是复杂应用条件下, 显得无能为力. 这个这么说?不敢苟同。。。 因为这丫根本不知道什么是domain model。相反在ror兴起前java方面对domain model的实践普遍不如ror。 |
|
返回顶楼 | |
发表时间:2008-08-07
neo_q 写道 有句话是这样子说的,分析和设计就是:do right thing 和 do thing right.
这句话很短但是很经典。 所谓的分析这里就是说在领域中寻找到相关的问题域的内容(business或者domain),这个理论上来讲也可以认为是一个建模的过程。 而设计呢?其实他从整个软件过程来看,其实已经是属于实现级别的事情了,也就是对问题域给出的解域。 设计现在分的比较细的话,有架构设计(overall)和具体的软件设计(concrete),架构设计自然是架构师来做的,那么具体的程序设计可能就是由程序设计师来做的,这里可以看到分工的侧重点,架构师掌控整个项目的问题,而设计师在具体的某一部分下功夫。 那么为什么要设计?或者反过来说不做设计又会有什么结果?其实设计就是为了解决现实世界中(问题域)的复杂度,因为我们的软件总是只能模拟现实世界,无法真正替换现实世界,要尽可能地贴近真实世界的首要问题就是如何面对复杂度。比较常规的做法就是分而治之,那么在这里设计的价值就体现出来了,如何分?这就是设计,也就是do thing right. 就像说你要去一个地方,我们都知道走直线是最近的方案,那么这就是一个设计(这就是do thing right),如果你偏要走个三角形虽然也能达到结果但是时间无疑就多了,可是在真实情况下是不是一定能走直线呢?不一定要根据具体的情况来判断,而且会从多个方面来影响你的最终决定,比如花费,为了节约时间你可以“打飞的”,但是成本是不是高了点,虽然时间最短,但是可能你会选坐汽车,这这个角度来说,做设计其实是在多个影响因素中做balance。比如分层架构是不错给你带来很多好处,但是你是否就可以随意多分几个层呢?层太多是否会影响你的效率和开发模式?这些都是balance的因素,也就是说他会影响你的设计。 设计模式是什么也就是说我们面对复杂度的时候有很多已经形成固定习惯的几种解决方案这就是设计模式。低耦合高内聚其实也是面对复杂度的一种模式,所以做设计就是对复杂度的一种分解方案,分解得越好那么软件就越灵活越健壮。 不管是低耦合高内聚还是分层架构还是设计模式解决其实都是分解复杂度的过程中的一些被人们总结出来的套路。 说的都不错,但你究竟要表达什么? |
|
返回顶楼 | |
发表时间:2008-08-08
gaoran2008 写道 模式只不过是干活的方式。系统设计---对需求和技术的熟悉,两者的兼容。
呵呵,同感! |
|
返回顶楼 | |
发表时间:2008-08-08
顿悟过后,该干啥还得干啥
|
|
返回顶楼 | |