项目总结二:龙图OA项目总结
2016-02-06 11:08
561 查看
一、项目简介
1、项目基本信息
基本信息 | 详细 |
---|---|
项目名称 | 龙图OA |
平台 | iOS(兼容iOS 7.0 以上的系统) |
V 1.0开发周期 | 2015年12月4日-2016年01月04日(共23天,除去周末,两天加班) |
项目背景 | 这款APP主要是服务于公司内部员工的,通过这款APP可以实现上下班打卡、查看所有的打卡记录,发布任务、领取任务,提交请假、采购申请,即时聊天等。 |
主要技术 | 1、消息推送;2、环信的即时聊天 |
iOS团队 | 4人 |
2、项目部分截图
二、项目总结
1、项目中犯的错
(1)通用的部分没有封装好
在申请模块中一共有八个申请单,比如漏打卡申请单、请假申请单、出差申请单等,基本上每个申请单都有一个或者两个以上的需要填写的文本框。但是文本框需要输入多行文字,而且需要有字数统计和限制,如下图:一开始没有考虑那么多,用的是UIView+UITextView+UILabel实现的。八个申请里面一个有15个这样的布局,所以差不多是同一份代码重复写了十五遍。而且处理键盘和统计字数的代码又重复写了15遍。
正确的做法是:在后期进行代码重构,另外单独新建一个类用于实现这个比较特殊的文本框,然后在其他需要的地方调用一下。这样做不仅省了很多时间,也省了很多冗余的代码,使逻辑也变的简单了。
(2)注重程序设计
在该项目中的任务模块顶部有一个tabbar,底部也有一个tabbar,中间部分是列表,还需要支持左右滑动切换界面。如下图所示:我实现的思路是在scrollView上放列表,点击头顶部或者是底部的tabbar上的按钮,实现界面的切换。最终的功能是实现了,但是自己感觉里面的逻辑判断过多,特别是数据的加载,代码可读性差。后面与我们的主管沟通了我的想法,主管将我写的那部分进行了代码重构(差不多是他自己重新写了一遍),我仔细看了下他的思路,他采用了MVC的模式,将逻辑层和数据层分开了,这样写出来的效果非常好,代码结构请求,bug也没有。在心里默默的给主管点个赞,这样精简的代码我确实写不出,我还需多努力。
(3)重用机制没有彻底理解
虽然以前用列表用的挺多的,但是对于复杂的tableView和collectionView的重用还是没有理解透彻,会因为重用的问题而产生一些bug。(4)苹果自带的一些方法不熟悉
此次项目中用到与时间有关的处理比较多,字符串转时间格式、时间格式转字符串、时间的比较、时间的计算等。其中有些日期的比较是我自己写的方法实现的,但是其实系统有自带的方法可以实现。只是我一开始不知道,用系统自带的方法会更简洁和节省时间。2、个人心得体会
此次项目,任务量比较大、时间比较少,后台接口出的也比较慢。在此次项目开发中,有点急躁和冒进,常常是一个功能没做完就去做另外一个功能,或者是一个功能匆匆忙忙做完,还没有仔细测试然后就跑去迫不及待的开发另外一个功能。这样做的后果就是会导致产生一些隐性的bug,给后续的开发和测试埋坑。正确的做法应该是一个功能做完做好之后,才去着手另外一个功能,做到急而有序,急而不乱。另外,通过这次的项目开发,我意识到了要提高自己的程序设计思想和代码质量,但确实自己水平有限短时间难有较大的突破,所以后期需注重提高程序设计的思想和代码质量。
与上次项目开发相比,我已经开始由认识到代码表面的一些不足开始深入代码层次和程序思想的问题了。
2016年01月06日 中清龙图
相关文章推荐
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- 讲解iOS开发中基本的定位功能实现
- js判断客户端是iOS还是Android等移动终端的方法
- IOS开发环境windows化攻略
- 浅析iOS应用开发中线程间的通信与线程安全问题
- 检测iOS设备是否越狱的方法
- .net平台推送ios消息的实现方法
- 探讨Android与iOS,我们将何去何从?
- Android、iOS和Windows Phone中的推送技术详解
- iOS推送的那些事
- IOS 改变键盘颜色代码
- 举例详解iOS开发过程中的沙盒机制与文件
- Android和IOS的浏览器中检测是否安装某个客户端的方法
- 分享一个iOS下实现基本绘画板功能的简单方法