• 阅读《构建之法》


    1.原文:IT专业的大学毕业生找工作时声称:我精通Java,会用c++写“Hello World”程序,我懂软件工程,我画了很多图,写了很多文档,最后得了很高的分数......这些同学是真的懂软件工程,是一个合格的软件工程师么?

    我的疑惑:一个合格的软件工程师应当具备哪些素质?
    我的思考:(1)有良好的数学基础,保证基本的逻辑没有问题;
    (2)有程序语言有一定的敏感性,并不一定针对某种特定的语言,一旦有一种比较熟悉的语言,一通百通,其它的语言应该能快速阅读,并在短时间内基本掌握其中的要素,最好能有系统的学习过一门语言,这里的学习和老师上课的那种学习没有太大的关系(上大学如果只是要应付上课和考试不补考,应该算是比较轻松的事),而是要看一些和这门语言相关的一些中大部头的专著,如Java的Java编程思想,C++的C++premier,Javascript的javascipt权威指南等等;
    (3)对程序的整个框架有一定的了解,能独立把整套程序的流程建立起来;
    (4)有比较好的面向对象的思想,其中具体表现在能不间断的抽象出一些类来,以备在不同的项目间能够起到代码复用的作用,这样做项目才会越来越轻松;
    (5)对系统设计要有一定的基础,并且对系统设计时对系统的可扩展要有一定的考虑。

    2、软件工程的目标——创作 ”足够好“的软件:

    书中提到部分人认为 ”好软件“ 就是没有Bug的软件,软件工程就是解决软件中的Bug的过程,但是还需考虑的一点就是客户需求,所以软件工程就是尽可能的去解决Bug且要满足客户需求,所以我产生一个疑问:在软件系统开发中,如何才能最有效的、最迅捷的设计研发出 “好软件” ,满足客户的需求?

    3.软件的设计及实现

    一个开发人员在拿到一份需求文档,它会对其进行一个全面的分析,书写设计文档,估计研发时间,确定开发流程等,所以,就会存在一个问题:如何通过一份需求文档确定设计文档,及进行合理的规划及制定开发流程?

    4.原文:为了使模块的质量能得到稳定的、量化的保证,单元测试就是一个很有效的解决方案。

    我的疑惑:什么是单元测试?单元测试能够解决哪些问题?有没有什么问题是单元测试解决不了的?
    我的解答:通过查阅资料,我了解到:单元测试(unittesting),是在计算机编程中,针对程序模块(软件设计的最小单位)来进行正确性检验的测试工作。程序单元是应用的最小可测试部件。对于单元测试中单元的含义,一般来说,要根据实际情况去判定其具体含义,如C语言中单元指一个函数,Java里单元指一个类,图形化的软件中可以指一个窗口或一个菜单等。总的来说,单元就是人为规定的最小的被测功能模块。单元测试是在软件开发过程中要进行的最低级别的测试活动,软件的独立单元将在与程序的其他部分相隔离的情况下进行测试。

    5.原文:单元测试必须由最熟悉代码的人(程序的作者)来写。

    我的疑惑:单元测试由专人来写的话,是否会由于作者的定式思维而考虑不周,使得不能达到测试的作用?
    我的解答:作为程序的作者,确实是最熟悉,最了解代码的人。可是,就是因为作者自己最了解自己的代码,知道自己代码的目的,特点和优缺点,那么,在做测试的时候,难免就会朝着自己预期的方向去做测试,难免会有考虑不周的地方。即便是由于作者很忙,不能及时的去做单元测试,可以由他人代劳来写单元测试,但是,程序的作者依旧还是这个单元测试的负责人,对于测试,他也依旧还是会以自己的思维作为指导。

  • 相关阅读:
    go语言goroutine
    go语言接口
    go语言的map
    go语言切片
    go语言数组
    django的信号机制
    python redis 实现简单的消息订阅
    scrapy中使用selenium来爬取页面
    尝试用tornado部署django
    控制台输出太多导致项目启动过慢
  • 原文地址:https://www.cnblogs.com/Duya9ian/p/14518489.html
Copyright © 2020-2023  润新知