`
suigara
  • 浏览: 82337 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

关于软件开发的隐喻

 
阅读更多

 

现在大多数的书籍或者思想都把软件和建筑行业做对比--这也是“工程”一词的由来。工程设计师不一定(基本上没有)从民工干起,就能推论出软件设计师不需要写好代码?

也有一些大师认为软件和艺术类似,出于自尊自己一直相信,自己是一个艺术家,代码是艺术,这也是我热爱写代码的原因。

 

而光从代码的角度来看,我更愿意以艺术的角度来看待它。

 

前两天看到一篇文章《软件开发如同木匠做桌子》:http://www.oschina.net/news/26198/it-should-only-take-you-a-few-hours

 

貌似有道理,然而看下他的背景,其实是木匠的“私活”,不适用于大量生产,也就是没有规模化。

 

另外就是变化,做好的后的桌子,客户说我不想再外面放东西了,我想放到客厅放花,过几天又说想当餐桌。木匠该怎么办???

 

然而艺术的需求是自己定的,不会说变就变,这也是软件行业和其他行业不同的地方。 没有任何一个行业在成品出来后说变就变。房子盖好后能多加几层么??画好画后能加上或去掉东西么,可能墨水都不能滴上,否则画就作废了。

 

变化是软件不变的主题,没有这个前提,任何的隐喻都是徒劳的。

分享到:
评论

相关推荐

    敏捷软件开发.doc

    ### 敏捷软件开发核心理念与实践 #### 敏捷宣言与原则 敏捷软件开发,源于21世纪初,由一群软件开发领域的先驱者共同创立,旨在应对快速变化的市场需求,提高软件开发效率和质量。《敏捷软件开发宣言》明确提出了...

    软件开发流程(初步)

    软件开发流程是软件工程的核心部分,它指导着从概念到产品的整个过程。在这个初步的认识中,我们将探讨传统的瀑布式模型,以及更为现代的统一开发流程RUP(Rational Unified Process)。这两种模型对于理解软件开发...

    敏捷软件开发

    ### 敏捷软件开发:一种以人为本的开发哲学 敏捷软件开发是一种强调灵活性、协作与持续改进的软件开发方法论,其核心价值观与原则体现在“敏捷宣言”中,这份宣言被视为敏捷运动的基石。宣言强调了个体与交互的重要...

    实用敏捷软件开发.pptx

    敏捷软件开发,作为一种新兴的软件开发方法论,自1990年代以来逐渐获得了广泛的重视与应用。相较于传统的瀑布模型,敏捷开发强调灵活性、高效性和团队合作,旨在应对快速变化的市场需求,提升软件产品的质量和生产...

    (Extreme Programming,XP)是一门针对业务和软件开发的规则,它的作用在于将两者的力量集中在共同的、可以达到的目标上。它是以符合客户需要的软件为目标而产生的一种方法论,XP使开发者能够更有效的响应客户的需求变化,哪怕是在软件生命周期的后期。它强调,软件开发是人与人合作进行的过程,因此成功的软件开发过程应该充分利用人的优势,而弱化人的缺点,突出了人在软件开发过程中的作用。极端编程属于轻量级的方法,认为文档、架构不如直接编程来的直接。

    极限编程(Extreme Programming,简称XP)是一种敏捷软件开发方法论,旨在提高开发团队与业务之间的协作效率,确保软件产品能够紧密贴合客户的实际需求。XP的核心理念是将业务目标与软件开发紧密结合,通过一系列...

    《敏捷软件开发宣言》

    ### 敏捷软件开发宣言解析 #### 一、宣言的核心价值观 **《敏捷软件开发宣言》** 是2001年由一群资深软件开发者提出的指导原则,旨在改变传统的软件开发方式,提升开发效率与质量。宣言提出了四个核心的价值观: ...

    李凌霞 (修改稿)芒种 基于认知隐喻分析《李尔王》的悲剧主题.zip

    在软件开发中,设计模式可以被视为一种隐喻,它们是解决常见问题的标准化解决方案,为开发者提供了一个通用的语言,帮助他们理解和交流设计决策。 然而,以上内容与压缩包内的《李尔王》分析文档内容并不直接相关。...

    敏捷软件开发——下载

    敏捷软件开发是一种以灵活性和快速响应变化为核心理念的开发方法论,旨在应对现代软件项目中常见的需求不确定性与频繁变更。敏捷开发强调通过迭代和增量的方式交付软件,以确保软件始终能满足客户的需求。这种方法...

    软件开发经验总结-V21

    在当今信息技术高速发展的时代,软件开发已成为推动各行各业进步的关键力量。然而,要成功开发出一个高质量的软件产品,开发者需要跨越无数的挑战,从需求分析到设计实现,每个步骤都至关重要。本文档《软件开发经验...

    软件开发面试百问.doc

    《软件开发面试百问》这份文档旨在为招聘者提供一系列深度和广度兼具的问题,以鉴别优秀的软件开发人员。以下是一些关键知识点的详细说明: **需求分析** 1. **非功能性需求**:非功能性需求关注系统的性能、可用...

    敏捷软件开发模型--SCRUM

    ### 敏捷软件开发模型——Scrum #### Scrum的核心概念与角色 Scrum作为敏捷开发框架中的一个重要组成部分,其核心在于提供一种高效且灵活的软件开发方式。它通过定义明确的角色、流程以及规则,帮助团队更好地管理...

    《闻缺陷则喜》之《软件开发的那些人》 20230917

    《闻缺陷则喜》系列书籍以“从缺陷中学习并成长”的理念为核心,旨在探讨软件开发中的各种问题和解决策略。作者何志丹通过分享个人经验,深入剖析软件团队的构成、软件开发流程以及思想,提供了丰富的实践指导。 1....

    howto-sw-dev:我的软件开发方法

    如何进行软件开发 这是我的方法。 在一开始的时候 软件开发基本上遵循以下路径: 数学(转换) 科学(分解) 建模(OO) 分析型 我使用的主要分析方法是: 批判现实主义 ...因为我们基本上是在建模,...隐喻软件开发

    Code Complete, 2nd Edition.pdf

    由于提供的文件信息是关于一本书籍《Code Complete, 2nd Edition》的内容摘要和目录,而不是一个具体的技术文档或指南,因此我们可以从这些信息中提取出关于软件开发最佳实践的关键知识点。《Code Complete, 2nd ...

    软件构造课程复习资料

    软件隐喻是帮助开发者理解和表达软件开发过程的一种方法。常见的隐喻有软件书写、软件播种、软件珍珠培植法、软件创建、实用软件技术以及复合隐喻。这些隐喻通过类比帮助我们深化对编程的理解。 在软件构造的前期...

    代码大全学习笔记

    从标题"代码大全学习笔记"和描述中可以看出,本文将深入探讨软件构建的重要性和一系列相关活动,以及如何通过隐喻来更好地理解软件开发。 首先,让我们详细解析软件构建的流程。软件构建是一个复杂的过程,包括定义...

    code complete(2nd Edition)

    书中阐述了**软件开发隐喻**的概念,通过将软件开发比作建筑、园艺、烹饪等其他领域,来加深对软件开发过程的理解。这些隐喻不仅丰富了对软件开发的认知,还帮助开发者从不同角度思考问题,促进创新思维。 ### 上游...

Global site tag (gtag.js) - Google Analytics