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 · 2690 次点击
    这是一个创建于 1311 天前的主题,其中的信息可能已经有所发展或是发生改变。
    使用 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   ·   实用小工具   ·   3279 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 12:08 · PVG 20:08 · LAX 04:08 · JFK 07:08
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.