关闭
当前搜索:

从烂代码到重构

我们在做任何系统的时候,都不要指望系统一开始时需求确定,就再也不会变化,这是不现实也不科学的想法,而既然需求是一定会变化的,那么如何在面对需求的变化时,设计软件的可以相对容易修改,不至于说,新需求一来,就要把整个程序推倒重来。 够用的代码 曾经一个同事跟我吐槽过,队友工作四五年了,代码质量依然不咋样,命名不规范,逻辑嘛,除了自己外,谁也看不懂,注释更是凤毛麟角,但是这样的代码却能正常运行...
阅读(1828) 评论(0)

基本的规范和约束(一)

一些基本的规范和约束,几乎每个团队都会有一套自己的准则,一方面统一标准,增加可读性,便于相互间协作开发。另一方面也方便团队成员离职后出现bug,后来者也能更快的去定位并解决问题,降低维护成本,提高工作效率,可维护性大大提升。杂乱无章的代码实现一个大功能,让自己看了都嫌弃的代码,对于后来者去维护,无疑会亲切的问候各路祖宗。一个好的编码习惯,属于一个合格程序员的自我修养,于己于人,百利而无一害。...
阅读(2787) 评论(7)

如何更加安全、高效地选择开源项目(内附详解)

前言在平时的开发过程中,难免会遇到这样那样的难题,或者一些繁琐且不想纯手工完成的功能,对于这些问题,解决的姿势有很多种,可以通过同事间的交流、上网查资料、去官网找文档等,随着开源的推动和完善,寻找合适的开源项目支持,绝对是一个很好的方法。如今市面上的开源项目鱼龙混杂,并且有一些项目早已停止更新维护,跑demo的时候,怎么用怎么正确,一放入项目,却发现哪哪都不合适,比如低版本下才可以运行,高版本删去一...
阅读(16487) 评论(7)

硬解码与软解码的选择

在上篇《快速集成一个视频直播功能》 中提到,“确定需求后进行了一堆调研,最后在B站的 ijkplayer 与 Google 的 ExoPlayer 中做出了选择”,当时毅然决然的选择 ExoPlayer 原因有很多,如有兴趣,可关注我的gitchat接下来要分享的内容,微信扫描二维码便可以进入报名,《如何更加安全、高效地选择开源项目》 ,会详细介绍如何更好的选择一个第三方开源。不多说,本篇先抛开稳定...
阅读(1196) 评论(0)

如何更加安全、高效地选择开源项目

在平时的开发过程中,难免会遇到这样那样的难题,或者一些繁琐且不想纯手工完成的功能,对于这些问题,解决的姿势有很多种,可以通过同事间的交流、上网查资料、去官网找文档等,随着开源的推动和完善,寻找合适的开源项目支持,绝对是一个很好的方法。如今市面上的开源项目鱼龙混在,并且有一些项目早已停止更新维护,跑demo的时候,怎么用怎么正确,已放入项目,却发现哪哪都不合适,比如低版本下才适合,高版本删去一些方法,...
阅读(1800) 评论(7)

快速集成一个视频直播功能

前言前段时间的工作安排,需要做一个视频监控的功能,其实就是采用 m3u8 做一个直播。确定需求后进行了一堆调研,最后在B站的 ijkplayer 与 Google 的 ExoPlayer 中做出了选择,对于为啥选择了 ExoPlayer ,后面会做具体分析,目前先留点悬念,目前根据选择 ExoPlayer,从最初调研到集成成功打算做一个专题,分别从众多框架中为何选择了 ExoPlayer、硬解码与软...
阅读(21242) 评论(14)

四大线程池详解

new Thread 的弊端首先看一段代码:/** * Created by Zero on 2017/8/30. */ public class ThreadTest { public static void main(String[] args) { while (true) { new Thread(new Runnable() {...
阅读(26457) 评论(16)

head first Thread.join()

不使用Thread.join() 测试线程先上代码:/** * Created by Zero on 2017/8/23. */ public class TestJoin implements Runnable { public static int a = 0; @Override public void run() { for (int i = 0;...
阅读(3466) 评论(4)

多线程中断机制

在 java中启动线程非常容易,大多数情况下是让一个线程执行完自己的任务然后自己停掉。一个线程在未正常结束之前, 被强制终止是很危险的事情. 因为它可能带来完全预料不到的严重后果,比如会带着自己所持有的锁而永远的休眠,迟迟不归还锁等。 在当前的api中,Thread.suspend、Thread.stop等方法都被Deprecated了,线程只能用interrupt中断,而且不是立刻中断,只是发了一...
阅读(10443) 评论(17)

给最真的自己加上static final

有时候改变,并不一定是成长,给最真的自己加上static final属性,保留一点最真实的自己。 前段时间,技术交流群里的一个好基友波哥,彻底抛弃Android转向javaEE的怀抱,做得很彻底,直接删了所有的Android资料,很有一种破釜沉舟之势,很欣赏这种方式。回想了下,类似这种事情,我以前做得少吗?我一直很喜欢那时候的自己,凭借一股热情和任性,去做一件认为对的事,坚信自己一定会做好,不用...
阅读(5189) 评论(19)

如果不从事编程,我可以做什么?

第一篇:勿忘初心,继续coding 第二篇:编程路上,送给处于迷茫中的你和自己 第三篇:编程路上,对于迷失者的一些小小建议 第四篇:如果不从事编程,我可以做什么? 在校期间踏入工作的不到五年时间里,曾多次问自己,如果有一天我不做开发了,我能做什么?相信这个问题,一直困扰着很多人。一入码海深似海,从此天涯是路人。想起在校期间,一次和学委出去吃饭,她问了我一句,如果毕业后你不做软件,你会去做什么?当时不...
阅读(13414) 评论(64)

深入Thread.sleep

一直都说,Threed.sleep是不会释放锁,而wait是释放锁的(对象锁),现理论上来分析一下啊。由于CPU分配的每个线程的时间片极为短暂(一般为几十毫秒),所有CPU通过不停地切换线程执行,这样就给程序员一种错觉,以为多个线程是在同时执行。sleep就是正在执行的线程主动让出cpu,cpu去执行其他线程,在sleep指定的时间过后,cpu才会回到这个线程上继续往下执行,如果当前线程进入了同步锁...
阅读(4242) 评论(8)

通过注解完美解决混淆问题

混淆是代码安全一个很有效的措施,防止代码在市场中裸奔,Android studio通过写proguard-rules.pro文件来混淆,mainfest中的类不混淆,四大组件和Application的子类和Framework层下所有的类默认不会进行混淆,对于四大组件是不可以混淆的,之前还有人和我争论过,manifest中需要的是配置完整路径,一旦混淆了,路径或者名称就变了,怎么还能找到?第三方会提供...
阅读(4083) 评论(4)

编程路上,对于迷失者的一些小小建议

前几天,在半梦半醒中写了一篇《编程路上,送给处于迷茫中的你和自己》,没想到还挺受欢迎,同时收到了一些朋友的留言和感谢,意外之余也挺开心。大多人都会经历的迷茫其实这也都难免的,现在计算机技术更新那么快,日新月异,各种技术、各种语言爆发式增长,我一个好朋友在小日本(没有鄙视的意思,习惯这么称呼了)从事开发工作,经常和我说想转行,做不下去了,公司一会让她学PHP,一会让她做HTML+CSS,过一段时间又是...
阅读(11355) 评论(21)

线程池原理

面向对象编程中,对象创建和销毁是很费时间的,因为创建一个对象要获取内存资源或者其它更多资源。在Java中更是如此,虚拟机将试图跟踪每一个对象,以便能够在对象销毁后进行垃圾回收。所以提高服务程序效率的一个手段就是尽可能减少创建和销毁对象的次数,特别是对一些很耗资源的对象创建和销毁。如何利用已有对象来服务就是一个需要解决的关键问题,其实这就是一些”池化资源”技术产生的原因。比如大家所熟悉的数据库连接池就...
阅读(9080) 评论(5)

编程路上,送给处于迷茫中的你和自己

在迷茫中入行从离校算起,踏入社会都快五年了,在最初的浑浑噩噩中度过了半年,终于在2013年上半年,我开启了编程这条不归路,或许你不会相信,我刚入行的时候,九九乘法表都不会写,甚至一个处了多年的哥们都嘲笑我,一个连java都不会的人,居然跑去做Android,现在想起,内心还是一阵心酸,或许也是那句话,才让我更加坚定的走下去,跪着也要走完自己选择的路。刚出来找工作的时候,那真的就是我的辛酸史,我是住在...
阅读(9696) 评论(50)

防侧漏之弱引用的使用

本文依然基于github上的开源框架为基础,看过之前发的 最新Retrofit + RxJava + MVP 那篇blog的讲述,应该明白框架里面的大概,一步步兑现之前的承诺,会写上十篇左右的帖子来讲解里面的要点和难点,今天主要讲述的是baseActivity里面的WeakReference。 最初入行的时候,使用handler一般都是如下方式: private Handler handl...
阅读(3871) 评论(4)

数据请求优化之容器缓存

今天qiugong兄弟喜得贵子,升级当爸,开心之余,决定写篇博客庆祝下,之前忙着一些琐事,自从上篇博客最新Retrofit + RxJava + MVP 发表后,原本打算写上十篇左右贴子来讲述之前传到github上的framework,却拖了一个多月还未动笔,惭愧。对于日常开发中,有时候很多接口并不需要多次调用,只需要访问一次就够,比如省、市、区三级目录,如果把这个放在本地,处理不当就会卡死,之前想...
阅读(3105) 评论(6)

最新Retrofit + RxJava + MVP

此处搭建的框架是目前最新版本,项目今天刚搭建好,(^__^) 嘻嘻……。 先撸上包: compile ‘com.jakewharton:butterknife:8.6.0’ compile ‘com.jakewharton:butterknife-compiler:8.6.0’ compile ‘io.reactivex.rxjava2:rxjava:2.1.0’...
阅读(3840) 评论(16)

Android混合开发,html5自动更新爬过的坑

现在使用混合开发的公司越来越多,虽然出现了一些新技术,比如Facebook的react native、阿里的weex,但依然阻挡不了一些公司采用h5的决心,当然,这也是从多方面考虑的选择。在三年前就使用过html5混合开发,当时做的是一款贵金属软件,涨跌五线谱、乾坤交易,还有各个股市的信息,那时候还是上波牛市爆发的前夕,哎。。。最近公司让用h5混合开发,一些页面和功能有h5分担,最初时候放在本地as...
阅读(5164) 评论(0)
46条 共3页1 2 3 下一页 尾页
    个人资料
    • 访问:263527次
    • 积分:2994
    • 等级:
    • 排名:第13891名
    • 原创:46篇
    • 转载:0篇
    • 译文:0篇
    • 评论:329条
    QQ交流群

    Android路上

    611566797
    博客专栏
    我的公众号