V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
julyclyde
V2EX  ›  Python

无心写程序,却愿意去读标准库,咋办?

  •  
  •   julyclyde ·
    julyclyde · 2013-06-01 21:47:23 +08:00 · 5397 次点击
    这是一个创建于 4201 天前的主题,其中的信息可能已经有所发展或是发生改变。
    近20年的计算机学习经历,从当年DOS 2.1、BASIC开始,到后来NOIP联赛、C语言、C++、ASP,后来嫌自己管理内存太恶心,就戒了;大学学了点儿Java,觉得类库太庞大,后来又对Java派乐于炒作concept的作风嗤之以鼻,也没好好学;最后改投Linux系统管理,至今算是有点儿成绩

    近期迫于领导的压力和工作需要,学习了Python 2,但因为荒废开发太久,以及工作性质的原因,总觉得没啥可写的,偶尔写点儿小功能也一般shell就对付了,对MVC也很难适应(我写ASP那会儿还没流行MVC)

    现在每天的乐趣就是看Python标准库。前一阵刚仔细研读了SocketServer、BaseHTTPServer、SimpleHTTPServer、CGIHTTPServer、wsgiref.simple_server等几个库,给同事开小讲座讲讲,也算对上级要求的学习任务有个交代

    但我总觉得这状态不太对劲啊。求指点
    26 条回复    2016-03-09 13:44:55 +08:00
    DaniloSam
        1
    DaniloSam  
       2013-06-01 22:06:15 +08:00
    炫耀的好没情调
    phuslu
        2
    phuslu  
       2013-06-01 22:08:35 +08:00   ❤️ 1
    循着这个思路可以去精读 tornado,读完了说不定就找到新目标了。
    或者直接到 github 开坑填吧, 比如想这样的小项目 https://github.com/smgoller/rangehttpserver
    julyclyde
        3
    julyclyde  
    OP
       2013-06-01 22:11:40 +08:00
    @phuslu tornado听说是异步的?我小时候因为用visual basic,倒确实是对异步的感觉更自然,对Unix传统的阻塞式IO不是那么喜欢。不过tornado作为贯通中西的“框架”,其自身应该是阻塞式写法,为应用程序开发提供非阻塞、异步的中间层吧。不过我现在迷茫的是,读了之后又怎样呢?似乎还是没心去写程序。现在一是没啥可写的(因为我是系统运维工程师)二是也写不出来,因为荒废多年,已经不行了
    phuslu
        4
    phuslu  
       2013-06-01 22:21:24 +08:00   ❤️ 2
    @julyclyde 没关系呀, tornado 的除了名字不 pythonic 之外,它和SimpleHTTPServer/CGIHTTPServer是使用 pure python 写出来的,本身的实现非常的 pythonic, 而且它不像 gevent 之类的框架那么混杂。并且它也非常注重运行效率并且功能完备,和SimpleHTTPServer/wsgiref.simple_server 不一样的是,torando 可以称的上是 full stack network/web framework in real world. 强烈建议读完标准库以后再精读一下它,这样才能一窥 python 真正的网络程序的写法。 :D
    julyclyde
        5
    julyclyde  
    OP
       2013-06-01 22:32:32 +08:00
    @phuslu 好哇,那我尽快开始
    shanks
        6
    shanks  
       2013-06-01 22:45:58 +08:00
    python 标准库读起来确实赏心悦目,跟读书一样。我最近也在看SocketServer的源码,是非常好的代码范例,不过我目的性比较明确,就是想搞明白代码底层的运作。。。
    phuslu
        7
    phuslu  
       2013-06-01 22:54:34 +08:00   ❤️ 2
    是的,但是看起来漂亮不一定实用。比如说 gevent, 论代码风格比 tornado 差不少,但是的确比 tornado "好用"(方便+效率高)
    这里有个极端例子,就是沈大侠的 eurasia 异步网络框架,单文件,性能非常高,但是实现却很不优雅。
    http://eurasia.googlecode.com/svn/branches/3.2/eurasia.py
    julyclyde
        8
    julyclyde  
    OP
       2013-06-02 08:07:36 +08:00 via iPad
    @shanks 我前一阵咳读过几个web框架的URLrouting&dispatch部分,看他们getattr然后 古代版本用apply调用、现代版本直接调用函数,很感叹动态语言之动态啊!
    julyclyde
        9
    julyclyde  
    OP
       2013-06-02 08:08:28 +08:00 via iPad
    @phuslu eurasia听说过,还没拜读,也准备尽早看看
    julyclyde
        10
    julyclyde  
    OP
       2013-06-02 09:25:06 +08:00 via iPad
    @DaniloSam 真不是炫耀。道常在,技已逝,我这得调整好久才能恢复元气呢。以前从没玩过动态语言,还越过MVC在web领域的缘起阶段,这次算长见识了
    lisztli
        11
    lisztli  
       2013-06-02 10:08:22 +08:00
    我的天, 这是传说中的七月? 楼上几位还是不要给人出谋划策了,免得贻笑大方。
    zhy0216
        12
    zhy0216  
       2013-06-02 10:38:49 +08:00
    @lisztli ??难道楼主是传说中的大神?
    wuxqing
        13
    wuxqing  
       2013-06-02 10:42:53 +08:00
    说明LZ老了,应该进入培养新人的阶段了或者转管理
    treo
        14
    treo  
       2013-06-02 11:33:48 +08:00
    你可以改行做代码审计。。
    Livid
        15
    Livid  
    MOD
       2013-06-02 11:35:31 +08:00
    @lisztli 你这算是高级黑么
    lisztli
        16
    lisztli  
       2013-06-02 12:56:00 +08:00
    @livid 真的是水木上著名的七月,不是高级黑……
    xiaoxuxu
        17
    xiaoxuxu  
       2013-06-02 13:44:16 +08:00
    此楼都是大神。goagent用户前来膜拜
    felixye
        18
    felixye  
       2013-06-02 14:18:41 +08:00
    只磨刀,不砍柴
    manoon
        19
    manoon  
       2013-06-02 14:34:19 +08:00
    我还在纠结,我要不要买一本算法的书来看。。。其实,我真心不喜欢这些。
    Feobe
        20
    Feobe  
       2013-06-02 20:15:17 +08:00
    @lisztli
    讲讲?不混水木。。不熟,孤陋寡闻啊。。
    julyclyde
        21
    julyclyde  
    OP
       2013-06-03 08:01:06 +08:00 via iPad
    @lisztli 是我没错。但你看我在水木其实编程类版面也都是学习的地位姿态啊。也就linuxapp我还能帮帮别人吧
    julyclyde
        22
    julyclyde  
    OP
       2013-06-03 08:01:53 +08:00 via iPad
    @felixye 归纳得够精辟
    rrfeng
        23
    rrfeng  
       2013-06-03 09:57:27 +08:00
    围观大神。
    python 刚学会一点点……
    doufenger
        24
    doufenger  
       2013-06-03 12:49:03 +08:00
    无心写文章,却愿意去读字典
    julyclyde
        25
    julyclyde  
    OP
       2013-06-03 16:50:55 +08:00
    求大家推荐,怎么样能写个规模较小、功能完整的小程序热热身?
    julyclyde
        26
    julyclyde  
    OP
       2016-03-09 13:44:55 +08:00
    编程这事还是得靠实践啊
    去年终于交接了运维工作上那些事,转到传说中的 DevOps 来了
    现在的工作内容之一就是伺候 Sentry (github.com/getsentry) ,从升级版本,到写 SSO 插件、通知插件,都得先通读原版代码然后再看怎么把自己的东西挂进去,因为我有洁癖,坚持不改原版一行代码,所以自己这些东西都是靠启动时挂插件放进去的

    感谢上面的兄弟们的支持和指点
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3342 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 00:15 · PVG 08:15 · LAX 16:15 · JFK 19:15
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.