焦油坑(The Tar Pit)
作者用“吞噬了恐龙、剑齿虎等史前巨兽的焦油坑”这一生动比喻,形象地描绘了软件系统开发的复杂性。在整个的软件开发过程中,“编程系统产品”才是真正的目标,也是最具价值的产品形态。为了更清晰地阐述这一观点,作者区分了以下几个概念:
编程系统产品
程序(Program)
由编码人员完成的编码产物,可以在所开发的系 统平台上运行。
编程产品(Programming Product)
编程产品是指一个独立的、可执行的程序,任何人都可以运行、测试、修复和扩展它。它可以跨多个操作系统平台运行。要将一个简单的程序转变为编程产品,需要付出更多努力——包括详尽的测试和完备的文档。根据经验数据,相同功能的编程产品的成本至少是已经过测试的程序的三倍。
编程系统(Programming System)
编程系统是多个能够相互协作的程序集合。它是指在一个已有的编程系统平台上开发新的功能构件。要使一个程序成为编程系统中的一个构件单元,不仅需要确保其接口一致,还必须遵守预定义的资源限制,并能与其他现有组件进行组合测试验证。相同功能的编程系统构件的成本至少是独立程序的三倍。如果系统包含大量组件,成本会进一步增加。
编程系统产品(Programming Systems Product)
编程系统产品是指一个完整的、功能齐全的软件解决方案。相对于单纯的“编程(Programming)”而言,其成本可能高达九倍。然而,只有这样的产品才真正具有实用价值,是大多数系统开发的目标。编程系统产品的开发不仅涉及编码,还包括全面的设计、严格的测试以及详尽的文档,确保最终产品既可靠又易于维护。
编程的乐趣和苦恼
这部分见仁见智,毕竟人类的悲喜并不相通。
编程为什么有趣?
创造的喜悦
就像孩子在沙滩上堆砌沙堡时那种单纯的快乐,编程同样给予我们创造新事物的机会。每当一行行代码跃然屏幕之上,逐渐汇聚成一款应用或游戏时,那份成就感难以言表。这也许是对上帝创造世界的一种微缩体验吧——在每一个独一无二的树叶或雪花中都能感受到这种喜悦。
共享的价值
编写程序并不仅仅是个人的消遣,更是一种能够惠及他人的行为。当我们开发出一款软件或工具,并看到它在他人手中发挥作用时,那种内心的满足感是无价的。这份喜悦源于内心深处那份希望自己的工作能够帮助到别人的愿望。
魔法般的魅力
编程还蕴含着一种类似魔法的魅力。当你将一个个看似无关紧要的小模块拼凑起来,见证它们如何巧妙地协同运作,达到预期的效果时,那份惊喜与激动丝毫不亚于观看一场精彩的魔术表演。
持续的学习
由于编程领域日新月异,这意味着总有学不完的知识等着我们去探索。无论是解决实际问题还是理论研究,每一次尝试都能让我们收获新的知识,这样的过程本身便充满了乐趣。
职业的苦恼
追求完美
计算机科学要求极高精确度,哪怕是最微小的错误也可能导致整个项目功亏一篑。因此,作为程序员,我们必须时刻保持警惕,不断追求完美。
依赖他人
在团队合作中,我们经常需要依赖同事的工作成果。然而,并不是每个人都会按照高标准来完成任务,这就导致后续环节可能会遇到各种意想不到的问题,需要耗费大量时间和精力去解决。
调试的艰辛
创意与灵感固然重要,但随之而来的往往是繁琐且耗时的调试过程。在这个阶段,我们需要反复试验、查找错误,直到找到症结所在。这一过程无疑是枯燥且令人沮丧的。
时代的淘汰
技术发展速度之快,使得很多项目还没等完工就已经落后于市场。看着自己投入心血的作品渐渐被淘汰,这对任何一位程序员来说都是不小的打击。
这就是编程——既有创造的乐趣,也有面对挑战时的困扰。然而,正是这些复杂的情感交织在一起,构成了这份职业独特的魅力所在。对于真正热爱它的人来说,那些瞬间的快乐足以抵消一切烦恼。而本书的剩余部分将试图搭建一些桥梁,为通过 这样的焦油坑提供一些指导。
☆公☆众☆号〖和码说〗☆公☆众☆号
如果觉得不错,关注,点赞,转发安排起来,公众号标记五角星,可以第一时间收到更新通知哟!
转载需注明出处!
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆