免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 13707 | 回复: 14
打印 上一主题 下一主题

作为一名合格的Android开发者,你还缺什么? [复制链接]

论坛徽章:
19
处女座
日期:2014-07-18 14:50:5415-16赛季CBA联赛之北京
日期:2019-09-16 15:39:1415-16赛季CBA联赛之上海
日期:2019-09-15 15:29:0415-16赛季CBA联赛之山西
日期:2017-03-09 10:58:232017金鸡报晓
日期:2017-02-08 10:33:212017金鸡报晓
日期:2017-01-10 15:13:2915-16赛季CBA联赛之深圳
日期:2016-12-15 17:55:53C
日期:2016-10-25 16:00:1515-16赛季CBA联赛之新疆
日期:2016-07-21 14:02:0415-16赛季CBA联赛之江苏
日期:2016-06-30 12:15:04shanzhi
日期:2016-06-17 17:59:31平安夜徽章
日期:2015-12-26 00:06:30
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-12-05 00:27 |只看该作者 |倒序浏览
获奖名单已公布:http://bbs.chinaunix.net/thread-4233388-1-1.html

话题背景
      随着移动互联网的快速发展,需求大量Android开发人员,很多程序开发者涌入Android应用开发领域。但是目前Android应用开发者技术水平良莠不齐,导致应用在使用时产生大量不必要的垃圾文件占用ROM空间,以及各种毫无必要的后台自动启动和进程占用系统内存。Android应用宽松的审核机制,使得这些不规范APP得以流向消费者,造成极差的用户体验。
      在Android应用开发行业内,很多初、中级工程师甚至高级工程师由于某些原因都还停留在功能实现层面,甚至对设计模式、面向对象知之甚少,因此很少考虑代码的设计问题。Android是一个开源的系统,很多优秀的思想、架构、设计模式必然在它的源码中得以体现,学习这些优秀的实现正是每个开发人员成长过程中的重要一步。
      很多Android源码的实现都有设计模式的影子,对于很多从事Android开发的朋友来说,阅读以及学习Android源码的最大障碍往往是对其设计的理解而非源码本身。很多时候能看懂一段源码但是却又感觉没看懂,看懂的是一段源码的逻辑而不懂的则是为什么逻辑会是这样,对于开发者来说,知其然却又不知其所以然往往是编程进阶中最大的阻力,欢迎大家畅所欲言。



讨论话题
1、设计模式重要吗,分享自己是如何学习设计模式的?       
2、正所谓学以致用。在学习Android源码的优秀设计之后,我们如何将设计模式运用在Android开发上成了至关重要的问题。你有类似的经历吗?请分享一些经验和技巧。
3、编程思想都是相通的。通过学习Android源码,剖析设计模式的运用,让开发者把设计与模式重视起来,提升自己的设计能力与代码质量。这条路行得通吗,你是怎样看待这个问题的?
4、我们都阅读过别人的源代码,请分享一下阅读代码的方法和经验。



讨论时间
2015-12-07至2016-01-07



活动奖励
活动结束后将选取4名讨论精彩的童鞋,每人赠送一本《Android源码设计模式解析与实战》图书一本作为奖励。



奖品简介

作者: 何红辉    关爱民   
出版社:人民邮电出版社
出版日期:2015 年11月
开本:16开
页码:494
版次:1-1
本书详情:http://www.epubit.com.cn/book/details/4179



内容简介
本书专门介绍Android源代码的设计模式,共26章,主要讲解面向对象的六大原则、主流的设计模式以及MVC和MVP模式。主要内容为:优化代码的首步、开闭原则、里氏替换原则、依赖倒置原则、接口隔离原则、迪米特原则、单例模式、Builder模式、原型模式、工厂方法模式、抽象工厂模式、策略模式、状态模式、责任链模式、解释器模式、命令模式、观察者模式、备忘录模式、迭代器模式、模板方法模式、访问者模式、中介者模式、代理模式、组合模式、适配器模式、装饰模式、享元模式、外观模式、桥接模式,以及MVC的介绍与实战和MVP应用架构模式。每个章节都对某个模式做了深入的分析,并且会对模式相关的技术点进行深入拓展,让读者在掌握模式的同时学习到Android中的一些重要知识,通过实战帮助读者达到学以致用的目的,且能够将模式运用于项目中,开发出高质量的程序。



试读样章
40671_迷你书_Android源码设计模式解析与实战.pdf (929.47 KB, 下载次数: 88)

论坛徽章:
1
天蝎座
日期:2013-12-06 18:23:58
2 [报告]
发表于 2015-12-07 12:37 |只看该作者
设计模式太重要了,要想不写面条程序,会点模式那是相当有必要的

求职 : Linux运维
论坛徽章:
19
CU大牛徽章
日期:2013-03-13 15:15:0815-16赛季CBA联赛之山东
日期:2016-10-31 10:40:10综合交流区版块每日发帖之星
日期:2016-07-06 06:20:00IT运维版块每日发帖之星
日期:2016-02-08 06:20:00数据库技术版块每日发帖之星
日期:2016-01-15 06:20:00IT运维版块每日发帖之星
日期:2016-01-15 06:20:00IT运维版块每日发帖之星
日期:2016-01-10 06:20:00黄金圣斗士
日期:2015-11-24 10:45:10IT运维版块每日发帖之星
日期:2015-09-01 06:20:00IT运维版块每日发帖之星
日期:2015-08-13 06:20:00IT运维版块每日发帖之星
日期:2015-07-30 09:40:012015年亚洲杯之巴勒斯坦
日期:2015-05-05 10:19:03
3 [报告]
发表于 2015-12-07 15:48 来自手机 |只看该作者
好活动,这方面不熟,先支持起来

论坛徽章:
9
IT运维版块每日发帖之星
日期:2015-08-27 06:20:00IT运维版块每日发帖之星
日期:2015-10-14 06:20:00IT运维版块每日发帖之星
日期:2015-10-23 06:20:00IT运维版块每日发帖之星
日期:2015-11-22 06:20:00操作系统版块每周发帖之星
日期:2015-12-02 15:01:04白银圣斗士
日期:2015-12-07 18:37:03数据库技术版块每日发帖之星
日期:2015-12-10 06:20:00数据库技术版块每周发帖之星
日期:2016-02-03 16:55:092017金鸡报晓
日期:2017-01-10 15:19:56
4 [报告]
发表于 2015-12-07 16:05 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
9
IT运维版块每日发帖之星
日期:2015-08-27 06:20:00IT运维版块每日发帖之星
日期:2015-10-14 06:20:00IT运维版块每日发帖之星
日期:2015-10-23 06:20:00IT运维版块每日发帖之星
日期:2015-11-22 06:20:00操作系统版块每周发帖之星
日期:2015-12-02 15:01:04白银圣斗士
日期:2015-12-07 18:37:03数据库技术版块每日发帖之星
日期:2015-12-10 06:20:00数据库技术版块每周发帖之星
日期:2016-02-03 16:55:092017金鸡报晓
日期:2017-01-10 15:19:56
5 [报告]
发表于 2015-12-07 16:06 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
32
CU大牛徽章
日期:2013-05-20 10:45:13每日论坛发贴之星
日期:2015-09-07 06:20:00每日论坛发贴之星
日期:2015-09-07 06:20:00数据库技术版块每日发帖之星
日期:2015-12-13 06:20:0015-16赛季CBA联赛之江苏
日期:2016-03-03 11:56:13IT运维版块每日发帖之星
日期:2016-03-06 06:20:00fulanqi
日期:2016-06-17 17:54:25IT运维版块每日发帖之星
日期:2016-07-23 06:20:0015-16赛季CBA联赛之佛山
日期:2016-08-11 18:06:41JAVA
日期:2016-10-25 16:09:072017金鸡报晓
日期:2017-01-10 15:13:292017金鸡报晓
日期:2017-02-08 10:33:21
6 [报告]
发表于 2015-12-07 17:18 |只看该作者
1、设计模式重要吗,分享自己是如何学习设计模式的?
设计模式当然很重要,因为设计模式原本就来源于项目开发实践经验的总结。
正如设计模式的定义所描述的,设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的;设计模式使代码编制真正工程化;设计模式是软件工程的基石脉络,如同大厦的结构一样。
学习设计模式,最早我看的是Gang of Four写的那本《Design Patterns: Elements of Reusable Object-Oriented Software》,他们应该算是设计模式理论的鼻祖。后来陆续被众多国内外高手扩展,有了更多的模式。

2、正所谓学以致用。在学习Android源码的优秀设计之后,我们如何将设计模式运用在Android开发上成了至关重要的问题。你有类似的经历吗?请分享一些经验和技巧。
Android开发有很多技巧是需要在项目开发中逐步积累经验的。Google的文档中是没有的,Android出版物也未必有。
比如界面上图片的显示,在Android 2.x时期,内存通常是256MB,CPU为单核且主频很低,速度也很慢,如何快速加载图片就很有讲究了。要能够快速缓存图片,UI界面切换到新的Activity后,缓存的图片是否从内存清除,这些都需要详细考虑。
而到了现在,CPU已经发展到八核,内存也升到了3GB,界面上图片的显示逐步就不是问题了。但是,要让APP的体验效果好,仍然可以设计一些优化策略,比如视频类APP的界面,视频列表界面显示的海报图片,加载的是压缩后的小图片,当点击详情后才会显示高清图片,这样无疑效果会好很多。
相似的情况还有很多。

3、编程思想都是相通的。通过学习Android源码,剖析设计模式的运用,让开发者把设计与模式重视起来,提升自己的设计能力与代码质量。这条路行得通吗,你是怎样看待这个问题的?
肯定行得通的。学习设计模式,并在项目开发中进行思考,看有些模式是否适用。
不过也别全信设计模式,不要把设计模式当成圣经。
设计模式毕竟是实践经验的总结,学好它是很有必要的。
但也不要一切唯设计模式遵循,生搬硬套设计模式有时候会适得其反。关于这一点可以看看“反模式”的内容,反模式就是在实践设计模式中的反思。比如:
剪贴编程(Copy-n-paste programming):宁愿拷贝(并修改)现存代码而非创造通用的解决方案。
反抽象:需要的功能并不暴露给用户,导致用户要在较高层次重新实现一些功能。
四不像:往往一个设计模型可以暴露不同的接口给用户,不同的接口表现了模型的不同方面。然而把不同方面的功能混在一起是常见的不良设计。

4、我们都阅读过别人的源代码,请分享一下阅读代码的方法和经验。
读成熟开源项目的代码或者读高手写的代码相对要愉快些。
读新人写的代码(项目组做代码审查时),这是一种痛苦。
我读别人的代码会在代码中加入自己特定的注释。有时候还会在笔记上记一下。

论坛徽章:
223
2022北京冬奥会纪念版徽章
日期:2015-08-10 16:30:32操作系统版块每日发帖之星
日期:2016-05-10 19:22:58操作系统版块每日发帖之星
日期:2016-02-18 06:20:00操作系统版块每日发帖之星
日期:2016-03-01 06:20:00操作系统版块每日发帖之星
日期:2016-03-02 06:20:0015-16赛季CBA联赛之上海
日期:2019-09-20 12:29:3219周年集字徽章-周
日期:2019-10-01 20:47:4815-16赛季CBA联赛之八一
日期:2020-10-23 18:30:5320周年集字徽章-20	
日期:2020-10-28 14:14:2615-16赛季CBA联赛之广夏
日期:2023-02-25 16:26:26CU十四周年纪念徽章
日期:2023-04-13 12:23:10操作系统版块每日发帖之星
日期:2016-05-10 19:22:58
7 [报告]
发表于 2015-12-07 17:38 |只看该作者
感觉学过数据结构的同学,写代码的思维确实会严谨一些



不是开玩笑,

论坛徽章:
15
2015七夕节徽章
日期:2015-08-21 11:06:172017金鸡报晓
日期:2017-01-10 15:19:56极客徽章
日期:2016-12-07 14:07:30shanzhi
日期:2016-06-17 17:59:3115-16赛季CBA联赛之四川
日期:2016-04-13 14:36:562016猴年福章徽章
日期:2016-02-18 15:30:34IT运维版块每日发帖之星
日期:2016-01-28 06:20:0015-16赛季CBA联赛之新疆
日期:2016-01-25 14:01:34IT运维版块每周发帖之星
日期:2016-01-07 23:04:26数据库技术版块每日发帖之星
日期:2016-01-03 06:20:00数据库技术版块每日发帖之星
日期:2015-12-01 06:20:00IT运维版块每日发帖之星
日期:2015-11-10 06:20:00
8 [报告]
发表于 2015-12-07 19:13 |只看该作者
感觉就是缺钱了

论坛徽章:
1
摩羯座
日期:2013-11-29 18:02:31
9 [报告]
发表于 2015-12-09 11:51 |只看该作者
本帖最后由 CUTianrui007 于 2015-12-28 14:33 编辑

1、设计模式重要吗,分享自己是如何学习设计模式的?     
设计模式非常重要,它是软件设计的一个分水岭,直接体现了软件工程师的能力高低。设计模式是软实力,
不像其它硬性知识那样容易掌握。学习设计模式我的心得是,以写为辅,以想为主。有点像心法,是靠时间
积累,不断感悟的。因为设计模式本身不难,难得是如何深入理解并灵活应用,在把握住设计模式的根本原
则的基础上,再学习就比较简单了。
另外,设计模式学习不能局限于面向对象语言如C++和Java本身,也要在C中,在其它语言中体现出来。


2、正所谓学以致用。在学习Android源码的优秀设计之后,我们如何将设计模式运用在Android开发上成了至关重要的问题。你有类似的经历吗?请分享一些经验和技巧。
真正理解设计模式的本质,从根本上把握其核心思想,这样才可以真正运行于心,不受模式的形式所束缚。
比如拿最基本的Andorid界面显示来说,因为Andorod的屏幕大小各异,这样就不能像Windows上面的界面一样,
直接通过XY坐标来表示,所以提供了一个中间的布局控制。通过View和ViewGroup使用组合模式实现。


3、编程思想都是相通的。通过学习Android源码,剖析设计模式的运用,让开发者把设计与模式重视起来,
提升自己的设计能力与代码质量。这条路行得通吗,你是怎样看待这个问题的?
我觉得设计模式的学习要和其它知识学习并重,不能为了模式而模式。设计模式说白了也就是对相关知识的整体的、灵活的组织应用,离开了其它知识,比如Android的界面、底层、通信相关的知识,设计模式就成了无源之水了。所以设计模式和Android是互为表里的,另外,Android的源码都是大牛所写,一定有值得借鉴的地方,在设计模式上面也一定有出彩之处,所以我觉得结合设计模式学习算是一个捷径。

4、我们都阅读过别人的源代码,请分享一下阅读代码的方法和经验。
我觉得看代码要注意以下几点:
A:一定要有大局观,从大处入手,把握住其总体思想,这样才不被淹没在代码海洋中。
B:注意小细节,从小细节处看到其思想火花。学习其技巧性,比如在学习MFC时,重点看看其宏使用技巧。
C:对比,有比较才有鉴别,所以要综合对比各个源代码的差异,比如比较Android和PC机Java代码差异,
比较和C++代码的差异,从中得到一些本质的东西。

论坛徽章:
80
20周年集字徽章-庆
日期:2020-10-28 14:09:1215-16赛季CBA联赛之北京
日期:2020-10-28 13:32:5315-16赛季CBA联赛之北控
日期:2020-10-28 13:32:4815-16赛季CBA联赛之天津
日期:2020-10-28 13:13:35黑曼巴
日期:2020-10-28 12:29:1520周年集字徽章-周	
日期:2020-10-31 15:10:0720周年集字徽章-20	
日期:2020-10-31 15:10:07ChinaUnix元老
日期:2015-09-29 11:56:3020周年集字徽章-年
日期:2020-10-28 14:14:56
10 [报告]
发表于 2015-12-09 16:07 |只看该作者
1、设计模式重要吗,分享自己是如何学习设计模式的?   
    无论做什么开发,设计模式是每个程序语言都会使用的。从而可以想象他的重要性了。
    设计模式是很虚的东西。在实际的项目中才能发挥其作用。因此和项目目标,工作环境,语言工具又有很大关系。
当然,无论什么设计模式,都有一些共通的东西。例如追求效率,和简单化。简单化不代表规模变小了,而是每个信息点或代码片,或局部逻辑,更为独立和可描述。相互之间的关联度更明晰,谈不上关联度是高还是低。自己当初刚工作结束设计模式,自己确实是买了一本相关语言的设计的书来看的,的确很有收获,最重要的还是如何使用,在具体的项目中,在具体的代码。

2、正所谓学以致用。在学习Android源码的优秀设计之后,我们如何将设计模式运用在Android开发上成了至关重要的问题。你有类似的经历吗?请分享一些经验和技巧。

如何学以致用,是一个很大的问题。首先是你要先了解一些设计模式才谈得上使用,了解的之后,就在写代码的时候想一想能不能使用什么设计模式来实现这一功能的。然后在试着做出来看看效果,这样就能在边开发边使用了,当然前期效率可能低一些,但是后期会有很大的收获的,有些可能是你意想不到的收获。

3、编程思想都是相通的。通过学习Android源码,剖析设计模式的运用,让开发者把设计与模式重视起来,提升自己的设计能力与代码质量。这条路行得通吗,你是怎样看待这个问题的?

这的确是一个很好的途径,本人就是通过这个方法学习编程思想的。有些模式只有越用越有心得,这样你在下次还会使用这个模式。这样一个模式一个模式的使用和练习。达到学习更多的编程思想。并应用到不同的开发语言开发中。

4、我们都阅读过别人的源代码,请分享一下阅读代码的方法和经验。

阅读别人的代码有时候很痛苦有时候也很开心。只要还是看骨灰级人物写的代码,这样提升的空间很大,像一般的代码可能很痛苦,没有任何章法。所以看别人的源码也要有所选择的看,经常看看大师的代码也是一种享受啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP