首页 > 其他分享 >02梦断代码阅读笔记之一

02梦断代码阅读笔记之一

时间:2024-06-16 14:10:57浏览次数:15  
标签:02 代码 笔记 Chandler 开发 软件 过程 梦断

《梦断代码》一书记录的是作者罗森伯格对OSAF主持的Chandler项目进行田野调查,通过Chandler开发过程来揭示软件开发过程中一些根本性的大问题。对本书才刚刚阅读了三分之一,就已经忍不住对作者描述的开发过程所感叹,虽然刚进入软件领域不久,但是仍旧有感于这本书中的现实,对自己也很有启发。

初读本书,最让我耳目一新的就是它的章节排布,出现了第0章。印象最深的一句话是作者在写到关于“hello world”时提到的一句话,“既然能叫它说话,就能让它做任何事”。遥想自己刚入门编程的时候,对helloworld还懵懵懂懂,但是仍旧不减对软件世界的憧憬,无论是手机上还是电脑上,五花八门的软件甚至让我有过把手机上的软件全部换成自己开发的软件的幻想(虽然不切实际,但确实是高中时就对软件工程专业的憧憬)。而作者将首个章节标记为第0章的意义,就是程序员从0开始计数的寓意。从0开始憧憬,从0开始进步,计算机也是从0开始计数的,从0开始,我第一次让计算机说出了helloworld,同时也激发了我对软件的兴趣与期望。

在当今社会,软件已经成为人类生活中不可或缺的一部分,“人类文明运行于软件之上”的说法虽然有点自卖自夸,但它很是明确的反应了软件在人类社会中的地位。它存在于厨具里、汽车里、玩具里、建筑中,商业、科研、医疗、基础公共设施哪里都有它的影子,人类生存之所需都系于计算机代码这根易断的细线上。软件事业发展至今,也不乏面临过、面临着许多困难。而从事与软件事业的程序员们,最优秀的品质莫过于面临困境还不忘幽上一默的乐观态度,也正是这样的乐观态度,才使得软件能够不断地被修复、被更新,以至于发展到今天这个软件纵横的社会。

还记得大一下学期有一段时间对游戏开发产生了兴趣,当时的热情激励我学习了C#,学习了unity,甚至学习了一部分3d建模(当然时间问题并不精通)。在自认“学有小成”之后,我决定从0开始开发一个自己的游戏,虽然都说“若能取之于现有,程序员绝不肯创之于本无”,但是心中的热情还是促使我创造自己的代码与模型。经过一个月的建模工作,终于搭建好了一个比较满意的地图,但是当地图搭建完成之后,我突然不知道游戏的主题应该往哪个方向发展了,做射击类?但是地图又不能很好的支持剧情。做冒险类?又没有太多的素材。最后终于在进行一段胡乱编码后不了了之。

这件事之后,我也是充分认识到了架构的重要性。如果在动手开发之前没有合理的设计方案,没有列出可能的错误,没有给定开发的方向以及注意事项,最终的结果就是白费力气,要知道,软件不等同于程序。一个简单的程序可以不用明文的设计,一股脑的敲代码或许就能实现,但是软件不一样,如果一开始不确定软件的功能模块、体系架构,到后期就会出现无数种不确定性。在后来的web开发中,我充分吸取了以前的教训,无论多么简单的web项目,都首先确定其架构,列出功能项和子功能分布,数据库的数据表结构设计,以及开发过程中需要注意的事项,这些开发前的准备往往会大大减少编码时间,让编码时的思路更加清晰。

在《梦断代码》中,Chandler的开发过程中就有我碰到的问题的放大版,虽然Chandler开发过程中制定了很多的开发计划,但是每一个决定中都包含了不确定性。构建软件最难的部分是决定说什么,而不是怎么说。如果没有一个好的决策,就像在没有凝固的地面上建楼,怎么能站得稳呢?

书中提到一句话,“唯有万丈雄心能助你艰难前行”,这其实是对软件开发过程中某种现状的讽刺,即仅仅抱着自己的工作能改变人们生活的期望投入开发,没有合理的、完整的、优秀的设计与决策,仅靠“万丈雄心”,是很难做出成果的。

综上,清晰的思路、合理的设计是开发软件必须的第一步。

标签:02,代码,笔记,Chandler,开发,软件,过程,梦断
From: https://www.cnblogs.com/Mini-Q/p/18250574

相关文章

  • FL Studio21.2.2破解版注册机包含破解2024许可证
    FLStudio,即FruityLoopsStudio,自推出以来,在音乐制作领域已赢得了广泛的声誉。这款软件不仅为专业音乐制作人提供了强大的工具集,也为初学者提供了一个直观、易上手的学习平台。它集成了音频录制、编辑、混音、编曲、虚拟乐器演奏和效果处理等多种功能,几乎涵盖了音乐制作的所有......
  • CorelDRAW2024最新官方永久破解版下载地址链接
    CorelDRAWGraphicsSuite的订阅版是一种按周期付费的软件使用模式,允许用户以一定的费用在一段时间内访问和使用CorelDRAWGraphicsSuite的全部或部分功能。这种模式通常不涉及软件的所有权转让,而是提供使用权。「CorelDRAW全系列汉化版下载」,来自夸克网盘分享链接:抓紧保存......
  • 学习笔记:快速成长的几点方法
    分享一篇学习笔记,聊聊普通人快速成长的方法。 1、能力复制如何理解能力?举个日常工作中常见的例子:PPT。无论是转正述职晋升或者项目成果汇报,大多都会以PPT作为载体。很多同学说自己会写PPT,结果PPT的内容即没有很清晰的结构,阐述的内容也不具备自洽的逻辑,他们只是找了一个PPT模......
  • 最新2024FL Studio21中文激活注册码获取方法步骤教程!
    在音乐创作领域,FLStudio21无疑是一款强大的工具。然而,对于许多初学者来说,如何正确注册和激活FLStudio21成了一个难题。今天,我们就来为大家详细解答这个问题。我们需要在FLStudio21的官方网站上购买正版软件。在购买过程中,请确保选择与您操作系统相匹配的版本。购买完成后,......
  • (带pdf和阅读笔记)SQL学习指南 ([美]博利厄(Alan Beaulieu), 张伟超, 林青松)
    书:pan.baidu.com/s/1tIHXj9HmIYojAHqje09DTA?pwd=jqso提取码:jqsoSQL基础与概述:介绍SQL的起源、发展以及在数据库管理中的重要地位,让读者对SQL有一个整体的了解。数据查询基础:详细讲解SELECT语句的基本语法,包括选择列、过滤行等,帮助读者掌握SQL查询的基本方法。数据操作与修改......
  • 2024hw蓝队面试题-3
    Linux有哪些提权思路常用的有以下几种:1.SUID提权:在Linux中,如果一个可执行文件的SUID被设置,那么该文件将以拥有者的权限运行,而不是以执行者的权限运行。因此,如果用户找到了一个SUID为root的文件并成功地使其执行了恶意代码,那么该用户将会获得root权限。2.利用系统漏洞:这是最......
  • 2024年6月杂题乱写
    6.5P3214[HNOI2011]卡农设\(f_i\)表示选了\(m\)个集合的答案,简单观察发现,只要确定了\(m-1\)个集合,最后一个集合就是确定的,不是偶数次数的出现,偶数次数的不出现,选\(m\)个集合有\(C_{2^n-1}^{m-1}\)种方案,考虑下面两种不合法的情况。这\(m-1\)个集合已经合法,最后......
  • 01 人月神话阅读笔记
    焦油坑(The Tar Pit)从《焦油坑(TheTarPit)》可以看到作者对软件开发的深刻洞察和反思。这段文字不仅仅是关于技术和开发过程的描述,它更像是一次关于创造性劳动本质的哲学探讨。焦油坑的比喻是这段文字的核心。焦油坑象征着那些看似简单却纠缠复杂的问题,这些问题在软件开发中经......
  • 03人月神话阅读笔记
    外科手术队伍(TheSurgical Team)本文探讨了在软件开发项目中,采用类似外科手术队伍的方式来提高效率和概念完整性的想法。作者通过比较小型、精干团队与大规模团队的开发效率和成本问题,指出了在项目管理和团队构建中的关键挑战。关键观点和发现:个体差异的影响:研究表明,优秀程序......
  • 02人月神话阅读笔记
    人月神话(TheMythicalMan-Month)在许多软件项目中,项目进度的合理性往往成为项目成功与否的决定性因素。这些项目经常面临的核心问题之一是对时间进度的乐观估计,这种乐观主义往往根植于编程人员的心理中。首先,让我们考虑乐观主义在软件开发中的根源。与其它工程领域不同,软件开发......