`
nychen2000
  • 浏览: 87587 次
  • 性别: 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  
不管是设计模式还是工程管理,到了无剑胜有剑的地步

相关推荐

    计算机程序设计语言的终结

    ### 计算机程序设计语言的发展趋势与终极思考 #### 核心观点解析 本文探讨了一个有趣且富有挑战性的议题——计算机程序设计语言的发展趋势及其可能达到的终点,并提出一个引人深思的观点:面向对象编程可能是程序...

    Qt 页面切换终极资料

    在IT领域,特别是软件开发中,Qt是一个非常流行的开源跨平台应用程序框架,它基于C++,为开发者提供了丰富的API和工具来创建用户界面和...同时,深入理解Qt的设计哲学和C++编程,将使你在软件开发的道路上更进一步。

    C程序设计语言(第二版,中文版)

    本书的内容由8个章节和4个附录组成,涵盖了C语言的基础知识和进阶知识点,旨在帮助读者不仅掌握C语言的基本语法和结构,而且能够理解C语言的设计哲学和实践技巧。这样的内容安排使得它非常适合大专院校的师生以及...

    高考终极压轴卷——语文(新课标I卷).doc

    7. **系统思维**:“阴阳五行”哲学思想在饮食中的应用,反映了系统性思维,这在系统分析、软件架构设计中同样重要,需要考虑各元素间的相互关系和平衡。 8. **健康与科技**:“食医结合”理念在现代IT行业也有体现...

    开源主机、服务和网络监控平台Nagios终极探

    这种设计哲学使得Nagios成为一个轻量级的框架,可以根据用户需求通过扩展插件来实现各种复杂的监控场景。 Nagios的报警功能同样依赖于外部系统或插件来完成,这使得其自身保持了专注于核心功能——监控。这种设计...

    虚拟现实技术的发展及其思考.pptx

    60年代,Ivan Sutherland的"速写板"系统和"终极显示"报告为虚拟现实技术奠定了基础。70年代,虚拟现实之父Jaron Lanier的"人工实在"系统和数据手套的发明,进一步推动了技术的发展。80年代至90年代,虚拟现实开始...

    开源世界旅行手册(Ubuntu教程第二版)

    关于UNIX文化,作者在书中详细介绍了UNIX的设计哲学,包括它为什么不仅仅适合计算机专家,还阐述了反对使用Windows的理由,以及如何完全使用GNU/Linux进行工作。这部分内容使读者能够更好地理解UNIX精神,并且学习到...

    我将努力变得更轻(外二首)

    例如,苹果公司的产品设计哲学就强调“少即是多”,即以最少的设计元素提供最优的用户体验。 3. 庖丁解牛的比喻与软件开发流程 庄子在《庖丁解牛》中描述了一位厨师解牛的高超技艺,其中“以无厚入有间”,可以被...

    基于用户行为的数据分析与挖掘.pdf

    基于用户行为的数据分析与挖掘是一个涉及数据采集、存储、处理、分析和挖掘等多个环节的复杂过程,其目的是通过深入分析用户的上网行为模式,以期找出提升用户体验、优化产品设计、增加业务转化率等商业价值。...

    python经典入门资料

    Python的设计哲学强调代码的可读性,使用英语中的关键字而不是标点符号。它支持多种编程范式,包括面向对象、命令式、函数式和过程式编程。 2. Python的特性:Python因其可读性和简洁的语法而广受欢迎,它允许...

    Practical Vim Edit Text at the Speed of Thought.

    - **Vim的思维方式**:讲解Vim背后的设计理念及其对提高工作效率的影响。 - **高效工作模式**:分享如何通过Vim实现快速编码和高效文本处理的经验。 #### 读者反馈精选 多位软件工程师和技术专家分享了他们阅读本书...

    Git 魔法-PDF

    Mercurial是另一个流行的分布式版本控制系统,与Git相似但有着不同的设计哲学。 **Bazaar** Bazaar是另一个DVCS,由Canonical公司发起,用于Ubuntu项目。 **我偏爱Git的原因** Git因其高性能、灵活性和强大的...

    2013年CIO需要知道的八句格言

    - **背景与理解**:Salesforce CEO马克·贝尼奥夫提出的这一观点反映了当时软件设计的趋势——更加注重用户体验和社会互动性。他主张企业软件应当像社交网络一样直观易用。 - **实践意义**:这意味着CIO需要关注软件...

    Git Magic(英文版)

    回顾了Git的开发背景和历程,了解其设计哲学和创新之处。 ### 八、Git的局限 #### 微软Windows 指出了Git在Windows系统下的兼容性和性能问题,为用户提供了解决方案。 #### 不相关的文件 讨论了如何处理项目中的...

Global site tag (gtag.js) - Google Analytics