《软件开发沉思录》
1. 最后一英里
1.1 理解问题
从商业的角度来说,之所以要开发一套新的软件,是因为它能够创造更多业务价值。但是如果下列情况之一发生的话,开发新软件反而会得不偿失:
- 新的软件无法负载业务模式所需的用户量或交易量;
- 新的软件破坏了遗留数据库中的数据;
- 新的软件出现无法预期的错误,或者导致遗留系统变得不可靠;
- 新的软件把敏感数据暴露给了不可信的用户;
- 新的软件使恶意用户能够进行未授权的操作。
新软件给现有业务带来的风险很可能超过它能够提供的价值,所以很自然地,公司越大,在引入新软件时就必须越发小心。这也就导致了旧系统和过时的技术堆积在产品环境中,而不是被替换掉。而与这些堆积的遗留系统集成这一难题又会增加引入新软件的成本与风险。于是这就成了一个恶性循环。
这个恶性循环使得企业越来越难以改变业务模式,因为做出改变的成本与风险越来越高。没有技术包袱的新公司或许可以在一段时期内将老迈的对手甩在身后,但最终它们自己也会走上同样的衰老之路。
2. 语言的盛景
2.1 编程泛型
一般而言,编程泛型包括命令式、过程式、函数式、面向对象式、声明式以及逻辑式。
类别 |
定义 |
实例 |
命令式 |
修改内存状态的语句序列 |
Fortran,汇编 |
过程式 |
通过过程(即一组语句)组织程序 |
C,Pascal,Cobol |
面向对象式 |
通过对象组织程序 |
Smalltalk,Java,Ruby |
函数式 |
通过无状态函数组织程序 |
Lisp,Scheme,Haskell |
逻辑式 |
通过公理和推演规则表述期望结果的特征 |
Prolog,OPS5 |
声明式 |
描述解决方法而不是如何实现解决方法 |
XSLT,SQL,Prolog |
分享到:
相关推荐
首先,从《软件开发沉思录_IT168文库.pdf》中,我们可以深入探讨以下几个关键知识点: 1. **敏捷开发**:ThoughtWorks是敏捷开发的倡导者,书中可能会介绍敏捷方法如Scrum和Kanban的实践,强调迭代和适应变化的重要...
总而言之,《软件管理沉思录》是对软件项目管理领域的一个全面总结,它为读者提供了一套系统化的管理工具和方法论,让软件开发工作变得更加有序和高效。对于任何希望在软件工程领域取得成功的人而言,这本书无疑是一...
本书深入探讨了计划类型和计划过程,让读者了解到计划不仅仅是一个简单的时间表,它更是一种管理工具,一种确保软件开发质量的系统化方法。作者强调,在软件开发过程中,质量控制策略的设定是关键一环,它涉及到从...
总体而言,《软件管理沉思录》作为一本专注于软件管理和团队协作的读物,不仅为软件项目管理者提供了实用的工具和方法,还为团队成员指明了协作和成长的方向。作为一名软件行业的从业者,我深感书中所传达的知识和...
【Nginx沉思录】 本文是对Nginx Web服务器的深入探讨,作者在阅读...作者的沉思录不仅是对Nginx技术的剖析,也是对软件工程领域的一次深入反思,提醒我们在编程时不仅要追求功能实现,更要注重代码的可读性和维护性。
【标题】:“PHP沉思录之三.pdf”可能是一本探讨PHP编程深入理解与实践的书籍或文档,属于IT技术领域,特别是Web开发方向。PHP(Hypertext Preprocessor)是一种广泛使用的开源脚本语言,尤其在服务器端编程中占有...
总之,《设计模式沉思录》是一本对软件开发人员极具价值的资源,无论你是初学者还是经验丰富的开发者,都能从中受益匪浅。通过深入研读这本书,你将能够更好地应对软件设计的挑战,提升自己的编程技艺,并为团队合作...
设计模式是软件开发中一个非常重要的概念,它提供了一种提炼子系统或软件系统中的组件的纲要设计。设计模式描述普遍存在的在相互通讯的组件中重复出现的结构,这种结构解决在一定的背景中的具有一般性的设计问题。 ...
综上所述,《人月神话》是一本深度探讨软件项目管理的书籍,它提供的见解对于任何参与软件开发的人都具有深远的指导意义。通过理解并应用书中的原则,可以更有效地管理复杂项目,避免常见的陷阱,提高项目的成功率。
通过学习这两本书,读者不仅可以熟练掌握C++语言,还能培养出良好的编程思维,提高软件开发的效率和质量。 总的来说,无论是对C++初学者还是经验丰富的开发者,这两本书都提供了宝贵的洞察和指导。通过深入阅读并...
第一条 完成项目需求调研后,避免项目后期出现超出合同范围的需求,项目初期需同用户就所调研的软件需求进行确认。 第二条 需求确认书由项目经理/第一负责人同用户代表签订,一式两份,签订 后交由部门经理统一保管...
《C++沉思录》是一本深受欢迎的C++编程指南,它以其深入浅出的讲解方式和对C++核心概念的透彻分析而著称。这本书旨在帮助读者理解C++语言的内在机制,提升编程技能,从而更好地利用C++进行软件开发。以下是基于这个...
20. **C 和 C++语言提升**:包括《c 和指针》、《c 缺陷和陷阱》、《c 专家编程》、《Effective C++》、《More Effective C++》、《C++沉思录》等,这些书籍可以帮助你深入理解这两种语言。 21. **设计类**:《代码...
软件需求说明书是软件开发项目中至关重要的一份文件,它的编写规范和内容直接影响着项目的成败。下面我们将详细介绍软件需求说明书的编写规范、内容和相关知识点。 编写目的 软件需求说明书的编写目的在于明确软件...
软件系统测试模板是软件开发生命周期中一个重要的组件,它旨在确保软件系统的质量和可靠性。本文将详细介绍软件系统测试模板的各个组件和要素,以帮助开发者和测试者更好地理解和实施软件测试。 1. 操作手册编写...
* 《Effective C++:改善程序与设计的 55 个具体做法》、《More Effective C++:35 个改善编程与设计的有效方法(中文版)》、《C++沉思录》、《C++Templates 中文版》、《深度探索 C++ 对象模型》、《泛型编程与 STL》...
《设计模式:可复用面向对象软件的基础》是引导读者走出软件设计迷宫的指路明灯,凝聚了软件开发界几十年设计经验的结晶。四位面向对象领域专家精心选取了具价值的设计实践,加以分类整理和命名,并用简洁而易于重用...
其次,《C++沉思录》则深入探讨了C++这一现代面向对象编程语言的精髓。C++在C语言的基础上增加了类、模板、异常处理、多态性等特性,使得代码更加模块化,易于维护。读者会了解到如何设计和实现类,掌握面向对象编程...
- 《C++沉思录》以及多个版本的《C++高级参考手册》:这些建议的书籍和手册可能详细解释了C++语言的多个高级特性,包括但不限于STL(标准模板库)、异常处理、内存管理等。 - 《Visual C++高级编程》以及相关配套...