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

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

在全书开始的地方,就有一段话吸引了我的注意,哲学家的宗旨是:我思,故我在。科学家的宗旨是:我发现,故我在,工程师的宗旨是:我构建,故我在。一个工程师一定要时时刻刻把构建的思想贯彻在工作与学习中。接着书中提到衡量一个软件好坏的很大的一个标准就是软件存在的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. 数据库:Flask-SQLAlchemy

    一.安装以及使用 1.安装 安装 flask-sqlalchemy pip install flask-sqlalchemy 如果连接的是 mysql 数据库,需要安装 mysqldb pip ins ...

  2. Visual Studio 2012 Ultimate旗舰版下载地址与序列号

    (为了方便个人使用转的的别的帖子的内容,原文链接http://wenku.baidu.com/link?url=acL08J8bTNQ4S5Sd3n3oLN5KJTtrfe8hHuP8aUrNscKN ...

  3. 使用PyQt开发图形界面Python应用专栏目录

    ☞ ░ 前往老猿Python博文目录 ░ 本专栏为收费专栏的文章目录,对应的免费专栏为<PyQt入门知识目录>,两个专栏都为基于PyQt的Python图形界面开发基础教程,只是收费专栏中的 ...

  4. 使用文件描述符作为Python内置函数open的file实参调用示例

    一.关于文件描述符 open()函数的file参数,除了可以接受字符串路径外,还可以接受文件描述符(file descriptor),文件描述符是个整数,对应程序中已经打开的文件. 文件描述符是操作系 ...

  5. PyQt(Python+Qt)学习随笔:QListWidget插入项的insertItem方法

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 在QListWidget对象中,插入一个项的方法是调用insertItem方法,insertItem ...

  6. Google浏览器PostMan插件版安装步骤

    PostMan插件版安装步骤: 第一步:把下载后的.crx扩展名的离线Chrome插件的文件扩展名改成.zip或者.rar 第二步:右键点击该文件,并使用压缩软件(如winrar.360压缩等)对该压 ...

  7. centos7 yum搭建lamp

    环境 系统:centos7 安装apache #yum 安装apache [root@localhost ~]# yum install httpd httpd-devel #启动httpd服务 [r ...

  8. Raft概述

    Raft 1. 概述 Raft是一种一致性(共识)算法,相比Paxos,Raft更容易理解和实现,它将分布式一致性问题分解成多个子问题,Leader选举(Leader election).日志复制(L ...

  9. 20201205-3 HTML环境搭建与文件基本结构

      HTML环境搭建与文件基本结构   HTML的基础 HTML环境搭建 Pycharm 包含全部环境  编写(代码) →  运行浏览器 → 代码检查 Sublime  只是用来编写 HTML 代码: ...

  10. java web简单的对数据库存数据

    1.建立一个表,分别有Coursename,teachername,Place,Id;这些数据跟sql语句中的相对应 2.在src包目录下创建这些类 3.在WebContent目录下创建jsp,Mai ...