程序员的进阶之路

Posted SpikeKing

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了程序员的进阶之路相关的知识,希望对你有一定的参考价值。

在编程之余,有时候我就在想,什么样的程序员属于高级程序员呢?或者说,高级程序员有哪些特性呢?工作年限一定不是一个关键的指标,许多工作多年的程序员依然写不出优雅的程序。无论是在android开发还是其他领域,高级程序员一定是勤奋的,可以快速地掌握大量的新技术、新框架,不仅懂得原理,还能把新的技术落地到公司的产品中去。这是衡量程序员工作能力的一个重要标准,那么怎样才能将技术运用自如呢?唯有实践。基于此,我想把自己在日常实践中的一些经典案例,编著成一本成体系的书,以便为想要进步的Android程序员增加更多的实战经验,这也是编写本书的核心目的所在。

编写本书的另外一个目的,是帮助程序员建立产品的思想,对于技术而言,孤立的存在是没有任何意义的,技术只有与需求相结合,才能具有自身的价值。技术人员在开发的过程中,要时刻了解所完成的功能可以为公司带来哪些价值,是提升用户的访问兴趣,还是提升用户的使用流畅度,抑或是其他。当以产品思维去思考技术的时候,就会有动力、有目的地学习更多有价值的技术,而不是哗众取宠地学一些“看似有用”的新技术。

除此之外,还有理解架构的本质。一些技术人员经常会问:“为什么要使用架构?这只会增加额外的代码量,而且并不会对功能或性能有所提升,只需要完成必要的开发任务即可。”这种想法是非常浅显的,因为任何一个应用都不是一次成型的,需要不断地迭代,不断地扩展,同时需要不断地修改已有的业务逻辑,这就会涉及系统兼容性的问题。如何修改新的业务逻辑而不影响旧的业务逻辑?如何最大限度地复用已有的业务逻辑?架构就是解决这类问题的钥匙,一个优秀且合适的项目架构可以保证系统的稳定性,当开发新的功能或者修改旧的功能时,不至于破坏已有的业务体系。

本书的实例都是经典实战实例,每一个例子都代表一类在开发中需要掌握的技巧。本书由浅入深地逐个讲解需要掌握的开发理论与实践,共分为七部分。

◎ 进阶基础:偏重于源码的解析和理解,介绍阅读源码的技巧,以Activity和View为例,管中窥豹地分析其中的基础知识。读者也可依据此类方法,分析其他系统组件的源码。

◎ 高阶控件:介绍若干复杂的控件布局,即AppBarLayout、CoordinatorLayout和ConstraintLayout。通过实例,让读者理解在复杂控件布局中子视图是如何组合和相互关联的。

◎ 项目架构:分析主流架构的设计思想,即Google推荐的MVP和MVVM,还有Facebook的Flux。理解这些架构是如何组织和管理大型项目的,以及它们的优点和缺点各有哪些。

◎ 响应式编程:响应式是一种编程思想,在处理网络请求和功能测试时,基于响应式框架的项目拥有更好的可扩展性和可维护性,响应式编程三剑客即RxJava、Dagger和Retrofit。

◎ 酷炫功能与精美动画:实现两个稍复杂的功能,分别是基于第三方控件和基于系统控件的扩展;并实现两个动画效果,分别用于页面展开和页面切换。对于功能和动画,不同的需求或样式层出不穷,本部分侧重于开发思路的分享。

◎ Kotlin与SVG:Kotlin是用于替代Java的高阶编程语言,SVG是用于替代PNG格式的图像技术,本书着重介绍一些基础概念,提纲挈领,以便于读者后续进行自主学习。

◎ 测试与优化:分享一个主流的自动化测试框架,以及优化内存与电量的一些常见方法。产品的性能与功能同样重要,应用的高品质也会提升产品的用户体验。

这七部分几乎已经包含高级Android编程的全部内容,本书的每个部分都会通过多个实例,从不同的角度引领读者亲身实战,真正地掌握高级编程的核心开发技巧。但是,实例的数量终究有限,希望读者更多地关注于实战中的开发思想,而不是具体的代码逻辑,代码总会不断地更迭,解决问题的思维却历久弥新。本书中的实例更多的是以点带面,读者可以一边阅读和思考,一边编写代码,相信读完本书,一定受益匪浅;同时,通过本书的实例可以解决一些常见的开发需求。衷心希望每位读者在阅读完本书之后,都“不虚此行”!

2018年7月于北京海淀

附 若干一线资深Android工程师的推荐评语:

与市面上的入门书不同,本书侧重于项目实战,并引入了实战中较前沿的知识,如Kotlin、项目架构、自动化测试框架等。相信这些知识能帮助更多的中级工程师向高级工程师迈进,值得一看!
—— 美团资深Android开发工程师

本书通过大量的实例,将晦涩抽象的知识点更清晰、直观地进行展现,相信读者会有茅塞顿开和“so easy”之感。本书对于架构和性能优化也有清晰的介绍和归纳,利于读者提高技术水平,很适合期待进阶为高级或资深Android工程师的有识之士阅读。
—— 快手资深Android开发工程师

本书深入浅出,从开发模式到常用的流行框架和性能优化方法,都进行了由表及里的深入分析,对于Android进阶非常有益。本书结合实践案例进行讲解,摒弃了枯燥的原理陈述,可让读者在具体场景下了解Android技术。
—— 网易云音乐资深Android开发工程师

本书是作者对Android格物致知的结晶。全书采用专题形式进行讲解,非常方便读者按需所取、专项突破。本书在内容选取上既有对基础知识深入浅出的原理分析,也有对工程架构的实践探讨,更有对Android热门、前沿知识的讲解。希望读者不仅可以收获一个个专题,更能体会到作者既有深度又有广度,并在此基础上构建技术体系的学习方法。
—— 春雨医生资深Android开发工程师

高级Android开发强化实战京东链接:https://search.jd.com/Search?keyword=高级Android强化实战

CSDN - Android基础:https://blog.csdn.net/caroline_wendy/article/category/2091071
CSDN - Android高级:https://blog.csdn.net/caroline_wendy/article/category/5990893

以上是关于程序员的进阶之路的主要内容,如果未能解决你的问题,请参考以下文章

每天嚼烂5道精选面试题,中高级工程师的进阶之路(day01)

程序人生 -- 我的成长之路和进阶经验分享

每天嚼烂5道精选面试题,中高级工程师的进阶之路(day01)

每天嚼烂5道精选面试题,中高级工程师的进阶之路(day01)

每天嚼烂5道精选面试题,中高级工程师的进阶之路(day01)

Android工程师进阶之路 :《Android开发进阶:从小工到专家》上市啦!