摘要:首先, 有这样的代码,逻辑是没错的,但是长而且可读性不好:message = subAction == "add" ? String.format(format, contentMap.get("owner"), contentMap.get("ownerHomeName")) :...
阅读全文
摘要:function sync_dept_delete($dept_info, $sir_domain, $dept_id = 0){ // 查出域名对应的id if($dept_id == 0 || $dept_id == ""){ $dept_id = Check_Addr...
阅读全文
摘要:本文是码农网原创翻译,转载请看清文末的转载要求,谢谢合作!好的代码审查器可以大大地帮助程序员提高代码质量,减少错误几率。虽然现在市场上有许多可用的代码审查工具,但如何挑选也是一个艰巨的任务。在咨询过有关专家的建议和意见之后,我们罗列出了以下17款最佳的代码审查工具。1)CodeStrikerCode...
阅读全文
摘要:QUnit:jQuery的单元测试框架,但不仅限于jQuery(从这个工具不需要引用jquery.js可以看出)index.html QUnit Example api.jsfunction sum(a, b){ re...
阅读全文
摘要:项目和新需求:我们有一个PHP写的webmail系统,有一个mail_list.php用于展现用户的邮件列表这个页面支持folderId参数(因为邮件是存在不同的文件夹下的)由于邮件太多所以支持翻页。现在需要在系统里增加标签。细化下来:需要在原有的邮件列表里增加标签列,和支持tagid检索出一个邮件...
阅读全文
摘要:http://blog.jobbole.com/78635/旧代码,丑陋的代码,复杂的代码,意大利面条似的代码,鬼话废话……就是四个字:遗留代码。这是一个系列文章,将有助于你处理并解决它。在理想的世界中,你只会写新代码。你会把代码写得既漂亮又完美。你将永不会再看你的代码,并且你将永远不会维护一个有十...
阅读全文
摘要:原文:http://blog.jobbole.com/61732/所有的程序都需要某种形式的日志记录建立在它们之上,以便我们可以观察到它正在做什么。这尤其在程序出错时就显得非常重要。一个优秀的程序员和一个糟糕的程序员之间的一个不同之处是一个优秀的程序员会增加日志或其他工具以便在程序失败时方便调试。当...
阅读全文
摘要:http://www.cppblog.com/vczh/archive/2014/07/15/207658.html靠谱的代码和DRY上次有人来要求我写一篇文章谈谈什么代码才是好代码,是谁我已经忘记了,好像是AutoHotkey还是啥的专栏的作者。撇开那些奇怪的条款不谈,靠谱的 代码有一个共同的特点...
阅读全文
摘要:#_*_coding:utf-8-*-import urllib2import tracebackimport codecsfrom BeautifulSoup import BeautifulSoupdef openSoup(url,code): page = urllib2.urlopen...
阅读全文
摘要:// 一个按钮点击事件,判断点击按钮是那一个显示出他的信息- (IBAction)buttonPressed:(id)sender { if (sender == self.leftButton) { NSLog(@"%@", self.leftButton.currentTit...
阅读全文
摘要:http://top.jobbole.com/4960/http://stackoverflow.com/questions/24430504/how-to-avoid-if-chains在Stack Overflow上的一个挺有趣的问题,详细整理问题和部分巧妙的回答如下。假设我刻意写了一段代码:b...
阅读全文
摘要:http://blog.csdn.net/toy_shop_owner/article/details/25448849任何一个软件都是可以测试。在某种意义上,用户的使用过程也就是一个软件测试的过程。可是这并不是我们今天要讲的可测试性。我们讲的可测试性指的是代码的可测试性,通俗点儿说就是是一串代码里...
阅读全文
摘要:http://www.vaikan.com/some-programming-strategies/这里将向大家分享的是一些我对编程的思考总结,这些经验在我毕生编程生涯中曾帮助我在无数的事情上作出正确的决定。这些编程策略有些是很显然的,但实际编程中往往被人们忽略。下面的例子是用Python写的,但这...
阅读全文
摘要:http://www.programmer.com.cn/12717/文 / John Carmack 译 / 王江平《Quake》作者Carmack认为追求函数式的程序设计有着实实在在的价值,然而,劝说所有程序员抛弃他们的C++编译器,转而启用Lisp、Haskell,或者干脆说任何其他边缘语言,都是不负责任的。或许本文的每位读者都听说过,当初“函数式编程”(Functional Programming)肩负着为软件开发带来福祉的期望来到这个世界,大家可能还听说过有人将它奉为软件开发的银弹。然而,上维基百科查看更多信息却让人大倒胃口,一上来就引用λ演算和形式系统。很难一眼看出这跟编写更好的软
阅读全文
摘要:http://www.csdn.net/article/2013-01-17/2813778-the-beauty-of-doom3-source-code/2摘要:Dyad作者、资深C++工程师Shawn McGrathz在空闲时翻看了Doom3的源代码,发出了这样的惊叹:“这是我见过的最整洁、最优美的代码!”“Doom 3的源代码让我对那些优秀的程序员刮目相看。”因此有了本文。最少模板id“犯了不少C++的禁忌”,他们重写了所有需要的STD函数。我个人对STD爱恨交织。在Dyad,我调试构建时常使用它来管理动态资源;在发布时又会处理所有的资源,避免使用任何STL函数,以求尽快地加载。STL
阅读全文
摘要:http://www.csdn.net/article/2013-01-17/2813778-the-beauty-of-doom3-source-code/1摘要:Dyad作者、资深C++工程师Shawn McGrathz在空闲时翻看了Doom3的源代码,发出了这样的惊叹:“这是我见过的最整洁、最优美的代码!”“Doom 3的源代码让我对那些优秀的程序员刮目相看。”因此有了本文。背景介绍:Doom3是id Software于2004年开发的第一人称射击游戏,目前以GPL v3协议开源。其采用游戏引擎的是id Tech 4,由id Software创始人、首席程序员John Carmack领导
阅读全文
摘要:void test(){ if(a) { if(b) { do(); } }}void test(){ if(a && b) { do(); }}void test(){ if(a && b && c) { do(); }}void test(){ if(!a) return; if(!b) return; if(!c) return; do();}void test(){ if...
阅读全文
摘要:首先说两件事情,我发现不同能力的人能掌控的代码行数并不一样,例如我,能掌控的一个函数长度也就在80行,而某些大牛能掌控的代码行数是一个函数150~300行(不过大牛要求这个函数相对清晰,也就是说这个函数可以做多件事情,但是函数内每段代码都只做一件事情,所以即使在函数内,代码也是一块一块的,否则大牛也一样觉得不爽),超过各自掌控的代码行数,都会觉得难受所以在能力的掌控范围内,大牛并没有强烈的提取代码的需求,而我因为掌控能力不足所以即使在没有明显复用的情况下也有比较强烈的提取代码的需求,所以我重构的一些程序,往往重构后代码的长度并没有明显的减小(当然清晰程度是有所提升的)但是这样有一个问题,就是当
阅读全文
摘要:http://www.bitstech.net/2014/01/07/log-best-practice/前言日志用来记录用户操作、系统运行状态等,是一个系统的重要组成部分。然而由于日志并非系统核心功能,通常情况下并不受团队的重视。在出现问题需要通过日志来定位时,才发现日志还存在很多问题。日志记录的好坏直接关系到系统出现问题时定位的速度,同时可以通过对日志的观察和分析,提前发现系统可能的风险,避免线上事故的发生。我们在开发和运维NOS(网易对象存储,Netease Object Storage)的过程中,对整个系统的日志进行了分析优化,积累出一些经验,归纳如下。相关问题经验整理1.关于日志级别
阅读全文
摘要:当业务逻辑很复杂,涉及多个条件的真假,或者多种条件下都会执行同一动作时,如何编写紧凑的if语句呢?本文借由一个实际例子,利用数学的布尔逻辑整理条件,最终产生if语句。问题在《X3 重聚》里,宇宙是一个个星区由跳跃门连接起来的。大多数星区是相邻的,也有部分星区是非连通的。这是X3 重聚星系图,右下的红色星区就是非连通星区。飞船从一个星区到另一个星区有两种方法,一是老老实实飞过去,二是跃迁过去。跃迁的话飞船要装有跃迁引擎和足够能量。能量由发电机供应。跃迁是跃迁到目的星区的跳跃门,跳跃门那里不能太挤,否则飞船会和其他飞船相撞。去非连通星区只能靠跃迁。问题来了。给定一艘船和它的当前星区以及目的星区,求
阅读全文