1)回顾你的第一周的计划 https://www.cnblogs.com/Thomasblog/p/9986804.html , 你完成的程度如何? 请举出具体数据和例子
回顾一下第一周的计划, 当时我认为中重要的 5 项技能有: 1.Design / 架构设计, 模块化设计, 接口设计; 2. Implementation / 模块实现, 逐步细化; 3.Performance / 效能分析和改进 4. Conmmunication / 线程之间进程之间, 不同平台进程之间; 5. Comprehension / 理解已有的程序, 阅读分析, Debug.
我觉得完成结果如下:
Design / 架构设计, 模块化设计: 在对联项目中, 我主要负责前端代码的编写, 在前端的架构设计上, 与后端的接口实现上我都花了较多时间, 有一定的提升, 但不积跬步, 无以至千里, 要完成我的目标, 还要靠日后的努力.
Implementation / 模块实现, 对于模块化的实现, 同样也花了较多的时间, 从最初的设计稿, 到最后的可以点击的交互界面, 实现过程中这方面也有较大的提高.
Performance / 效能分析和改进, 这一项我们还是比较有发言权的, 刚开始的时候, 小程序运行的速度可以说是非常的慢了, 平均下来一张图片的处理需要至少 30s, 对于用户体验和服务器质量上面来说都是极为不合格的, 但后期进行了较为大刀阔斧的代码重构.
Conmmunication / 线程之间进程之间, 不同平台进程之间, 因为我本身做的是前端, 涉及到数据在不同的文件中进行传输, 也涉及到数据在前后端之间的传输, 所以这方面也是花了比较多的时间.
Comprehension / 理解已有的程序, 在结对编程的过程中, 需要看懂对方的代码, 大量的时间也有练到这一方面.
由于对于上面所述的这些点来说的话, 是比较难以进行量化的, 上面只能说一些比较模糊的, 对于具体的数字可以这么计算:
词频统计(3*5=15h):Design / 架构设计(10%),Implementation / 模块实现(20%),Performance / 效能分析和改进(50%),Conmmunication / 线程之间进程之间(10%),Comprehension / 理解已有的程序(10%)
对联项目(5*20=100h): Design / 架构设计(10%),Implementation / 模块实现(30%),Performance / 效能分析和改进(30%),Conmmunication / 线程之间进程之间(15%),Comprehension / 理解已有的程序(5%)
阅读作业(10h): 阅读作业的话, 因为阅读了比较多的. 关于软件工程, 的例子以上的内容不与涉及
案例分析(10h): 当时是以 CSDN App 为例子说明的, 对 bug 的理解更加深入吧
2) 你在课程开始快速浏览了《构建之法》, 提了 5 个问题, 请回顾那些问题, 自己回答它们. 如果不能回答, 为何软件工程课不能让你回答这些问题?
问题:
Q1:P48 第三章 3.2 软件工程师的职业发展
书中介绍了几种证明个人能力的办法和模型, 例如考级, Steve McConnell, 大公司版本等, 有很多方法是很早以前的, 对待迅猛发展的 IT 行业, 这些 "过时" 的方法还适用吗, 如果适用的话, 那他们又是怎样适应目前这与日俱增的信息量和知识量, 还有不同的时代特点, 而且很多是只有定性没有定量的方法, 对于这样的问题只需要进行定性分析吗? 软件工程随着时代的变化必然会产生新的学科新的方向, 新的领域, 那这些衡量版本是否会失去了衡量的价值? 软件工程师在整个团队中的任务分工都是不相同的, 但是却用同样的测试方案会不会不准? 还有就是书中只告诉了我们评估的方法方案, 那我们评估的结果要如何提高呢? 还有就是有没有可能将这些分级方案放到课程打分上来, 让软件工程课程打分更加科学多样呢?
回答:
我认为评分的机制是发展的导向, 非常重要, 各种各样的的评分机制也随着时代的发展更新着, 过去的方法自然不适用于现在, 但有一定的参考价值.
问题:
Q2:P72 第四章 4.5 结对编程
书中讲了很多例子例如跳舞等例子来说明结对编程并非一朝一夕能够练成的, 练成以后就威力无穷, 第一次难免会遇到许多的问题和不解之处, 书中也给出了一一解答, 但是我还是有一些疑问: 极限编程是对两人水平差异性有要求吗? 我想了一下假如一个啥都不会, 就纯粹是在教学了, 所以我觉得肯定是有要求的, 那么这个要求是怎么样的呢? 是两个水平相同的人结对编程效率高, 还是稍有差异效率高? 还是完全取决于两个人的差异 (毕竟是代码复审的极限编程), 怎么样的合作才是极限编程效率最高的合作?(我觉得这个问题非常有意思) 还是就像找女朋友一样需要找一个合适的黄金搭档呢? 我奇思妙想了一下, 有没有可能做一个辅助程序员的结对编程 AI program? 这样的话一个人也能做到结对编程, 而且成本还低, 还能做一些个性化定制.
回答:
我现在觉得结对编程不在于水平, 而在于不同, 因为是不同的人会看到一个问题的不同面, 并且对于理解彼此的代码有利, 在这个方式中, 水平的差异不是那么的重要.
问题:
来源: http://www.bubuko.com/infodetail-2929062.html