以图明志

编程思想

再谈PHP、Python与Ruby

语言选择问题
编程语言非常重要,不要认为他们都图灵等价,用起来都一样。实际上,好的语言,带给你的东西是超乎想像的。优雅的抽象胜于简单的堆砌: 这意味着你的代码是最简洁而又充满设计感的,面向对象,容易的闭包,一切都是表达式等等,而最好的抽象是语言本身能够分层,既能够书写语言的语言,比如 DSL 能力强弱是个指标。

编程思想

开始学习函数式编程后对编程的一些新感受

工具与方法
最近开始学习函数式编程,打算深入进去,掌握函数式编程的思路。具体学习足迹可以看看 现代魔法学院的《编程范式篇》。以后关于技术类的东西,大部分都会整理成专题,章节,发布在学院中,而博客则回归更为轻松随意的状态。我们绝大多数程序员都是用命令式编程,因为学校教的编程就是命令式的,什么C、Java等等(当然他们也可以用函数式编程)。

编程思想

编程范式,程序员的编程世界观

编程范式的重要性
编程范式(Programming Paradigm)是某种编程语言典型的编程风格或者说是编程方式。随着编程方法学和软件工程研究的深入,特别是OO思想的普及,范式(Paradigm)以及编程范式等术语渐渐出现在人们面前。面向对象编程(OOP)常常被誉为是一种革命性的思想,正因为它不同于其他的各种编程范式。编程范式也许是学习任何一门编程语言时要理解的最重要的术语。

编程思想

常见编程语言对REPL支持情况小结

REPL(Read-eval-print-loop)
最近跟一个朋友聊起编程语言的一些特性,他有个言论让我略有所思:“不能REPL的都是渣”。当然这个观点有点偏激,但我们可以探究一下,我们常用的编程语言里面,哪些支持REPL,哪些不支持,还有REPL的一些概况。在一般的脚本语言中,有REPL是常态,因为REPL非常的方便。

编程思想

[专题] 递归计算过程与迭代计算过程

编程需要了解的基础知识
递归是实现程序计算过程中的描述过程的基本模式之一,在讨论递归的问题前我们必须十分小心,因为递归包含两个方面的内容,一个是递归的计算过程,一个是递归过程,后者是语法上的事实而前者是概念上的计算过程,事实上在程序上我们也许是使用循环来实现的。

编程思想

如何阅读别人的代码

泛读了解一个项目
读代码这事,先要分是精读还是泛读。从学习的目的来看,一定要精读一定量的经典代码。而精读是指每行都读懂,不看代码脑子里就能勾画出程序的基本结构。这里有个很形象的状态,精读代码时会满脑子都是代码,放不下,甚至睡觉前脑子里也是代码。但这一篇里主要不是关注如何精读代码的,而是关于如何在工作中掌握既有代码的,等价于泛读。

编程思想

可以使用框架但千万不要依赖框架

为什么使用框架
我们是由于效率和易用性的考虑才产生框架。框架能节省开发时间。框架强制使用公共的约定,因此它能有效地解决一些共有的问题,比如页面渲染,assert判断,安全或者应用配置等。这些共有的问题有个共通的特性是会在每个web应用上都用到。框架是非常好的,它能让决定更连贯。

编程思想

如何摆脱烂项目的纠缠

摆脱烂项目
有没有这样觉得,以前做过的,刚做完的,或者正在做的项目,简直就是狗屎,不想去维护,不想去看以前写的代码?如果有,那么我们可以继续下面的内容。分析一下原因,项目为什么会烂,从纯技术上去看无非有以下两个问题:项目架构烂,代码质量差。

编程思想

掌握所有的编程语言并非不可能的事

抓住编程语言的本质
学习程序语言是每个程序员的必经之路。可是这个世界上有太多的程序语言,每一种都号称具有最新的“特性”。所以程序员的苦恼就在于总是需要学习各种稀奇古怪的语言,而且必须紧跟“潮流”,否则就怕被时代所淘汰。作为一个程序语言的研究者,我深深的知道这种心理产生的根源。程序语言里面其实有着非常简单,永恒不变的原理。

编程思想

Java繁琐笨重,为啥还有这么强的生命力?

尤其是在企业软件领域?
Java 语言繁琐,开发效率低,是事实,否认这个事实的大都是深入接触语言种类比较少的人,或者说他们没有接触过比 Java 更简洁,开发效率更过的语言。但问题是,目前没有另外一种语言,不繁琐,开发效率不低,但又同时具有 Java 的优点。换句话说,你选择一个语言不是因为它的缺点,而是因为它的优点。

编程思想

从StackOverflow来的值得回味的编程观点

很多有意思的话语
最初的问题“你最受争议的编程观点是什么?”,由Jon Skeet在2009年1月提出。此人可不是无名小卒,C#社区大名鼎鼎的人物,多年微软MVP,所著《深入理解C#》(英文版C# in Depth)一书是C#领域少数不可不读的名著(老赵就说过C#他只推荐两本,这本和CLR via C#),现在Google英国公司任工程师(还真不知道他在那里干什么)。

编程思想

向热爱计算机科学的你推荐SICP

《计算机程序的构造和解释》改变你的编程思维
通俗的说,这本书教你如何用最基本的构造和原则,解决复杂和多样的问题。用摄影打比方,这本书不比较尼康和佳能,不介绍繁杂的机型和参数,不介绍后期处理的技巧。这本书只讨论光线、色彩和构图,以及如何在不同场景拿捏这些基本原则组合出美妙的照片。

编程思想

如果编程语言是一种宗教

很形象的对比
原文来自If programming languages were religions,很有意思,可以从宗教的角度来看看各种常见语言的特点。这里丝毫没有要找出不同语言优劣的意思,每个人都有信仰自由。C是犹太教——很古老而且戒律很多,但大多数人都熟悉并尊重其戒律。问题是很难皈依它,你要么开始就信仰它,要么会认为它简直太疯狂了。而且,一旦事情出了差错,人们就会怪罪于它。

编程思想

我的方法(函数)设计小心得

如何去写一个方法呢?
在工作中经常被问道:如果你的那个方法输入空会返回什么?我记得自己曾经使劲回忆也没想到自己那个方法是怎么个回事。也经常跟同事在对功能的时候在说代码,那个冒泡排序,两个循环就搞定了。。。。。渐渐就发现,很多时候,写代码是有规则去遵循的。然后自己结合自己工作中的一些小经验,就出了下文。

编程思想

不要只在字面上理解敏捷开发

小谈敏捷
敏捷是一种高效的开发模式,但并非任何项目都适合,而且并非一定要推翻现在的瀑布模式完全采用敏捷。敏捷的本质是什么?敏捷的核心原则是什么?瀑布模式能否将敏捷的思想用过了从而优化现在的模式呢? 没有任何一种模式说是适合于任何公司,任何项目,还是要从公司特性,项目特性来看。下面就结合敏捷思想一一解读,看那些适合优化瀑布模式。

编程思想

编程牛人是如何看待各种程序语言的

一针见血的评论
一个有过 BASIC 编程经历的人是很难学会好的编程习惯的。作为一个潜在的程序员,他们已经被脑残并且无法修复。C 很容易让你朝自己的脚开枪。在 C++ 中,这么做变的困难了,但是你要不注意就会崩掉自己的整条腿。我发明了“面向对象”,但是我可以明确的是,我不知道什么是 C++。
1 / 5 首页 < Prev 1 2 3 4 5 Next > 尾页 页码: