根据平时项目(不同类型的项目有不同的处理方式)开发情况总结,纯属经验之谈,仅供参考。
一、目的
流程的目的在于顺利完成项目。
项目的完成情况跟客户需求有关,或难或易,开发者能做的就是深入挖掘需求,细化工作量,开发前弄清细节,总比写完代码后反复返工好。
一个正常的项目应是逐步实现产品定义的功能,除此之外,还需要不断的优化架构,重构代码,提高产品质量,把好的产品辐射到好的测试,好的架构,好的实现,好的性能等等。
二、解决方案
一定要以自己的实际经验来总结和评估解决方案,并通过比较选择一个更好的解决方案。不能人云亦云,也不能满足于自己现有的成果。以下为我所运用各模块的解决方案:
2.1. 基本库选择
- 搭架子 – 目前大多以Tab + Fragment为主
- 异步加载图片 – UIL
- 网络请求 – Retrofit+OkHttp+Rxjava、Volley
- Json – Gson
- 缓存机制 – robospice
- 事件通信 – event bus
- 内存检测 – leakcanary
- 其他各种UI和功能类库
2.2. 服务
- 测试平台 - Fir.im 蒲公英
- 统计服务 – 友盟
- 应用升级 - 百度
- 推送服务 – 极光
- 支付服务 – 支付宝、微信
- 分享 – share sdk
- 第三方登录 – 各大开放平台sdk
- 网络调试 - Wireshark、tcpdump
2.3. 工程(不是商业盈利应用,比较少用)
- 多渠道打包 – gradle flavor
- 持续集成 – jenkins
- APK安全 – Proguard, AndResGuard等
开发过程中要经常通过会议或面谈的形式,回顾和分析遗留问题,安排接下的计划,有效把握开发节奏,防止“放羊”的滋生。
三、持续优化
把一个项目做到可以满足需求的基本运行,对于开发者开说,只是第一阶段的成功:实现功能。
接下来你要面临的问题,很有可能会是一大波新的变化需求,性能低下,稳定性、兼容性等等,这就需要:持续的优化。
持续的优化,不仅能解决很多问题,而且能保证代码有效健壮的发展,这对开发者来说,尤为重要,谁都喜欢写更好的代码,都不喜欢改那些乱到掉渣的代码。
做项目评估的时候,考虑一下基本优化的工作量;迭代版本的时候,留一定的持续优化的工作量。
四、提高困难应对能力
项目经常碰问题点,分析原因其实很少是被技术问题卡住而是粗心大意,认为功能做完项目就好了,说明什么?只能说没经验,考虑的不全。
我们可以从多个方面着手拓展技术视野、提高动手能力、优化放错机制等等:
- 关注社区动向:官方资讯,github, 技术博客(国内外,如CSDN、Stack Overflow),视频(51CTO、腾讯IT、慕课网、极客学院等);
- 勤于实践:把别人的一些好的经验或者效果,动手实现,转化为自己的经验,甚至进一步升华成更好的成果;
- 多参与项目:珍惜参加项目的机会,多参与,用行动改进,不做旁观者;
- 善假于物:多学习一些工具git,linux,python,tcpdump等等,小工具,大用处;
- 细节决定成败:成也细节,败也细节。会区分同类的不同点,能从小的地方改进,遇到困难沉着应付一个一个的攻克细节;
- 落实:搭建一个自已的技术平台,书写自已的心得,经常回顾总结自已。