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 ...
随机推荐
- Beego框架学习--(核心:数据交互)
Beego框架学习记录 1.beego简介 beego 是一个快速开发 Go 应用的 HTTP 框架,他可以用来快速开发 API.Web 及后端服务等各种应用,是一个 RESTful 的框架,主要设计 ...
- Redis分布式锁—SETNX+Lua脚本实现篇
前言 平时的工作中,由于生产环境中的项目是需要部署在多台服务器中的,所以经常会面临解决分布式场景下数据一致性的问题,那么就需要引入分布式锁来解决这一问题. 针对分布式锁的实现,目前比较常用的就如下几种 ...
- 解决:com.netflix.discovery.shared.transport.TransportException: Cannot execute request on any known server
com.netflix.discovery.shared.transport.TransportException: Cannot execute request on any known serve ...
- Python中定义文档字符串__doc__需要注意格式对齐的处理
Python中的文档字符串是个很不错的提升代码交付质量.编写文档方便的特征,但是需要注意在使用文档字符串时,将文档字符串标识的引号对必须遵守缩进的规则,否则Python语法检查时会无法通过,而引号内的 ...
- PyQt(Python+Qt)学习随笔:QListWidget获取指定位置对应项的itemAt方法
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 itemAt方法根据参数给定位置返回列表部件中的项.对应语法如下: QListWidgetItem ...
- 凌乱的与ctf无关的小知识点
(1)在网页中一般不要用记住密码.否则想要知道你的密码很简单. 例子:看样子很安全,别人无法通过这些来获得你的其他密码(尤其是想我这样密码强度不高的人),但是知道要修改前端的选项,你的密码就会被暴露. ...
- 项目测试环境自动化部署[jenkins前后端配置、Nginx配置]
持续部署:关注点在于项目功能部署到服务器后可以正常运行,为下一步测试环节或最终用户正式使用做准备.(问题点:一个环节有问题,其他环节跟着有问题) 持续集成:关注点是在于尽早发现项目整体运行问题,尽早解 ...
- kafka-java消费者与生产者代码示例
引入依赖 <dependency> <groupId>org.apache.kafka</groupId> <artifactId>kafka_2.11 ...
- linux tar 压缩和解压缩
tar -c: 建立压缩档案-x:解压-t:查看内容-r:向压缩归档文件末尾追加文件-u:更新原压缩包中的文件 这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个. 下面 ...
- Redis存储对象(序列化和反序列化)
代码以及实例: package com.hp.test; import redis.clients.jedis.Jedis; import java.io.*; public class Test3 ...
