当前位置: 首页 > news >正文

读书笔记二

第二章《个人技术和流程》,本章的实质是在说明,一个合格的软件工程师是怎样的,他应该具备哪些技能。

  总结下来,一个合格的工程师在开发时需要同时考虑质量和效率,与之同时需要具备的技能包括:单元测试、效能分析、个人研发流程(PSP);

关于单元测试的正确做法:

1. 单元测试应该在最低的功能/参数上验证程序的正确性

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

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

4. 单元测试要快(一个测试用例的运行时间是几秒钟)

5. 独立性—测试的运行/通过/失败不依赖于别的测试

6. 覆盖所有代码路径

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

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

 

关于性能分析:

  性能分析往往是开发人员容易忽视的步骤,这也是为什么我们一年一年的不停做性能优化的原因,大部分人对嵌入式的实时性和性能要求没有概念。 Visual Studio实际上提供了性能分析工具(Tools\PerformanceTools\Performance Wizard),其中有两种分析方法:Sampling和Instrumentation,即抽样和代码注入,抽样的原理比较简单,kprofile也类似,就是用比较短的周期去采用PC指针,看看是在哪个函数在执行,并把当前周期的时长累计为该函数的执行时长;  代码注入,相当于打点,是将检测的代码加入到每个函数中。

一般进行性能分析的做法是,先用抽样的方法找到函数热点,然后对特定的模块用代码注入进行详细分析。

这个方法,后面在我们的性能优化工作中可以多尝试下,让业务和支撑领域相关人员看看效果。

 

关于个人开发流程:

  我们熟知CMM和CMMI,软件行业的国际通用标准,这两种能力成熟度模型,他们是用来衡量一个团队能力的模型,由卡内基梅隆大学(CMU)制定推出。其实CMU的专家针对软件工程师也有一套模型,叫Personal Software Process(PSP),即个人开发流程的标准

转载于:https://www.cnblogs.com/ghs1065248758/p/6392990.html

相关文章:

  • 关于MT7621配置引脚为GPIO模式的设置
  • 一键换肤的简单实现
  • 使用Percona Toolkit解决Mysql主从不同步问题【备忘】
  • java设计模式-懒汉设计模式
  • 配置服务器来调整性能(一)——概论
  • 深入理解ByteBuffer(转)
  • 质量管理体系歌--产品实现
  • Winfrom 使用TabControl控件模拟程序向导步骤
  • 开放才能进步!Angular和Wijmo一起走过的日子
  • T-SQL使用案例——结果数据前面自动补0
  • 康托展开
  • CC254x/CC2540/CC2541库函数速查(转)
  • Netscaler的超高端口复用助力应对公网地址紧张
  • HTML页面跳转的5种方法
  • ​ssh-keyscan命令--Linux命令应用大词典729个命令解读
  • SegmentFault for Android 3.0 发布
  • 【EOS】Cleos基础
  • CSS 三角实现
  • HTML中设置input等文本框为不可操作
  • Java到底能干嘛?
  • Java应用性能调优
  • Redux系列x:源码分析
  • SegmentFault 社区上线小程序开发频道,助力小程序开发者生态
  • SOFAMosn配置模型
  • Yeoman_Bower_Grunt
  • 工作手记之html2canvas使用概述
  • 基于组件的设计工作流与界面抽象
  • 三栏布局总结
  • 线性表及其算法(java实现)
  • gunicorn工作原理
  • 好程序员大数据教程Hadoop全分布安装(非HA)
  • ​configparser --- 配置文件解析器​
  • ​香农与信息论三大定律
  • # 飞书APP集成平台-数字化落地
  • #鸿蒙生态创新中心#揭幕仪式在深圳湾科技生态园举行
  • (四)库存超卖案例实战——优化redis分布式锁
  • (转)四层和七层负载均衡的区别
  • ***linux下安装xampp,XAMPP目录结构(阿里云安装xampp)
  • .gitattributes 文件
  • .NET Core 控制台程序读 appsettings.json 、注依赖、配日志、设 IOptions
  • .NET 将混合了多个不同平台(Windows Mac Linux)的文件 目录的路径格式化成同一个平台下的路径
  • .NET上SQLite的连接
  • .net用HTML开发怎么调试,如何使用ASP.NET MVC在调试中查看控制器生成的html?
  • ::什么意思
  • [1181]linux两台服务器之间传输文件和文件夹
  • [⑧ADRV902x]: Digital Pre-Distortion (DPD)学习笔记
  • [ai笔记9] openAI Sora技术文档引用文献汇总
  • [Android 13]Input系列--获取触摸窗口
  • [C# WPF] 如何给控件添加边框(Border)?
  • [C#]C# OpenVINO部署yolov8图像分类模型
  • [C++基础]-入门知识
  • [CF703D]Mishka and Interesting sum/[BZOJ5476]位运算
  • [ComfyUI进阶教程] animatediff视频提示词书写要点
  • [Head First设计模式]策略模式
  • [HTML]Web前端开发技术6(HTML5、CSS3、JavaScript )DIV与SPAN,盒模型,Overflow——喵喵画网页