如何更好地开发一个Android应用

面向开发者,开发主管,总监,CEO等。
经验之谈,比较杂乱,仅供参考。

项目定义

不同类型的项目当以不同的处理方式。

1. 项目型

该类型项目,重点在于完成项目,取决于客户需求,或难或易,开发者能做的就是深入挖掘需求,细化工作量,以表明服务态度,避免返工。

2. 产品型

该类型项目,重点在于开发一个好的产品,逐步实现产品定义的功能,除此之外,还需要不断的优化架构,重构代码,提高产品质量,把好的产品辐射到好的测试,好的架构,好的实现,好的性能等等。

下文将将基于产品型项目展开。

迭代开发

相对于大阶段布局,小步伐的迭代式开发更具灵活性,更能应付项目的变化因素。

1. 每日会议

通过每日会议的形式,回顾和分析昨天遗留问题,安排今天的计划,有效把握开发节奏,防止懒惰情绪的滋生。

2. 定义大版本和小版本

把核心重要的大更新,定义为大版本。把不核心或者辅助的更新,定义未小版本。
开发大版本的时候,舍弃一些不是必需的更新,放到后面的小版本上。
开发小版本的时候,完善之前大版本没完成的,同时优化代码,甚至添加一些小改动,增加一些小功能。

技术能力

除了上述宏观的把控,提高自身能力也格外重要。

1. 更好的解决方案

一定要以自己的实际经验来总结和评估解决方案,并通过比较选择一个更好的解决方案。
不能人云亦云,也不能满足于自己现有的成果,求真务实才能更进一步。
这里列举几个方面我所了解的解决方案:

1.1. 基本

  • 搭架子 – 1. 目前以多Tab + Fragment为主,已成型; 2. 项目结构
  • 异步加载图片 – UIL,Glide
  • 网络请求 – robospice + google http client
  • Json – jackson2
  • 缓存机制 – robospice
  • 自动更新 – lesscode
  • 事件通信 – event bus, otto
  • 数据库 – litepal
  • 内存检测 – leakcanary
  • 其他各种UI和功能类库

 

1.2. 服务

  • 统计服务 – 友盟、百度
  • 云存储服务 – 七牛
  • 推送服务 – 极光,个推,小米
  • 支付服务 – 支付宝、微信、银联、连连支付、现在支付、充话费、语音支付等
  • 分享 – share sdk
  • 第三方登录 – 各大开放平台sdk

1.3. 工程

  • 多渠道打包 – gradle flavor
  • 持续集成 – jenkins
  • APK瘦身 – Proguard, AndResGuard, webp等

2. 持续优化的重要性

把一个项目做到可以满足需求的基本运行,对于开发者开说,说明你成功了,但是只是第一阶段的成功:实现。
接下来你要面临的问题,很有可能会是一大波新的变化需求,代码混乱,性能低下,错误异常率下不来等等,这就需要:优化,并且是持续的优化。
持续的优化,不仅能解决很多问题,而且能保证代码有效健壮的发展,这对开发者来说,尤为重要,谁都喜欢写更好的代码,都不喜欢改那些乱到掉渣的代码。
做项目评估的时候,考虑一下基本优化的工作量;迭代版本的时候,留一定的持续优化的工作量。

3. 困难挫折警示

经常碰到困难,经常被技术问题卡住,经常粗心大意 … …
说明什么?
要么太没经验,要么能力不足。
我们可以从多个方面着手拓展技术视野、提高动手能力、优化放错机制等等:

  1. 关注社区动向
    官方资讯,github, 技术博客(国内外),视频(慕课网、极客学院等)… …
  2. 勤于实践
    把别人的一些好的经验或者效果,动手实现,转化为自己的经验,甚至进一步升华成更好的成果。
  3. 多参与项目
    珍惜参加项目的机会,多参与,用行动改进,不做旁观者。
  4. 善假于物
    多学习一些工具git,linux,python,tcpdump等等,用的比较多的,最好能吃透一点(比如git),小工具,大用处。
  5. 细节决定成败
    成也细节,败也细节。会区分同类的不同点,能从小的地方改进,遇到困难沉着应付一个一个的攻克细节…

小结

两个字:落实!

2 5 收藏 1 评论

相关文章

可能感兴趣的话题



直接登录
最新评论
跳到底部
返回顶部