软件工程读书笔记(一)——工程经验总结

  本周会议较多,事务缠身,一直没能抽出身来读一下上周四一下课就赶去东区图书馆借下的最后一本《构建之法》,甚是惭愧。虽然没有吸收新的知识、产生新的想法,但转念一想,对自己这两年多来所做的工程做个总结也未尝不是一个好的开始!

 

一、多项式运算器(数据结构与算法)

  大一上学期学习了C语言,代码量很少,只是熟练了一下C的一些语法。大一下学期没有相关课程,整整一学期没有编程。

         大二上学期修读了顾老师的数据结构与算法,代码量陡然增多,但前期还是单一功能模块的实现,做起来无需太多顾虑,只算是练习。而期末大作业,多项式运算器,算是我接触的第一个工程,我写了将近一个月的时间,代码行数最终达到了1800+,我的许多问题也在这1800行代码中暴露了出来。

  1. 代码分块,整个工程要有框架,不能都用一个主函数来解决。
  2. 模块名字命名有意义,功能注释清楚。
  3. 模块接口参数提前构思好,统筹看,避免多次修改,尤其对于公共数据处理模块即调用率高的模块。
  4. 模块间隔离度要好,参数命名释义清楚,全局变量局部变量命名要有规则。
  5. 断点调试,单步运行,跳出循环,是否进入函数要熟练掌握。
  6. 有问题debug不出来多问师兄,有一个bug我印象深刻,一个语句A错误地点显示为他调用的函数B,而反复检查A入口参数没有问题,问师兄后,师兄发现是这个语句A调用的其他函数C,而C再次调用了B,这里的入口参数有了问题!也是这次经历,我学会了检查调用堆栈。

二、四旋翼飞行器(电子设计实践2)

  大二下学期我们五个人的团队完成了一个大四轴,主要是面向单片机编程,更加工程一点。这也算是我的第一次团队开发经历,问题也多,收获也多。

  1. 重新认识了*.c、*.h、外部变量、外部函数。之前的代码都在一个*.c里完成,现在在多个文件下构建一个工程项目,对include的认识都又多了几分。
  2. 代码管理工具、备份!本次都在一个人的电脑上对文件夹命名加时间来区分,很不方便。
  3. 每个人严格执行项目工期,尤其是关键事件,完不成就要拖进度!

三、校外接的小活

  单片机做的都还行,加上有时间,通过师兄在校外接了个活,算是比较接近与工程的一次经历了。

  1. 建立自己的团队,做你最适合做的东西。我找了室友做CFO,完成物品采购,快递领取,核对发票等工作。又找了喜欢Java的同学做了Android开发。让自己的时间效率最高
  2. 当你是teamleader时,合理安排工程进度,对你的团队要nice and push。最重要的是generous。
  3. 作为乙方,和甲方要及时沟通,项目需求不清楚要多问。
  4. 向甲方汇报进度也是一门艺术。自己有大作业考试,项目进度忽快忽慢,但和甲方汇报时,要让他觉得项目平和顺畅。
  5. 延期交付和甲方扯皮,我延期了,但没扯皮,甲方比较好说好,时间节点定的也早。但是我觉得这个应该会遇到!

四、图片分类机器学习模型(寒假交流)

  寒假在美交流,最后做了一个机器学习图像分类模型,略有收获。

  1. 英文要好,要能读懂paper,要能做的了presentation。
  2. 学会如何搜索获取好的资源。
  3. 代码管理工具推荐GitHub。
  4. 最好能有一个服务器接口给你跑数据。

五、现代软件工程

  作为队长,提前分配好任务,培养副手,自己忙的时候能有人接手,不至于团队宕机。

posted @ 2018-03-21 23:12  hhhua  阅读(707)  评论(3编辑  收藏  举报