Python 开发规范 - 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
15399905591
V2EX    Python

Python 开发规范

  •  
  •   15399905591 2021-04-20 14:19:47 +08:00 3306 次点击
    这是一个创建于 1725 天前的主题,其中的信息可能已经有所发展或是发生改变。
    使用 python 很多年了,除了像 pep8 这种语法规范,就没见过 python 有很系统的开发规范,是我孤陋寡闻么。
    15 条回复    2021-04-20 23:48:12 +08:00
    no1xsyzy
        1
    no1xsyzy  
       2021-04-20 14:26:47 +08:00
    因为理论上不需要
    There should be one-- and preferably only one --obvious way to do it.

    实际上有也很难执行,你会随机地遇到一个自己设定 DSL 的库。
    abersheeran
        2
    abersheeran  
       2021-04-20 14:33:03 +08:00
    确实没什么必要. 能遵守大部分 pep8 规范就不错了. 所以 Python 不够工业化, 真正的工业化语言应该跟流水线一样, 谁写出来都是一个套路. 但正是因为 Python 可以玩的很花哨, 才有意思.
    elintwenty
        3
    elintwenty  
       2021-04-20 14:35:01 +08:00
    python 的纯业务项目比例不够高,如果大家都用 python 写业务代码自然就需要更详尽的规范了
    ruanimal
        4
    ruanimal  
       2021-04-20 14:36:51 +08:00
    Google style ?
    DoctorCat
        5
    DoctorCat  
       2021-04-20 14:44:44 +08:00
    啥叫 “很系统的开发规范” ???
    类似 Java 生态那套? 那不好意思,Simple is Better 而且大多数开发语言都没那么多的行业规矩和企业级解决方案标准
    15399905591
        6
    15399905591  
    OP
       2021-04-20 14:59:38 +08:00
    @abersheeran 所以 python 在大型项目上一直是个坑。
    15399905591
        7
    15399905591  
    OP
       2021-04-20 15:00:19 +08:00
    @elintwenty 感觉看不到 python 这一天了。。python 在 web 方向发展真的有限
    15399905591
        8
    15399905591  
    OP
       2021-04-20 15:00:33 +08:00
    @ruanimal 那个只是语法规范
    15399905591
        9
    15399905591  
    OP
       2021-04-20 15:01:23 +08:00
    @DoctorCat 正是没有那一套, 所以 python 在大型项目上是个坑。
    DoctorCat
        10
    DoctorCat  
       2021-04-20 15:06:04 +08:00
    @15399905591 工程哲学问题。说到底,个人认为 Python 社区不给力。
    LeeReamond
        11
    LeeReamond  
       2021-04-20 15:50:18 +08:00
    1 、国外现在 node 公司满街跑,你去看国外一般公司对于 cpp/node 之类语言的编码规范,一般主要规定工程目录机构、注释还有代码可读性这几部分内容,这些 pep8 基本都有 cover 。虽然 py 社区发展到后面对它有一些批评,但基本上不影响主体。只能说规范深度依托语言特性,对于 py 来说一个很有趣的问题是,以 java 的规范写 python,那不如直接去写 java 。

    2 、大型项目上坑不坑,我不知道你用 py 写过多大的项目就说坑了,如果有问题请直接批评,而不是大家都说坑我也说坑。我前一家公司跑过 20 万行的 py 项目,应该不算大型,算中型项目,语言层面我觉得无坑。一般来说 py 被诟病的是动态类型问题,相应的解决方式可能是类似 flask 的代码风格(也许这是你说的规范),但如果你真的写过并读过那种冗长注释的工程,那么又回到了第一点问题。个人感觉是 3.6 版本之后 jb 家 IDE 的补全已经极大提高了工程效率,这套解决方案是更优的。
    touchwithe
        12
    touchwithe  
       2021-04-20 20:10:52 +08:00 via iPhone
    都说 python 搞不了大型项目,我到现在也不知道多大的项目算大型项目。
    ClericPy
        13
    ClericPy  
       2021-04-20 21:54:44 +08:00
    Google 出过一个什么风格指南

    前东家没啥规范, 就是不让用新语法和语法糖, 一方面兼容老版本老代码, 一方面兼容其他同事的知识面...

    其实就算不提设计模式, 软件开发那六个原则基本满足了日常 code review 规范了, 现在整天给人写 Hadoop 脚本用到的无副作用的纯函数, 都快好几个月没碰过面向对象了... 发现只要解耦开, 也没出现什么问题
    test0x01
        14
    test0x01  
       2021-04-20 23:34:13 +08:00 via Android
    black 一下搞定
    songkaiape
        15
    songkaiape  
       2021-04-20 23:48:12 +08:00
    有时候确实会有这样的疑问,真正 Pythonic 的代码是怎样的,感觉一般的官方库代码风格是可以学习借鉴的,另外分享一个很不错的文章 https://github.com/piglei/one-python-craftsman
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     897 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 21:24 PVG 05:24 LAX 13:24 JFK 16:24
    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