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
hl0832
V2EX  ›  Python

吐槽一下! Python 后端的开发路线、场景等在网上总是难有好的案例,羡慕 Java 好多路线、场景、解决案例 ORZ 太难了

  •  
  •   hl0832 · 2020-05-08 20:15:55 +08:00 · 6028 次点击
    这是一个创建于 1650 天前的主题,其中的信息可能已经有所发展或是发生改变。
    47 条回复    2020-06-11 00:00:21 +08:00
    specture
        1
    specture  
       2020-05-08 20:45:44 +08:00   ❤️ 1
    python 做复杂的 web 后端其实不是特别合适。python 这几年的火爆更多的是建立在数据分析,机器学习这个领域
    hmxxmh
        2
    hmxxmh  
       2020-05-08 21:26:32 +08:00   ❤️ 1
    Python 在 web 后端这一块市场太小了,最近找工作有感,机会少
    qdzzyb
        3
    qdzzyb  
       2020-05-08 22:21:59 +08:00
    devops 算法 大数据 感觉就这个三个方向岗位多一点
    stupidchen
        4
    stupidchen  
       2020-05-08 23:57:28 +08:00
    @qdzzyb 确实很神奇,devops 这块的需求感觉是大些。难道是因为开发速度快的缘故?
    xizismile
        5
    xizismile  
       2020-05-09 00:32:44 +08:00 via Android   ❤️ 2
    @stupidchen devops 需要胶水代码把各种工具整合起来,这种场景下 python 很合适
    mritd
        6
    mritd  
       2020-05-09 01:31:55 +08:00 via iPhone   ❤️ 1
    @xizismile #5 然后成型以后 go 推翻重写,别问我怎么知道的。
    HangoX
        7
    HangoX  
       2020-05-09 01:41:34 +08:00
    JAVA 的确是这个好处,毕竟好几年了,语言特点也决定了这个很适合堆人
    jack870131
        8
    jack870131  
       2020-05-09 05:47:52 +08:00 via iPhone
    毕竟几个国内互联网大厂都在用 Java 求职生态上还是比较友好的
    zachlhb
        9
    zachlhb  
       2020-05-09 06:52:06 +08:00 via Android
    语言只是工具,没有合适不合适,我一直在用 python 做 web 后端,并没有觉得哪里不合适
    songkeys
        10
    songkeys  
       2020-05-09 07:09:40 +08:00
    @zachlhb #9 主帖没说不合适,只是说相对 Java 来说,应用场景少,难找到好的实践案例。
    arischow
        11
    arischow  
       2020-05-09 07:40:55 +08:00 via iPhone   ❤️ 1
    你在这里发这种帖学不到东西的,只会收到很多类似「 Python 做后端不行」的回复。
    LokiSharp
        12
    LokiSharp  
       2020-05-09 07:49:19 +08:00 via iPhone
    Python 不适合做后端
    37Y37
        13
    37Y37  
       2020-05-09 07:52:26 +08:00 via Android
    python 做后端不行 🐶
    确实是 py 写 devops 相关工具的很多
    zachlhb
        14
    zachlhb  
       2020-05-09 07:54:19 +08:00 via Android
    @songkeys 因为 python 做后端的都是自己写的,都舍不得放出来
    namelosw
        15
    namelosw  
       2020-05-09 08:19:52 +08:00
    没啥不行的,Python 适合 Web 就像 Ruby 适合 Web 一样

    Java 反而没那么适合 Web,只能说凑合。Java 表现力弱,所以依赖轮子,创造了更多工作

    眼馋 Java 的案例,也可以直接看看自己搞,大部分 Java 的组件 Zookeeper Kafka ES 之类的 Python 也能用
    vicalloy
        16
    vicalloy  
       2020-05-09 09:00:29 +08:00
    很想知道这里所谓的开发线路、场景具体指的是什么。
    按照我的理解构架层面的很多东西和语言本身的关系不是特别大,不存在 A 能做 B 不能做的情况。
    xiaolinjia
        17
    xiaolinjia  
       2020-05-09 09:00:34 +08:00
    基本上在外网,国内很少。顺带力扣不也是 django 做的
    stoneabc
        18
    stoneabc  
       2020-05-09 09:10:00 +08:00
    @xiaolinjia Insagram 也是 django
    cz5424
        19
    cz5424  
       2020-05-09 09:16:37 +08:00 via iPhone
    国内比较多转 go 了
    NoKey
        20
    NoKey  
       2020-05-09 09:23:17 +08:00
    上次我找工作,那个公司就是 python 后端,然而我一 java 后端,python 只写过一些脚本,他们的技术负责人很看好我这个 java 转 pyhton,说的你熟悉熟悉转过来就可以了嘛。。。我放弃了😓
    zachlhb
        21
    zachlhb  
       2020-05-09 09:25:25 +08:00 via Android
    @xiaolinjia #17 是的,我现在就是 django+tornado
    hunter2015
        22
    hunter2015  
       2020-05-09 09:41:29 +08:00
    基本没有,转 java 吧
    xiaolinjia
        23
    xiaolinjia  
       2020-05-09 09:54:45 +08:00
    @zachlhb 能请教下在什么场景下要结合 tornado 吗,单靠 django 不能实现么,是要借助 tornado 的异步循环?
    ychost
        24
    ychost  
       2020-05-09 09:55:52 +08:00
    django 性能太弱了
    zachlhb
        25
    zachlhb  
       2020-05-09 10:07:24 +08:00 via Android
    @xiaolinjia #23 需要用到 socket 长链接,对接硬件设备之类的,还有方便运维部署,用 tornado 写个 httpserver 接管 django 的 wsgi,然后运维直接执行文件就行了,nginx 上只用做个反向代理,不用配其他东西了
    TypeError
        26
    TypeError  
       2020-05-09 10:09:49 +08:00 via Android
    看英文资料 或者换语言,没必要只盯着一门语言
    wellsc
        27
    wellsc  
       2020-05-09 10:12:37 +08:00
    @cz5424 这是企业内空降布道师的功劳吧,用 go 写业务代码真的没感觉比 Python 强多少
    monsterxx03
        28
    monsterxx03  
       2020-05-09 10:13:24 +08:00   ❤️ 1
    python 主要在 io 这块很烦, async io, tornado, gevent 各占山头, 你要集成个 jaeger 做 tracing, 然后发现官方的 client 是基于 tornado 写的, 然后自己 service 用 gevent 跑的. 对接个第三个 sdk, 人家地下是基于 requests 的,结果自己是 async io 写的 hmmmmm
    wangyzj
        29
    wangyzj  
       2020-05-09 10:52:59 +08:00 via iPhone
    没啥不行的
    就是市场上用的少而已
    lolizeppelin
        30
    lolizeppelin  
       2020-05-09 10:55:13 +08:00
    曾经飞在封口上的 openstack, 那么大项目都走下坡路

    扯什么 django tornado 就算了
    watsy0007
        31
    watsy0007  
       2020-05-09 11:08:21 +08:00
    具体场景具体分析. 比如?
    crella
        32
    crella  
       2020-05-09 11:12:43 +08:00
    用着冷门语言的我表示经常借鉴 python 或者 js 的代码和库……
    LYEHIZRF
        33
    LYEHIZRF  
       2020-05-09 11:25:54 +08:00
    什么场景 说出来分析分析
    dayeye2006199
        34
    dayeye2006199  
       2020-05-09 12:19:53 +08:00
    对大部分网站来说,django 或者 py 的一堆网页后端方案应该都还没构成性能瓶颈。

    instagram 这种不也有魔改版 django 撑着么。。

    LZ 可能指的是 java 可以做一些大数据方面的开发?或者一些基础件的开发-数据库,存储之类的组件?
    hoyixi
        35
    hoyixi  
       2020-05-09 12:42:29 +08:00
    很多人为了 Python 而 Python,前两年是为了 Node 而 Node,为了 Go 而 Go
    适合的才是最好的
    baozijun
        36
    baozijun  
       2020-05-09 13:02:32 +08:00   ❤️ 3
    JAVA web 的坑 亚马逊(云计算),netflix(微服务),阿里巴巴和京东(高并发高性能)都给你趟好了,无数优质稳定久经考验的轮子无脑用。

    至于写代码繁琐,IDE 智能提示自动补全自动生成让你只为命名烦恼,
    向前兼容且不花哨的工程化语法让你即使接过前人的锅亦可以顺利背下,静态代码分析也由此可以提前找出可能存在的代码错误(用法错误);
    完善的并发处理可以尽可能细粒度的管理状态(就是思路和概念掌握起来确实烦,掌握了用起来相对简单);
    注解让管理和配置自动化如虎添翼。

    顺便提一句,JS 后面肯定是最好的语言选择。

    相关利益者: java(Node)工程师(python 方面只用 django 做过 SNS 毕设,rails 大学自学过)

    **不用人云亦云,整天贬低语言吹捧语言的一般都是菜鸟或者没有经历过大项目的(或者我这种没有主见的),真正的大佬只会说我全都要,然后信手拈来,或独立或整合应对各种场景.语言只是工具,应对各种需求,而不是信仰,非要中二的争出个你死我活**
    MeteorCat
        37
    MeteorCat  
       2020-05-09 13:06:38 +08:00 via Android
    脚本语言都差不多,到底一定规模就要重写一遍
    dearmymy
        38
    dearmymy  
       2020-05-09 13:17:41 +08:00   ❤️ 1
    好多朋友是都是 python 初期,业务大了 go 重写边
    AngryMagikarp
        39
    AngryMagikarp  
       2020-05-09 13:30:56 +08:00
    Java 是因为出现得比较早,在企业应用这块站稳了脚跟,各种大而全的框架。那个时代 Java 就没有竞争对手。不过某种意义上这也是它的缺点。

    小公司用 Java 的并不多。小而老的公司用 PHP,小而新的用 Python 、Go 甚至 Node 、Ruby 。
    wysnylc
        40
    wysnylc  
       2020-05-09 14:18:23 +08:00
    @AngryMagikarp #39 python 比 java 还早一年
    cz5424
        41
    cz5424  
       2020-05-09 14:27:22 +08:00 via iPhone
    @wellsc 很多小公司初期项目,开发效率比性能重要的多,能不能活下来,再考虑性能。大家都造飞船,造不出来就死了有何意义
    cz5424
        42
    cz5424  
       2020-05-09 14:30:11 +08:00 via iPhone
    @monsterxx03 Python async 是比较新的东西了,这种情况很正常,毕竟库多,大不了自己改下库
    hl0832
        43
    hl0832  
    OP
       2020-05-09 19:25:20 +08:00
    其实我接触 python 也就是这 2 年,只是感慨,以国内而言,企业级应用中 python 后端开发在各场景(大数据、devops 、物联网等)感觉分享的案例不是太多(好多其实还是偏向于个人简单应用),但是个人感觉那么多前辈应该是有不少心得,为啥分享的越来越少了。语言当然没有好坏,能掌握更多、触类旁通自然越来越强。最大的感慨还是:如果应用分享的少,生态难免越来越弱,那更多的新人学习的机会就更少了。
    specture
        44
    specture  
       2020-05-11 15:38:49 +08:00
    很多回复都停留在能不能做的层面上,但是实际上一个产品选择什么语言更多是从成本和工程性上考虑的.python 优点在于语法灵活,非常多的糖,但是真正去做复杂的后台系统,不管是 TO B 的应用,在安全性,抽象能力上不如 java 等;做 TO C 的应用,在性能上不如 JAVA,GO 。
    能做和能做好,做好后易于维护易于扩展是两回事。之前有读 k8s 源码,最近工作需要也研究了下 openstack 源码,我觉得两个语言的理念和哲学造成了两个项目可读性和可维护性的较大差异,明显 k8s 源码看起来更舒服,调试起来也更舒服
    AsterPy
        45
    AsterPy  
       2020-05-15 09:13:01 +08:00
    @zachlhb 一针见血 啊。都是闷声发大财,然而案列缺很少,比如 django-restful 。
    ForIJk
        46
    ForIJk  
       2020-06-03 12:57:29 +08:00 via iPhone
    @arischow 有推荐的吗?字节跳动挺多 Python 岗位的
    dahuahua
        47
    dahuahua  
       2020-06-11 00:00:21 +08:00
    @ForIJk 头条进去基本也是转 Go 的 学 Python 最好的出路我感觉就是去头条了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5858 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 02:57 · PVG 10:57 · LAX 18:57 · JFK 21:57
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.