关闭

[置顶] 重构 改善既有代码的设计(读书笔记1)

// 复制,粘贴给程序带来维护上的巨大挑战,一段相同的代码,绝对不应该出现在不同的两个地方。当然,你可以这样做,但是这种代码一旦出现问题,你会记得要修改几个地方吗?    // 如果你发现自己需要为程序添加一个特性,而代码结构使你无法很方便地达成目的,那就先重构那个程序,使特性的添加比较容易进行,然后再添加特性。千万不要说有时间再做重构,有时间再做等于永远不会做(可以自己分析一下,首先,公司明...
阅读(1881) 评论(1)

[置顶] 深入分析 Java 中的中文编码问题

不知道大家有没有想过一个问题,那就是为什么要编码?我们能不能不编码?要回答这个问题必须要回到计算机是如何表示我们人类能够理解的符号的,这些符号也就是我们人类使用的语言。由于人类的语言有太多,因而表示这些语言的符号太多,无法用计算机中一个基本的存储单元—— byte 来表示,因而必须要经过拆分或一些翻译工作,才能让计算机能理解。我们可以把计算机能够理解的语言假定为英语,其它语言要能够在计算机中使用必...
阅读(1072) 评论(0)

[置顶] HTML5 Canvas 渐变

渐变 Context对象可以通过createLinearGradient()和createRadialGradient()两个方法创建渐变对象,这两个方法的原型如下: Object createLinearGradient(x1, y1, x2, y2); 创建一个从(x1, y1)点到(x2, y2)点的线性渐变对象。 Object createRadialGradien...
阅读(9016) 评论(5)

skip32

在某些应用场景下,需要对数字进行加密,skip32无疑是一种很实用的算法,网上有python的源码(https://bitbucket.org/anuraguniyal/skip32.py/src/403577f22bc2300b30b746526f52b6cf3c8cad51/skip32.py?at=master),可惜没有java的版本。下面送上自己写的java版本: import...
阅读(2783) 评论(0)

微信 SDK 不能 分享

说多了都是泪水,真的。 前段时间,做好了微信的分享功能,测试通过的,最近我又跑了一遍用例,发现不能启动微信客户端了,怎么都启动不了,日志如下:ignore wechat app signature validation。但是我的代码绝对没有动过,网上各种找原因。搞了老久,最后去官网文档一篇一篇的看,如下: http://open.weixin.qq.com/faq/?lang=zh_CN...
阅读(8986) 评论(12)

Android 百度地图 java.lang.UnsatisfiedLinkError

现在的App,都像跟风狗一样,只要是热门的功能,都加上,导致最后一个小小的App,有了聊天功能,有了分享功能,有了拍照功能,有了语音功能……,实力足够的话(或者网上有现成代码),就他妈差点做个操作系统进去了。 而其中一些功能,需要借助第三方,这就涉及到一个第三方选择的问题,我一般不喜欢小公司的产品,不是看不起小公司,主要是小公司的产品质量确实不能保证,而且产品的延续性得不到保障。 今天做给我们...
阅读(10474) 评论(10)

svn 上传 过滤

都很久没有写博客了,最近恶心了一把,新公司用的是git作为版本控制,但是结合微软的tfs使用,tfs的网络垃圾的一塌糊涂,整个代码的提交过程非常痛苦。 后来实在坚持不下去,就自己搭建了svn服务器,毕竟屌丝熟悉svn哇,服务器搭建好以后,代码上传过程中发现.so文件不能上传,查了一下,发现是svn服务器要设置上传过滤;很多文件,会被过滤掉,不能正常上传。设置如下: 通过终端打开配置文件...
阅读(10458) 评论(3)

代码腐烂

代码是程序员的一切,让我们快乐,让我们忧愁。看着优雅的代码,赏心悦目,看到恶心的代码,痛苦不堪。那么,是什么让代码变得恶心呢?          网上有如下解释:架构不合理,需求变更,进度压力…… 首先,我觉得任何架构都是合理的,也都是不合理的。一个基本架构,能够完成现有的功能,效率上也说得过去,那么,它就是一个合理的架构。任何一个架构,都会不断的经受需求变更的挑战,没有任何人可以一开始...
阅读(1790) 评论(1)

仿写 微信 界面

网上找的的一份源码,基本实现了微信的所有界面,对于Dialog,动画等UI元素的使用都有很好的借鉴意义。 下载地址:http://download.csdn.net/detail/coding_or_coded/4596271...
阅读(4496) 评论(0)

Android触屏事件流

一次触屏事件分为三个动作 ACTION_DOWN, ACTION_MOVE 和 ACTION_UP。 其中ACTION_DOWN和ACTION_UP在一次触屏事件中只会触发一次,ACTION_MOVE可能触发任意次(包括0次)。 主要响应触屏的组件有两种,一种是可以包含子元素的(ViewGroup比如LinearLayout),另一种是不能包含子元素的View(最底层的View比...
阅读(2964) 评论(2)

Android事件处理的两种模型

UI编程通常都会伴随事件处理,Android也不例外,它提供了两种方式的事件处理:基于回调的事件处理和基于监听器的事件处理。 对于基于监听器的事件处理而言,主要就是为Android界面组件绑定特定的事件监听器;对于基于回调的事件处理而言,主要做法是重写Android组件特定的回调函数,Android大部分界面组件都提供了事件响应的回调函数,我们主要重写它们就行。 一 基于监听器...
阅读(1339) 评论(0)

Android动画

一般简单的动画可以通过Android的帧动画或者渐变动画完成,但是这两种动画的控制粒度都比较大,一旦启动动画,就没有控制的余地。下面介绍另外一种简单的实现方式:通过Handler不停地给UI线程发送消息,当UI线程处理消息时,再调用绘制方法,达到动画的效果。这样,我们可以更加精细的控制动画。 关于帧动画或者渐变动画的例子:http://download.csdn.net/detail/cod...
阅读(892) 评论(0)

sqlite 升级

在项目不断推进的情况下,数据库表结构不满足需求是很常见的事情,这个时候,我们需要对数据库进行升级。 首先,不谈升级的具体实现,谈一下如何尽量避免升级,因为升级是一个痛苦的过程。在第一个发布版本中,数据库表结构要尽量稳定,也就是要多考虑,不要因为一点点需求变动,马上就要修改表结构,这样非常痛苦。我们也可以在可能变动的表中增加备用字段,这样,在需要新字段的时候,启用备用字段,而不用修改表结构。...
阅读(3073) 评论(1)

代码整洁之道

我从不一开始就想写下完美的代码,我想也没有人能办到。我只是不停的雕琢它们,直到我认为完美…… 命名: 1.名副其实,从名称上看出用途,如果需要注释来表达用途,你已经输了…… 2.具有前缀(后缀)的命名方式是上世纪的产品,以后就忘记吧…… 3.包的命名规范:域名+项目名+模块名/层名 4.类的命名规范:类的名字必须由大写字母开头,一个单词中的...
阅读(1250) 评论(0)

重构 改善既有代码的设计(读书笔记3)

// 在对象之间搬移特性 // 1.在程序中,有个方法与其本类之外的另一个类进行更多的交流,这个时候在该方法最常引用的类中建立一个有着类似行为的新方法,把旧方法变成一个委托函数,或者是直接移除。这有助于隔离变化。 // 2.移动实例变量可以参考第一点 // 3.搬动一个方法或者属性之前,先注释它,可以瞬间看出一些东西。 // 4.当一个类做了应该由两个类做的事情,那么,就提炼一个新...
阅读(894) 评论(0)

系统架构方面的博客

http://blog.csdn.net/sdhustyh/article/category/828856...
阅读(992) 评论(0)

重构 改善既有代码的设计(读书笔记2)

// 什么时候执行重构——代码的坏味道 // 1.重复的代码 // 2.过长的方法(当一段代码你觉得别人看起来困难,你可能需要添加注释的时候,其实你可以抽取成一个方法,然后标注一个优雅的方法名) // 3.庞大的类(很有可能职责过多,职责单一是一种很好的设计) // 4.过长的参数列表(让使用者很疲惫) // 5.发散式变化(添加一个功能,可能引起多处变化...
阅读(1349) 评论(0)
139条 共10页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:463189次
    • 积分:6165
    • 等级:
    • 排名:第4427名
    • 原创:134篇
    • 转载:5篇
    • 译文:0篇
    • 评论:350条
    博客专栏
    最新评论