构建之法初次阅读之1,2,16章

 

前言:

   “软件工程”,“单元测试”,“创新”……一个个仿佛都是熟悉的不能再熟悉的词汇了,但我初次阅读《构建之法》这本书的时候,感觉作者又以另一种特别的方式,特别的角度把他们诠释了一遍。才知道平时如同空气一样围绕在我们身边的东西竟然还有这么多的学问。这就是我阅读这本书的感觉,这些定义渐渐模糊,又渐渐生动清晰起来,感谢老师们给我们这次仔细阅读的机会,以下就是我本次阅读的感想。也希望大家对我的这篇博文不吝赐教。

 

 

 

第一章:概论

    1.1 软件 = 程序 + 软件工程
中提及
     我成了一名职业程序员, 但是我发现所有的算法别人都已经实现了, 我只要调用就可以。 似乎我们公司的软件与数据结构、 算法的关系都不大。 那我当初辛辛苦苦学习的数据结构和算法有用么? 如何区分一个好的程序员和不好的程序员呢?
 
问题:
     我也存在着这样的疑问。算法在大一的时候接触到,数据结构在大二上。一直觉得数据结构比较抽象,因为是数据层面的,主要介绍了很多数据排序,存放的方式。其实在各种语言如 java,C 等都有写好的类库,java使用容器创建对象一调用就可以了,就好像编程时也很少直接用到数据结构的知识,只不过一直没有把这个问题表述出来,直到今天在书中看到了,就copy下来和大家分享交流一下。
     在百度上查了资料,其中比较主流的几种答案如下:

1.

2.

3.

我的理解:

     数据结构和算法属于程序工程师必备技能的一种,也是很多面试必考的知识。虽然有时候并不常用,但并不是不重要,这可以类比成我们读过的书,虽然早已经忘记了书中的情节,但书里的想法却在心里撒了种子,在以后的生活中根据我们的所遇所见决定发芽的时间。数据结构和算法是很基础的知识,但是灵活有弹性,可以为我们编程提供很多解决问题的方法。或许有时候我们编程时有些问题解决不了了,联想到这些计算机基础知识或许还会有新的思路。

     作为一个大学生,其实提出一个这样的问题确实有点惭愧了,只能说自己对于软件工程学科的理解还不够深入,没有学习之前做好准备、了解到学科用途的意识,今后还需要在以后的生活中继续加强了解,以上是我对第一章这个部分提出的问题,欢迎大家一起讨论指正。

 

 

 

 

第二章:个人技术和流程

单元测试与效能分析工具
文中提到:
    1.由于他们没有在一开始就写单元测试,所以后来有很多的问题要处理。
    2.在写技术模块的规则说明书的时候,要写的越详细越好。
    3.一般的做法是,先用抽样的方法找到效能瓶颈所在,然后对特定的模块用代码注入的方法进行详细分析。
    4.如果我们不经分析就盲目优化,也许会事半功倍。
 问题:
     案例中阿超等人在效能分析之前预计耗时最多的是什么函数时,大家众说纷纭,于是在确保程序版本之后,准备使用抽样分析找到瓶颈所在,然后对特定的模块进行代码注入,文中代码注入使用在了耗时最多的那三个函数中,这个时候改进代码,大幅增加了程序的效能。之后再循环往复进行“效能测试,分析,改进,再效能测试”。为什么要这样做?
 
 想法:
     初次阅读的时候认为效能测试十分简单,主要就抽样分析和代码注入两种方式,再进行阅读的时候,我想了一下如果我去进行效能分析,我会按照什么样的步骤做呢?一定不会有这么清晰的思路!
     细细想来,或许这是最高效的一种优化方式了,假若在众说纷纭的时候大家盲目的直接动手去修改自己认为低效的代码,只是徒劳无获。如果不事先进行效能分析方式的了解,不科学的进行抽样分析和代码注入,又会大大浪费时间了。而使用专门的技术测试方式就是一种捷径,同时又由于抽样分析和代码注入特性不同,导致了先用抽样的方法找到效能瓶颈所在,然后对特定的模块用代码注入的方法进行详细分析。这一趟下来可能节省了几倍的时间。这不得不引起我们对测试方式的重视,不论是单元测试,回归测试,还是效能分析,虽然看似简单,实则蕴含着很深的学问,为什么要在一开始就写单元测试?为什么好的单元测试标准如此严苛?为什么要由最熟悉代码的人来写单元测试?
     但是对于具体测试的步骤不是很理解,还是存有困惑,也希望老师课上指点。
 
 

 

 

 

 

 

第十六章 :IT行业的创新

   
     16.1.3对于创新似是而非的论断三:好的想法一定会赢
     创新不是随便的创造出一些不合实际的东西。而是根据用户实际需求创造出更好的体验的软件给用户。因此前提是熟悉行业需求和发展方向,并且有敏锐的触觉,知道用户需求。以便更好的创造。文中提及了QWERTY键盘和Dvorak键盘,虽然在这个时代Dvorak会更加有效率,但QWERTY键盘先入为主,更加符合用户的打字习惯。
 
 
问题
     Dvorak键盘会一直不被大家接受会不会只是没有遇到机会?
我的想法:
     类比16.1.5中walkman随身听的案例,不论从使用上还是命名上,Walkman都不被看好,但事实上却取得了巨大的成功。还有之前《读者》的开创者在书中不配图,排版老旧,也不被看好但至今《读者》销量经久不衰。这样的例子还有很多……
     我查了资料,认为“赢”有很多种方式,好的想法一定会有其利用价值,可以仅仅是在网上发布获取点击量,或者制造限量版Dvorak键盘。因为实际上这种键盘很特别,或许很长时间之后,大家会接受这个新点子,Dvorak键盘会投入生产。但是对于迷思三我还是似懂非懂,以我一己之见,可能不能体会文中深远的含义。还请指正。

                  

 

posted @ 2018-03-16 22:18  山川湖海*  阅读(187)  评论(2编辑  收藏  举报