标签:alpha 地方 纠正 一起 习惯 很多 提高 职业 估计
在课程计划中我认为最重要的5个技能是:程序理解、代码质量、python、处理大数据、个人源码管理,计划每周拿出10小时完成软件工程课,完成情况如下:
原文:
Ch04, P79, 每人在各自独立设计、实现软件的过程中不免要犯这样那样的错误。在结对编程中,因为有随时的复审和交流,程序各方面质量取决于一对程序员中各方面水平较高的那位。这样程序的错误就会少得多,程序的初始质量会高很多。
问题:
我们在第一次结对编程的debug阶段中采用了这个方法,但是发现两个人的交流有时候会掩盖问题,来自代码创作者的解释会隐藏那些不易察觉的小bug,很多隐藏的比较深的bug还是在一个人独立阅读代码的时候发现的,是因为结对编程不适用于debug阶段吗?
我觉得结对编程主要还是为了纠正逻辑的错误和偶尔的明显笔误,像一些数组越界等小错误还是要编程者自己改正。
原文:
Ch6, P112, 另一个改进是,要在每一个任务中记载我们完成这个任务还需要多少时间。
Ch6, P115, 我们感觉好像项目完成了80%,殊不知后面的20%往往要花费80%的时间。
问题:
敏捷流程的核心是基于能够估计出任务的剩余时间的。但文中又说很多时候并估计不准时间。我感觉这里似乎有一些矛盾。如果预计完成时间估的不准,那么敏捷流程跟尽全力向前推进似乎没有什么区别?还是说一般工程项目都能估计的大差不差?
在真实项目中不是线性的,要一样一样完成,而是一个流程图,一个工作开始可能依赖于多个基础工作的完成,因此要估计时间来分配资源,有点拓扑排序的感觉。
原文:
Ch8, P156, 用户在各种菜单中幽幽暗暗的反反复复的寻找某个功能,我们在单向玻璃后面替他着急……我们的界面距离“平平淡淡从从容容才是真”差太远了。
问题:
想问一个和书关系不是那么大的问题。就是现在产品的菜单和图标设计(比如word)依然很复杂,用户很难知道自己要干什么事,就能根据菜单名称大致找到地方。UI换了一版又一版,菜单设计却没有大的更新,是因为尾大不掉么?就是说为了和老版本兼容从而不能大面积修改菜单?
这个由于在软件工程课中没有涉及到,因此要等以后来回答了。
原文:
Ch16, P353, 但是绝大多数用户都不会告诉公司颠覆性的需求,就像马车夫那样,他们会希望马更快一些就好了。
问题:
我认为这个例子并不能说明问题,马车的出现和汽车的出现相差很远,起码远超一个公司产品的周期。而且马车直接变成汽车这个请求未免太颠覆性了。就像手机屏幕从按键变成触控笔再变成手指直接触控一样,是因为用户不断反映体验不好才促进了产品的升级的。用户是很难知道未来的发展趋势的,成功的公司重视用户,应该推理出公司自身会去想颠覆性的方法满足用户的需求。而不是把没做出颠覆性进展归因于用户没有提出来,这可能对用户提了过高的要求。
我保持开学的观点,认为成熟的公司重视用户和创新之间在这个例子中不为两难。
最后一个问题是建议,略去。
在实际编程中,我能感觉到自己对面向对象编程并没有什么概念,很多类的使用十分刻意,一些有联系的类我也很难用继承把他们组合在一起,结果并没有从面向对象编程中得到显著收益,比如让代码变得可读性更好等,想问一下是否有具体介绍程序架构设计的书籍推荐?
对于一个面向用户的产品,最重要的是用户体验,首先是整个流程要能跑通(MVP),其次是流程的速度要快,再次是UI界面要美观,而后端的模型相对来说并没有那么重要,这是我大作业最大的感触。
这部分内容大致和课程计划一样,程序理解、代码质量、python、个人源码管理的技能提高了2分,处理大数据的技能提高了1分,但还需要继续增强。
我觉得这门课总体来说设计的很好了,在有限的课程时间里让学生完成一个完整的项目,两个冲刺阶段的设计提高了时间利用效率。
一个小建议是文献阅读作业可以早一点发布(Alpha阶段前),晚一点结束(Beta阶段后),这样阅读的时间更充分,而且学生也更加有感悟。
标签:alpha 地方 纠正 一起 习惯 很多 提高 职业 估计
原文地址:https://www.cnblogs.com/ustcscallion/p/10297805.html