2024-12-13《构建之法阅读笔记》

news/2025/1/1 8:12:11/文章来源:https://www.cnblogs.com/dmx-03/p/18638852

构建之法阅读笔记(1)

 

第一章 概论

在这一章中,作者为我们介绍了一些关于软件工程的基本知识。

①软件=程序+软件工程:正是因为对软件开发活动(构建管理、源代码管理、软件设计、软件测试、项目管理)相关的内容的完成,才能完成把整个程序转化成为一个可用的软件的过程。

扩展的推论:软件企业=软件+商业模式

②软件开发的不同阶段:玩具阶段→业余爱好阶段→探索阶段→成熟的产业阶段

③软件所具有的特殊性:复杂性、不可见性、易变性、服从性、非连续性(由软件的本质所决定的)

软件还有其他特性:

·有许多不同的程序设计语言、软件工具和软件开发平台

·存在许多不同的软件开发流程

·软件团队中存在许多不同的角色

·软件通常既可以存储在磁带上,也可以存储在CD/DVD上

④作者邹欣总结的自己做过的项目的各自特点:

• Build To Learn:开发软件,构建系统的目的是做进一步的试验,试图发现客观规律或某个试验方法的优点与缺点。这些项目经常是科研论文的基础工作。

• Build To Show:为了突出地展现某个技术的作用,开发一些演示为目的的软件,这些项目很吸引眼球,经常获得新闻报道,但是功能未必全面。

• Build To Serve:为了服务一定范围的目标用户而构建的工具等,有时以公开的SDK形式发布。

• Build To Win:以在市场上赢得用户为目标而构建的软件。这也是种种科学发现,技术突破最好的试金石。这是我在研究院之外的十余年中做的最多的项目类型,也是这本书的英文名字。

第二章 个人技术和流程

2.1 单元测试

①重要的单元测试:有效解决程序员对模块功能的误解、疏忽或不了解模块的变化之类的问题,使自己负责的模块功能定义尽量明确,模块的质量得到稳定的、量化的保证。

②好的单元测试的标准:

在最基本的功能/参数上验证程序的正确性

单元测试必须由最熟悉代码的人(程序的作者来写)

单元测试过后,机器的状态保持不变

单元测试要快(一个测试的运行时间是几秒钟,而不是几分钟)

单元测试应该产生可重复、一致的结果

独立性——单元测试的运行/通过/失败不依赖于别的测试,可以人为构造数据,以保持单元测试的独立性

单元测试应该覆盖所有代码路径

单元测试应该集成到自动测试的框架中

单元测试必须和产品代码一起保存和维护

③单元测试的基础上能够建立关于这一模块的回归测试,目的是:

(1)验证新的代码的确改正了缺陷

(2)同时验证新的代码有没有破坏模块的现有功能,有没有Regression

2.2 效能分析工具

效能分析方法:抽样和代码注入

2.3 个人开发流程

个人开发流程PSP(Personal Software Process)

特点:(1)不局限于某一种软件技术,而是着眼于软件开发的流程,这样,开发不同应用的软件工程师可以互相比较。

(2)不依赖于考试,而主要靠工程师自己收集数据,然后分析、提高。

(3)在小型、初创的团队中,很难找到高质量的项目需求,这意味着给程序员的输入质量不高。在这种情况下,程序员的输出(程序/软件)往往质量也不高,然而这并不能全部由程序员负责。

(4)PSP依赖于数据(工程师输入数据的时间代价、数据可能遗失或者不准确的风险、可能会出现一些数据不利于工程师本人的情况)

(5)PSP目的是记录工程师如何实现需求的效率,而不是记录顾客对产品的满意度,工程师有可能很高效地开发出一个顾客不喜欢的软件。

第三章 软件工程师的成长

3.1 个人能力的衡量与发展

①软件工程包括了开发、运用、维护软件的过程中的很多技术、做法、习惯和思想。软件工程把这些相关的技术和过程统一到一个体系中,叫“软件开发流程”,软件开发流程的目的是为了提高软件开发、运营和维护的效率,以及提升用户满意度、软件的可靠性和可维护性。

②初级软件工程师的成长包括以下几种:

(1)积累软件开发相关的知识,提升技术技能(如对具体技术的掌握,动手能力)。例如:对JAVA、C/C++、C#的掌握,诊断/提高效能的技术,对设备驱动程序、内核调试器的掌握,对于某一开发平台的掌握

(2)积累问题领域的知识和经验(例如对医疗或金融行业的了解)

(3)对通用的软件设计思想和软件工程思想的理解

(4)提升职业技能(区别于技术技能),包括:自我管理的能力、表达交流的能力、与人合作的能力、按质按量完成任务的执行力

(5)实际成果——最重要的评价标准

3.2 软件工程师的职业发展

自我评估,自我评价清单:

软件工程师能力自我评价表

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/860865.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PYTHON语言学习笔记(基础语法篇)

Python学习笔记 序言 主要是以小甲鱼的视频为主,https://space.bilibili.com/314076440 一些特性 多次调用方法是从左到右.而参数是函数则先执行参数. 一行如果要多个赋值,用;隔开 input().split() IO 看我放在另一个地方的文档.<D:\Document\md\PYTHON\IO.md> 数据类型 …

2024-11-28《关于mybatis创建的mapper映射路径不对导致的系列报错》

关于mybatis创建的mapper映射路径不对导致的系列报错今天在写mybatis项目的时候,使用注解发现无法使用别名,添加ResultMap的时候直接报错显示无法解析。 经过百度了好久也是成功的发现了问题的所在,就是这个:这个路径创建的时候我以为创建的是分级目录,实际上创建成为了co…

2024-11-29《axios获取不到response返回的响应的解决方法》

axios获取不到response返回的响应的解决方法今天在用mybatis+vue+axios写登录界面的时候,发现用户名还有密码的数据都能够传输到servlet里,但是当servlet对html界面进行相应的时候,axios却收不到消息,经过长时间的排查后也没有发现问题,终于在今晚的百度下发现了结果,上原…

如何解决宝塔面板无法登录的问题?

您好,当您遇到宝塔面板无法登录的问题时,可以按照以下步骤进行排查和解决:确认初始密码:如果您从未修改过宝塔面板的登录密码,默认情况下,宝塔面板的初始密码与服务器的初始密码相同。您可以尝试使用服务器的初始密码进行登录。如果您不确定服务器的初始密码,可以在云服…

如何解决网站默认80端口无法访问的问题?

您好,当您遇到网站默认80端口无法访问的问题时,可以按照以下步骤进行排查和解决:确认域名解析:首先,检查域名是否正确解析到服务器的IP地址。您可以通过在线DNS查询工具(如(网址))来验证域名解析是否正确。如果解析有问题,请联系域名注册商进行修正。检查服务器状态:登…

请问如何解决宝塔面板无法登录的问题?

您好,当您遇到宝塔面板无法登录的问题时,可以按照以下步骤进行排查和解决,确保能够顺利访问并管理您的服务器:确认初始密码:如果您从未修改过宝塔面板的登录密码,默认情况下,宝塔面板的初始密码与服务器的初始密码相同。您可以尝试使用服务器的初始密码进行登录。如果您…

网站频繁出现500错误 - 云服务器性能问题

关于您提到的网站经常报500错误并且服务器卡死的问题,这是一个比较复杂的情况,涉及到多个方面。为了帮助您彻底解决这个问题,我们需要从以下几个角度进行分析和排查: 一、服务器资源监控 首先,当网站出现500错误时,服务器资源(CPU、内存、磁盘I/O等)是否处于高位占用状…

网站后台打开出错 - 虚拟主机/数据库问题

一、检查PHP版本兼容性 首先,您提到有时登录时会遇到错误提示,而有时又能正常访问。这种情况可能与PHP版本有关。不同的PHP版本对某些函数或库的支持程度不同,如果您的网站程序依赖于特定版本的PHP特性,当切换到不兼容的版本时,可能会导致功能异常。 建议您尝试切换PHP版本…

2024-11-11《VsCode运行时输出日志》

VsCode运行C#时终端输出日志最近在使用vscode运行C#项目的时候,终端总会先输出一些无关的日志信息才会输出运行结果,搜索解决后发现是终端输出了日志信息,首先咱们看一下他输出的信息。这是我的代码: using System; using System.Collections.Generic; using System.Lin…

2024-10-31《c#学习》

今天进行了C#的初步学习,主要了解了C#的相关知识:目录基础语法 数据类型值类型 引用类型 动态(Dynamic)类型 字符串类型 指针类型类型转换 变量 常量 运算符 判断 循环 封装 基础语法首先是在C#里的基础语法,大致与C++还有Java类似,可以说是二者的结合体,基本的Hello Worl…

搬家后无法进入后台怎么办

问题描述: 网站搬家后,无法进入后台管理界面,可能是由于密码问题或配置错误引起的。请帮助恢复。 解决方案: 您好,网站搬家后无法进入后台管理界面确实是一个常见的问题。为了帮助您顺利恢复后台访问,建议您按照以下步骤逐一排查:确认密码正确:首先,确保您使用的后台登…

数据库密码无法更改怎么办

问题描述: 虚拟主机环境下,尝试更改数据库密码时遇到问题,无法成功更改。请帮助解决。 解决方案: 您好,数据库密码无法更改可能是由于权限不足、配置文件错误或数据库连接问题引起的。为了帮助您顺利更改密码,建议您按照以下步骤逐一排查:确认权限:确保您有足够的权限执…