用 MVC 的设计方式来学 Android——《Android 编程权威指南(第 2 版)》读后感

《Android 编程权威指南(第 2 版)》的封面

刚开始 Android,手头边就一直放在一本《Android 编程权威指南(第 2 版)》(图灵社区出品,中译版)。更准确来说,是拿来在床头放着,每天睡觉的时候看看,有助睡眠……

作为一名从来只为五斗米折腰的小码农,晚上做梦的时候,常常立志要成为如乔帮主那般“活着只是为了改变世界”,白天上班的时候,感觉自己就是“活着只是为了消灭 BUG 和写好产品文案”。

为了消灭 BUG,电脑桌上摆放了不少 Android 的参考书籍,如《第一行代码》、《Android 经典项目开发实战》、《Android 群英传》、《Android 开发艺术探索》等等的一大套书籍,尽管这些参考书都只是仅仅以浏览的方式走马观花了一遍。

这边《Android 编程权威指南(第 2 版)》(以下简称“《Android 指南》”)相比其他的 Android 参考书而言,十分具有老外的写书风格,就是总是喜欢讲故事和扯案例,而老是不对那些理论进行抽象地、理论地概况。这本书的全部内容,用一句话地概括,就是罗里吧嗦地扯了 8 个 Android App 是如何做出来的。

说真的,刚开始看这本书的时候,心里“Duang”地一下子就崩溃了。说好的编程权威指南呢?说好的全面培训教材呢?说好的大名鼎鼎的 Big Nerd Ranch 训练营培训讲义呢?就是讲了这 8 个 App 是怎样做出来,然后就全书的主要内容了?

也许作为小白码农,才疏学浅,看不懂其中的奥秘。于是乎,也就硬着头皮地往下看了,幻想看着看着就能打通编程的任督二脉了?……梦想很丰满,现实很骨感,直到看完整本书,也还是感觉 Android 编程是高深莫测。

看来,面对高深莫测的 Android 神功,神马参考书也是只能大概呵呵了。

不过,对于老外写的这些编程书,看多了也逐渐发现了他们的一个写书传统:以项目产品开始,也以项目产品结束,极少像国产编程书籍那样,大段大段地引用 API 和阐释理论。这应该是老外对于编程的理解和咱们不同吧?

个人感觉,对于老外来说,编程就是一门手艺,和建筑工人会砌墙和涂水泥,是没有什么本质的区别的。而咱们,似乎更多地是将编程看做一种技术,和科学家研究量子力学,是没什么两样的。

编程到底是什么呢?作为小白码农,我也不知道,当然也不知道该如何才可以准确地用科学的语言来精确地表达出“编程”这一概念。

打心底地相信,我更希望“编程”是一门手艺吧,一门可以熟能生巧的求生技能。毕竟俺还是得向五斗米而折腰呢。

如果从“手艺”的角度来再次阅读这边《Android 指南》,就大概能够体谅这本书所传达的温度了。

没错,你没有听错,我也没有写错,确实是“温度”,一本有温度的编程书。

编程技术从来都是向前发展的,任何当时看起来很牛很酷炫很高大上的技术,都会因为面向对象的影响下,被封装起来,变成一个个开放部分接口的对象。编程,可以是科学,因为它融合了计算机科学家的毕生智慧精华,但也可以是手艺,因为它需要众多蓝领级的编程工人来将这些 API 组装成一个个数据产品。对于芸芸众生来说,是成为一名计算机科学家的概率大,还是成为一名编程工人的概率大?或许只有贝叶斯概率才知道了。

《Android 指南》一书,确实起到了“指南”的作用,用 8 个 App 来比较完整地描述了这项 Android 手艺的编程学习方法。尽管这 8 个 App 看起来怪怪的,如用来做地理知识问答题的 GeoQuiz,记录办公室同事种种陋习的 Criminallntent,奇葩得用来震慑敌人的 BeatBox,没什么实际用途的个性化启动器NerdLauncher,要翻墙才能下载到 Flickr 里照片的 PhotoGallery,使用屏幕来玩 # 字游戏的DragAndDraw,看落日动画的 Sunset,以及在我朝用不了谷歌地图来查询位置的 Locatr,尽管不能说全面地描述了 Android 编程的方方面面,但是大概的脉络确实是描述清楚了。毕竟这本书的最高 Android 版本是 5.1,最新的 Android 7.0 的功能描述,建议还是去看郭大侠的《第一行代码(第二版)》吧。

这本《Android 指南》,相比国内的众多参考书来说,除了扯了 8 个App外,还十分认真地研究了如何用 MVC 的设计模式来理解和编写 Android 应用,这算是本书的一大“绝活”吧。任何手艺必定有套路,任何武功必定有心法。对于 Android 这门手艺来说,在本书的作者看来,MVC 应该算得上是“九阳真经”之类的上乘心法吧?此法熟练者,加之修炼有“乾坤大挪移”之威名的面向对象思维方法,并结合宛如“太极八卦”般玄妙的设计模式,就能从此成为一代编程江湖高手了吧?上述修炼诀窍仅供用于YY,做人嘛,还是脚踏实地为好,老老实实地从一行一行的代码开始练起吧。

哆哆嗦嗦地说了一大堆,基本上都是泛泛而谈的东西,不怎么涉及代码分析,说实在地,能力有限,有心无力啊。

最后,还是引用本书中《如何学习 Android 开发》一文中,最为朴素无华的一句话作为结尾吧:“在 Big Nerd Ranch,我们认为,要成为一名合格的 Android 开发人员,必须做到:(1)着手开发一些Android应用;(2)彻底理解你的 Android 应用。”

不断死磕别人的代码吧,彻底理解自己的代码吧,或许,可以成为一个“活着就是为了改变世界”的人。

你可能感兴趣的:(用 MVC 的设计方式来学 Android——《Android 编程权威指南(第 2 版)》读后感)