以图明志

编程思想

软件开发还算不上是一门科学

但不妨碍它是一门技术
很多大学里是把软件开发相关的专业划入工科的,这给人一种错觉,让人认为软件开发也是一个工程学科,就像土木建筑,动力机械那样。但这从根本上错了,土木建筑,动力机械的背后有确实的科学定律作为支撑,而软件开发的背后基本上什么都没有,远不是一种“科学”。也正因此,“软件工程”的现实意义也就远不如“土木工程”,“动力工程”。

编程思想

如何改善你的程序代码质量

花时间读一下这篇文章能让你的代码更高质量
有很多理由都能说明为什么我们应该写出清晰、可读性好的程序。最重要的一点,程序你只写一次,但以后会无数次的阅读。当你第二天回头来看你的代码时,你就要开始阅读它了。当你把代码拿给其他人看时,他必须阅读你的代码。因此,在编写时多花一点时间,你会在阅读它时节省大量的时间。

编程思想

人人都看得懂的正则表达式教程

轻松学习正则表达式
编写验证规则最流行和最简单的方法就是正则表达式了,但唯一的一个问题是正则表达式的语法太隐晦了,让人蛋疼无比。很多开发者为了在项目中应用复杂的验证,经常要使用一些小抄来记住正则式的复杂语法和各种常用命令。在这篇文章中,我将试图让大家明白什么是正则表达式,以及如何更轻松地学习正则表达式。

编程思想

零基础Lua入门的方法与建议

新技术学习方法其实也是这样的
对学习这门语言或者技术的必要性进行评估。比如你是工作需要,或者兴趣所至,甚至是为了把妹。这个必要性关系到你要学多深入,需要学习多长时间。 比如我想学Lua,是想学它如何在万把行代码里面实现了一个如此精巧的编程语言,想学习它的GC机制,学习它如何设计VM,如何用纯C语言设计项目等等。

编程思想

Perl/PHP/Python/Java/Ruby的拟人课堂讨论

比较各门编程语言的情况
比起Java平台和.NET平台,动态语言轻便灵活、开发效率高,但整合凝聚力还不够等方面也有一定差距,故通常作为轻量级的解决方案。LAMP是由Linux、Apache、MySQL和包括PHP、Perl、Python或Ruby在内的脚本语言组成的网络开发平台,具有开放灵活、开发迅速、部署方便、高可配置、安全可靠、成本低廉等优点。

编程思想

被曲解的敏捷苦了程序员们

你在做苦逼敏捷吗?
一天,程序员甲遇到了程序员乙。程序员甲就问程序员乙了,“听说你们公司也在搞敏捷?”程序员乙答:“是啊,别提了,纠结着呢。感觉现在加班比以前还多了,一个迭代接着一个,比以前累多了。你们公司呢?”“我们啊,现在不怎么提敏捷了。敏捷这一套东西在我们这里不好用。”上述对话并非个案。对大多数人而言,敏捷实施给他们带来的更多是痛苦,而不是成功。

编程思想

关于契约式编程的一些事情

契约式编程随着面向对象思想流行起来
契约式编程是编程的一种方法。那么什么是契约式编程呢?我想这个概念是从“合同”演变过来的。在人类的社会活动中,契约一般是用于两方,一方(供应者)为另一方(客户)完成一些任务。每一方都期待从契约中获得利益,同时也要接受一些义务。通常,一方视为义务的对另一方来说是权利。契约文档要清楚地写明双方的权利与义务。

编程思想

什么是IoC控制反转

静态类的使用会导致IoC设计原则受到限制
静态类的使用是一个有争议的话题,有人甚至提倡不要在类的名称上使用作用域限定符。关于静态特性争论的焦点在于一个被称为IoC控制反转的设计原则。IoC这个设计原则试图在面向对象编程中去掉所有相互依赖的现象。这个原则对于复杂的系统来说是很重要的。它使得对象具有更好的多态性和封装性。相互依赖的现象越少,就越容易单独测试某个组件。

编程思想

谈谈类定义里的this指针

this指针的生命周期在成员函数中
在类的定义过程中,经常会使用到this关键字,那么我们来理解一下this指针在类定义中的作用。全局函数、静态函数都不能使用this。实际上,成员函数默认第一个参数为T* const this。这个生命周期同任何一个函数的参数是一样的,没有任何区别。当调用一个类的成员函数时,编译器将类的指针作为函数的this参数传递进去。

编程思想

关于结对编程的一些事情

结对编程非常高效
结对编程技术是一个非常简单和直观的概念:两位程序员肩并肩地坐在同一台电脑前合作完成同一个设计。同一个算法、同一段代码或同一组测试、与两位程序员各自独立工作相比.结对编程往往只需花费大约一半的时间就能编写出质量更高的代码, 但是,人与人之间的合作不是一件简单的事情。

编程思想

让编程工作高于编程语言

编程范式与OOP思想
编程的世界里不乏很多技术上的牛人,但机器终究是为了人而存在的。现在的编程世界里“武功”百花齐放,让人应接不暇,但也许这些纷繁之后,他们的产生与发展乃至繁荣,都是世界上一些再最自然,最淳朴的一些道理。如果是编程范式是一种文化,那么编程语言更像是一种宗教——尽管它本不该是。每种流行的语言都有大批忠实的信徒,随时可能与其他的信徒发生宗教战争。

编程思想

从汇编的角度看函数调用的过程

编程语言的函数调用是如何实现的
有时候,我们需要深入了解编程语言的一些细节性问题,比如,编程语言结构--函数是如何实现的,函数的执行会是怎么样的一个过程。下面我们举一个例子,看看函数调用的时候,堆栈会发生怎么样的变化。首先要明白的是操作堆栈段, ss 只能用 esp或ebp寄存器 其他的寄存器eax ebx edx等都不能够用。而esp永远指向堆栈栈顶,ebp用来在堆栈段里面寻址。

编程思想

趣谈编程语言结构——函数

你曾经提到过你的函数的名字吗?
你有没有想过这样一件事情,你有一个函数,赋予它一个名字,那么你能不能够在的程序里面,提到它,提到它的的名字?我是说提到,不是去叫它,即通常所谓的调用。OK,如果你不明白我在说什么,那么让我试着说得更清楚一些。相声演员郭德纲,他有一个名字,他很擅长说相声。我们可以提到他的名字,但是我们并没有叫他到这里来。这就是我要说的。

编程思想

为什么说Lisp到现在还很先进

Lisp原意只是想做一种理论演算
如果我们把流行的编程语言,以这样的顺序排列:Java、Perl、Python、Ruby。你会发现,排在越后面的语言,越像Lisp。Python模仿Lisp,甚至把许多Lisp黑客认为属于设计错误的功能,也一起模仿了。至于Ruby,如果回到1975年,你声称它是一种Lisp方言,没有人会反对。编程语言现在的发展,不过刚刚赶上1958年Lisp语言的水平。

编程思想

x=x+1, x+=1, x++哪个效率高些?

一个编程效率细节问题
之前一直习惯性的认为x=x 1、x =1和x 仅仅是书写表示方法的不同,没想到细细研究,差别还是不小的。……从上面的过程可以看出,x 比x =1少了一个写的过程,而x =1比x=x 1少了一个寻址的过程(查找左面x的地址),所以三条语句的效率是x = x 1 < x = 1 < x 。

编程思想

从C/C++与Java的语言设计看代码质量问题

降低犯错的机会,写出好程序代码
历代编程语言演化,都尝试着去解决不同的附属性困难问题。从Java反省C++的诸般问题而进行改良的结果,我们可以看出它所尝试要解决的问题的困难。Java中有一个很重大的特色,就是垃圾收集机制(Garbage Collection,GC)。垃圾收集机制允许程序设计者尽管放心的去配置所需的内存空间,而毋需自行处理这些内存空间的释放问题,因为垃圾收集器(Garbage Collector)会自动判断已经不被程序所使用的内存空间,并且自动释放。
3 / 5 首页 < Prev 1 2 3 4 5 Next > 尾页 页码: