首页 > 其他分享 >《梦断代码》读后感(一)

《梦断代码》读后感(一)

时间:2023-04-21 19:00:12浏览次数:25  
标签:读后感 代码 梦断 开发 软件 过程 Chandler

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

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

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

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

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

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

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

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

标签:读后感,代码,梦断,开发,软件,过程,Chandler
From: https://www.cnblogs.com/laohei114514/p/17341450.html

相关文章

  • 团体程序设计天梯赛 L1-064 估值一亿的AI核心代码 题解
    思路L1-064估值一亿的AI核心代码题意有一点不太清晰的,就是原文中的'I',无论是否是单独的,都不能变为小写。如果是单独的'I'再被转化为'you'。这种模拟题就需要每个的分分清清楚楚的,不要都揉到一块儿,容易写错。具体还有些需要注意的在代码里注释着了。代码#include<iostream>......
  • 个人代码分享-工薪收入计算
    python3小工具,计算工资年收入。注意默认是5险1金拉满,个税月起征点是5000元输入参数中的地区年平均收入可以在网上查,比如查“社保基数”,一般里面会提年平均收入用法:安装python3并配好环境变量,在cmd中定位到脚本所在目录,执行:pythonafter_tax_income.py月薪月数当地年平均收......
  • 类的memory以及抽象类继承学习(含测试代码)
    #include<iostream>#include<cstdio>#include<queue>#include<vector>#definelllonglongusingnamespacestd;/*注意:输出不同可能对齐参数或者编译器不同有关。*///模板类输出方法template<classT>intsize(Tlim){returnsizeof(lim);}/*......
  • Vue3 代码块高亮显示并可使用富文本编辑器编辑(highlight.js + wangEditor)
    在Vue项目中实现以下功能:  功能1.在页面中显示代码,并将其中的关键字高亮显示。  功能2.允许对代码块进行编辑,编辑时代码关键字也高亮显示。  功能3.可在编辑器中添加多个代码块,动态渲染代码关键字高亮。 Step1:安装所需插件(本文使用npm安装,若需使用其他方式请查......
  • phpStorm自定义快捷键,输出代码块,模板
    在开发过程中经常需要打印数据调试,var_dump()或print_r都没办法直观的查看数据,我一般用如下代码打印数据,但是每次手动输入又麻烦,所以设置一个快捷键就能输出一下代码,岂不是一劳永逸:1.进入设置对话框:File->Setting2.接下自定义快捷键:按一下步骤操作完,点击"ok"键![在这......
  • 无代码调整聚类热图分支顺序
    聚类热图根据不同的聚类算法和距离计算方式,获得的热图分支结构会有一些不同。有时,我们也希望能在不改变分支结构的基础上,对热图分支的顺序进行一些调整,这就是推文聚类热图怎么按自己的意愿调整分支的顺序?的出发点。现在这个功能也搬到了BIC平台,具体怎么做呢?采用之前的绘图数据采用......
  • 无代码绘制基因表达箱线图
    给定一个基因表达矩阵和样本分组信息,如何绘制样品整体表达箱线图、单个或多个基因表达箱线图。获取示例数据我们从中截取前面4行作为演示例子。利用工具WidetoLong把表达矩阵转换为长表格把数据表粘贴到http://www.ehbio.com/Cloud_Platform/front/#/analysis?page=b%27OA%3D%3D%......
  • 我是不会运行你的代码吗?不,我是不会导入自己的数据!
    常常遇到有人问起看到分享的教程导入数据的方式是data(dune)等直接调用系统的数据,而自己怎么读入自己的数据呢?对于初学者来讲,这确实是个问题。如何准备数据、拿到正确格式的数据并导入后续的代码进行分析,是学习和应用过程中的第一个拦路虎。为什么教程会习惯使用内置数据?简单省事、......
  • 7-8 估值一亿的AI核心代码
    题目描述:以上图片来自新浪微博。本题要求你实现一个稍微更值钱一点的AI英文问答程序,规则是:无论用户说什么,首先把对方说的话在一行中原样打印出来;消除原文中多余空格:把相邻单词间的多个空格换成1个空格,把行首尾的空格全部删掉,把标点符号前面的空格删掉;把原文中所有大......
  • 图的最短路问题(综合详解!!!看这一篇就够了)(spfa-Dijkstra-floyd-模板代码c-)
    文章目录图论:三种最短路及模板模板SPFA算法Floyd算法Dijkstra算法例题与应用反向建边最短路计数1488.最短距离3305.作物杂交4074.铁路与公路图论:三种最短路及模板注意:在这三种算法中我均使用的链式前向星存图,具体方式请看我这篇博客:链式前向星存图详解模板SPFA算法spfa是优化......