《构建之法:现代软件工程》读后感

比起一般的教学类书籍,这本书更像是一本传记小说,作者邹欣以自己或者说一些典型的软件工程师为例子,详细介绍了一个软件工程师的工作内容,全书给我的感觉就是以一种对话或者说讲故事的方式在告诉读者们,如何学好软件工程专业,以及如何成为一名优秀的软件工程师,如何开发出“足够好的”软件。

在全书开始的地方,就有一段话吸引了我的注意,哲学家的宗旨是:我思,故我在。科学家的宗旨是:我发现,故我在,工程师的宗旨是:我构建,故我在。一个工程师一定要时时刻刻把构建的思想贯彻在工作与学习中。接着书中提到衡量一个软件好坏的很大的一个标准就是软件存在的BUG的多少,BUG的多少可以直接衡量一个软件的开发效率、用户满意度。可靠性和可维护性。接着我读到了代码规范的重要性,代码规范可以分为两个部分,①代码风格规范,②代码设计规范。之后多次读到了分工与合作的重要性,因为软件的开发不是一个人的事情,一定懂得合作要有团队意识。

看了前面的一部分之后,我开始反思自己的学习,大一学了C和C++,暑期刚刚接触的java,可以说java我还停留在“HelloWorld”的阶段,看到后面对软件工程师的概述,我知道我差的太多了,我不承认我脑子笨,但是我承认我有时候的方法是不够灵活或者说是错误的,容易钻牛角尖,我渐渐意识到了合作和讨论的重要性,我要试着去和同学交流思想,当然绝不可能是抄袭代码。书中写了好多好多代码的规范性问题,我发现有好多是上学期老师一直在强调的,但是我并没有放在心上,只是一味的认为只要我程序可以运行,我可以交作业就ok了,但是我意识到这是错误的想法。当程序足够大或者说程序有好几个人共同完成,那么代码的可读性就变的非常关键,代码是一种语言,机器识别的时候只需要0101就可以了,但是人在看的时候是绝对无法完成这种转换的,所以代码的规范性就十分重要了。

后面讲到了代码复审,这个过程就是检查bug,优化算法的过程,我确实也会从头到尾检查代码是否有语法错误,直到我的程序可以正确运行,可以完成题目的要求,从来或者说我很少关注代码的长度和算法是否精简,书中提到,代码复审要反复检查代码的逻辑问题,算法优化问题。

有一个好的团队以及明确的开发流程绝对为你的项目井上添花。众所周知,需求分析绝对是软件工程的一个重要部分,只有更好的了解用户的需求才能做出用户所想要的东西,邹欣老师就给了我们关于获取用户需求的一些小技巧,对于我们来说也是非常的适用。还有关于软件的设计以及实现,其中包括了图形建模方法以及一些形式化的方法。对于一个好的软件产品来说,必不可少的就是用户体验。只有拥有良好的用户体验,它才能算得上是一个好的成功的产品,我们应更多的从用户方面考虑问题并进行情感设计。当然,软件工程还有一个重中之重的就是软件测试,除了一些基本的软件测试方法之外,还说到了一些似是而非的测试观念,让我对软件测试有了更加深刻的认识。

后面几章主要在讲一个软件工程的从业者要怎么做,讲了IT行业的创新,一个软件开发的全部过程,软件需求分析,软件设计和实现,用户体验,软件测试,质量保障,以及最后的稳定和发展阶段。最后一章很有力度,讲到了人、绩效和职业道德,全书的思想得到进一步升华,猪、鸡和鹦鹉的故事,萝卜与白菜的例子。深刻解析了不同的软件工程参与者的状态,刷新了我的认知。通过阅读这本书,我认识到自己懂的太少,而且又很懒,不愿意自己去尝试,不能严格要求自己,这本书告诉了我很多很多,确实是一本软件人必读书!

Java学习日报8.6的更多相关文章

  1. Java学习日报9.22

    /* * 信1905-2班 * 杨传伟 * 2020.9.22 * 20194074 * 账号密码默认 666666 */package atm; import java.util.*;public ...

  2. Java学习日报10.1

    学习内容一 ********************************** 代码 **********************************public class EnumTest ...

  3. Java学习日报7.8

    public class 定义要求文件名和类名保持一致,一个*.Java文件只允许有一个public class定义! 主方法是一切程序的起点, public static void main(Str ...

  4. Java学习日报10.2

    1 package random; 2 import java.util.*; 3 import java.math.*; 4 public class Com { 5 6 public static ...

  5. Java学习日报7.7

    今天进一步学习了eclipse软件,遇到了几次程序运行不成功的问题,检查之后运行成功!明天继续学习程序逻辑控制!

  6. Java学习日报9.30

    ********************************** double类型精度问题 ********************************** 1 package test; 2 ...

  7. Java学习日报 9.29

    package random;import java.util.*;import java.math.*;public class Com { public static void main(Stri ...

  8. Java学习日报8.5

    package student;import java.util.*;public class student { Scanner sc=new Scanner(System.in); private ...

  9. Java学习日报8.2

    package user;import java.util.*; public class User { private String kouling; private String u; priva ...

随机推荐

  1. C#数据结构-二叉树-顺序存储结构

    什么是二叉树:每个树的节点只有两个子树的树形结构. 为什么使用顺序存储结构:使用数组存放满二叉树的各结点非常方便,可以根据一个结点的索引号很容易地推算出它的双亲.孩子.兄弟等结点的编号,从而对这些结点 ...

  2. [BJDCTF 2nd]duangShell 反弹shell

    [BJDCTF 2nd]duangShell   [BJDCTF 2nd]duangShell 点击进去之后提示我们swp源代码泄露,访问http://xxx/.index.php.swp下载该文件 ...

  3. sql bool盲注

    [CISCN2019 总决赛 Day2 Web1]Easyweb 考察: robots.txt image.php?bak文件泄露,image.php.bak可以下载别的不大行 盲注 php日志挂马 ...

  4. 关于我 About Me

    重庆某大学计算机专业大三学渣 CTF酱油选手 web安全菜鸡 SRC低危小子 精通多门语言 hello world 输出 和 windows linux单词拼写 扣扣:MjU4NTYxNDQ2NA== ...

  5. LeetCode初级算法之数组:189 旋转数组

    旋转数组 题目地址:https://leetcode-cn.com/problems/rotate-array/ 给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数. 示例 1: 输 ...

  6. 大白话详解大数据hive知识点,老刘真的很用心(1)

    前言:老刘不敢说写的有多好,但敢保证尽量用大白话把自己复习的知识点详细解释出来,拒绝资料上的生搬硬套,做到有自己的了解! 01 hive知识点(1) 第1点:数据仓库的概念 由于hive它是基于had ...

  7. 使用JMeter进行负载测试快速入门

    相信JMeter是很多测试人员必备技能之一,今天简单讲一下开发人员如何使用JMeter进行简单的压力测试快速入门. 安装JMeter Jmter官方地址 按提示下载JMeter,然后直接解压就可以用了 ...

  8. AcWing 337. 扑克牌

    大型补档计划 题目链接 把状态实质相同的划分为一类... 发现花色.具体牌值的多少均不影响方案,考虑等效转化题目. 设 \(f[A][B][C][D][k]\) A 个 1 张相同,B 个 2 张相同 ...

  9. Codeforces Edu Round 65 A-E

    A. Telephone Number 跟之前有一道必胜策略是一样的,\(n - 10\)位之前的数存在\(8\)即可. #include <iostream> #include < ...

  10. mysql扩展百分位函数(类似SUM)

    mysql扩展百分位函数(类似SUM) 参考:https://my.oschina.net/waterbear/blog/1186744 百度搜索:mysql percentile