`
nychen2000
  • 浏览: 79755 次
  • 性别: Icon_minigender_1
  • 来自: ...
社区版块
存档分类
最新评论

软件设计的终极哲学是什么呢

阅读更多
我曾经两次开发过Workflow产品,第一次开发完成后,发现产品非常不令人满意,剧多拼凑成分,也发现设计模式的重要性。

一两年之后,再次设计开发同类产品,貌似设计模式用得熟了,系统架构也好多了。但是在设计方面还停留在只可意会不可言传的阶段,讲不太清楚背后的深刻哲理。


那么软件设计背后的终极哲学是什么呢?

分享到:
评论
47 楼 absolute007 2009-09-28  
我们的目标是 -----------没有蛀牙
46 楼 JeffreyZhao 2009-09-28  
终极哲学就是……没有银弹……
45 楼 徐风子 2009-09-28  
chunfengxixi 写道
treenode 写道
王小波 写道

古人曾说:天不生仲尼,万古长如夜;但我有相反的想法。假设历史上曾有一位大智者,一下发现了一切新奇、一切有趣,发现了终极真理,根绝了一切发现的可能性,我就情愿到该智者以前的年代去生活。这是因为,假如这种终极真理已经被发现,人类所能做的事就只剩下了依据这种真理来做价值判断。从汉代以后到近代,中国人就是这么生活的。我对这样的生活一点都不喜欢。

深有同感!

现在软件的问题还没解决,软件的思想、模式还在突飞猛进,一切新奇、有趣的东西还在不断出现,总而言之,一句话:仲尼还未出现,让我们庆幸生在这个年代吧,让进入软件业的后人去感叹吧,哈哈哈!
44 楼 yunhaifeiwu 2009-09-28  
我从电脑知识为0自学过来。

软件设计根本是:就是让一个数据从一个存储体流向另一个存储体。
存储体对应着现实世界的对象,数据流向对应着现实世界的对象间的联系。

理由:

1  计算机硬件级的微系统,是让二进制数据串从一个存储器流向另一个存款器。
我说的存储器的意思是内存或寄存器。

2 数据结构,不言而喻,可是体现,数据在存储数据的载体中流动。

3 面向过程的设计方法。笼统大概讲,是让数据从一个模块,流行另一个模块

4 面向对象 。存储数据的载体是对象(类的实例),数据是在对象中穿梭。

5 设计模式   立足于面向对象上,让对象在各个框架中(或接口里)出入。


基于这个理念:设计中,要出现存储保存数据,检索数据,区分对象,有意识增加识别标控制标识。具体的需要站在实践的角度上去总结、领悟。

事上是,软件设计的高难度设计,是设计一个软件,让它自已能根据外界情况进行编程以控制自已的行为,适应外界的要求。本人不才,正在琢磨中。


43 楼 berat 2009-09-28  
简单的说就是 "Kiss".
Keep It Simple and Stupid.

无论对于用户和将来维护的人来说, 都要简单易用才是好的设计哲学。

42 楼 zozoh 2009-09-28  
             不重复                
41 楼 shinesuo 2009-09-28  
把执着放下!!!!
40 楼 minimu 2009-09-28  
软件设计的最高哲学就是远离软件
39 楼 bloodwolf_china 2009-09-27  
写了7年java代码,感觉软件开发越来越难,知识点越学越多。
希望能达到知其然也知其所以然的层次,手中无剑心中有剑
38 楼 mallon 2009-09-27  
写了8年程序,从VC、Delphi到.NET、Java,现在感觉软件开发没什么神秘的,就三点:方便写、方便看、方便改
37 楼 xiaoyu211940 2009-09-27  
为什么要设计啊?
简单、扩展、性能、维护、阅读(可能不全 我也就觉得差不多这些了)
当然每个设计的目标
不就这样
使用简单、
高扩展性、
性能最好、
维护最简单、
代码优美便于阅读
当然要达到这种目的 难度很高 特别是系统大了以后
所以啊 设计你的系统如何达到这种效果
统筹你的代码

哎 要下班了不想了 
本人小菜....
不要为了设计而设计

36 楼 form_rr 2009-09-27  
如果实在要用一句话来概括的话,我觉得:
把50%简单的事情复杂化,50%复杂的事情简单化!!!
我的哲学!!!
35 楼 七月十五 2009-09-27  
其实我很想只说四个字,但是不得不加,字数不够。这个问题倘若从理论上说……(以下省略18002字),所以我只说四个字,那就是:

大道至简
34 楼 kiol 2009-09-27  
上面同学的关注点分离说得很好,我很支持。
不过我一般叫做封装和隔离变化。
简单来说,面向过程,面向对象,模块化,面向方面等都是为了封装和隔离变化。
封装和隔离变化,就是把会因为同一个或者相似业务变化引起的修改都封装到同一个地方,并且和其他的地方隔离起来,让任何一个变化点,都可以在一个地方解决,而不是扩散到系统的各处。
面向过程和模块化就是这个目的。
面向对象是因为同一个抽象概念的数据和行为总是同时变化,也可以理解为数据的变化常常引起行为的变化,行为变化也常常引起数据的修改。
面向方面也是相同的,因为这些活动都是类似的,也会同时变化。

个人浅见,欢迎拍砖。
33 楼 nychen2000 2009-09-27  
sulong 写道
计算机的敌人是复杂性,战胜复杂性的唯一法宝就是关注点分离,也是软件设计的终极哲学。


受教了。
32 楼 一粒蛋 2009-09-27  
只可意会,不可言传!讲啥都没用,讲啥都等于不讲。
讨论就能理解的,层次太低!层次高的要意会,用意念来交流才行。
31 楼 yqin 2009-09-27  
还不知道  
30 楼 star022 2009-09-27  
http://www.iteye.com/topic/464024
看下这篇文章吧~~~
29 楼 sulong 2009-09-27  
计算机的敌人是复杂性,战胜复杂性的唯一法宝就是关注点分离,也是软件设计的终极哲学。
28 楼 fireflyk 2009-09-27  
不管是设计模式还是工程管理,到了无剑胜有剑的地步

相关推荐

Global site tag (gtag.js) - Google Analytics