App 开发考虑周全

看了 Limboy's HQ 的文章,结合实际简单整理学习一下

一、日志系统

1、NSLog 使用方便,但是性能一般,而且不宜线上环境开启,容易泄露调试信息(初级会使用 DLog)
2、CocoaLumberjack 性能更好,而且支持文件 Log、系统 Log、调试 Log,舒服又方便,Log 等级可调,Log 文件可操作

CocoaLumberjack:https://github.com/CocoaLumberjack/CocoaLumberjack

二、提交记录规范

1、内容要精确可描述,有时候开发急需求 bug 写一起了,然后又一大坨代码提交的时候就不知道写什么了,写的就会相对模糊,Review 或者回头检查就成了大问题;
2、内容要简洁单内容,不要散乱的好几个不相干的需求或 Bug 一起提交;
3、内容分前缀区分提交类别,【Add】【Change】【Update】【Fix】【Release】【Import】【Delete】

【Add】新增需求
【Change】修改需求
【Update】更新替换,例如证书更新等
【Fix】修复 Bug
【Release】上线发版,顺便打个 Tag
【Import】引入第三方框架
【Delete】删除文件或者素材

三、代码规范

1、十分重要
2、单独整理过

四、编程守则

1、包含了【最佳实践】和【不要踩的坑】
2、需要大量的开发经验和人员维护,例如阿里的【Java 开发手册[华山版]】就是好精华啊,
3、自己还没有维护起来,后面看看别人的借鉴下

五、页面布局规范

1、布局方式多种多样(AutoLayout、sb、xib、frame、第三方等等),不统一的话开发维护困难,看起来也难受
2、个人有 2 种方式开发的比较舒服:1)sb + Masonry + frame;2)Masonry + frame;
3、Apple 推崇的 sb 还是很有优势的,UI 可视化,开发迅速,减少大量代码(性能也不是问题),但还是不喜欢用 Segue 做页面跳转;

六、统计埋点

这个结合产品,对 APP 使用进行分析时有用

七、APP 架构

这个要重点再研究下,大方向基本 MVVM、MVP、MVC

八、异常捕捉

1、友盟统计、Bugly
2、检查线上崩溃,很有必要

九、代码审查

保障代码质量,同时促进双方成长

十、持续集成

Jenkins
提升开发效率,测试也不用等开发打包

十一、Bug 管理系统

禅道
Bug 的一生,记录、重现、修复、验证、发版

十二、项目管理

禅道、其他
细分任务,评估开发时间

十三、CheckList

上线检查重要事项,例如开发环境,相关配置等等