导入自 renren

据说是一道微软的面试题。如题,写程序,让Windows的任务管理器中的性能监视器呈现正弦曲线。

正弦曲线 正弦曲线

潜心钻研良久,得代码:(java)

public class sincpu {
    private static final int cycle=1024,tick = 256;
    public static void main (String[] args) throws InterruptedException {
        for(int i = 0;;i++){
            work(calcNextSleep(i % cycle));
            sleep(tick - calcNextSleep(i % cycle));
        }
    }

    private static long calcNextSleep(long i){
        return (int …

farseerfc.wordpress.com 导入

程序开发原理

——抽象、规格与面向对象设计

Barbara Liskov 、John Guttag 著

杨嘉晨 等译

关于翻译风格:

多年来阅读计算机类的著作及译作,感觉总体的困难在于一大堆没有标准译名的技术术语。由于通行于工业界和学术界的还是英文原名和术语,我决定保留大量的英文术语。这样的翻译风格借鉴于台湾著名的译者和作者侯捷先生。对于译与不译的权衡,主要考虑阅读的流畅,以及读者的理解能力,或许难免带有一些主观色彩。

前言 Preface

构建产品级质量的程序——可以在很长一段时间内使用的程序——众所周知是极其困难的。本书的目标就是改善程序员解决这项任务的效率。我希望读者在阅读本书之后成为一名好程序员。我相信本书的成功在于改善编程技巧,因为我的学生告诉我这已经发生在他们身上。

怎么才算是一名好程序员?是产生整个程序产品的效率。关键是要在每一阶段减少浪费掉的努力。解决的方法包括:在开始编写代码之前就仔细考虑你的实现方案,通过未雨绸缪的方法来编写代码,使用严格的测试在早期发现错误,以及仔细注意模块化编程,这样当错误出现时,只需要改动极少数代码就可以修正整个程序。本书涉及所有这些领域的技术。

模块化编程(Modularity)是编写好程序的关键。把程序分解成许多小模块,每一个模块通过良好定义的狭窄接口和别的模块交互作用 …