Java学习日报8.6
《构建之法:现代软件工程》读后感
比起一般的教学类书籍,这本书更像是一本传记小说,作者邹欣以自己或者说一些典型的软件工程师为例子,详细介绍了一个软件工程师的工作内容,全书给我的感觉就是以一种对话或者说讲故事的方式在告诉读者们,如何学好软件工程专业,以及如何成为一名优秀的软件工程师,如何开发出“足够好的”软件。
在全书开始的地方,就有一段话吸引了我的注意,哲学家的宗旨是:我思,故我在。科学家的宗旨是:我发现,故我在,工程师的宗旨是:我构建,故我在。一个工程师一定要时时刻刻把构建的思想贯彻在工作与学习中。接着书中提到衡量一个软件好坏的很大的一个标准就是软件存在的BUG的多少,BUG的多少可以直接衡量一个软件的开发效率、用户满意度。可靠性和可维护性。接着我读到了代码规范的重要性,代码规范可以分为两个部分,①代码风格规范,②代码设计规范。之后多次读到了分工与合作的重要性,因为软件的开发不是一个人的事情,一定懂得合作要有团队意识。
看了前面的一部分之后,我开始反思自己的学习,大一学了C和C++,暑期刚刚接触的java,可以说java我还停留在“HelloWorld”的阶段,看到后面对软件工程师的概述,我知道我差的太多了,我不承认我脑子笨,但是我承认我有时候的方法是不够灵活或者说是错误的,容易钻牛角尖,我渐渐意识到了合作和讨论的重要性,我要试着去和同学交流思想,当然绝不可能是抄袭代码。书中写了好多好多代码的规范性问题,我发现有好多是上学期老师一直在强调的,但是我并没有放在心上,只是一味的认为只要我程序可以运行,我可以交作业就ok了,但是我意识到这是错误的想法。当程序足够大或者说程序有好几个人共同完成,那么代码的可读性就变的非常关键,代码是一种语言,机器识别的时候只需要0101就可以了,但是人在看的时候是绝对无法完成这种转换的,所以代码的规范性就十分重要了。
后面讲到了代码复审,这个过程就是检查bug,优化算法的过程,我确实也会从头到尾检查代码是否有语法错误,直到我的程序可以正确运行,可以完成题目的要求,从来或者说我很少关注代码的长度和算法是否精简,书中提到,代码复审要反复检查代码的逻辑问题,算法优化问题。
有一个好的团队以及明确的开发流程绝对为你的项目井上添花。众所周知,需求分析绝对是软件工程的一个重要部分,只有更好的了解用户的需求才能做出用户所想要的东西,邹欣老师就给了我们关于获取用户需求的一些小技巧,对于我们来说也是非常的适用。还有关于软件的设计以及实现,其中包括了图形建模方法以及一些形式化的方法。对于一个好的软件产品来说,必不可少的就是用户体验。只有拥有良好的用户体验,它才能算得上是一个好的成功的产品,我们应更多的从用户方面考虑问题并进行情感设计。当然,软件工程还有一个重中之重的就是软件测试,除了一些基本的软件测试方法之外,还说到了一些似是而非的测试观念,让我对软件测试有了更加深刻的认识。
后面几章主要在讲一个软件工程的从业者要怎么做,讲了IT行业的创新,一个软件开发的全部过程,软件需求分析,软件设计和实现,用户体验,软件测试,质量保障,以及最后的稳定和发展阶段。最后一章很有力度,讲到了人、绩效和职业道德,全书的思想得到进一步升华,猪、鸡和鹦鹉的故事,萝卜与白菜的例子。深刻解析了不同的软件工程参与者的状态,刷新了我的认知。通过阅读这本书,我认识到自己懂的太少,而且又很懒,不愿意自己去尝试,不能严格要求自己,这本书告诉了我很多很多,确实是一本软件人必读书!

Java学习日报8.6的更多相关文章
- Java学习日报9.22
/* * 信1905-2班 * 杨传伟 * 2020.9.22 * 20194074 * 账号密码默认 666666 */package atm; import java.util.*;public ...
- Java学习日报10.1
学习内容一 ********************************** 代码 **********************************public class EnumTest ...
- Java学习日报7.8
public class 定义要求文件名和类名保持一致,一个*.Java文件只允许有一个public class定义! 主方法是一切程序的起点, public static void main(Str ...
- Java学习日报10.2
1 package random; 2 import java.util.*; 3 import java.math.*; 4 public class Com { 5 6 public static ...
- Java学习日报7.7
今天进一步学习了eclipse软件,遇到了几次程序运行不成功的问题,检查之后运行成功!明天继续学习程序逻辑控制!
- Java学习日报9.30
********************************** double类型精度问题 ********************************** 1 package test; 2 ...
- Java学习日报 9.29
package random;import java.util.*;import java.math.*;public class Com { public static void main(Stri ...
- Java学习日报8.5
package student;import java.util.*;public class student { Scanner sc=new Scanner(System.in); private ...
- Java学习日报8.2
package user;import java.util.*; public class User { private String kouling; private String u; priva ...
随机推荐
- CentOS 安装ElasticSearch-head插件
1 下载ElasticSearch-head安装包 1.1 Git下载ElasticSearch-head #安装git,若机器环境已存在,不需要再次安装 yum install git #下载 gi ...
- 因为一个Docker问题,我顺手整理从安装到常用命令操作手册
今天,自己写了一部分业务代码,是常规代码的另外一种方式,不能在公司的服务器上测试,就自己在PC端搭建了一套和公司集群一样的模板,因为公司的业务模块的测试有单独的服务器(这一块还是我很稀罕的),但是,第 ...
- 你想不到的win10快捷键
1.虚拟桌面 1.1 创建 ctrl + win + d 1.2 切换 ctrl + win + 左/右箭头 1.3 关闭 ctrl + win + f4 2. 应用窗口 2.1 打开的全部最小化 w ...
- Python函数的关键字参数
除了位置参数的函数参数使用方式,还有一种在函数调用时指定形参等于指定实参的参数使用模式,该模式称为关键字参数.关键字参数使用可以不按形参的顺序传递实参,系统按形参的名字确认实参传递给哪个参数. 具体内 ...
- PyQt(Python+Qt)学习随笔:QTableWidgetItem项文本和项对齐的setText、setTextAlignment方法
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 QTableWidget部件中的QTableWidgetItem项的文本可以通过text()和set ...
- PyQt(Python+Qt)学习随笔:QTreeWidgetItem项中列的复选状态访问方法
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 树型部件QTreeWidget中的QTreeWidgetItem项,项中每列数据都可以单独设置复选状 ...
- JAVA_数据类型介绍与基本数据类型之间的运算规则
基本数据类型 整型: byte.short.int.long java 的整型常量默认为int型,在java程序中变量通常声明为int型,除非不足以表示较大的数才用long,而在声明long型常量必须 ...
- 题解 洛谷P6853 station
蒟蒻语 还是蒟蒻太菜了,这场 div1 竟然一题都没做出来/kk/kk/kk 蒟蒻解 首先我们把每 5 个点分为一组.然后分组结果大概是这样子: 可以看到首先下面需要有一条边来让整张图有一条支撑的路径 ...
- 落谷 P1412 经营与开发
题目链接 Solution 用传统的思想考虑正推,发现后面的答案依赖于当前的 \(p\),你不但要记录前 \(i\) 个还要记录 \(p\),显然空间爆炸. 类似 AcWing 300. 任务安排1, ...
- KM 算法
KM 算法 可能需要先去学学匈牙利算法等二分图相关知识. 模板题-洛谷P6577 [模板]二分图最大权完美匹配 给 \(n\) 和 \(m\) 与边 \(u_i,v_i,w_i(1\le i\le m ...
