`
argan
  • 浏览: 129532 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

没有灵魂的软件不是一个优秀的软件

阅读更多

我们说不要重新发明轮子,其实不是这样的,我们要“发明”轮子,而不是制造轮子。发明是需要有创新的,有新的价值出来的,制造只是按照图纸生产而已!生产出来的轮子是没有灵魂的!

 

做为优秀的软件,他应该是有灵魂的,或者说有自己的特色,有气质,有核心价值。一般来说,一提到某个优秀的软件,你想到的第一个用来评价的词,往往就是这个软件的灵魂所在。

 

先说说spring吧,大家都熟悉,一提到spring,你会想到什么呢?简单么?灵活么?还是轻量?在我看来都不是,我第一个想到的是方便。spring的出现,把我们从ejb里解脱出来,把我们从很多繁杂的配置中解脱出来,我使用ibatis,使用jdbc,使用hibernate,很方便,我整合我软件的各个部分,只需要简单配置一下,很方便,我要发邮件,要使用jms,都很方便。(我这里就不说为啥第一想到的不是简单、灵活、轻量了,免得引起争论,没啥意思,每个人都有自己的感受,我只是表达自己的观点而已),方便就是spring的价值所在。

 

再看看hibernate,说实话,我没有在生产中使用过hibernate,但是我对他的了解也不少,姑且也评论一下吧。提到hibernate,我首先想到的是优雅,他试图使用一种优雅的方式来解决ORM,实际上,他完成的很好。优雅就是hibernate的内涵。

 

说道这里,突然想起几年前Gavin King和Rod Johnson在社区里吵的不可开交,为的就是Gavin认为spring对hibernate的封装很丑陋,而Johnson同学又觉得这么封装使用起来很容易。谁对谁错是没啥意义的,其实在我现在看来,其实是两个软件理念的冲突,spring对hibernate的封装,很大程度上是为了和ibatis啊,jdbc啊提供类似的template方式访问,这必然就掩盖了hibernate内在的一些东西,使用上是方便了,但是Gavin同学认为这样搞的不优雅了,于是乎,就吵了一架。

 

我们继续看ibatis,生产中我都用他,为啥,因为简单。ibatis只做一件事情,就是sql mapping,他只需要把这一件事情做好就行了,我非常满意,因为非常简单,而且能很好的满足我的需要,简单就是ibatis一直坚持的方向。

 

我们这里提到的spring,hibernate,ibatis,都是非常优秀的软件(包),在我看来,他们都有一个共同点:一直坚持着自己的风格,坚持着自己核心的价值,没有被其他东西晃花了眼睛。

 

后记:当spring成立一家公司,并且接受风险投资的时候,我就开始担心spring了,现在挂着spring名头的东西已经太多了....

 

提到java,你会想到什么呢?汗,我首先想到的是笨重....

分享到:
评论
22 楼 lzy.je 2009-09-24  
en,这句很帅!

引用
做为优秀的软件,他应该是有灵魂的,或者说有自己的特色,有气质,有核心价值。
21 楼 lingqi1818 2009-09-03  
看了下评论,我觉得你们都太把JAVA当回事了。你们有仔细看明白楼主的意思吗?重在灵魂!不是今天那个包,明天这个包,JAVA死了,世界还在!
20 楼 yqin 2009-08-23  
没明白意思
19 楼 treblesoftware 2009-08-23  
软件产品是软件产品,
技术框架是技术框架,
软件产品是给非计算机专业人员使用的,
技术框架是给程序设计人员使用的,
2种东西不能比喻在一起。
对于用户来说,更方便的操作,更智能的平台,更稳定,更安全,更漂亮的界面,能帮他们更偷懒,这才是好软件。
对于开发人员来说,更简洁的语法,更简单的设计,架构,更傻瓜的编码,更轻松的工作,这才是好软件。
18 楼 YiSingQ 2009-08-23  
作为优秀的软件固然需要有它的灵魂,但是它的灵魂就是能够最大地、更好地满足客户的需求。
17 楼 aninfeel 2009-08-23  
java给我的感觉是优雅而强大,php用的越多这个感觉越强烈。
16 楼 patrickyao1988 2009-08-23  
虽然现在做企业级的东西,的确感觉很繁重,有时候会觉得java怎么就有这么多东西,但仔细一想,企业级的东西本来就复杂,因而最后还是觉得java强大
15 楼 th3639 2009-08-23  
看了这么多让我像到了程序员的境界

五流程序员比技术和工具
    五流程序员关心的是用什么工具可以产生什么结果,追逐他听过最新、最好、最时髦的技术,沉浸于一些小的练习,却很少走出象牙塔和客户或市场进行真正的沟通,甚至完成大型的真实案例。
四流程序员比整合和管理
    四流程序员比前者更关心在什么地方使用什么,他的心里放着集成各种技术的地图,而不偏向单一工具或技术,他在乎运作一场战役的风险,还有资金成本的考量,包含开发时间、维护难易、用户培训或是市场推广……
三流程序员比创意和设计
    三流程序员不仅要求把事情“做完”,同时要求自己把事情“做好”,他的作品里充满着感动和生命,即使好几年以后重新来过,你依然会觉得那些创意和设计,突破了时空限制,只能模仿无法取代。
二流程序员比沟通和性格
    二流程序员跳脱工具,比人际沟通,他知道怎样和老板沟通,怎样和同事沟通,也知道怎样和客户沟通他有一个成熟并且稳定的性格,让任何人跟他在一起做事都有安全感,并且感到快乐。
一流程序员比态度和方法
    一流程序员比的是学习态度和方法,包括对自我控制的能力,也就是纪律,我们不看他做出来什么事,而是看他准备怎么去做,包含解决问题需要的时间,还有学习新事物的方法。
    只要他掌握了适合他自己的学习态度和方法,那么他可以从任何叶刻开始新的学习,并且展现最好的结果,至于现在会不会,懂不懂都不重要,因为只要他想要他就随时可以要,也能要得到。
超级程序员比思想和素质
    程序只是语言的表述,而语言则是思想的泽炼。
    超级程序员不仅改变我们的行为,也企图改变我们的思想。你不需要从超级程序员的代码判断他的素质,而是从他写的字、他说的话去感受他、因为没有那个思想到不了那个境界

14 楼 argan 2009-08-23  
finux 写道

同时,个人觉得LZ把Java和之前说的一些开源框架拿出来做比较不适合,没有可比的地方。

对于我来说,Java给我的感觉是强大,特别是JVM。



呵呵,我哪里有在比较一些开源框架和java本身了?表达的只是一种观点而已,就算文中提到的spring,hibernate我都没有做过比较,不是同样的东西有啥好比的?
13 楼 lchj 2009-08-23  
灵魂是什么,什么才是有灵魂的,有没有实施手册?我们一直梦想着软件能够流水线似的制造,生产出来的没有灵魂,那流水线有灵魂么?如果有天mda实现了,那他是有灵魂的么?
12 楼 whaosoft 2009-08-22  
软件最终还是要应用到实际,还要市场来检验啊
11 楼 sw1982 2009-08-22  
楼上这个标题让我很受益
10 楼 elifefly 2009-08-22  
没有灵魂的软件不是一个优秀的软件



汗,说了半天,有哪一个是真正优秀的,哪一个是真正有灵魂的?
9 楼 lkjust08 2009-08-22  
fjlyxx 写道
我觉得软件只是生活的抽象 离开实际的用途(没有需求) 就算再优雅再简单 也只是一个花瓶  应该说不能节约社会成本,提高工作效率......的软件不是一个优秀的软件.
存在就是道理,只要这个软件存在了那么就有它的价值.只要它满足了需求那么它就是优秀的,当然可能不是最优秀的 但是一定是最适合的. 法拉利的设计很好吧 但是它不能进山沟沟 这时候也许拖拉机会优秀点

法拉利的设计很好吧 但是它不能进山沟沟 这时候也许拖拉机会优秀点
说的好,哈哈。
8 楼 finux 2009-08-22  
fjlyxx 写道
我觉得软件只是生活的抽象 离开实际的用途(没有需求) 就算再优雅再简单 也只是一个花瓶  应该说不能节约社会成本,提高工作效率......的软件不是一个优秀的软件.
存在就是道理,只要这个软件存在了那么就有它的价值.只要它满足了需求那么它就是优秀的,当然可能不是最优秀的 但是一定是最适合的. 法拉利的设计很好吧 但是它不能进山沟沟 这时候也许拖拉机会优秀点

同意上面的说法。

同时,个人觉得LZ把Java和之前说的一些开源框架拿出来做比较不适合,没有可比的地方。

对于我来说,Java给我的感觉是强大,特别是JVM。
7 楼 kjj 2009-08-22  
引用

是的,没有最好的,只有最合适的,这也是我一直坚持的观点,不过我这篇文字想要表达的意思其实很简单,要想做一个好的东西,一定要坚持自己的原则,要有自己独特的价值。


一定坚持自己的原则有两种结果,一种错的一塌糊涂,一种大功告成!!
6 楼 argan 2009-08-22  
fjlyxx 写道
我觉得软件只是生活的抽象 离开实际的用途(没有需求) 就算再优雅再简单 也只是一个花瓶  应该说不能节约社会成本,提高工作效率......的软件不是一个优秀的软件.
存在就是道理,只要这个软件存在了那么就有它的价值.只要它满足了需求那么它就是优秀的,当然可能不是最优秀的 但是一定是最适合的. 法拉利的设计很好吧 但是它不能进山沟沟 这时候也许拖拉机会优秀点


是的,没有最好的,只有最合适的,这也是我一直坚持的观点,不过我这篇文字想要表达的意思其实很简单,要想做一个好的东西,一定要坚持自己的原则,要有自己独特的价值。
5 楼 mgoann 2009-08-22  
在我看来,java给我的第一感受是强大!
4 楼 tinywind 2009-08-22  
现在踩java是时髦,是个人就敢踩一脚
3 楼 fjlyxx 2009-08-22  
我觉得软件只是生活的抽象 离开实际的用途(没有需求) 就算再优雅再简单 也只是一个花瓶  应该说不能节约社会成本,提高工作效率......的软件不是一个优秀的软件.
存在就是道理,只要这个软件存在了那么就有它的价值.只要它满足了需求那么它就是优秀的,当然可能不是最优秀的 但是一定是最适合的. 法拉利的设计很好吧 但是它不能进山沟沟 这时候也许拖拉机会优秀点

相关推荐

    计算机导论-第三讲 计算机的灵魂——软件

    第三讲的主题聚焦在“计算机的灵魂”——软件,这一讲深入探讨了软件的重要性和其在计算机系统中的核心地位。 首先,软件是计算机能够执行任务的关键。没有软件,硬件就像一台空壳,无法实现任何功能。软件可以分为...

    软件开发是物联网系统的灵魂

    软件开发是物联网系统的灵魂软件开发是物联网系统的灵魂软件开发是物联网系统的灵魂软件开发是物联网系统的灵魂软件开发是物联网系统的灵魂

    计算机的灵魂软件.pdf

    计算机的灵魂软件.pdf

    计算机导论-机计算机的灵魂——软件

    ### 计算机导论-计算机的灵魂:软件 #### 教学内容概览 本章节主要探讨了计算机软件的核心概念及重要性,并深入讲解了软件的相关组成部分和技术领域,旨在帮助学生建立对计算机软件全面而深刻的理解。具体涉及的...

    软件概述优秀文档.ppt

    软件的发展非常快速,新版本的软件不断涌现,每个版本都在前一个版本的基础上进行改进和升级。软件的生命周期包括设计、开发、测试、维护和升级等几个阶段。 软件与知识产权息息相关,软件是智力活动的成果,受到...

    软件项目开发和管理规范标准[详].pdf

    需求管理是一种获取、组织并记录软件需求的系统化案,同时也是一个使客户与工程开发组对不断变更的软件需求达成并保持一致的过程。在需求管理中,软件工程组的工作是采取适当的措施来保证分配的需求,即要将分配的...

    南京工业大学《软件工程》期末考试复习资料汇总.pdf

    软件工程的历史背景中,软件危机是一个不可忽视的问题。在软件危机概念提出之前,这些问题就已经存在,如系统开发失败、成本高昂、无法按时交付等问题。软件工程的出现,正是为了解决这些危机,它在IEEE下的定义包括...

    C语言嵌入式系统编程修炼(软件架构篇)

    因此,对于一个优秀的程序员而言,编写出像艺术品一样的程序,是一种高尚的职业追求。 #### 模块化设计与管理 模块化是软件架构中的一个重要概念,它将整个系统划分为多个独立的组件或模块,每个模块负责实现特定...

    [详细完整版]软件工程规范.doc

    总结来说,软件工程规范是软件开发的灵魂,它指导着项目的每一个步骤,从前期的规划到后期的维护,确保软件开发的每一个环节都遵循科学的、系统化的路径,从而提高软件的质量和效率,降低开发风险。对于技术开发部门...

    软件是计算机的灵魂PPT学习教案.pptx

    计算机的灵魂——软件 在计算机科学领域,软件被誉为计算机的灵魂,这是因为软件赋予了硬件执行特定任务的能力。软件由一系列指令组成,这些指令被称为程序,它们存储在计算机的主存储器中,以便快速访问和执行。...

    MES深度报告上篇:工业软件“灵魂”

    ### MES深度报告上篇:工业软件“灵魂” #### 一、工业软件概况 ##### 1.1 工业互联网产业体系架构,3万亿市场规模 工业互联网作为一种新兴的技术体系,正逐步构建起一个全面覆盖的研发、生产和服务体系。据赛迪...

    文件夹管理软件,四格窗口,操作方便

    在如今这个信息爆炸的时代,文件夹管理软件作为一种重要的电脑应用工具,对于提高用户工作效率具有重大意义。本文将深入探讨一款具有创新性的文件夹管理软件,其特色为四格窗口布局和操作的便捷性,为用户在处理文件...

    一个商品化的杀毒软件源代码

    源代码是软件的灵魂,揭示了软件背后的逻辑和算法,对于开发者来说,能够接触到商品化杀毒软件的源代码是一次难得的学习机会。 首先,我们需要了解杀毒软件的基本工作原理。杀毒软件主要通过三种方式来防御病毒和...

    软件工程课件,对软件工程的详细解说

    (2)是活着的人的灵魂验证,实现了灵魂的神话。 2、科学的定义 (1)、在运行中提供所希望的功能和性能的指令集(即程序)。 (2)使程序能够正确运行的数据结构。 (3)描述程序研制和方法所用的文档。 3、软件的...

    软件开发文档说明(完整流程)

    1. 软件需求说明书:这是软件开发的第一步,它详细描述了软件的目标、功能、性能、用户界面和运行环境。通常包含引言(编写目的、背景、定义)、任务概述(目标、用户特点、假定和约束)、需求规定(功能、性能、...

    一个实用的企业文化软件

    一个实用的企业文化软件,正是帮助企业塑造、传播和强化自身文化的关键工具。这款名为《企业文化》的软件,以其实用性和便捷性,为企业提供了构建独特文化氛围的有效途径。 企业文化,是企业的灵魂,它包括企业的...

    软件开发的哲学思考

    2. **开发环境**:包括使用的计算机硬件、软件工具以及开发流程等,这些因素共同塑造了一个有利于软件创新的环境。 3. **系统**:涉及到参与软件开发的所有人、组织结构、工作流程和技术栈等。良好的团队协作和明确...

    计算机的灵魂—软件

    一、计算机软件概述 二、装机必备的软件 三、实现特定功能的软件 四、应用软件的安装与卸载 五、技能挑战——文本框与图片

    软件开发相关文档软件开发文档软件开发文档软件开发文档

    首先,软件开发文档是整个开发流程的灵魂,它记录了项目的每一个阶段,包括需求分析、设计、编码、测试和维护等。文档的清晰度和完整性直接影响到项目的成功与否。例如,需求文档可以帮助团队理解用户需求,设计文档...

Global site tag (gtag.js) - Google Analytics