转载: 项目经验分享

简介: 1.是不是应该把数据刷新操作放在onResume()中?     @Override     public void onResume() {         super.onResume();         refresh();     } ​           public  void refresh(){         initData();     } 这样不合适,在什么时候刷新是根据需要来的,并不是每次onResume()的时候都需要刷新。

1.是不是应该把数据刷新操作放在onResume()中?

    @Override
    public void onResume() {
        super.onResume();
        refresh();
    }
          public  void refresh(){
        initData();
    }
这样不合适,在什么时候刷新是根据需要来的,并不是每次onResume()的时候都需要刷新。
假如用户关闭了屏幕后再打开屏幕,页面会刷新,这样没有必要,也许几秒中前刚刷新过。

 

网易新闻客户端就不是这样的。

 

2.关于activity,fragment与弹窗
如果一个activity中有一个ViewPager,ViewPager中加载了两个fragment,这时要特别注意的是,两个fragment是同事加载的,虽然只显示了一个fragment的界面,但是另外一个也是加载了的,所以如果当前显示的fragment没有弹窗,但是另一个fragment弹窗了也会显示到当前activity中。
 
3.copy布局文件和复用布局文件的优缺点
重用优点:减少布局文件个数,如果几个界面的布局问个始终一致,那么可以使用
重用缺点:如果其中一个布局文件有所改动,那么其他页面将不能再使用,因为布局文件中没法使用 if else 。

 

copy优点:一个页面对应一个xml文件,完全解耦
copy缺点:会大量出现重复的代码

 

总结:需求随时都可能变动,还是把布局解耦比较好

 

4.优化代码的思路
哪段代码使用的频率越高就应该先优化哪段代码,这样会事半功倍!
 
5.千万要保护好自己的代码
昨天跟我说某某模块的接口改了,要重新做,我做了。
今天来的时候又跟我说暂时不改了,还是用之前的代码。

 

天啦,幸亏我没有删掉之前的代码,不然死的心都有了。
so,程序猿们,保护好你自己的代码。

 

6.模板方法没有写好会很悲剧
模板方法写好了,比如BaseAcitivity,然后开始写它的子类,忽然调试的时候发现模板的方法有问题,比如说要调整方法调用的顺序或者改变方法调用的位置,这下好了,你的N个子类都是按照之前的模板方法去写的,so 你就一个一个去修改子类吧。

 

另外,要千万注意别人修改了公用的模板方法,要及时pull和push代码,不然自己写的很多代码都白费了。

 

7.不要频繁重复的调用数据
比如你要获取10-个新闻列表数据,而且你要同一时间去获取,那就得创建10次Http链接,这很费时的。最好的方法是让服务器把10个新闻列表数据写在一个xml文件中,这样会显著的节约时间。wo
so,当进行远程调用时,从数据提供者反复调用取得数据会严重影响性能,比如数据库调用、Web服务调用或者其他编解码调用。这种情况下可以使用Facade模式一次获得所有所需的数据,尽可能减小连接成本和在网络上传输数据的成本。

 

8.类中的成员变量前加"m"
本类的所有成员变量前加"m",好处是:敲"m"就能提示本类的一些成员变量
 
9.一定要有自己的技术博客和帖子
别人的博客和帖子是别人的,要有自己的,不断补充,不断完善,以后再查看的时候才方便。
另外 ,强迫自己写技术博客和帖子就是强迫自己总结,加深技术知识的印象。
 
10.一个类应该纯粹,一个类就只应该做一件事情
比如写一个瀑布流类(自定义View),干了很多事情,布局了瀑布流模型,设置了刷新功能。
这不应该在一个类中出现,瀑布流就是瀑布流,刷新是另外一回事,获取数据又是另外一回事!不要混在一起,写在一个类中!
一个类应该是纯粹的,尽量的简单,就是干一件事情。完成一个功能我们可以把多个类组合在一起,或者引用等等方法。
好处在于拆卸方便,当不需要什么功能的时候能快速明晰的剥离掉。如果什么代码都混在一块那是灰常难以剥离的。
目录
相关文章
|
4月前
|
SQL Java API
《Java开发手册灵魂13问》正式上线,带你剖析阿里巴巴的开发细节
一线大厂怎么用Java?看阿里技术专家给你分析!《〈Java开发手册(泰山版)〉灵魂13问》电子书正式上线带你剖析阿里巴巴一线团队开发思维。
|
7月前
|
架构师 Java 中间件
首版发布!2023年AlibabaJava中高级架构师面试手册(对标P5-P8)
2023年AlibabaJava中高级架构师面试手册(对标P5-P8) 一年一度的金九银十面试招聘季已经到来,最近好多粉丝后台私信凯撒想要我整理一份最新的Java面试手册,我去各大程序员网站搜罗了这一份2023年AlibabaJava中高级架构师面试手册(对标P5-P8)
|
9月前
|
Java 应用服务中间件 Nacos
Java后端项目排错经验分享
Java后端项目排错经验分享
173 0
|
12月前
阿里抱真:工作7年,我的10条经验总结
阿里抱真:工作7年,我的10条经验总结
346 0
|
Linux
阿里云使用经验分享
阿里云使用经验分享
329 0
阿里云使用经验分享
|
架构师 Java 中间件
首版发布!2022年AlibabaJava中高级架构师面试手册(对标P5-P8)
最近好多粉丝后台私信凯撒想要我整理一份最新的Java面试手册,我去各大程序员网站搜罗了这一份2022年AlibabaJava中高级架构师面试手册(对标P5-P8),现在就和我一起看一下吧!
首版发布!2022年AlibabaJava中高级架构师面试手册(对标P5-P8)
|
敏捷开发 运维 监控
技术分享 | 想测试入门就必须要懂的软件开发流程
技术分享 | 想测试入门就必须要懂的软件开发流程
|
小程序 测试技术 项目管理
技术分享 | 软件测试入门必会-流程管理平台
技术分享 | 软件测试入门必会-流程管理平台
|
敏捷开发 运维 监控
技术分享 | 想测试入门就必须要懂的软件开发流程
从事软件测试行业,每天面对的被测对象都是软件。如果想要更好的去完成测试工作,首先需要对被测对象,也就是对软件要有基本的了解。 ## 软件 与计算机系统操作有关的计算机程序、可能有的文件、文档及数据。 程序好理解,就是可以操作的产品。比如 wps、微信、QQ、网页等等这些都是程序。比如说需求文档、设计文档、用户手册这些东西都属于文档。在页面中展示的,还有用户输入的内容这些都是数据。 所以说程
|
SQL NoSQL Java
毕业论文项目本地部署实操
 前面写了一个关于毕业论文如何写的专栏,主要有这么多篇内容。小伙伴问我代码源码,准备提供给大家,并且实操一下,把项目在本地运行起来。
190 0