最近半年做了一个iOS的项目,从头至尾是自己一个人完成的,算是第一个独立的项目。在写程序的时候考虑欠缺,导致在后期测试中出现了各种各样的问题,经过多次测试,多次内心和身体的折磨之后终于算是告一段落了。这次的收获太大了,有些经验别人写出来是别人的,只有当自己体会到了才会真正的注意到。
1.在拿到项目的开发文档或者设计文档的时候,不要着急立马写代码,首先应该根据文档去思考这个项目大体需要做成什么样的,有不懂或者疑惑的地方立马和甲方去沟通,确认好。
2.开发的时候,要在开始的时候就对项目有一个整体规划,这个规划不一定具体到具体到每个功能的细节,而是对项目框架的设计,比如MVC、ReactNavtive、MVVM(待了解)等。
3.在写代码的时候,做好对基类的建设,包括网络判断、提示信息、宏定义、本地存储、蓝牙、推送等,并且每一个基类都尽量做到可以扩展,保证代码的健壮性。
4.一定要按着给定的文档来开发,如果后台给的数据格式或者数据名称有误,一定要及时沟通,做好判定,避免最后的时候撕逼互撇责任。在开发中间,也要及时和甲方的后台或者安卓等人沟通,避免出现差异性过大的弯路。
5.开发过程中,遇到问题,先从小地方开始,一点点的认真的去分析去解决,一定要静下心来,沉淀一下思路,考虑问题的全面性,分析多种可能,从源头去解决问题。
6.遇到问题,千万不要用打补丁的方式去解决问题,必须一定要 用一个最优的解决方案去解决问题,不能埋坑,否则到最后会导致越来越多的问题出现,比如代码的臃肿、逻辑的混乱,磨刀不误砍柴工,虽然花费的时间长一些,但是能从根本上杜绝未来出现问题的可能,切记!
7.千万不要因为小细节小技术点不去重视,问题很有可能就出现在不易发现的地方。软件开发需要细心和认真,容不得半点纰漏,但是有了纰漏,程序还要有容错性。比如说数据或者对象可能为空的时候一定要加上判断,否则程序跑起来会有闪退,奔溃的可能。
8.问题解决了之后,立马写下解决方案,有时间的话可以举一反三,彻底把这类的问题弄明白,保证在同一个地方不会被绊倒多次。
9.要考虑多系统版本、多屏幕等各种适配的问题,对于不同的系统有不同的API,针对不同的系统,一定要区分使用API , 不去使用过期的API,慎重使用。
10.函数的组建,尽量把每一个功能给模块化,根据差异去处理不同的文件,这个事情可以边写代码边重构。保证代码的简单化、高效率。
11.在使用各种第三方的时候,一定要研究明白要使用的模块的使用方法,不能稀里糊涂的去用,容易引起例如蓝牙模块那里出现莫名奇妙然后打补丁的问题。
12.测试的时候,一定要自己全方位,多层次的去测试,把各种可能出现的场景最好先记录一下,然后进行多次测试,有问题记录下来,并且解决完了bug之后,自己要再各种暴力测试,必须保证在多种严苛条件下都能正常运行,至少保证不会引起崩溃等严重的问题。
13.软件的UI上面,一定不要想当然的去开发、去设计,如果只有一个客户端的APP,没有对比的话还好说,如果同时有安卓和iOS,那可能就比较痛苦了,可能会让你的iOS和安卓做到一致,可能安卓要和iOS做到一致,所以一切就按着给的切图来做,保证最后撕逼的时候错不在己,无所谓难看与否。
总结:以上就是我这个项目的收获,每一点都是痛苦的经历,看每条总结都能想起那些被bug支配过的岁月。希望能给自己一个警醒,避免以后在这些地方不再犯错误,吃一堑长一智就够了,给自己一个机会,还代码一片安生。
程序员的技术修养(一)
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
- 先说项目开发过程中团队人员的分工协作。 一 人员安排 毕业至今的大部分项目都是独立完成,虽然也有和其他同事协作的时...