[置顶] android进阶之路:大牛问答

Q:最近看到很多文章都在说MVP怎么怎么好,还有MVVM啥的
最近看到很多文章都在说MVP怎么怎么好,还有MVVM啥的,请问你认为哪个比较适合android,而你现在采用的是哪些模式呢?
【郭霖】A:郭霖
对于这个问题,我还是有点心得的。像MVP这种架构模式,肯定是有它的意义的,它提供了一种设计规范,让我们能把业务逻辑从Activity中提取出来,让代码看起来更工整,这里先给个肯定。但至于用不用那就纯粹是看个人了,比如我自己就是不用的。对于架构模式这种东西没必要迷信,好像大家都说这个好,那我也必须要用这个,因为代码永远也是写不到最好的,如果你觉得你自己完全能够管理好Activity中的业务逻辑而不会混乱不堪的话,那也完全可以不用MVP模式,在MVP出现之前仍然有需要出色的代码架构,这些都是靠工程师自己的思路创造出来的,而不是按照一个模式循规蹈矩写出来的。在我看来,MVP引入了大量的Presenter这点就做得不够优雅,并且去年Android全球开发者大会谈项目架构时,Google工程师也没有推荐使用MVP,只是提到了一下有这个东西,但话锋一转:今天没准备讲它。如果问我我是使用什么模式来设计架构的话,那我的回答就是,我没有任何模式。但我问遵守一个原则,就是DRY(Don’t Repeat Yourself),当你把同样一段代码写两遍的时候,就是你需要思考去重构的时候,我觉得这样写下来的代码架构同样非常优雅,大家可以试试。

Q:《第一行代码》之后有什么推荐书籍吗?
【郭霖】A:可以看《Android开发艺术探索》这本书,这本书写得挺好的。不过我给你一个建议,最好的学习方式就是做项目,以项目驱动的方式进行学习。当你需要实现一个功能的时候,你需要学习各种相关的技术来完成它,其实在这个过程中你就已经在慢慢成长。如果只看书不练习的话,一是理解层次可能会比较浅,二是学完要不了多久你就又会忘记了。

Q:如何提升自己的编程水平
应该有很多跟我一样的老菜鸟,做android也做了3年甚至更多 但是水平总是跟以前入门一样,到处找点代码贴贴代码。不知道怎么才能有质的提高 希望大神给出宝贵意见
【郭霖】A:我也见过很多你这样的同学,他们做编程有段时间了,但是更深点的东西都不会。或者说搜索能力可以,但是自己学不出来东
西。我给给他们的建议就是先找些小的轮子造一造(可以是重复的轮子,重要的是自己亲自码代码,不是光看)。小轮子造完
了就造大的。当然刚开始的时候你可能会觉得无从下手,感觉小轮子也造不了,那就照着别人的优秀开源项目的片段功能或
模块抄一抄。熟能生巧,时间长了自己就提高了很多,也会自己写出东西了。温馨提示:一定要自己亲手多代码。

Q:你是如何如何快速学习提高技术水平的?
[罗迪]A:有句话说的好: Read the f**k source code。在一项语言基础扎实的情况下,去学习具体平台的开发,绝佳的方式就是阅读优秀的源码。无论代码做得是什么,优秀的代码都会在不经意间让你有所感悟。现在,网上各种文章介绍着各种各样的设计模式。尽管你可能看懂了它的组织形式,却不一定能够融会贯通。阅读源码的过程,你能够真切的体会到一个设计模式的妙处。Google开源了Android这个珍贵的宝藏,阅读它的源码成为了我提高技术水平的方式。Android虽然为开发者提供了详细的文档,但是如果仅仅止步于SDK层,很多的问题你都会有”知道怎么处理,但是不知道原因”的感觉。我敬佩思想的创造人,因为有了思想,轮子可以再造,但是如果没有思想,轮子是不可能造出来的。

读再多的书,不如坐下来写两行代码有成效。编程是实践科学。实践是首要的,其次才是阅读。

读项目源码是一种非常好的学习方式.

你可能感兴趣的:([置顶] android进阶之路:大牛问答)