[转]要写易删除,而不易扩展的代码

好的文章总是见解独到,功底深厚而逻辑清晰。这是一篇关于如何设计、架构代码的文章。文章的观点新颖而有力。作者的观点是,我们所做的一切 —— 重构、模块化、分层,等等,都是为了让我们的代码易于被删改,都是为了让遗留代码不成为我们的负担,而不是为了代码复用。 作者认为,经过七个不同的开发阶段,最终便可以提炼出这样的代码。每个阶段都有详细的介绍和例子。 初读文章,可能会有抽象、晦涩之感。但多读几遍之后,其主旨就会变的清晰。 一个晚上的彻夜不眠,有了这篇中文翻译,与大家分享,希望对读者有所助益。 本文托管在 GitHub 上,水平有限,还望大家...
2016-02-20 07:36 | 阅读 12074 次 | 评论 0 条

静态类型语言是火车,动态类型语言是汽车。

静态类型语言是火车,动态类型语言是汽车。 火车只要不脱轨,按既定的轨道走,一般错不了。 汽车相对要灵活一些,加速、减速、变道、超车。 一般从java入门的开发者换用动态类型语言会感慨:没有类型约束怎么保证不出错? 就像火车司机感慨汽车司机:没有轨道你们是怎么保证不钻沟的。
2015-12-25 18:20 | 阅读 1411 次 | 评论 0 条

glot,在线运行代码的平台

很方便,以后可能用的到 https://glot.io/ -------------------------------- 作者在 2019-06-29 08:34:07 补充以下内容 --------------------------------4年了,本站也推出了自己的在线编程平台 https://www.bccn.net/run/
2015-07-05 09:22 | 阅读 3000 次 | 评论 0 条

nodejs+jquery爬虫的简单封装

jq.js module.exports.jq = function(){ var request = require('request'); var jsdom = require("jsdom"); var jquery = require('jquery'); var $ = jquery(jsdom.jsdom().parentWindow); var Iconv = require('iconv').Iconv; $.extend({ get: function() { var url, charset, callba...
2015-03-08 04:19 | 阅读 8340 次 | 评论 0 条

王建硕:入静和入世

本文受Paul Graham的Maker’s Schedule, Manager’s Schedule启发而作,建议大家有空去读一下。 人有两种思考状态,我将一种称为入境,另一种称为入世。 入静 程序员和作家需要的是一种入静的状态。他们需要整段的,不被打扰的时间才可以工作。一个下午三点种的会议,哪怕仅仅持续15分钟,一个下午就会因此 废了。问题不是会议占据的时间,关键问题是会议把一个下午分成了两块,让每块都不够大,都不足以入静。因为对于下午废掉的担心,上午的工作也受到影响,不 太敢开始解决真正困难的问题。所以整天都在一种心神不宁的状态。 ...
2015-01-16 10:31 | 阅读 1026 次 | 评论 0 条

一个不错的android模拟器 genymotion

官网 http://www.genymotion.com 中文官网 http://www.genymotion.cn
2014-10-15 15:57 | 阅读 1817 次 | 评论 0 条

Android在线api

http://api.apkbus.com/reference/android/app/admin/package-summary.html http://developers.androidcn.com/reference/packages.html
2014-09-01 18:18 | 阅读 5825 次 | 评论 0 条

Android本地文档迟迟打不开的解决办法

进入文档目录,运行 find . -name "*.html" | xargs grep -l 'jsapi' | xargs sed -i '/jsapi/d'
2014-09-01 17:44 | 阅读 1856 次 | 评论 0 条

[转]Android Studio如何集成Genymotion模拟器

Android Studio集成Genymotion比在Eclipse中集成简单多了。主要以下几个步骤: 1、官网先下载Genymotion:http://www.genymotion.com/,下载完成后安装好,同时你需要在genymotion官网上注册一个账号,这样你才能正常的使用genymotion。 下载完成后点击两个红色圈的那个图标,启动genymotion。然后选择添加你所要的设备。如何添加看下图,点add后会出现genymotion支持的所有设备列表,选择你需要的进行下载即可,下载好了就会出现在Your virtual de...
2014-08-08 17:14 | 阅读 4989 次 | 评论 0 条

加快phpstorm、rubymine、pycharm系列IDE运行速度的方法

对jetbrains公司出品的IDE均有效,以rubymine为例: 打开C:\Program Files\JetBrains\RubyMine 6.3.3\bin,打开 rubymine.exe.vmoptions 文件,修改-Xmx512m 为 -Xmx1024m,其它IDE雷同,此法在linux平台亦有效,也是vmoptions后缀的文件,具体什么名字我忘了,一找就找到
2014-08-04 21:42 | 阅读 11380 次 | 评论 0 条

背完这444句英语,你的英语口语不成问题了

1. I see.我明白了 2. I quit! 我不干了! 3. Let go! 放手! 4. Me too.我也是。 5. My god! 天哪! 6. No way! 不行! 7. Come on.來吧(趕快) 8. Hold on.等一等。 9. I agree。我同意。 10. Not bad.還不錯。 11. Not yet.還沒。 12. See you.再見。 13. Shut up! 閉嘴! 14. So long.再見。 15. Why not? 好呀! (為什麼不呢?) 16. Allow me.讓我來。 17. Be quiet! ...
2013-01-05 14:08 | 阅读 3060 次 | 评论 1 条

rust的三种指针

类型 符号 Managed Boxes @ Owned Boxes ~ Borrowed Pointers &
2013-01-03 22:16 | 阅读 3838 次 | 评论 0 条

Firebug无法嵌入到firefox里面的解决办法

无意中在新窗口中打开了firebug,却怎么也无法把它放回firefox底部了,设置Firebug界面位置也不管用。重置firebug设置以后终于把它请回了firefox底部。 解决办法: 点击Firebug窗口左上角的小瓢虫 选项 - 重置所有 Firebug 选项 跳出个确认窗口,点“确定” 关闭Firebug,然后按F12重开Firebug,已经恢复在firefox底部了
2012-12-27 22:20 | 阅读 3080 次 | 评论 0 条

Mongodb 自动增长 自增id 实现

From: http://hi.baidu.com/kekeles/blog/item/27bfa8ec9b53b8302697918c.html //首先创建一个自动增长id集合 ids >db.ids.save({name:"user", id:0}); //可以查看一下是否成功 > db.ids.find();{ "_id" : ObjectId("4c637dbd900f00000000686c"), "name" : "user", "id" : 0 } //然后每次添加新用户之前自增一下 ids集合 获得id >userid = db.ids.findAndMod...
2010-10-28 14:17 | 阅读 2755 次 | 评论 1 条

总算可以打开了

天朝的互联网需要救赎
2010-05-18 18:06 | 阅读 1154 次 | 评论 1 条

Python中__class__的理解

先运行下面一段代码: class A: def __init__(self,url): self.url = url def out(self): return self.urla = A('news.163.com')print a.out()b = a.__class__('www.bccn.net')print b.out()print Aprint a.__class__ 可以看出a.__class__就等效于a的类A
2010-04-21 03:55 | 阅读 11028 次 | 评论 0 条

HTML UTF-8编码转换成Python的可读形式

<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> </head><body>&amp;#29256;&amp;#26435;&amp;#x6240;&amp;#x6709;</body></html> >>> print unichr(29256)版>>> print unichr(26435)权>>> print unichr(0x6240)所>>> print unichr(0x6709)有
2010-04-02 13:18 | 阅读 1248 次 | 评论 1 条

web.py中的memoize

web.memoize,貌似是缓存函数返回值的 文档中的实例 | >>> calls = 0 | >>> def howmanytimeshaveibeencalled(): | ... global calls | ... calls += 1 | ... return calls | >>> fastcalls = memoize(howmanytimeshaveibeencalled) | >>> howmanytimeshaveibeencalled() | 1 |...
2010-03-27 23:17 | 阅读 1910 次 | 评论 1 条

Django:locals()小技巧

locals()小技巧 看看最近的current_datetime: 代码 def current_datetime(request): now = datetime.datetime.now() return render_to_response('current_datetime.html', {'current_date':now}) 这个例子中你会发现你自己计算一些值后存储在变量中(例如now)并传递给模板 懒程序员可能会觉得有点繁琐,既要给临时变量取名又要给模板变量取名 这不仅仅是冗余,这是过度输入 如果你很懒或者你想保持代码整洁,使用...
2010-03-22 01:01 | 阅读 2309 次 | 评论 1 条

python中创建空字典的方法

一个是用花括号 d = {} 另一个是用内置函数dict() d = dict()
2010-03-21 23:50 | 阅读 23419 次 | 评论 1 条
浏览1923703次
文章归档
最新评论
  • Miss_Zou:不都是复制粘贴的吗
  • Miss_Zou:目测是大佬
  • 神犇dengyuhy:语文很好