首页 > 其他分享 >《构建之法》读书笔记(一)

《构建之法》读书笔记(一)

时间:2023-12-12 17:22:19浏览次数:40  
标签:读书笔记 软件工程 构建 软件 源代码 bug 但是

    最近看了《构建之法》这本书,我从书中获取到了许多关于软件工程这一方面的知识。

    软件企业=软件+商业模式。对于软件工程以及行业,程序是基本功,但是在算法和数据结构之上,软件工程决定了软件的质量,商业模式,影响了一个软件企业的成败,同时软件从业人员和软件企业的道德操守会极大的影响用户的操作与体验。也就是说,软件行业基于我们软件工程,大社会下的商业模式,以及人文因素。那么随着社会的发展,为什么软件开发成本没有将下降?通过阅读,我了解到,源于五个特性。

    1.复杂性:我们日常生活的所用的软件等等,源代码都超过了百万行,相当复杂,而且随着技术的发展,复杂性逐渐增大。

    2.不可见性:“软件工程师能直接看见源代码,但是源代码不是软件本身。”一个软件报出错误,可能是代码的错误,也可能是用户的机器,等等错误,但是检查错误的时候,就又要从头看起。

    3.易变性:修改软件不是一件容易的事。

    4.服从性:软件要与硬件结合。

    5.非连续性:触发蝴蝶效应。

     同时,通过阅读,我也认识到什么是好的软件。现在我们处于初学阶段,所以有时会认为没有bug的软件就是好软件,这确实很重要,但是我们的软件还要兼具用户的满意度,可靠性,可维护性,软件流程的质量,软件是要面向社会和人群的,开发者要学会与人打交道,研发符合用户需求的软件。曾经的我认为bug是一块臭肉,因为坏了整锅粥,我必须要剔除它,但是作者却告诉我们,bug其实也是一个功能,软件行业流传着一句话:“这不是缺陷,这是一个功能”,bug对于大部分人来说确实是一个缺陷,但是也许对于某些人就会是一个无中生有的惊喜的一个功能,正如文中所几乎的例子,一个同学买了一个破洞牛仔裤,一些人认为是时尚,有特色,一些人认为他的裤子上有两个洞就让他去退货,这其实是两种不同的看法,不过,bug在你心中是什么样,它就是什么样。

     那么,软件工程是如何成长的呢?通过阅读,我了解到这几点。

     1.首先,积累软件开发相关的知识,提升技术技能,比如掌握Java,C/C++,C#,python,php等语言,对平台的开发等等。

     2.学会积极解决问题,并积累这些问题,在解决中学习,在学习中解决。

     3.具有软件设计思想,如果你能具有设计思维,那么说明你是一个非常具有价值的程序员,遥遥领先于其他程序员。

     4.勤于实践。俗话说,实践是检验整理的唯一标准,特别是软件工程师,只有多操作才能集中经验,去成长。

     但是,软件工程师拥的思维误区我们要清楚认识。书中提到软件工程师的思维误区在于许多方面。例如,分析麻痹:其实就是想要解决一个问题,就要把他相关的内容全部学习了,结果会浪费很多时间,分析太多,想得太多;第二种与第一种相反,属于想一下子把所有问题解决,然后“完美的实现”锁定的目标,但是往往什么都解决不了;过早优化:就是工程师在写完某一个功能后,想让它变得更完善,于是花费大量时间去实现这个功能,也许还没了解全局是什么样(博主就有一点这样的问题);过早扩大化:就是软件写着写着突然有了灵感,感觉到这个程序会相当完美,但是这种想法往往不切实际。解决大问题自然有成就感,但是能把小问题解决好,也是一种本事。因此,我们要有一个全局意识,并以此来进行开发。

      这就是我今天的读书笔记,受益匪浅。

标签:读书笔记,软件工程,构建,软件,源代码,bug,但是
From: https://www.cnblogs.com/liyiyang/p/17897366.html

相关文章

  • 探索AI在CRM中的潜力:智能化客户关系的构建
    AI人工智能在CRM系统中的应用有:赋能内容生产、客户服务支持、赋能品牌推广、自动化业务流程、数据分析、辅助科学决策、给出最佳客户联系时间。合理运用CRM系统中AI人工智能助手可以让团队工作事半功倍。1.内容生产市场营销活动离不开内容生产,持续的产出高质量的内容又给营销团......
  • 《构建之法》之软件工程师
    一、团队对软件工程师的要求能够与其他成员交流,包括大的技术方向和一些看似微小的问题;2.按时交付,一般指代码吧;3.接受不同的任务并高质量完成;4.按照团队的流程工作,应该是为了方便统一协作或者是代码管理;5.理性工作,摒弃掉个人的情感或者喜好,不要激情或者灵感来了才......
  • 构建Linux系统的工具
    构建嵌入式Linux系统的工具一般有Buildroot、Yocto、OpenWRT、桌面发行版Ubuntu或者红帽RedHat。Buildroot,   buildroot就是这样一种工具,buildroot比busybox更上一层楼,buildroot不仅集成了busybox,而且还集成了各种常见的第三方库和软件,需要什么就选择什么。buildroot极大的......
  • 《重构:改善既有代码的设计》读书笔记一
    一、重构原则1、重构定义重构:对软件内部结构的一种调整。目的是在不改变软件可观察行为的前提下,提高其可理解性,降低其修改成本。2、为何重构在开始说为何重构之前,先说一下很多程序员为何不喜欢重构。时间紧,一直忙着实现功能,觉得重构影响效率,而且重构不算绩效,简直吃力不讨好......
  • dioxus rust 构建跨平台应用的框架
    dioxusrust构建跨平台应用的框架包含的特性原生桌面强大的状态管理快速异步以及协程支持热更新支持对于不同端支持不同的模式 比如桌面支持webassembly的dom处理,ssr等说明目前看dioxus对于开发桌面应用也是一个不错的选择,值得试试,rust周边还是很丰富的参考资......
  • 《大道至简》读书笔记 12月
    读书笔记:《大道至简》第三章《大道至简》第三章着重探讨了字句的运用和语言的表达。作者通过简洁而深刻的文字,向我们展示了大道至简的真谛。在这一章中,作者首先指出了字句的重要性。他称字句为语言的精华,是信息传递的最基本单位。他举了一个生动的例子,比较了才华横溢的诗人和......
  • 三维模型的顶层合并构建的模型质量提升方法探讨
    三维模型的顶层合并构建的模型质量提升方法探讨 要提升倾斜摄影超大场景的三维模型的顶层合并构建的模型数据质量,可以从以下几个方面进行优化和改进。本文将对这些方面进行分析。一、高质量原始数据的获取高质量的原始数据是保证最终模型质量的基础。在倾斜摄影过程中,应选择......
  • Linux操作系统 文件查找、打包压缩及解压读书笔记
    当涉及Linux文件查找、打包压缩和解压时,确实有很多详细的内容。以下是更详细的解释和示例:1.文件查找在Linux中,find命令用于在文件系统中搜索文件和目录。下面是一些常见用法:基本用法:在整个文件系统中查找文件或目录:bashCopycodefind/-namefilename在当前目录及......
  • 程序员的思维修炼 读书笔记01
    Dreyfus模型将学习的过程分为五个不同的阶段或水平:1.新手(Novice)需要详细的指导——要手把手地教。新手不知道这些指导是否有效,或者哪些指导更加重要;因为没有上下文知识可供他们使用进行评估。因此,新手需要频繁迅速的成就感和有规律的反馈。一本好的入门指导书籍要提供有足够多的......
  • 深入解析Jenkins流水线:构建、部署和自动化交付
    enkins是一个强大的开源自动化服务器,而Jenkins流水线(JenkinsPipeline)是一种以代码为基础的自动化方式,允许您定义和管理CI/CD过程。在本文中,我们将深入探讨Jenkins流水线的各个方面,包括其基本概念、语法、构建、部署以及实现自动化交付的最佳实践。第1部分:基本概念和语法1.1什么是......