随笔分类 -  软件学习笔记

摘要:我看书有个特点,不写笔记,就感觉好像没有看过书,印象不深刻(虽然写了也未必深刻),所以我看书会比较慢,笔记会很多。这里总结一下并发。最近学习《深入理解计算机系统》,最后一章中讲到了并发。之前一直以为并发是为了提高性能,书中将并发理解为逻辑控制流在时间上的重叠。简单的说,就是让机器能够同时处理多个事情,充分利用机器的能力。特别是现在多核机器的普遍,并发可能越来越重要。现代操作系统提供了三种基本的方法用于构造并发:进程,I/O多路复用,线程。我们公司在工作中用的最多的其实是第二种。你也许知道,他是无法利用CPU的多核的。不过还好,我们的服务器上一般会跑多个程序(系统划分为多个程序模块)。某些语言也 阅读全文
posted @ 2012-06-06 12:50 常高伟 阅读(10845) 评论(3) 推荐(3) 编辑
摘要:不知觉python总结都有四十页了,虽然可能很多都是基础性的,仍然有成就感。和之前一样,仍然全部贴出来,而不是把新的贴出来,请谅解。这次新增的部分包括c扩展,排序,ftp,源码安全,性能,代码检查等。后面在python上努力的几个方向:1、继续在开发中多使用,积累开发经验。2、针对我们公司完善基础库,在我们公司推广。3、抽时间,系统学习一下python。4、学习一下高手在怎么使用python。毕竟我是自学。5、参与开源。如果你想下载这个文档,请点击这里:http://download.csdn.net/detail/chgaowei/4324981两本不错的书:《Python参考手册》:对Py 阅读全文
posted @ 2012-06-05 23:15 常高伟 阅读(6857) 评论(8) 推荐(7) 编辑
摘要:最近读完《unix编程艺术》,一本不错的书,值得好好读一下。书中提到了一些非常有启发性的设计概念,这里和大家分享一下。模块性:要编写复杂软件又不至于一败涂地的唯一方法,就是用定义清晰的接口把若干简单的模块组合起来。模块性可以说是听到的最多的一个,它已经深入程序员的心中。它的本质其实就是用分而治之的方法来分解复杂度。关于模块的大小,本书有精彩的论述,有兴趣可以详读。紧凑性:就是一个设计能否装进人脑的特性。我把它理解为设计的可读性。紧凑不等以薄弱:如果一个设计构建在易于理解利于组合的抽象概念上,则这个系统能够在具有非常强大、灵活的功能同时保持紧凑性,典型的如Eclipse的插件体系结构。紧凑不等于 阅读全文
posted @ 2011-10-25 20:18 常高伟 阅读(2656) 评论(3) 推荐(3) 编辑
摘要:《重构》第三章学习笔记 我们必须培养自己的判断力,来决定在什么时候进行重构。 1.1  Duplicate Code(重复代码) 如果你在一个以上地点看到相同的程序结构,那么将他们合而为一会更好。 1.2  Long Method(过长函数) 拥有短函数的对象会活得比较好,比较长。 间接层所能带来的全部益处:解释能力(可读性),共享能力(重用性),选择能力(?)。 ... 阅读全文
posted @ 2009-10-12 20:15 常高伟 阅读(686) 评论(0) 推荐(0) 编辑
摘要:1  构筑测试体系 如果你想进行重构,首要前提就是要拥有一个可靠的测试环境。 “编写优良的测试程序,可以极大的提高我的编程速度,即使不进行重构也是如此。” 1.1  自我测试代码(Self-testing Code )的价值 “Class 应该包含他们自己的测试代码。” “每个Class 都有一个测试函数,并用它测试自己这个 Class 。” 确保所有的测试都完全自... 阅读全文
posted @ 2009-10-12 20:11 常高伟 阅读(554) 评论(0) 推荐(0) 编辑