⑴ 初学python,有哪些 Pythonic 的源码推荐阅读
scrapy框架的源码值得读一下。乎拍twisted框架源码。python自带的socketserver, sgml也可以看一下。flask, bottle, request的源码。这些框架都还不错,难度也不太高。值得一陵禅读尺顷尘。
⑵ 哪一个框架的源码适合拿来阅读学习
不要看框架源码,最好先打好基础,比如反射,代理等。因为很多框架的功能已经十分繁多,光是功能(英文)你都难以弄懂,更何况是参合了很多中间变量、逻辑功能的源码,越看越难以理解。即使要学习框架,也要先从javadoc注释,即API帮助文档开始,了解数据流的流入和流出。用源码反向猜测设计逻辑是吃力不讨好的事,一没完整注释,二不是本人,三反射的应用最伤脑细胞,你压根不知道在哪里被插了一脚。如果框架适合用来学习,那么改别人的代码也就不是个事了。问题来了,为何程序员都不喜欢改别人的代码bug?
⑶ 有没有Linux内核源码指导书籍
1.《Linux内核设计与实现》
本书重在原理。适合入门的最佳图书。作者是为2.6内核加入了抢占的人,对调度部分非常精通,而调度是整个系统的核心,因此本书是很权威的。
2.《深入理解Linux内核》
此书比上一本多了些细节。是Linux内核黑客在推荐图书时的首选。写的比较简单易懂,适合刚刚接触LINUX内核的。
此书图表很多,形象地给出了关键数据结构的定义,与《Linux内核源代码情景分析》相比,本书内容紧凑,不会一个问题讲解动辄上百页,有提纲挈领的功用,但是深度上要逊于《Linux内核源代码情景分析》。
3.《LINUX设备驱动程序(第3版)》
这书强调动手实践!但它是讲解“设备驱动”的,不是最核心的东西,而且有些东西没硬件的话无法实践,可能更适合驱动开发的程序员吧
其中关于同步与互斥、内存分配的部分,感觉很不错。
4.《Linux内核源代码情景分析》
好,很经典,是浙大教授毛德操写的,可惜成书于2001年之后一直没有更新。分上下册。
很多是基于2.4内核讲解的需要注意。如果学习的话也建议学习2.6,2.6跟2.4比发生了很多显着改善,应该学习的。
全书内容博大精深,不是非常好懂,对细节问题描述比较清晰。但是感觉对内核的整体感觉不够强。另外缺少网络部分的分析。觉得不是很适合初学者。
5.《Linux内核源代码分析》
点评:面对中高级,这本书很好,对了解操作系统是一本不可多得的好书。
6. 《LINUXKERNEL技术手册》
参考手册,很薄,值得一看。
7.《深入Linux内核架构》
这本书针对的是比较新的内核版本2.6.24;内容比较全面,深入浅出。
如果没有对Linux内核的初步结构的认识,那么会看得比较吃力。建议可以一边去翻在国内已经闻名已经久的四本Linux内核着作(《Linux内核原代码情景分析》、《Linux内核设计与实现》、《深入理解Linux内核》、《Linux设备驱动程序》),再一边看这本书,把这本书当作一个补充或者当作一个内核框架图谱说明书来阅读,收效会更好。
8.《Linux内核完全注释》
主要描述和注释了Linux0.11内核全部源代码。对于初学Linux内核操作系统的人来讲,该书能够引领读者快速入门,并且能全面了解一个简单操作系统的工作机理。对于进一步学习现在的Linux内核具有非常大的指导作用。对于学习嵌入式应用的技术人员来讲,通过《完全注释》一书的学习也能迅速融入嵌入式应用领域。
9.《Orange S:一个操作系统的实现》
从只有二十行的引导扇区代码出发,一步一步地向读者呈现一个操作系统框架的完成过程。
⑷ 初学Python,有哪些 Pythonic 的源码推荐阅读
如果一定要推荐一些 python 的源码去读,我的建议是标准库里关于网络的代码。从 SocketServer 开始,补上 socket
模块的知识,熟悉 TCP/UDP 编程,然后了解 Mixin 机制的最佳示例
SocketServer.{ForkingMixIn|ThreadingMixIn},借这个机会了解 thread/threading
模块,这时会对并发量提出新的要求,就可以读 select 模块,开始对 select/{epoll|kqueue}
有深刻理解,搞懂以后就可以接触一下异步框架 asyncore 和 asynchat。这时开始出现分岔。如果是做 game 等以 TCP/UDP
协议为基础的应用,可以去读 greenlet 和 gevent,如果是做 web,则走下一条路。
做 web,读
BaseHTTPServer、SimpleHTTPServer 和 CGIHTTPServer,读
cgi/cgitb,自己随意写框架,读cookielib,读 wsgiref,这时候自己写一个简便的 web framework 就 so
easy 了,老板再也不担心你写 web 了,选择 flask/web.py/django/pyramid 都心中有数了。因为走的是 web
的路,所以难免要调用一下别人的 api,搞懂一下 httplib/urllib/urllib/urlparse。