//一版的《移山》

//10061162 刘俊伟

零零碎碎地花了不少时间看《移山之道》,现在也到了该也总结的时候了。

由于看本书的时候正在进行pair work,因此也并不是按顺序阅读,而是直接从第11章——两人合作开始的。

一.Pair work的得与失

合作编程在以前的学习过程中也进行过,基本也就是各人负责一部分最后再将之拼凑起来,而这次作业要求的双人合作,要求的并不是这样,而是两人应该在一起进行工作,这样的要求理想情况下能在代码编写时提供更高的设计质量和代码质量,也能让结对人员之间做到相互学习,经验共享,促进交流,但是在实际情况中,因为结对对象并不是自选,我们之间的共同的空闲时间(因为课程,生活习惯等)不能得到保障,而在另一方面,合作对象之间的相互熟悉也花去了不少的相同的空闲时间,整体效率上也并不见得比分开工作效率高。

而在我理解起来,pair work要想要高效率的运作起来,结对对象的选择是一个很重要的部分,相比与还需要相互熟悉的之前较少交流的同学,或许室友什么的沟通起来更为方便,空闲时间也更为统一,而至于老师在课上所说的“pair work中两人相互督促”,不是在一个寝室的同学的督促无论是次数还是效果肯定是比不上同寝室的室友的。

疑问:pairwork中工作分量不平衡难道不会影响工作配合么,虽说我们pairwork只合作一次,但是在实际中未必不会出问题么?

二.代码规范的思考

这其实是我们目前编程中最需要学习的。在以往的学习过程中对程序的规范性要求并不高,更注重的是输出的结果,实现的功能,因此某些变量,方法的定义就很难摆脱常用的a,b,c,d,t1,t2,t3。这样的程序不仅他人阅读困难,就算是自己也难免在一段时间之后读不懂自己写的程序。

空行,缩进,下划线,大小写以及注释的问题,之前编程中或许注意过,但也并没有得到过比较系统化的规定,尤其是注释,一般都是想起来就写上两句,没注意就算了。在学习完代码规范这章后,虽然对自己编程能力上提升不大,但是对自己在编程规范上了解的空白有了一定的弥补,受益匪浅。

三.效能分析

其实这也应该是在编程过程中自己摸索出来的经验,但同样是由于之前并没注重这方面,因此在代码效率上个人做得并不好。

就如同书上所举的例子,for(int i=0;i<m_wordlist.count;i+),其中m_wordlist.count调用次数相当高,但如果改成int count= m_wordlist.count;for(int i=0;i<count;i+)的话,效率将提升不少,而就这点,反观自己第一次wordcount作业中,如:

for (int i = 0; i < dat.Length; i++)

for (int i = 0; i < saveload.begin_a.Length; i++)

for (int m = 0; m < saveload.name.Count - 1; m++)

等等情况出现的次数绝对不少,这种类似躺枪的感觉着实让人惭愧。但另一方面来说,这些约定俗成或者说是惯例的东西也并没有在初学时期就说过,在不良好的编程习惯养成后被指责编程风格不对,代码效率低,代码不规范,这对我们来说也是相当的无奈。

疑问:这应该是二,三一起的疑问,代码规范与提高效率的技巧应该在初学的时候就提出,而且应该是系统话规范化的提出,而现在只是在编程过程中让我们自己摸索?

四.测试与用户测试

书上也并为给出特殊的测试方法,不过其中一点——单元测试需要也必须由程序开发人员来进行。一方面是有些问题在部分代码完成时测试很容易发现,但是在整个工程完成之后却难以寻找,会极大的降低测试人员的工作效率与工作热情;另一方面则是态度上的问题——并不是说代码写好了,编译不出错就算工作完成了,自己的模块要能正确运行才算是完工。比起让他人来研究开发人员的代码,要适应不同的编程风格,弄清楚代码的意思所需要的时间暂且不谈,这也难免让开发人员产生“反正有人来测试”的不负责任的心理。

而用户测试则要求更高,各种神奇/奇葩的情况下都需要考虑到,而且最重要的一点是这些还未必会在用户需求中出现,“如果用户这样这样,会出现什么情况”,如果“用户输入那个,又会怎样”,这固然是要求开发人员在写代码的时候就将情况考虑周全,但另一方面来说人本身就难免出现纰漏,因此就有了后续测试的必要。而后续测试中要如何做到周全?就算是做到100%代码覆盖,也不能保证100%的正确性,所以才会有各种补丁的不断出现,所以才会有各种版本的更新…

总而言之,写代码和做其他事也没有什么区别,负责和担当总是需要的。

疑问:感觉如何接收用户的反馈才是问题所在,很多情况下用户只会说有问题,假设在开发过程中并没发现问题,但实际上存在问题,那么如何加上报错机制方便接受用户反馈?

五.团队开发的若干

规则是死的,人是活的。当然MSF的那一套流程确实是成功经验的总结,但是在实际中能做到什么程度又是另一个未知数了。

在按标准流程走不下去的情况下,我们需要考虑哪些呢?团队项目的最困难的地方就是按时完成任务与队员间的沟通,其实那一套流程为的也就是保障这两点,也还好teamwork中各成员也都比较熟悉,估计相互督促沟通也不会太过于困难。

疑问:这只是针对我们学生的team而言,我们并不是专业开发团队,我们是否可只借鉴MSF中若干部分/按我们自己觉得方便的方式来开展我们的活动?

六.   其他

这只是书中一个小故事,“劫匪与绞刑架”——如果没有绞刑架,劫匪就不用有所顾忌了,但另一方面,劫匪的数量也必然增多,导致劫匪也越来越不好混。当然可以把这个故事理解为对目前我国计算机行业的一个幽默的诠释,现在就算是三本大学照样有个计算机专业,这样的泛滥导致所谓“计算机专业”学生也愈加普遍,那我们与那些泛滥普遍的“同行们”的区别就在于我们在大学期间所受到的教育与我们所能学到的东西。

“码农” 这个词的出现无疑是代表低水平的程序员越来越“不好混”了,因此我们的出路也就是尽量提高自己的技术水平,跨过那道划分优劣的门槛,因此就算是在teamwork中,提升个人的技术水平也是对整个teamwork进展的一大助力。当然在VSTS开发中,如果人人都能独当一面或者说干脆每个人都能独立完成这个项目,那各种团队开发的条条框框自然没任何价值,但是在实际情况中MSF所指出详细流程与具体方法确实值得我们学习参考。

疑问:那么是否可以考虑在团队工作结束后把团队成员在工作中得到的提高也算入个人成绩组成的一部分。

七. 敏捷开发有感

这个是晚上在博客园首页看到的某篇谈论开发过程中敏捷开发模式后,又想到之前看到教材BLOG里所想到的。其价值观——沟通、简单、反馈、勇气,谦逊听起来感觉着实空洞,简单说起来还是上文中说过的两点,责任与沟通,如此文中所示,其实敏捷开发与我们本身习惯的流程差别不大,其更重要的应该是将开发中所需要的原则明确的提出来了,而不是早上一次例会,晚上一次总结的形式。

因此就我们自身来说,本身作为学生团队,一日一总结表示很容易出现“抱歉,今天我什么都没做”,“今天我在写XXX课的作业”的情况,希望老师能体谅。

转载于:https://www.cnblogs.com/illlllllL/archive/2012/10/29/2734588.html

[读书笔记]《移山之道》的若干读后感相关推荐

  1. 转 [读书笔记]《移山之道》的若干读后感

    //一版的<移山> //10061162 刘俊伟 零零碎碎地花了不少时间看<移山之道>,现在也到了该也总结的时候了. 由于看本书的时候正在进行pair work,因此也并不是按 ...

  2. 《移山之道》第十一章:两人合作 读书笔记 PB16110698 第六周(~4.15)

     本周在考虑阅读材料时,我翻阅了<移山之道>,正好看到这一章:两人合作,心想:正好,我们正值结对作业的紧要关头,书中两人合作的宝贵经验和教诲应当对我们有很大帮助.于是,我开始一边在ddl苦 ...

  3. 读《移山之道》的收获与疑问(阅读作业之刘明篇)

    <移山之道>是一本介绍软件开发方法(MSF)和工具(VSTS)的书,这本书讲程序设计的基本原则,讲如何在工具的帮助下进行软件的开发.如何与人合作.如何管理软件工程,讲微软解决方案及方法论. ...

  4. 有源则至清——我读《移山之道》

    引子 =============== 大概是因为列在博文的作译者清单里的缘故罢,我常常能在第一时间得到有关新书的消息.这本<移山之道>的消息在<大道至简>出版前我就知道了.当时 ...

  5. 《移山之道》之读后5问

    1.MSF的适用范围及不同之处? 书里详细地介绍了MSF(microsoft solution framework),但MSF本身也有着局限性,在学习时也要不忘反思. MSF的最大特性是商业化,并自始 ...

  6. 阅读作业第一弹——移山之道 by 吴煜

    这几天在读邹老师的移山之道,选择这本书有两个原因,一个是这本书字最少了,另一个...你懂得. 很推荐大家都来读移山之道,一个主要原因是,邹老师的书很懂他的读者,也很懂如何讲给他的读者.略带诙谐的文字使 ...

  7. 读书笔记02-《术与道》上

    此书为一份UI设计基础指南,虽说是基础指南,却有很多我在UI工作中并不知道的知识盲点,下面开始记录: 01 基础知识 1.1什么是UI设计 1.1.1 UI的相关概念 UI=User Interfac ...

  8. 读《移山之道》 去“移山”

    软件工程课老师让我们选一本教材,分别是<代码大全>.<快速软件开发>.<移山之道> .作为初入茅庐的人,对三本书没有先验知识的情况下,对比了这三本书,最后选择了&l ...

  9. 读书笔记软件调试之道 :问题的核心-诊断

    声明:本文档的内容主要来源于书籍<软件调试修炼之道>作者Paul Butcher,属于读书笔记. 不要急于动手! 尽管可以利用各种工具和技术以及软件自身查找缺陷,但是你最重要的财富是你的智 ...

最新文章

  1. 如何强化应用安全能力,全面拦截 Log4j 漏洞攻击
  2. vue - blog开发学习5
  3. JavaScript进阶2-学习笔记
  4. 软件需求规格说明书通用模版_通用需求挑战和机遇
  5. H.264的码率控制算法
  6. NLP事件抽取综述(上中下):中文事件抽取、开放域事件抽取、事件数据生成、跨语言事件抽取、小样本事件抽取、零样本事件抽取等类型
  7. HashSet存储自定义对象保证元素唯一性图解原理及代码优化
  8. meanshift算法 java_Meanshift,聚类算法
  9. 《Python游戏趣味编程》新书上架了
  10. Vue.js视频教程
  11. python的程序变量名_python中变量的名称和程序效率
  12. Linux上修改open files数目
  13. java怎么部署_java项目服务器如何部署?项目服务器的部署步骤
  14. win10非核心版本的计算机上
  15. java中实现热门搜索的逻辑_Java编程的逻辑 (45) - 神奇的堆
  16. php swool 携程,EasySwoole-延迟队列-取消订单
  17. 计算机三级信息安全知识点
  18. xmind做会议记录的方法
  19. 操作系统总结(二)系统调用及系统结构
  20. MySQL insert 插入优化技巧,MySQL 优化学习第8天

热门文章

  1. PyQt5随笔:QTextEdit、QTextBrowser添加的文字超出视图后,滑动条自动移至最底部,显示最新文本解决
  2. 推荐几个好用富文本框
  3. Python学习笔记(4):collections
  4. win10语言包在c盘哪里,win10系统通过卸载语言包释放c盘空间的图文办法
  5. t420i升级固态硬盘提升_科赋CRAS C710 M.2固态硬盘评测:经典再升级
  6. 日本PHP的线雕产品怎么样,欧茱丽线雕安瓶怎么样?欧茱丽线雕安瓶好用吗
  7. JE分词组件,词典编辑方法
  8. 《超级处理器》介绍及下载
  9. python实现带头结点的单链表的就地逆置_带头结点的单链表就地逆置
  10. 2021-05-24Leetcode322.零钱兑换