本博客(http://blog.csdn.net/livelylittlefish )贴出作者(阿波)相关研究、学习内容所做的笔记,欢迎广大朋友指正!
Content
零.序
一.感谢篇
二.工作篇
三.研究与学习篇
1. 研究与学习回顾
(1) glibc代码研究
(2) STL代码研究
(3) boost::lexical, boost::multi_index_container子库的研究
(4) Linux kernel代码研究
(5) Nginx-1.0.4代码分析
(6) 数学、智能、思维相关问题研究与学习
2. 研究与学习结果
3. 研究与学习心得
四.总结篇
全文在线阅读
三.研究与学习篇
1. 研究与学习回顾
(1) glibc代码研究
主要是针对<程序员的自我修养-链接、装载与库>这本书所做的研究与学习,重点关注如下问题。
关于该专题,笔者已经完成的文章如下,其他文章有待继续整理。
(2) STL代码研究
研究对象是SGISTL3.3,GCC-4.1.2自带的STL这两个版本。尤其对其中的List,heap,queue,deque,vector,set, map,rbtree等数据结构设计和实现有较深入的研究,并通过例子跟踪调试,并动手实现大部分的数据结构。
笔者希望能整理出关于该专题的文章,让自己不忘这些经典数据结构的设计技巧和实现方法。
(3) boost::lexical, boost::multi_index_container子库的研究
对boost的overview及boost::multi_index_container子库的原理、使用进行了比较深入的研究,可参考如下文章,共计14篇文章,且该专题也是“重构”的一个非常好的例子。
该专题的研究主要是为了DePON1.5系统中QoS模块重构,其中对MIBTable数据结构的修改,先采用了boost::multi_index_container,于是研究了一下该子库的使用方法;由于该设计不能很好的反映table间的关系,故后来改用链表(模板)来表示数据集本来的物理关系。
(4) Linux kernel代码研究
主要关注以下几个方面,先从其基本原理,基本设计思想入手,然后逐个深入分析,并写成文章。这是笔者的目标。
关于LinuxKernel方面的研究,笔者希望继续坚持研究,坚持原创。这将是笔者未来3年内学习重点。笔者坚信,对内核的深刻理解一定会让很多工作事半功倍。
(5) Nginx-1.0.4代码分析
目前还处在Nginx的数据结构分析阶段,已经完成pool,List,array,queue,hash数据结构的分析,可参考如下文章。
笔者研究Nginx的目的是希望能该中学习其作者优秀的设计方法和实现技巧,同时也为了给自己竖立一个短期目标,充实自己的业余时间。
(6) 数学、智能、思维相关问题研究与学习
如网络上流传甚广的砝码分盐问题等思维问题的思考、解决和总结。关于该问题,笔者从数学和计算机的角度对其进行了全面的分析和解决,因太长,故分节如下。
合集请参考<砝码分盐问题——从数学和计算机的角度分析>(提供下载)。
其他问题,如奇阶幻方,笔者从数学的角度分析其特性、解的通用性等,其他诸如中国余数定理、12球问题、13球问题、64球问题等知识、智能开发相关的问题。另外,网络上有个经典的面试题目,即阅读论文A Sorting Algorithm forPolynomial Multiplication并实现其中算法,该论文讲述多项式乘积算法及其优化,笔者为其实现了前两个算法,并完成相关文档。
笔者对这类问题的研究,目的是为了让自己能够保持活跃的思维,以养成深入思考问题本质的习惯。
2. 研究与学习结果
写这一节,我想我是可以自豪一下的。
工作和学习中使用Onenote2007做笔记,总计1600页(大约三分之一是工作笔记)。其中部分内容发到了blog上,希望能继续整理、发布。除此之外,笔者在平时的工作和学习中,养成了随身携带笔记的习惯,将自己的学习和思考、idea、工作计划、to-do-list、心得等随时记下,共计13.3本。
3. 研究与学习心得
此处记录笔者研究开源代码的方法。
读源码,有一项重要的任务,就是搞懂数据结构,包括逻辑结构和物理结构,搞懂对象间的关系,搞懂数据的流向。关于这一点,看参考Nginx-1.0.4源码分析的相关文章hash结构ngx_hash_t(v1.0.4)等。
此外,如下几个问题也应该考虑。