热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

个人Android开发习惯[转载]

以下内容转载自牛人博客,很多牛叉内容,请点击:http:www.stay4it.com?p281Android三年,现在写代码,真心没什么很大的兴趣,每天都是优化代码,优化框架

 

以下内容转载自牛人博客,很多牛叉内容,请点击:http://www.stay4it.com/?p=281

 

Android三年,现在写代码,真心没什么很大的兴趣,每天都是优化代码,优化框架,技术支持。非常枯燥乏味。

一个项目做了大半年,才做了1/4,光src就有3M了。对这种大型app,我表示很无奈。什么时候才能到个头。

不过感谢我的line manager,让我专心做架构,还有我老大给予我技术支持。

写代码的时候三要素:Stable,Flexible,Readable

 

现在我搭个小型app的框架,大概3小时(复制,粘贴)

1.HTTP框架,用自己的,

2.ActionBarSherlock ,集成actionbar,我还是比较喜欢4.0风格,现在做的app都遵守标准的4.0

3.重写ActionBar Style , 更换主题样式。

4.图片lib(Android-Universal-Image-Loader),最近找了个不错的。

5.下拉刷新,改的开源的,增加下拉和上拉的区分回调,链接不记得了。我博客里有。

6.瀑布流,最近也碰到的牛x的。PinterestLikeAdapterView 不过代码我也改过了,在onscroll里加载更多,回调。发现下拉刷新的方式都是一样的。。。

7.数据库,自己写的框架太大了,基本手写。ormlite没试过,db4o,perst太小众,不怎么灵活。

8.BaseActivty,BaseFragment,BaseFragmentActivity. 很多时候有基类是非常好的事,逻辑都在基类里写好,子类只要改下UI布局就好了。

9.工具类。

10.复制粘贴,一个项目搭好了。

 

我喜欢把UI和逻辑拆开,如果拆不开,要么弃用,要么重写。不然以后维护没人能看懂,可别提改bug了。

不管team有多少人,一开始写代码尽量写伪代码(//TODO),把整体逻辑写完,TODO的地方慢慢加上,一个Activity就写完了。而且如果不做了,或者让别人来做,能很快顺着你的思路继续下去。如果你有很好的画流程图的习惯。把它们变成TODO试试。你会发现代码写起来很轻松。把写代码当成一种享受。当我看到别人在Activity有一堆算法逻辑的时候,简直是噩梦。如果team都能按照这个标准,效率至少提高50%。

对于新手来说,借鉴别人的sourcecode不是越多越好,整天有人问,这个项目的那个方法怎么用。你连看懂的资质都没有,到时候出bug了,谁来帮你fix。再者需求不是生搬硬套,别人的源码拿来还要改的,那么怎么改?建议好好分析一个项目,自己再试着写个简单的libary。你就明白怎么使用别人的框架,而且还会修改。框架本身就是为了更简化开发,所以很灵活,考虑的情景也很多。看明白一个框架,你的逻辑能力会变强,自己试着写个小框架哪怕是个小自定义view,动手能力也会变强。当然,如果简单基础知识都不理解的话,建议还是一步步来。

当你在写代码时,调用api,或者别人的框架,首先先想想你要什么样的功能,对方应该要提供给你什么功能,这个方法会叫什么样的名字,多YY,这样你会很惊喜的发现,它们确实有这样的方法。如果没有,自己加,或者换个思路。这样YY多了,你也会在写代码的时候想提供什么样的方法给外部。这样良性循环,写代码就真的是很容易的事情了。

当你成为team里的核心人员,如何去把控整个项目,梳理逻辑和框架,就需要平时多YY,多画流程图,多站在非技术的角度看整个项目,很难说有需求是无法实现的,也不能因为需求频繁改动而去抗拒。所以多想想在技术之外你还能为这个项目贡献什么。idea,沟通,协作。这样你在team扮演的角色越来越重要。升职,转行,随你。

最近没啥技术可以分享的,只能写写心得,仅供参考,可以交流,但真正问我什么问题怎么解决,我可能回答不了。术业有专攻,不是所有我都能解答,也不是所有都非得问他人才能有答案。


推荐阅读
  • 本文介绍了如何使用PHP向系统日历中添加事件的方法,通过使用PHP技术可以实现自动添加事件的功能,从而实现全局通知系统和迅速记录工具的自动化。同时还提到了系统exchange自带的日历具有同步感的特点,以及使用web技术实现自动添加事件的优势。 ... [详细]
  • 本文介绍了使用kotlin实现动画效果的方法,包括上下移动、放大缩小、旋转等功能。通过代码示例演示了如何使用ObjectAnimator和AnimatorSet来实现动画效果,并提供了实现抖动效果的代码。同时还介绍了如何使用translationY和translationX来实现上下和左右移动的效果。最后还提供了一个anim_small.xml文件的代码示例,可以用来实现放大缩小的效果。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 涉及的知识点-ViewGroup的测量与布局-View的测量与布局-滑动冲突的处理-VelocityTracker滑动速率跟踪-Scroller实现弹性滑动-屏幕宽高的获取等实现步 ... [详细]
  • GetWindowLong函数
    今天在看一个代码里头写了GetWindowLong(hwnd,0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • Google Play推出全新的应用内评价API,帮助开发者获取更多优质用户反馈。用户每天在Google Play上发表数百万条评论,这有助于开发者了解用户喜好和改进需求。开发者可以选择在适当的时间请求用户撰写评论,以获得全面而有用的反馈。全新应用内评价功能让用户无需返回应用详情页面即可发表评论,提升用户体验。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • 拥抱Android Design Support Library新变化(导航视图、悬浮ActionBar)
    转载请注明明桑AndroidAndroid5.0Loollipop作为Android最重要的版本之一,为我们带来了全新的界面风格和设计语言。看起来很受欢迎࿰ ... [详细]
  • 本文介绍了Android 7的学习笔记总结,包括最新的移动架构视频、大厂安卓面试真题和项目实战源码讲义。同时还分享了开源的完整内容,并提醒读者在使用FileProvider适配时要注意不同模块的AndroidManfiest.xml中配置的xml文件名必须不同,否则会出现问题。 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • 工作经验谈之-让百度地图API调用数据库内容 及详解
    这段时间,所在项目中要用到的一个模块,就是让数据库中的内容在百度地图上展现出来,如经纬度。主要实现以下几点功能:1.读取数据库中的经纬度值在百度上标注出来。2.点击标注弹出对应信息。3 ... [详细]
  • Ansem 最新雄文:软着陆后,加密市场下阶段趋势与核心叙事
    市场最糟糕的时候已经过去,以太坊合并前不太会看到新的低点;但仍需来自关注宏观市场的不确定风险。撰文:Ansem ... [详细]
author-avatar
孤l叶_991
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有