7年phper转python,各位pythoner有什么建议吗 - V2EX
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
leeyupeng
V2EX    Python

7年phper转python,各位pythoner有什么建议吗

  •  
  •   leeyupeng 2011-11-22 02:27:22 +08:00 6574 次点击
    这是一个创建于 5078 天前的主题,其中的信息可能已经有所发展或是发生改变。
    失眠了,上来发个问题...

    04年到现在写了快7年php,期间做过大流量网站,内部系统,还有脚本程序,早期还做过一个开源的Bug管理系统,框架也用了一些,ci、cake、yii(比较喜欢这个)等等,算是对php开发比较熟悉吧。
    两年多前因为一个偶然的机会写了两个月的ROR项目,当时Ruby给我的感觉还不错,但仅限于感觉不错。后来项目一期完成,就没再继续。

    第一次接触python是两三年前,不过当时是为了使用一些基于python的工具,代码也是照葫芦画瓢,所以也没太多感觉。直到前一阵才真正开始用python写项目,用的是django,写的是一个后台管理系统,在这个过程中渐渐的发现python的简洁之美,与接触ROR不同的是,python打动了我(或许我太笨没有发现Ruby更多的好处-_-),这是一种说不上来的感觉,比如你回忆一下上次被编程语言打动是什么时候?

    最近要写一个新项目,准备用python,虽然Zed在《Learn Python The Hard Way》中提到"Which programming language you learn and use doesn't matter",但我觉得不同的语言终归还是有些不同的“哲学”在里面。

    7年前接触php的时候是有位很好的师傅领我入门,少走了很多弯路。所以有“前辈”的指导点拨还是很重要的。希望v2ex上的pythoner能不吝赐教 :)

    我先提几个问题抛砖引玉一下
    1. 建议的编码规范
    2. 框架选择
    3. 商业应用常见的架构设计(或者具体一点,比如一个1万用户在线的应用)
    4. python程序的部署方式(目前是更新代码,重启,不知道有没有更好的方式)
    5. 如果觉得以上问题没啥好说的,就说点别的,尤其对于我这种从另一个语言转到python的人
    22 条回复    1970-01-01 08:00:00 +08:00
    keakon
        1
    keakon  
       2011-11-22 02:56:45 +08:00
    1. http://www.python.org/dev/peps/pep-0008/
    2-4. 选择太多了,要根据你的侧重点来选择:方便性、性能和学习成本。建议你自己尝试一下,每种花个半天的时间就差不多知道优劣了。
    5. 语言本身没什么好说的,注意MVC的分离就行了。可以花些时间研究HTTP、web socket、non-blocking server等服务器端的技术,PHP不太容易搞这些花样。
    Ricepig
        2
    Ricepig  
       2011-11-22 07:25:07 +08:00
    @keakon web socket是服务端技术了?我落后于时代了~~~
    whistle
        3
    whistle  
       2011-11-22 09:15:02 +08:00
    mark
    spritevan
        4
    spritevan  
       2011-11-22 09:45:01 +08:00
    1. 同 @keakon
    2-3. tornado+redis(tags)+spinx(search)+mc(cache) (:括号内是用途)
    4. tornado 通过 supervisor 起 (服务器 cpu 核心数)个进程, 项目根目录下扔了个 makefile, 每次上线只需要 make update 一下就 git pull 拉好代码, yuicompressor 合并压缩 static/files, 然后挨个重启 tornado 进程(之前偷懒直接 restart all, 会有造成片刻不可用)
    5. 其实我是 F2E 转 python ><
    iwege
        5
    iwege  
       2011-11-22 10:23:25 +08:00
    @Ricepig socket是,web socket不是...不然我觉得我也落后于时代了...另外现在web socket协议还不稳定,还在讨论当中.

    为啥看到 non-blocking 我总想起nodejs呢...
    keakon
        6
    keakon  
       2011-11-22 10:28:53 +08:00
    @Ricepig 服务器和客户端都有,和HTTP一样啊。本来就是通信协议,不可能单向实现啊。
    spritevan
        7
    spritevan  
       2011-11-22 10:32:38 +08:00
    玩 websocket 推荐用 http://socket.io
    客户端支持做得比较全
    neillifan
        8
    neillifan  
       2011-11-22 10:36:00 +08:00
    各位boss,我想请问教一下,本人大一,计算机专业,想自学一门编程语言,主要用于web开发,如果我想重新做一个新型的便于交流的强大的论坛,请问用那种比较好?最开始很多是关于php的,但是最近看资料发现很多人推荐用其他的,比如python等等。小弟有些茫然,希望各位前辈能有所指引,我也好安心的坚定的走下去。感谢。
    linsk
        9
    linsk  
       2011-11-22 10:51:29 +08:00
    @neillifan 如果再给我选,我选Ruby on Rails
    neozhang
        10
    neozhang  
       2011-11-22 11:42:11 +08:00
    做一个什么项目啊?
    SErHo
        11
    SErHo  
       2011-11-22 11:46:12 +08:00
    @neillifan 可以尝试Ruby on Rails,现在开源的可以参考一下:ruby-china.org,前提是你能喜欢上Ruby on Rails的哲学。
    我没喜欢上。
    leeyupeng
        12
    leeyupeng  
    OP
       2011-11-22 11:53:16 +08:00
    多谢各位的回复

    @keakon websocket这块我会多关注一下
    @spritevan 之前那个项目前端服务器就是用的tornado,更新代码用的是hg,make的方式后面会尝试一下
    @neozhang 自己的小项目,尚不足为道

    包管理大家有什么建议么?
    neillifan
        13
    neillifan  
       2011-11-22 15:26:21 +08:00
    @linsk @SErHo 请问,Ruby on Rails 在web方面比php强大吗?兼容吗?能支持常见的各种特效吗?感谢。
    neillifan
        14
    neillifan  
       2011-11-22 15:28:24 +08:00
    我希望三年后,我能够个人完成一个比v2ex更强大的网站,请问,个人有可能做到吗?
    roamlog
        15
    roamlog  
       2011-11-22 16:01:47 +08:00
    @neillifan 如何从 0 开始学 ruby on rails (漫步版) http://guides.readful.com
    linsk
        16
    linsk  
       2011-11-22 23:05:43 +08:00 via iPad
    @neillifan 开发效率。学rails应该不用三年吧,建议找志同道合的一起做,逐步成长。一个人遗漏了也不知道
    leeyupeng
        17
    leeyupeng  
    OP
       2011-11-22 23:21:52 +08:00
    楼直接歪到rails了...
    kojp
        18
    kojp  
       2011-11-22 23:55:28 +08:00
    @leeyupeng

    继续歪你的楼。。。。
    我目前的情况是,

    小的功能模块自己能写。。。
    稍微大的有架构的,有各种复杂逻辑的,就直接拿别人的来改。。

    请教前辈,
    1,水平如何提升?
    2,如何少走弯路?
    3,以及,如果奔着进公司上班来说的话,熟练使用哪个框架会比较受欢迎?
    (kohana怎么样,呃,我总是对ci,cake之类的,有莫名的抵触情绪。。其实kohana也没怎么用过)
    dexbol
        19
    dexbol  
       2012-02-16 23:13:59 +08:00 via iPad
    @spritevan 看到yuicompressor 就猜到5了
    dexbol
        20
    dexbol  
       2012-02-16 23:14:01 +08:00 via iPad
    @spritevan 看到yuicompressor 就猜到5了
    dexbol
        21
    dexbol  
       2012-02-16 23:14:02 +08:00 via iPad
    @spritevan 看到yuicompressor 就猜到5了
    muxi
        22
    muxi  
       2012-02-16 23:32:00 +08:00
    我在想楼主为啥要转?
    每个语言都有自己最佳领域,做web应用,如果PHP不是最佳语言,至少Python也不是
    但是 PHP + Python 或许是

    当然多会一点也不是坏事,混合编程可能才是未来的发展趋势,在没有一个完美Web语言解决方案出来之前
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5337 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 08:27 PVG 16:27 LAX 01:27 JFK 04:27
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86