接触python Web开发一年,现在比较迷茫,工作中主要是curd,也就是怎么取数据,然后给前台页面展示,框架是用的是django,优化也就是加个memecache,数据库查询时注意下。
现在比较纠结的地方很多:
1:进程 线程的编程的问题,在实际中怎么具体使用
2:网络编程的问题,高性功能服务器的设计实现问题,看tornado的服务器代码看不懂啊,可想而知我很菜了。
3:UNIX环境高级编程 UNIX网络编程 卷1 2这三本书先看哪个一个比较好那?或者应该看那本书哪,个人感觉UNIX网络编程看到目录里面设置服务器的设计,还有线程进程的问题,难道先看这个?
其实最主要想看懂torando的服务器设计,里面设计很多I/O,同步,异步啊,服务器设计啊,不想只会web的curd,不然太没有竞争力了(不知道web编程和网络编程是不是一个概念,我觉得不是一个概念。)
不知道我上面说的对不对,因为自己是自学,有错的地方请大神指教。
最后就是自己也看了python自带的那个最简单的服务器代码,能看懂,基本就是socket,然后符合WSGI的规范,但那个肯定是没任何性能可言,
回复内容:
我的建议如下
1.先看 图解tcp/ip 抓重点 。理解面向连接,无连接,tcp粘包,udp有界等
2.然后看 linux/unix系统编程手册 socket几章,号称超越apue的好书。这几章将socket,select,poll,epoll讲的很到位。理解select,poll的原理,大并发为啥epoll有优势,epoll的水平触发和边缘触发
区别,如何解决边缘触发饿死问题等等。
3.看 tornado源码,这时候看起来应该比较轻松。比如tornado中用pipe做waker,上本书都有讲解。
4.阅读 effective tcp/ip ...
5.慢慢读 tcp/ip详解卷一和unix网络编程
为啥最经典的书最后推荐,主要是让大家刚开始不要太纠结细节,unp实在太厚了,会吓死自己的。当能力够了再回头,才有共鸣,才有大收获。
基本网络模型可以看unix网络编程1,里面有echo服务器程序多进程版本,多线程版本,I/O复用select和pool。非阻塞web客户程序,多线程web客户程序。我记得大概这么多,大概看了70%,有些章节没有看,比如sctp有关章节,数据库章节。
然后可以看看陈硕的多线程服务端编程,c++我不熟悉,就看看部分章节。
线程的话,我看完unix网络编程看了一本posix多线程编程。很多基本概念再讲,比如条件变量,锁,竞态等
学习高性能服务器,我觉得还是要看源码。我现在在看lighttped,这个是IO复用。还有你问的太广了,进程线程从操作系统就有值得借鉴的地方。
我也是初学者,学生,感觉网络编程的坑特别大,希望大家多多指点
Stellungnahme:Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn