杰拉斯的博客

提升代码质量的 6 个重构方法

杰拉斯 杰拉斯 | 时间:2014-02-04, Tue | 18,551 views
编程算法 

在过去做了不少代码走读,发现了一些代码质量上比较普遍的问题,以下是其中的前五名:

  1. 臃肿的类:类之所以会臃肿,是因为开发者缺乏对最基本的编码原则,即“单一职责原则”(SRP)的理解。这些类往往会变得很臃肿,是由于不同的且在功能上缺少关联的方法都放在了相同的类里面。
  2. 长方法:方法之所以会变得很长主要是有以下几个原因:

    1. 许多没有关联性的、功能复杂的模块的代码都放在相同的方法内。这主要是开发者缺乏SRP的概念。
    2. 多种条件都放在同一个方法内,这在长方法内经常会发生的。这是由于缺乏McCabe代码复杂度和SRP的概念的比较。
  3. 大量的传参:我经常遇到这几种情况,一些方法跟另一些方法进行交互,或者调用另一些方法的时候传入大量的参数。这就会出现如果更改了其中一个参数,就得在多个方法内进行更改。
  4. 常量值无处不在:经常会发现开发者(尤其是新手)会使用一些具有明确含义的常量值(主要是魔鬼数字),但没有给它们赋予合适的常量变量。这会降低代码的可读性和可理解性。
  5. 模糊的方法名:许多时候,以下取的方法名会影响代码的可读性和可理解性:

    1. 模糊的不具有任何意义的方法名
    2. 技术性的,却没有提及相关领域的名称

(阅读全文…)

伪青春必然速朽,真青春无需缅怀

杰拉斯 杰拉斯 | 时间:2014-02-04, Tue | 17,757 views
心路历程 

大学一毕业即成中年人,中国人的青春很短

赵薇的《致青春》是一部写实的片子。中国大陆的大多数80后90后,说起青春来,也就大学那几年的青春正宗一点。大学之前,十二年教育只为了一个目的:高考。必须心无旁骛,不能谈恋爱,明明看到喜欢的男生女生心里小鹿乱撞,也要硬生生地把情愫压下去,转移到厚厚的高考真题卷子里;老师整齐划一地说“青涩的果子是不能吃的”,多年来连修辞也不改一下。

大学过后,不,准确的说应该是从大四那年开始,残酷的就业压力如山雨欲来风满楼,大家再也无心在宿舍里煮个方便面,谈个无目的的恋爱,在草地上拨拉点吉他,读点柏拉图哲学了。我们的国情是,房子很快就成为后大学时代的主题。微博上流传的一段话并不假:“中国的高房价毁灭了年轻人的爱情,也毁灭了年轻人的想象力。他们本可以吟诵诗歌,结伴旅行,开读书会。现在,年轻人大学一毕业就成为中年人,为了房子精打细算。他们的生活,从一开始就是物质的,世故的,而不能体验一段浪漫的人生,一种面向心灵的生活方式。”

(阅读全文…)

新浪微博表情插件——jQuery Sina Emotion 2.0发布

杰拉斯 杰拉斯 | 时间:2014-01-09, Thu | 22,178 views
前端开发 

jQuery Sina Emotion

重要说明:已更新,请通过 GitHub 获取最新版本。

这是什么?

一个用来方便快速地创建新浪微博表情选择对话框的jQuery插件。

有何特点

  • 使用简单,一行代码即可创创建出表情选择对话框
  • 自带智能表情解析方法(但还是建议表情解析在服务端进行)
  • 兼容IE6+、Chrome、Firefox、Opera等各种浏览器

(阅读全文…)

[思考]成年人的思想还能进步么?

杰拉斯 杰拉斯 | 时间:2013-12-19, Thu | 31,921 views
心路历程 

本文谈谈成年人思想的进步。

在我们上小学上中学的时候,不管学校的教育多么糟糕,我们的思想都在不停的进步。这表现在如果我们回首一年以前的自己的某些想法,做的某些事,会觉得那时候自己很傻。考察自己的进步的一个更客观的指标大概是“刮目相看指数”。别人如果一年没看到我们,再看的时候,第一反应往往是“你都长这么大了”。如果三年没看到再看,可能都不认识了。

但是成年以后,一个很可能的趋势是人的进步速度一般会越来越慢,以至于停止进步,甚至倒退。他们思想最牛B的时代是他们的年轻时代。中年以后他们就无法接受任何新的思想,以至于最后连自己的孩子都搞不定。

比如说歌手郑智化在过去十多年内就没有任何进步。我上中学的时候很喜欢郑智化,他的歌曲对我来说不仅仅是娱乐,而简直是一种教育。这么多年来我的思想进步了许多,可是最近郑智化在北京开演唱会,唱的还是当年那些老歌。伟大的郑智化,他为什么没有像翁美玲等美女那样在人生最伟大的年龄上死去,何必让人间见白头?

余秋雨的思想在过去这么多年内很可能还退步了。我最初知道他是上初中时看《读者文摘》上他的文章,高中以后我就再也不看《读者》,可是他现在连那种文章都写不出来。

(阅读全文…)

完美解决PyQt中QWebView链接点击失效问题

杰拉斯 杰拉斯 | 时间:2013-12-17, Tue | 53,578 views
前端开发, 编程算法 

最近在尝试使用Python和PyQt做毕业设计中。。

一边感叹Qt的强大一边纠结资料的缺乏,特别是PyQt的资料就更少了,有一些容易遇到但又比较不好在网上查询到的问题我将在接下来的博文中总结一下。

在Qt中,在一个窗口中嵌入一个WebView是非常简单的(由于QWebView继承于QWidget,甚至将其作为一个窗口显示都是可以的):

import sys
from PyQt4.Qt import *
from PyQt4.QtWebKit import *

class WebView(QWebView):
	def __init__(self):
		super(WebView, self).__init__()
		self.load(QUrl('http://www.qq.com'))
		self.show()

if __name__ == '__main__':
	app = QApplication(sys.argv)
	webView = WebView()
	sys.exit(app.exec_())

(阅读全文…)