2009年3月29日
架构设计:生产者/消费者模式[2]:队列缓冲区
经过前面两个帖子的铺垫,今天终于开始聊一些具体的编程技术了。由于不同的缓冲区类型、不同的并发场景对于具体的技术实现有较大的影响。为了深入浅出、便于大伙儿理解,咱们先来介绍最传统、最常见的方式。也就是单个生产者对应单个消费者,当中用【队列】(FIFO)作缓冲。
2009年3月27日
架构设计:生产者/消费者模式[1]:如何确定数据单元?
既然前一个帖子已经搞过扫盲了,那接下来应该开始聊一些具体的编程技术问题了。不过在进入具体的技术细节之前,咱们先要搞明白一个问题:如何确定数据单元?只有把数据单元分析清楚,后面的技术设计才好搞。
2009年3月25日
架构设计:生产者/消费者模式[0]:概述
今天打算来介绍一下“生产者/消费者模式”,这玩意儿在很多开发领域都能派上用场。鉴于该模式很重要且相关内容比较丰富,俺打算分几个帖子逐一介绍。今天先来扫盲一把。如果你对这个模式已经比较了解,请跳过本帖子,直接看下一个帖子(关于如何确定数据单元)。
2009年3月22日
开源点评:cURL——优秀的应用层网络协议库
今天来点评一下 cURL,这是一个老资格的开源项目,使用它可以基于多种应用层网络协议进行数据传输(包括上传和下载)。它的特点是:支持的协议多、跨平台、支持多种编程语言接口。后面俺会针对这些特点作一些简单的介绍。
2009年3月20日
Java 新手进阶:细说引用类型
在前几天的帖子《Java性能优化[1]:基本类型 vs 引用类型》里,俺大概介绍了“引用类型”与“基本类型”在存储上的区别。昨天有网友在评论中批评说“引用类型变量和它所引用的对象”没区分清楚,容易混淆。所以今天专门来说一下引用类型的相关细节。
2009年3月19日
Java 性能优化[2]:字符串过滤实战
上一个帖子已经介绍了基本类型和引用类型的性能差异(主要是由于内存分配方式不同导致)。为了给列位看官加深印象,今天拿一个具体的例子来实地操作一把,看看优化的效果如何。
2009年3月16日
Java 性能优化[1]:基本类型 vs 引用类型
在 Java 性能优化系列中,内存管理是一个要优先考虑的关键因素。而说到内存分配,就必然会涉及到基本类型和引用类型。所以我们今天就先来介绍一下这两种类型在性能方面各自有什么奥妙(关于引用类型的其它奥妙,请看“这里”)。
Java 性能优化[0]:概述
考虑写性能优化系列,主要是因为之前看到了太多性能其烂无比的 Java 代码(有些代码看得俺口瞪目呆)。很多 Java 程序员在写程序时,由于不太了解 JVM 及语言本身的一些运作机制,从而导致了代码的性能出现【严重】问题(性能差一个数量级以上,我才称为“严重”)。
2009年3月14日
2009年3月13日
开源点评:SQLite 数据库扫盲
今天注意到SQLite 3.6.11(上个月发布的)增加了一个俺期待已久的“online backup”接口,激动之余就顺便和大伙儿聊一下 SQLite 数据库。本帖权当是 SQLite 扫盲,如果你对 SQLite 已经很熟悉,本文就不必再看了。另外,假如你想了解 SQLite 在软件项目中的具体应用,可以看“另一篇博文”。
2009年3月12日
2009年3月9日
书评:《人月神话》——不朽的软件工程名著
已经有好几周没有写书评了,今天突然想起来要写一写。由于上次的书评是关于 C++ 的,今天打算写写软件工程方面的。对于软件工程而言,我个人认为到目前为止,尚未有哪本书的影响力和深刻程度能够超越《人月神话》(全名是:The Mythical Man-Month——Essay on Software Engineering)。于是考虑来聊一下鼎鼎大名的《人月神话》。如果你已经熟读此书,并且自认为深刻掌握其精华,本帖子你就不必再看了。
2009年3月5日
C++ 对象是怎么死的?Win32 线程篇
在前面的帖子里聊完了进程终止对C++对象析构的影响。今天咱们来说一下线程对于C++对象析构的影响。
由于 C++ 03 标准【没有】包含线程的概念,而(截至写本文时)C++ 0x 尚未正式发布。所以对线程的讨论只好根据特定的操作系统平台来谈。对于操作系统自带的线程 API,目前比较流行的款式是 Windows 平台提供的线程 API 和 POSIX 平台上的 pthread API。但是这两种线程 API 的差异实在是太大,没法拿出来一起聊。我只好把“线程篇”的帖子再拆分一下,今天先来聊一聊 Win32 的线程 API(下一篇再聊 pthread)。
由于 C++ 03 标准【没有】包含线程的概念,而(截至写本文时)C++ 0x 尚未正式发布。所以对线程的讨论只好根据特定的操作系统平台来谈。对于操作系统自带的线程 API,目前比较流行的款式是 Windows 平台提供的线程 API 和 POSIX 平台上的 pthread API。但是这两种线程 API 的差异实在是太大,没法拿出来一起聊。我只好把“线程篇”的帖子再拆分一下,今天先来聊一聊 Win32 的线程 API(下一篇再聊 pthread)。
2009年3月2日
无处不在的二八原理[3]:关于招聘(如何找到优秀的软件开发人才)
今天咱们先来聊聊招聘的话题。为啥要先聊招聘捏?因为招聘工作是其它各项管理工作的源头(先得有人可管才能谈管理嘛)。并且招聘工作有其特殊性:招聘方面的失误传递到了后续的环节,其影响会成倍放大。这个现象非常类似于软件开发流程:如果需求阶段出了问题,该问题到设计阶段会放大十倍(设计人员会骂娘),到编码阶段会放大百倍(程序员会抓狂),到测试阶段......
费了这许多口水之后,大伙儿应该看出招聘工作的重要性了吧?既然知道了重要性,下面俺就来个现身说法,讲一下当初搭建开发团队的经验。
费了这许多口水之后,大伙儿应该看出招聘工作的重要性了吧?既然知道了重要性,下面俺就来个现身说法,讲一下当初搭建开发团队的经验。
2009年3月1日
无处不在的二八原理[2]:在管理方面的应用
前两周由于聊了“每日构建”系列和“C++对象之死”系列,把二八原理系列给搁置了一些时间。今天终于又回到这个系列上了。我估计列位看官中,可能有不少人打算将来往管理方向发展,所以在聊完“二八原理在软件开发的应用”之后,咱们就来聊聊管理方面的话题。