技术宅,fat-man

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

导航

上一页 1 ··· 19 20 21 22 23 24 25 26 27 ··· 50 下一页

2013年10月10日 #

智能指针,大爱啊

摘要: /*智能指针:auto_ptr 定义在memory模块里&&std命名空间里一旦执行对象的指针,生存期结束,就会释放自己所指向的对象*/#include #include //cstdio即 C语言的stdio.h#include using namespace std;class X{public: X(){printf("X!\n");} ~X(){printf("~X\n");} virtual void say(){printf("hello!\n");}};class Y : public X{public: 阅读全文

posted @ 2013-10-10 14:09 codestyle 阅读(202) 评论(0) 推荐(0)

2013年10月9日 #

防御式编程

摘要: 防御式编程是提高软件质量技术的有益辅助手段。防御式编程的主要思想是:子程序应该不因传入错误数据而被破坏,哪怕是由其他子程序产生的错误数据。这种思想是将可能出现的错误造成的影响控制在有限的范围内。 1. 在非法输入(Invalid Inputs)中保护你的程序 一个好程序,在非法输入的情况下,要么什么都不输出,要么输出错误信息。有几种方法来防止非法的输入: (1)检查来自于外部资源(external sources)的所有数据的值,例如来源于网络的数据的值,来源于文件的数据的值。检查的目的是保证数据值在一个允许的范围内。 (2)检查每一个例程(routine)的输入参数值。 一旦非法输... 阅读全文

posted @ 2013-10-09 17:09 codestyle 阅读(407) 评论(0) 推荐(0)

2013年10月8日 #

google jam 比赛题(设计有问题)

摘要: 题目:ProblemDo you know how to read the phone numbers in English? Now let me tell you.For example, In China, the phone numbers are 11 digits, like: 15012233444. Someone divides the numbers into 3-4-4 format, i.e. 150 1223 3444. While someone divides the numbers into 3-3-5 format, i.e. 150 122 33444. D 阅读全文

posted @ 2013-10-08 18:02 codestyle 阅读(406) 评论(0) 推荐(0)

2013年9月27日 #

书籍列表

摘要: http://book.douban.com/subject/1237118/http://product.china-pub.com/60896http://product.china-pub.com/48927http://book.douban.com/subject/1230031/http... 阅读全文

posted @ 2013-09-27 09:55 codestyle 阅读(280) 评论(0) 推荐(0)

2013年9月25日 #

Python 代码性能优化技巧

摘要: http://www.ibm.com/developerworks/cn/linux/l-cn-python-optim/代码优化能够让程序运行更快,它是在不改变程序运行结果的情况下使得程序的运行效率更高,根据 80/20 原则,实现程序的重构、优化、扩展以及文档相关的事情通常需要消耗 80% 的工作量。优化通常包含两方面的内容:减小代码的体积,提高代码的运行效率。改进算法,选择合适的数据结构一个良好的算法能够对性能起到关键作用,因此性能改进的首要点是对算法的改进。在算法的时间复杂度排序上依次是:O(1) -> O(lg n) -> O(n lg n) -> O(n^2) - 阅读全文

posted @ 2013-09-25 17:16 codestyle 阅读(323) 评论(0) 推荐(0)

Python性能鸡汤

摘要: http://www.oschina.net/question/1579_45822第一部分阅读Zen of Python,在Python解析器中输入import this. 一个犀利的Python新手可能会注意到"解析"一词, 认为Python不过是另一门脚本语言. "它肯定很慢!"毫无疑问:Python程序没有编译型语言高效快速. 甚至Python拥护者们会告诉你Python不适合这些领域. 然而,YouTube已用Python服务于每小时4千万视频的请求. 你所要做的就是编写高效的代码和需要时使用外部实现(C/C++)代码. 这里有一些建议,可以帮 阅读全文

posted @ 2013-09-25 17:14 codestyle 阅读(226) 评论(0) 推荐(0)

2013年9月24日 #

如何避免重构带来的危险

摘要: http://blog.jobbole.com/30049/重构代码很危险,它会给测试工作增加巨大的负担。除非你的程序需要重构,一定不要轻易重构代码。我这里所说的并不是把一个for循环改成while循环,或把一个StringBuffer改成StringBuilder,我说的是大动作,例如重写一个方法,一个函数,甚至整个类或包。如果你缺乏对一个方法或一个类的了解,那你重构它的条件就不充分。即使你有一个天才的计划,你也需要和团队一起设计其中重大的修改。当属于下列情况时,你不该重构● 对于你来说,它的逻辑看起来过于复杂,你没有花时间去分析它。●你不理解为什么前任程序员要这样编写。●你着手的是一个很重 阅读全文

posted @ 2013-09-24 09:19 codestyle 阅读(453) 评论(0) 推荐(0)

2013年9月23日 #

Linux/Unix工具与正则表达式的POSIX规范

摘要: http://www.infoq.com/cn/news/2011/07/regular-expressions-6-POSIX对正则表达式有基本了解的读者,一定不会陌生『\d』、『[a-z]+』之类的表达式,前者匹配一个数字字符,后者匹配一个以上的小写英文字母。但是如果你用过vi、grep、awk、sed之类Linux/Unix下的工具或许会发现,这些工具虽然支持正则表达式,语法却很不一样,照通常习惯的办法写的『\d』、『[a-z]+』之类的正则表达式,往往不是无法识别就是匹配错误。而且,这些工具自身之间也存在差异,同样的结构,有时需要转义有时不需要转义。这,究竟是为什么呢?原因在于,Uni 阅读全文

posted @ 2013-09-23 17:24 codestyle 阅读(973) 评论(0) 推荐(1)

2013年9月22日 #

代码抽象层次2

摘要: 看了kent的实现模式,对代码抽象层次有了一点理解,kent首先问了一个问题,下面的代码有神马问题?void compute(){ int flag = input(); flag |= 1; output(flag);}粗看来没有,但其实不然,但其实,input和output已经是高层抽象了,例如你并不知道输入来自于何方,到底是键盘输入呢,还是文件输入,又或者是网络输入,同样output也是如此,但是中间设置flag的语句则是一个低层抽象,如果整个函数都是低层抽象,代码应该是这样:void compute(){ extern char *s; int fl... 阅读全文

posted @ 2013-09-22 13:20 codestyle 阅读(252) 评论(0) 推荐(0)

chinaunix:腾讯面试题

摘要: 腾讯电商面试回来,发现我太菜了,缺乏技术深度。笔试题感觉不难,但是做了之后总是发觉少点什么东西,深度!这是这场面试总结出来的。凭记忆分享下笔试,面试题。大家一起解决,然后分享下该看什么书,可以解决这些“深度”问题。1.内存池算法。我就把前段时间看到的tcmalloc实现大概写了一遍。Q:malloc怎么实现的?A:通过brk,sbrk实现的。Q:sbrk,brk怎么实现的?sbrk,brk怎么由内核态切换到系统(用户?)态的?2.怎么定位内存泄露?我写的是:1.使用valgrind --这个东西从来没用过2.mtrace3.封装malloc,free函数的宏5./proc/$pid/下的内存. 阅读全文

posted @ 2013-09-22 09:32 codestyle 阅读(398) 评论(0) 推荐(0)

上一页 1 ··· 19 20 21 22 23 24 25 26 27 ··· 50 下一页