“编程基础”文章列表
作为一个苦逼的程序员,因为种种原因经常需要阅读别人写的代码。您是否有过因代码杂乱冗余而心生厌恶,您是否有过因代码晦涩难懂而抓狂,您是否有过因代码低级的逻辑错误而愤概,您是否有过因代码结构不合常规而需要到处查找,您是否有过因看到几百甚至上千行代码的方法而望洋兴叹,您是否有过因代码缺少注释而猜测以及...
代码质量随想录(一):可读是王道 代码质量随想录(二):必也正名乎 代码质量随想录(三):名字好,误会少 代码质量随想录(四):排版,不只是为了漂亮 写代码也流行注水了么?不是不是,我说的是注释。其实注释这个东西,历史久远。我们可以宽泛一点儿说,《春秋》就是要配上左传的注解,才能兴发其“...
英文原文:My brain can’t handle OOP anymore 今天我意识到已经没有什么比面向对象编程更困扰我了。尤其是 Java。人们确实都在用它吗!? — Swizec (@Swizec) April 29, 2012 前几个星期我在做一个编译器的作业——语义分析部分要用...
写了前三篇(一、二、三)之后,发现比我预想的效果要好。关注代码质量的朋友还蛮多的,而且很多意见和建议也很有益,指出了我文章中的一些问题。 我这种家庭妇男型的自由职业者来说,在平常写代码的时候可以多停下来,思考一些代码质量与软件设计方面的问题。当然啦,由于具体的工作环境、关注领域、自身阅历等原因...
写完前两篇(一、二)之后,有点小倦怠,因为一方面要整理读书笔记,一方面还要结合自己的思路加以重新表述,颇费周张。不过前两日看到有小朋友过来赞我的文章,说对实际代码有所帮助,还是满欣慰的,本系列随想录的目的之一,就是要营造一个努力改良代码质量的思维环境。 要想让标识符的名称更易理解,就应该多考虑...
不必被我的标题吓到哈,孔老夫子时代没有电脑。如果有,估计诸子百家们还得针对软件工程抒发一系列代码质量伦理学的教条。 上回文章说到,代码品质改进应该在三个层面上展开,其中最微观的就是代码段的质量考究了。很多时候我在针对一些项目做工程分析和大规模重构之前,首先希望对大概的工作原理有些了解,这个时候...
一直以来想写点关于代码质量的心得,碍于自身的懒惰。今天终究找到一个提前忙完工作的午后,可以先让自己的思路开动起来了。 最终促使我开始整理自己对于代码质量的看法,还多亏了前阵子认识的Long小朋友,他及时地向我推荐了《The Art of Readable Code》这本书(下文简称ARC)。在...
业界总是有高手之说,高手成了程序员心中之偶像,成了程序员成长之目标。但是,现实中人们往往对自己所了解的程序员,很难认同为高手;人们反而对那些自己不了解的,甚至是道听途说的人会认作为高手了。高手,同武林高手一样,神秘之至。 许多程序员都有这样的经历:无论自己编写什么很短很短的程序,一般是很难一次...
英文链接:Defensive Programming: Being Just-Enough Paranoid 每当程序员突然遇到某个bug并不知道怎么改的时候,他们会添加一些“防御性代码”来使编码更安全并且更容易找到问题的原因。有时这样做可以消除错误。他们加强了数据的有效性验证——检验输入框、...
在学习面向对象的过程中,我自己也走了很多的弯路。一般来讲,接触面向对象是做为编程语言的一部分。那时候认为在程序中写一个 Class 关键字就是面向对象,写 Class A: Class B 就是面向对象的继承。实际从编程语言的角度来理解是无法掌握面向对象的精髓的,在这里我想以我的经验来告诉大家我...
在Stack Overflow上有这样的一个贴子《What’s your most controversial programming opinion?》,翻译成中文就是“你认为最有争议的编程观点是什么?”,不过,在400多个主回贴,以及上千个所有回贴中,好像并不是很有争议,而是令人相当的茅塞顿...
编码问题的例子 在Windows自带的Notepad(记事本)程序中输入“联通”两个字,保存后再次打开,会发现“联通”不见了,代之以“��ͨ”的乱码。这是Windows平台上典型的中文编码问题。即文件保存的时候是按照ANSI编码(其实就是GB2312,后面会详细介绍)保存,打开的时候程序按照U...
文 / 余晟 作者在 IT 业从业多年,翻译过多本技术图书,对英语的学习方法也有颇多积累。在本文中,他更是敞开心扉,分享了自己压箱底的三大绝技。 总的来说,程序员算是英语水平比较好的群体,因为在这个行业,英文资料是最全面、最及时、需求也最迫切的。因此,据我观察,即便刚入门不久的程序员,面对陌...
我个人用了3、4年Linux,从当初的小菜鸟到现在的大菜鸟,积累了一些经验,现在分享给大家,尤其是初学者。 弄Linux的环境大体有3种办法:在Windows上安装cygwin在Windows上安装虚拟机,再安装Linux直接装Linux,弄个双系统 3种办法我都用过,目前我个人是双系统,但...
关键点
“别人还能把这个名字理解成什么意思?”通过不断的问自己这个问题来积极检查每一个命名。
事实上,这种富有创造性的、不断尝试“......
排序算法(Sorting algorithm)是计算机科学最古老、最基本的课题之一。要想成为合格的程序员,就必须理解和掌握各种排序算法。
目前,最常见的排序算法大概有七八种,......
本文是从 How to get started with functional programming 这篇文章翻译而来。
上周末,有人问我,如何学会函数式编程。我的回答是:用你现在使用的编程语言写......
英文原文:The Principles of Good Programming
1. 避免重复原则(DRY - Don’t repeat yourself)
编程的最基本原则是避免重复。在程序代码中总会有很......
本文是作者在学习doclist压缩时的一点总结,希望以尽可能简单明了的方式描述各个算法的思想和适用场景,帮助同学们理解和比较。本文并不涉及具体的算法实现,代码......
在MySQL 5中,终于引入了存储过程这一新特性,这将大大增强MYSQL的数据库处理能力。在本文中将指导读者快速掌握MySQL 5的存储过程的基本知识,带领用户入门。
存......