摘要:http://www.cnblogs.com/qq78292959/archive/2011/07/06/2099427.htmltar-c: 建立压缩档案-x:解压-t:查看内容-r:向压缩归档文件末尾追加文件-u:更新原压缩包中的文件这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的。-z:有gzip属性的-j:有bz2属性的-Z:有compress属性的-v:显示所有过程-O:将文件解开到标准输出下面的参数-f是必须的-f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名。# tar -cf all
阅读全文
摘要:自从 Facebook 的第一行PHP代码,第一句 MySQL 的 INSERT 语句,开源就已经是我们工程哲学中的一个重要的部分。现在,我们使用、维护并为大量的主要项目做出了贡献——涉及多种领域如手机工具、大数据系统、客户端的web库、后端的运行库和基础架构,也涉及到开放计算项目,服务器和存储硬件。2013 是我们开源项目具有重要意义的一年,我们拥有大量令人自豪的新项目,为正常运行和维护它们的更新承诺,和使用它们的充满活力的社区一起工作的愿望。仅在我们的Github账户上,我们现在已经有超过90个仓库,有超过40,000次的提交,一共被复制了15,000次。年末是一个很好的机会来回顾我们投入
阅读全文
摘要:http://www.infoq.com/cn/news/2013/10/facebook-development-deploymentFacebook是世界上最大的社交网站,有超过10亿用户每月至少要登录一次,他们每天要上传超过25亿内容,支持这样一个站点的运行,还要不断发布新的功能,Facebook的工程师是如何做到这一切的?目前就职于Facebook的极限编程创始人Kent Beck在近期发表的一篇与别人合著的论文里向大家详细介绍了Facebook的开发与部署流程。显而易见,Facebook的工程师们不会像传统软件行业那样使用瀑布模型进行开发,他们不断地开发新的功能,并迅速上线,让用户能
阅读全文
摘要:http://www.infoq.com/cn/news/2007/12/does-lines-of-code-killSteve Yegge最近的一个帖子触动了开发社区的神经。Steve主张将代码数量保持在一个绝对的最小值,是软件开发中最重要的事情。依他的看法,即便仅仅出于缩减代码行数的理由,你或许也该牺牲一些设计模式和避免一些重构。如果问题域太大,做不到这一点——那么你可以换到另一种编程语言。……我相信,相当坚定地相信,对于一个代码库来说,最坏的事情就是它的大小。Steve认为,代码大小有毁灭性的影响:多数人可能不认同我的观点:山一样的代码是一个人、一个团队、一家公司所能遭遇的最严重的灾害
阅读全文
摘要:http://www.cnblogs.com/coderzh/archive/2010/01/09/beautiful-testcase.html使用gtest也有很长一段时间了,这期间也积累了一些经验,所以分享一下。GTest为我们提供了便捷的测试框架,让我们只需要关注案例本身。如何在GTest框架下写出优美的测试案例,我觉得必须要做到:案例的层次结构一定要清晰案例的检查点一定要明确案例失败时一定要能精确的定位问题案例执行结果一定要稳定案例执行的时间一定不能太长案例一定不能对测试环境造成破坏案例一定独立,不能与其他案例有先后关系的依赖案例的命名一定清晰,容易理解案例的可维护性也是非常重要,如
阅读全文
摘要:http://blog.csdn.net/shandongdaya/article/details/7282547一 有限状态机的实现方式有限状态机(Finite State Machine或者Finite State Automata)是软件领域中一种重要的工具,很多东西的模型实际上就是有限状态机。FSM的实现方式:1) switch/case或者if/else这无意是最直观的方式,使用一堆条件判断,会编程的人都可以做到,对简单小巧的状态机来说最合适,但是毫无疑问,这样的方式比较原始,对庞大的状态机难以维护。2) 状态表维护一个二维状态表,横坐标表示当前状态,纵坐标表示输入,表中一个元素存储
阅读全文
摘要:2011年,人们对乔布斯的去世记忆深刻,但这一年还有另一位本应获得同样关注的人物也与世长辞,他就是C语言之父丹尼斯·里奇(Dennis Ritchie)。不过,并非所有人都没能正确认识到里奇所曾作出的贡献。“乔布斯的逝世引起了一片哭声,那种情形非常动人,而且乔布斯受到这样的待遇也是合情合理的。但在事实上,里奇对这个世界的影响更大,然而公众却甚至都不知道他到底是谁。”编程领域中的传奇人物、目前供职于谷歌(微博)的罗伯·派克(Rob Pike)说道,他曾在贝尔实验室与里奇共事20年。在里奇去世时,派克在Google+社交网络上发帖宣布了这一噩耗。2011年10月8日,在经历了长
阅读全文
摘要:原文in here:http://outofmemory.cn/wr?u=http%3A%2F%2Fblog.mycolorway.com%2F2013%2F05%2F01%2Ftower-refactor%2FTower.im上线已经快半年了,这半年来我们团队小步快跑,为 tower 增加了许多新的功能,使它渐渐完善起来,在这个过程中,tower 的代码量也逐渐增加,随着时间的流逝,系统中积淀的糟糕的代码渐渐增多,于是趁着节假日的到来,花了些时间对代码做了部分重构,在这里记录下来,和大家分享。我们知道,重构代码,目的是为了对内让代码变得更精简,提高阅读性和可维护性,而对外不改变旧有的功能,所
阅读全文
摘要:原文:http://www.oschina.net/translate/basic-rules-for-code-readability-and-the-if-statement代码应该是可阅读就像你的自然语言一样。我将从一个有趣的条件语句开始。if ( !notOk != false ) { userObj.ask();}这样的表达式有点混乱,你永远不会使用自然语言构建这样的表达式。通过几个步骤,这个问题可以很简单解决:( !notOk != false )( !notOk == true )( !notOk)现在你应该重新想一个变量名啦:isOk = !notOk这个结果更适合阅读:if.
阅读全文
摘要:追求代码质量貌似是连载在IBM开发者社区的系列文章http://www.ibm.com/developerworks/cn/java/j-cq/专栏作者Andrew Glover是Stelligent Incorporated的总裁,这家公司用有效的开发人员测试策略和能够让团队在早期经常地监视代码质量的持续集成技术,帮助企业解决软件质量问题。他是Java Testing Patterns(Wiley,2004 年 9 月)一书的合著者。本文的原地址http://www.ibm.com/developerworks/cn/java/j-cq06306/index.html#N1007A我毫不惭愧
阅读全文
摘要:标准输入、输出和错误当我们在shell中执行命令的时候,每个进程都和三个打开的文件相联系,并使用文件描述符来引用这些文件。由于文件描述符不容易记忆,shell同时也给出了相应的文件名。下面就是这些文件描述符及它们通常所对应的文件名:文件文件描述符输入文件—标准输入0:它是命令的输入,缺省是键盘,也可以是文件或其他命令的输出。输出文件—标准输出1:它是命令的输出,缺省是屏幕,也可以是文件。错误输出文件—标准错误2:这是命令错误的输出,缺省是屏幕,同样也可以是文件。系统中实际上有1 2个文件描述符,但是正如我们在上表中所看到的, 0、1、2是标准输入、输出和错误。可以任意使用文件描述符3到9。标准
阅读全文
摘要:Michael Feathers最近的博文在博客社区引发了一场异常激烈的论战。Feathers发表言论说一些面向对象编程语言的内嵌特性有助于测试的进行,并且使用面向对象编程语言编写的代码更容易恢复。他举了这样一个例子,class X有一个叫作badMethod的方法,这个方法处理一些“痛苦”的工作,比如调用并更新产品数据库、或者处理一些甚至关系到底层硬件的事务:public class X { public void method() { ... badMethod(); ... } ...}理想的设计是,系统可以允许独立测试一般的类和类组...
阅读全文
摘要:http://www.aqee.net/a-harvard-economists-surprisingly-simple-productivity-secret/职业人士最常见的一种抱怨是:时间太少。每周工作超过60小时的人会抱怨甚至挤不出时间来处理他们邮箱里的邮件,更别说有创见性处理大项目中的问题。但时间并不是问题,哈佛经济学家Sendhil Mullainathan说。最终阻碍你成功的是你的大脑“带宽”使用效率,或集中精力的能力。Mullainathan的研究主要针对是资源稀缺情况,当人们缺少某些东西时会如何应对——可以是缺钱,食物或时间。他和他的搭档普林斯顿大学的心理学家Eldar Sh
阅读全文
摘要:http://www.ibm.com/developerworks/cn/java/j-cq03316/每位开发人员对代码质量的含义都有着自己的看法,并且大多数人对如何查找编写欠佳的代码也有自己的想法。甚至术语代码味道(code smell)也已进入大众词汇表,成为描述代码需要改进的一种方式。圈什么?关于这篇文章和代码质量主题的任何其他文章的问题,请访问由 Andrew Glover 主持的Improve your Java Code Quality讨论论坛。代码味道通常由开发人员直接判定,有趣的是,它是许多代码注释综合在一起的味道。一些人声称公正的代码注释是好事情,而另一些人声称代码注释只是
阅读全文
摘要:事情是这样的, 据来往的阿里小报公共账号爆料: 这是一个真实而又有些忧桑的故事,男主角是阿里巴巴西厂员工张侃。 他现在只想对姑娘说四个字: ——请-联-系-我!!! 此事见报后,阿里各界热心小二反响热烈,各路高人纷纷献言献策,想帮西厂职工张侃找到“她”。 这时,挺身而出了一位神人…… 妹子的情况比较复杂,一种可能是暂时来杭州旅游,常驻上海;一种是去上海旅游,常驻杭州; 一种是和我们的厂工相似,周末往上海跑。但是从妹子在车上的表现分析: A、如果是常坐动车的应该对温度情况有充分的了解,不会出现衣服不够导致冻着。 B、如果是从上海来杭州玩返程,会对车上温度也必然有所了解。 所以...
阅读全文
摘要:http://www.cnblogs.com/bangerlee/archive/2011/09/18/2178172.html引言我们提倡编写功能单一、结构清晰、接口简单的函数,因为过于复杂的函数会给我们带来很多问题:加深其他开发人员理解代码的难度;不方便测试人员对其编写测试用例;容易隐藏错误;出现问题难以定位……怎样的函数算是复杂的函数?哪些代码散发着“臭味”?除了依靠经验丰富的程序员的敏锐嗅觉,我们还可以通过工具,对我们的函数和代码进行度量。不像一位严格苛刻的代码检视人员,代码度量工具并不会板着脸对我们说:“嗯……这段代码糟糕透了!",它反馈给我们的是一组度量值(Metrics
阅读全文
摘要:http://blog.jobbole.com/53376/每当我倍感压力以及有很多事情要做的时候,我总是有这样一种反常的反应,那就是希望做一些其他的事情来摆脱这种状况。通常情况下,这些事情都是些我能够编写并实现的独立的小程序。一天早上,我几乎要被一堆事情给整疯了——我得看一本书、处理一些工作上的事情、还要准备一场Strange Loop的演讲,然后这时我突然想到:“我该写一个垃圾收集器了”。是的,我知道那一刻让我看上去有多疯狂。不过我的神经故障却是你实现一段基础的程序语言设计的免费教程!在100行左右毫无新意的c代码中,我设法实现一个基本的标记和扫描模块。垃圾收集被认为是有更多编程牛人出没的
阅读全文
摘要:http://www.udpwork.com/item/9294.html我想谈一谈这个话题是因为我的上一篇博客在ITEye上有一些朋友回复,说if-else过多的分支可以使用switch或者责任链模式等等方式来优化。确实,这是一个小问题,不过我们还是可以整理一下这个小问题的重构方式。为什么要优化?你没有看错。这是要放在第一条谈论的。有许多人会说,叠起来一堆if-else分支,代码就不优雅了。可是,怎样去定义“优雅”的概念呢?再退一步说,即便不“优雅”,又有什么问题?对于这样一段再普通不过的代码:int code;if("Name".equals(str)) code =
阅读全文
摘要:http://www.udpwork.com/item/8592.html其实本没有什么代码是“史上最烂”的,要有也只有“史上更烂”的,我想随便说说这个话题,也是源自豆瓣的一个讨论。事实上,系统复杂了被骂代码烂是一件司空见惯的事情。当然,也有一些短小的代码片段,就足以看出代码作者是个不怎么样的人。布尔类型的使用是很容易变成最烂代码的:if (isTrue()) if (isTrue()) doSomething();if(boolVal == true) { ..... }有一些毫无意义的注释:return 1; // 返回 1//如果标志为真,就返回truei...
阅读全文
摘要:http://blog.jobbole.com/18304/作为一个程序员,“起名字”是他们工作中非常重要的一部分。Phil Karlton就说过:“在计算机科学领域,有两大难题,如何验证缓存和如何给各种东西命名。”虽然很难,但是每次在写代码的时候,给事物起名字又是不可回避的工作。无论是程序变量名还是数据库表名或者是表里的列名,甚至是文件系统中的文件名,以及你的项目名称、产品名称,给这些东西起名字可不是个轻松活儿。糟糕的命名方式随处可见。你会发现,有的变量名字起得太短,根本没法提供足够的描述信息。或许有这个问题的人都做过TRS-80 BASIC程序员,在这种BASIC语言里,无论你起多长的变量
阅读全文