加载中
从重复到重用

前言 本文是我之前写的文章——《你试过这样写C程序吗》——的第二版,并把文章名改成更贴切的“从重复到重用”。 开发技术的发展,从第一次提出“函数/子程序”,实现代码级重用;到面向对象...

Java中实现cd命令:运行中更改当前工作目录

因为一些原因,想在Java中模拟部分Shell命令的功能,比如cd、pwd、ls等。 实现pwd很简单,返回System.getProperty("user.dir")即可; 实现ls也不难,用java.nio.file.Files::walk还能实现递归...

编程语言与排序算法

我在工作中用过好几种编程语言,虽然它们都是图灵完备的,但物以类聚、人以群分,编程语言的社区各自都有非常鲜明的特色。忽然意识到这些特点与排序算法给人的印象颇有几分相似!

从Clojure的源码学习STM对引用变量的版本控制原理

STM(Software transactional memory)是Clojure并发的核心,功能类似数据库的事务管理,但Clojure相关的书籍都没提什么时候视为脏读、什么时候需要重做事务、事务中引用变量的值如何确定,网...

你试过这样写C程序吗?

本文将采用C语言解决一个问题,围绕这个问题不断地变化需求、重构代码,分别展示两种风格如何从不同的侧面提高代码的可维护性。

命令行程序设计的准则

虽然已存在大量关于图形用户界面(GUIs)设计的文章,可是介绍命令行界面(CLIs)设计的却很少。本文尝试介绍几个关于CLI设计最重要的准则。

消灭成堆的分支语句之类责任链模式

摘要 分支语句是所有编程语言的基本元素,比如Java语言中的if else和switch语句,它们提供一种能力允许程序根据一些条件动态地选择执行某些代码块。这种动态性给程序带来了很多的灵活性! 正...

循环 vs 递归

注:本文代码使用 JavaScript。 一些同学对递归的理解还停留在“是一种求阶乘比循环低效的方法”。但其实递归和循环处理的问题是不同。拿“遍历数组”这个问题来说:循环适合同一维度(单层长...

2012/08/02 22:54
367

没有更多内容

加载失败,请刷新页面

没有更多内容

返回顶部
顶部