
编程的智慧
琚建飞
这个作者很懒,什么都没留下…
展开
-
软件开发日常思考
日常思考原创 2020-03-23 01:29:45 · 779 阅读 · 4 评论 -
解密计算机科学
要掌握一个学科的精髓,不能从细枝末节开始。人脑的能力很大程度上受限于信念。一个人不相信自己的时候,他就做不到本来可能的事。信心是很重要的,信心却容易被挫败。如果只见树木不见森林,人会失去信心,以为要到猴年马月才能掌握一个学科。所以我们不从“树木”开始,而是引导读者一起来探索这背后的“森林”,把计算机科学最根本的概念用浅显的例子解释,让读者领会到它们的本质。把这些概念稍作发展,你就得到逐渐完整的把...转载 2019-01-02 16:42:59 · 826 阅读 · 0 评论 -
编程的智慧 8
人的脑子真是奇妙的东西。虽然大家都知道过度工程(over-engineering)不好,在实际的工程中却经常不由自主的出现过度工程。我自己也犯过好多次这种错误,所以觉得有必要分析一下,过度工程出现的信号和兆头,这样可以在初期的时候就及时发现并且避免。 过度工程即将出现的一个重要信号,就是当你过度的思考“将来”,考虑一些还没有发生的事情,还没有出现的需求。比如,“如果我们将来有了上...转载 2018-05-15 15:00:57 · 184 阅读 · 11 评论 -
编程的智慧 7
正确处理null指针 穷举的思想是如此的有用,依据这个原理,我们可以推出一些基本原则,它们可以让你无懈可击的处理null指针。 首先你应该知道,许多语言(C,C++,Java,C#,……)的类型系统对于null的处理,其实是完全错误的。这个错误源自于Tony Hoare最早的设计,Hoare把这个错误称为自己的“billion dollar mistake”,因为由于它所产生的...转载 2018-05-15 11:52:06 · 208 阅读 · 10 评论 -
编程的智慧 6
正确处理错误 使用有两个分支的if语句,只是我的代码可以达到无懈可击的其中一个原因。这样写if语句的思路,其实包含了使代码可靠的一种通用思想:穷举所有的情况,不漏掉任何一个。 程序的绝大部分功能,是进行信息处理。从一堆纷繁复杂,模棱两可的信息中,排除掉绝大部分“干扰信息”,找到自己需要的那一个。正确地对所有的“可能性”进行推理,就是写出无懈可击代码的核心思想。这一节我来讲一讲,...转载 2018-05-15 09:32:04 · 186 阅读 · 9 评论 -
编程的智慧 5
写无懈可击的代码 在之前一节里,我提到了自己写的代码里面很少出现只有一个分支的if语句。我写出的if语句,大部分都有两个分支,所以我的代码很多看起来是这个样子:if (...) { if (...) { ... return false; } else { return true; }} else if (...) { ... return ...转载 2018-05-15 08:31:05 · 221 阅读 · 9 评论 -
编程的智慧 4
写直观的代码 我写代码有一条重要的原则:如果有更加直接,更加清晰的写法,就选择它,即使它看起来更长,更笨,也一样选择它。比如,Unix命令行有一种“巧妙”的写法是这样:command1 && command2 && c转载 2018-05-14 10:48:01 · 299 阅读 · 11 评论 -
编程的智慧 3
写简单的代码 程序语言都喜欢标新立异,提供这样那样的“特性”,然而有些特性其实并不是什么好东西。很多特性经不起时间的考验,最后带来的麻烦,比解决的问题还多。很多人盲目的追求“短小”和“精悍”,或者为了显示自己头脑聪明,学得快,所以喜欢利用语言里的一些特殊构造,写出过于“聪明”,难以理解的代码。 并不是语言提供什么,你就一定要把它用上的。实际上你只需要其中很小的一部分功能,就能写...转载 2018-05-14 10:36:37 · 202 阅读 · 6 评论 -
编程的智慧 2
写可读的代码 有些人以为写很多注释就可以让代码更加可读,然而却发现事与愿违。注释不但没能让代码变得可读,反而由于大量的注释充斥在代码中间,让程序变得碍眼难读。而且代码的逻辑一旦修改,就会有很多的注释变得过时,需要更新。修改注释是相当大的负担,所以大量的注释,反而成为了妨碍改进代码的绊脚石。 实际上,真正优雅可读的代码,是几乎不需要注释的。如果你发现需要写很多注释,那么你的代码肯定是含混...转载 2018-05-13 21:26:33 · 340 阅读 · 12 评论 -
编程的智慧 1
艺术与编程编程是一种创造性的工作,是一门艺术。精通任何一门艺术,都需要很多的练习和领悟。王垠(作者)根据自己的编码经验,总结了以下内容,欢迎探讨。(原文删减版)反复推敲代码 代码量与编程水平没有直接关系。如果总是匆匆写出代码,却从来不回头去推敲,修改和提炼,其实是不可能提高编程水平的。好的程序员,他们删掉的代码,比留下来的还要多很多。如果你看见一个人写了很多代码,却没有删掉多...转载 2018-05-13 21:17:40 · 375 阅读 · 5 评论