技术宅,fat-man

增加语言的了解程度可以避免写出愚蠢的代码

导航

上一页 1 ··· 9 10 11 12 13 14 15 16 17 ··· 50 下一页

2014年1月16日 #

化简复杂逻辑,编写紧凑的if条件语句

摘要: 当业务逻辑很复杂,涉及多个条件的真假,或者多种条件下都会执行同一动作时,如何编写紧凑的if语句呢?本文借由一个实际例子,利用数学的布尔逻辑整理条件,最终产生if语句。问题在《X3 重聚》里,宇宙是一个个星区由跳跃门连接起来的。大多数星区是相邻的,也有部分星区是非连通的。这是X3 重聚星系图,右下的红色星区就是非连通星区。飞船从一个星区到另一个星区有两种方法,一是老老实实飞过去,二是跃迁过去。跃迁的话飞船要装有跃迁引擎和足够能量。能量由发电机供应。跃迁是跃迁到目的星区的跳跃门,跳跃门那里不能太挤,否则飞船会和其他飞船相撞。去非连通星区只能靠跃迁。问题来了。给定一艘船和它的当前星区以及目的星区,求 阅读全文

posted @ 2014-01-16 16:21 codestyle 阅读(1251) 评论(0) 推荐(0)

!a && !b 和 !(a || b) 的故事

摘要: // awk代码,当continue执行时说明书是免费的if(!(int(use_curr) == 0 || int(use_curr) == 30000)) { continue }这段代码大概是半年前写的,半年后过来读,发现已经不理解这段代码了,虽然理解当contniue执行时意味着书是免费的,但到底是use_curr等于0或30000免费,还是不等于时免费,已经迷糊了!这里需要进行仔细推导:0 进入表达式 -> use_curr==0 为真 -> 反转为假 -> continue不执行 -> 收费的 -> 0和30000是收费的,其他为免费if(int(us 阅读全文

posted @ 2014-01-16 16:04 codestyle 阅读(1887) 评论(0) 推荐(0)

简明解释算法中的大O符号

摘要: 伯乐在线导读:2009年1月28日Arec Barrwin在StackOverflow上提问,“有没有关于大O符号(Big O notation)的简单解释?尽量别用那么正式的定义,用尽可能简单的数学来解释”。在经过众多热心网友的修改更新后,最佳回复的得分已高达 3234 分,详细内容,请见下文。最佳回复所给出的大O符号的最简单定义如下:大O符号是一种算法复杂度的相对表示方式。这个句子里有一些重要而严谨的用词:相对(relative):你只能比较相同的事物。你不能把一个做算数乘法的算法和排序整数列表的算法进行比较。但是,比较2个算法所做的算术操作(一个做乘法,一个做加法)将会告诉你一些有意义的 阅读全文

posted @ 2014-01-16 12:32 codestyle 阅读(1361) 评论(0) 推荐(0)

2014年1月14日 #

重构oceanbase的一个函数

摘要: 我去,今天读了一下ob的源码,感觉有点乱啊!!!好吧,当作练手,我重构了一个函数void* ObMySQLCallback::decode(easy_message_t* m) { uint32_t pkt_len = 0; uint8_t pkt_seq = 0; uint8_t pkt_type = 0; ObMySQLCommandPacket* packet = NULL; char* buffer = NULL; int32_t len = 0; if (NULL == m) { TB... 阅读全文

posted @ 2014-01-14 17:01 codestyle 阅读(584) 评论(0) 推荐(0)

2014年1月13日 #

正则表达式识别汉字

摘要: 最近要为某国大选做项目,得把项目中所有汉字翻译为西文。项目中java、js文件几千个,eclipse中\w是无法识别中文的。所以下面这两条正则就算救命的工具了。匹配中文字符的正则表达式:[\u4e00-\u9fa5]:\u表示unicode,4e00~9fa5是unicode的中文编码段。匹配双字节字符:[^\x00-\xff]:一个汉字占两个字节,这个就很明显了。 阅读全文

posted @ 2014-01-13 12:04 codestyle 阅读(785) 评论(0) 推荐(0)

2014年1月8日 #

编写易于理解代码的六种方式

摘要: http://www.ibm.com/developerworks/cn/linux/l-clear-code/我学习编写、改善和维护代码的过程是很艰苦的。在过去的 12 年里,我一直在编写计算机游戏并通过曾红极一时的共享软件技术进行网络销售,并以此为生。这就是说,我常常要从空白的屏幕开始从头编码,当代码达到数万行之后才能拿去销售。这也就是说,如果我出了错,我必须要自己去解决问题。当我在凌晨三点还在竭力寻找 bug 的时候,看着这些不知所云的晦涩代码,我不禁自问:“我的天啊,这些垃圾代码究竟是哪个笨家伙写的啊?”,很不幸,问题的答案是 “我”。在学习了良好、正规的编码技巧之后,我大受其益。本文 阅读全文

posted @ 2014-01-08 16:27 codestyle 阅读(404) 评论(0) 推荐(0)

Linux下的tar压缩解压缩命令详解

摘要: 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 阅读全文

posted @ 2014-01-08 11:22 codestyle 阅读(393) 评论(0) 推荐(0)

2014年1月7日 #

2013 年 —— Facebook 在开源方面的工作介绍

摘要: 自从 Facebook 的第一行PHP代码,第一句 MySQL 的 INSERT 语句,开源就已经是我们工程哲学中的一个重要的部分。现在,我们使用、维护并为大量的主要项目做出了贡献——涉及多种领域如手机工具、大数据系统、客户端的web库、后端的运行库和基础架构,也涉及到开放计算项目,服务器和存储硬件。2013 是我们开源项目具有重要意义的一年,我们拥有大量令人自豪的新项目,为正常运行和维护它们的更新承诺,和使用它们的充满活力的社区一起工作的愿望。仅在我们的Github账户上,我们现在已经有超过90个仓库,有超过40,000次的提交,一共被复制了15,000次。年末是一个很好的机会来回顾我们投入 阅读全文

posted @ 2014-01-07 18:18 codestyle 阅读(401) 评论(1) 推荐(0)

Kent Beck揭秘Facebook开发部署流程

摘要: http://www.infoq.com/cn/news/2013/10/facebook-development-deploymentFacebook是世界上最大的社交网站,有超过10亿用户每月至少要登录一次,他们每天要上传超过25亿内容,支持这样一个站点的运行,还要不断发布新的功能,Facebook的工程师是如何做到这一切的?目前就职于Facebook的极限编程创始人Kent Beck在近期发表的一篇与别人合著的论文里向大家详细介绍了Facebook的开发与部署流程。显而易见,Facebook的工程师们不会像传统软件行业那样使用瀑布模型进行开发,他们不断地开发新的功能,并迅速上线,让用户能 阅读全文

posted @ 2014-01-07 17:38 codestyle 阅读(405) 评论(0) 推荐(0)

代码行数是致命因素吗?

摘要: http://www.infoq.com/cn/news/2007/12/does-lines-of-code-killSteve Yegge最近的一个帖子触动了开发社区的神经。Steve主张将代码数量保持在一个绝对的最小值,是软件开发中最重要的事情。依他的看法,即便仅仅出于缩减代码行数的理由,你或许也该牺牲一些设计模式和避免一些重构。如果问题域太大,做不到这一点——那么你可以换到另一种编程语言。……我相信,相当坚定地相信,对于一个代码库来说,最坏的事情就是它的大小。Steve认为,代码大小有毁灭性的影响:多数人可能不认同我的观点:山一样的代码是一个人、一个团队、一家公司所能遭遇的最严重的灾害 阅读全文

posted @ 2014-01-07 17:19 codestyle 阅读(265) 评论(0) 推荐(0)

上一页 1 ··· 9 10 11 12 13 14 15 16 17 ··· 50 下一页