回望开学初对于软件工程课程的想象,回望博客开篇时对于这门课和这学期的期望
对比现在的你和开学初博客开篇的课程目标和期待。
开课预期及写下这篇文章时(2015-12-20)的对比:
预期:1.学会android端 Ioc开发(git上面的开源框架) 增加项目可拓展性;
now:已经在项目中使用
2.传感器开发:加速度传感器,陀螺仪,电子罗盘的开发,完成近距离行人路径绘制
now:利用加速度及电子罗盘完成推测引导,2S纠正误差精度受手机配置影响
3.机型兼容,实现市场上主流机型的页面兼容
now:这块基本没去接触,除缺乏参考资料外,由于时间不够暂未考虑,目前项目只考虑了图片的兼容
4.html5开发,android端一些经常更新页面用web page实现
now:android上的webkit实现webview跳转会有浏览器自带的白屏效果,现已放弃这块的研究,学习html5+&mui框架ing
5.推荐系统:用户对商店的评价,推荐商店
now:读完<推荐系统实战>&<集体智慧编程>,算是对推荐系统的入门,但是缺乏数据的情况下无法做到真实推荐(系统假推荐),本科阶段的学习太少,之后估计是放弃这块的研究了把..
6.图像识别,识别出此时位于室内哪个位置。
now:在读<数字图像处理>,图像识别用的是opencv3拓展包带的sift算法
7.团队的协作开发。
now:这个学到很多,之前就算是合作也都是先等前台做完或者修改然后改到我的项目,算是独立开发。而现在能较为熟练的使用as上的git工具
8.功能测试(各种测试的学习),需求文档(UML学习),算法概述。
now:这方面很惭愧,android上的测试基本没做,web上的做的不够规范,uml停留在较初等的阶段把
9.android源码阅读
now:先接触linux更为深刻再说把。。
期望:1.项目的构建:得到一些建议和启发,有时候发现自己写了很多垃圾代码的时候才懂得重构。
now:算是比较有体会把,为了让队友能方便的调用函数和控件,我们都会把独立的控件提取出来,而不是写innerClass
2.设计模式:同上,目前项目的设计虽说分层,但是也只是针对简单项目来说。
now:伟光大神有推荐一个项目架构,但我们组员接触android不久,阅读参考书并非如此结构,为避免混乱放弃,事件写在activity中。
规划:多看优秀开源项目;多看大牛博客;多学多看多敲代码;
now:blog质量参差不起,所以寒假我想通过我们的项目再结合福大助手推一波APP。
总结这门课程的实践给你带来的提升:包括,1、学习和使用的新软件;2、学习和使用的新工具;3、学习和掌握的新语言、新平台;4、学习和掌握的新方法;5、其他的提升。
对android studio的使用更加熟练
git工具使用更加熟练
除团队项目外,接触较多的前端,感觉自己从后台变成伪前端了。。
其他提升及细微学习已写在对比和平时的blog
写下属于自己的人月神话——项目实践中的经验总结+实例/例证结合的分析
目标很美好,现实很残酷,团队组队后,在讨论app立项的时候,基本是我独断的,那时候想着说做一个改变福大人的app,还想结合课表,做一款读书,笔记,课表,分享,推荐的校园APP。但没考虑队友对android平台不是很熟悉,导致我们的项目进度缓慢,我也不断的修改目标和需求,最后只做了读书笔记和伪推荐。特别是在项目的一开始,但是正赶上课多,每周30多节课加上超级多的作业和专业实践,权衡之下还是把其他放第一位,这样的后果就是alpha版本我们的燃尽图在前10天是横的..感觉连助教都要替我们着急了。到后来,感觉答辩的时间一步一步到来,又赶上校运会,缓慢很久的项目终于加快了进度。怎么说,看"7"型的燃尽图就明白了..后来,PM说她曾一度放弃,想想,我也没尽到组长的责任..算是短时间赶出个半成品吧.
紧接着是beta版本,队友们在前面的接触算是较为熟悉android的开发,我也开发放手让他们去实现功能,所幸队友的学习能力挺强,做的挺给力,alpha版本我扮演的是构架师的身份,那beta版本我主要扮演一名指导员的身份.
后来,beta版本答辩的时候,栋哥问了一句:什么时候拥有用户。再这个大家不想让手机无缘无故装一个app的社会,我还是想把之前要整合的东西做完,再推一波.
革命尚未成功,少年勿忘初心,today lazy,tomorrow die.
对下一届实践的建议,或者对于开学初的你,对于大一的你,对于开学初的我,你有什么想建议和告知的呢?
对于大一大二的,要搞技术的话,有些课是没必要去上的。
西二是一个不错的组织,里面有很多大神,我在里面学到了很多。
当发现某些事情重复或浪费时间的时候,考虑自己写脚本实现。
如果真的想改变福大,你需要的不是一个人的努力
...
对未来的你的期许
之前每想到idea都会记录,现在正好可以拿出来.
近期:
12月
同乡会包车巴务系统,算是接触流应用的开端(巩固css.js)
1-2月
助手查书后加到这儿去功能,方便学生找书
h5在线地图开发(学习opengl 解决图像缓存)
在线编辑地图的开发(方便商家)
#之前要做短信互享现在感觉没什么锻炼价值留给学弟做好了。
2月
ngnix+lua 搭建后面,ngnix做静态文件服务器,学习集群做数据缓存
jna开发
后面估计要巩固之前学的..
比较想去的实习公司:Tencent
随意发挥,包括图文、照片和创意等
20151214更新
20151213的软工实践 上台部分总结
关于本项目 遇到的问题及解决方案
Q1:队友都是零基础,怎么让他们快速开发?
一开始 借着我自己的经验: 我给他们推荐了<> 并规划了部分章节,让他们先"通读"一遍 有个印象, 然而发现这样的效果并不好,队友看了前面的 感觉看不太懂,更不想去看后面的,越看越不懂.这也就是导致我们项目前期燃尽图基本持水平的原因
后来,针对本项目,我是这么做的:
1.先讲每个文件(夹)的作用,尽量用生动形象的语言
2.先给他们安排xml的编写及设计,明白控件是怎么产生的
3.拿之前做的类似的页面或功能让其参考、模仿,(对于没有的,因为项目并不难,网上都能找到,让其自主搜索,遇到问题再讨论)
4.把组件抽出来,实例化即可调用
5.搭建本地数据处理框架(DAO),远程接口调用
6.放手让队友做,有bug一起解决
7.动力:如果只是为交软工实践估计动力不足,可考虑让她们报校赛 srtp
(以上针对负责及学习能力较强的队友,所幸我的队员是这样的)
Q2:时间不足?
我们小组的做法是:与其分散的每天编码一小时,更宁愿每周4,5,6集中编码(傍晚到半夜),随时讨论及修正
对本门课的看法
一开始,听说这门课很水, 找几个会写文档的队友,然后把最近在做的作品交上去,文档让队友写
上了之后....发现没那么简单
真的是各种学习
首先是git的使用,以前用git只会commit push pull 根本不懂git工作原理 版本回退 冲突解决 出现文件丢失还是重新写
issue和燃尽图..这东西=to do list (类似trello?)
markdown 以前看到github上要写README.md md就是markdown没上实践之前就只是当成一个高级的txt对待..这东西很快捷..现在就是用的这个写的
需求说明书...没上实践之前 以前写的需求说明书都是什么鬼
概要(详细)设计说明书等等.. 说实话..这东西和需求书一样,都是需要大把时间去写的,然而以前项目在需求上遇到很多坑 都是没有谈妥的原因,谈完后有的都是自己手写的设计草稿...
测试 40%的时间去做测试, 确实 到现在测试还是做的不好