• Python到底适合什么后端团队和项目?


    前言

    1、我的Python从业经历

    本人从2015年开始基本上都在使用Python语言,主要做扫描器、分布式任务、后台接口、AI、图像和3D点阵处理、数据接收处理等等,也待过几个公司,所在部门基本上也是多种语言的开发小组都有,统计了下如下,比重主要依据相关语言的人数来定

    (文末送读者福利)
    在这里插入图片描述

    2、感受到的其他语言开发者的“善意”提醒

    由于所在部门有多种语言开发团队,时间长了,熟悉的同事会比较好奇为什么我们会用Python来做产品化的东西,主要问题(Python劣势)集中在这几个观点里面

    Python不是做自动化脚本的么
    很多公司可能测试地位低于开发,然后测试使用Python,开发使用JAVA或者C语言的概率很高,于是就形成一个观念,Python是测试用的,测试代码不行,所以Python不行

    Python这么慢开发的产品能用么
    Python运算速度极慢,比Java还慢10倍以上,比C就慢更多了,开发的产品怎么用?

    Python是低级的语言,很烂
    Python语言没有参数约束,没有类型约束,很多Python开发也不具备OOP或者设计模式的思想,很多人看到的Python代码很烂,给人感觉Python语言也比较低级

    Python的并发是假的
    不管是Python开发或者其他语言开发者,都知道Python的PIL锁,知道Python的并发是假并发

    Python是借着AI和大数据的东风才有一席之地吧
    Python入门简单,所以新兴技术领域,AI和大数据科学家使用Python来快速实现自己的算法思想,要是这些科学家其他语言功底强一些,是不是就没Python什么事情了

    3、为Python正名,它到底适合做什么项目

    我15年之前7年接触的是C和C#,JAVA也会涉及到代码阅读,刚开始接触Python,也会按照C的思路来开发Python项目,待了这么多公司,也接触到各种开发团队和各种语言来实现不同的项目,现在也不像之前特别维护自己的开发语言了,Python确实有很多弊端,也有他的优势,Python肯定不是最好的语言,但适合的项目也很多。

    纯IO型业务,非计算型
    我想说的IO型指的泛化的IO,包括如下几类

    网络IO类,作为客户端,进行爬虫、网络嗅探,或者比较传统的CURD业务,这些业务都有一个特点,数据需要从服务端获取,但基本不需要做什么运算,这部分业务流程大部分的时延在服务端响应和网络延时上。

    在这里插入图片描述
    文件IO类,例如读取磁盘文件,或者是写文件,几乎没有计算,另外Linux上的socket数据处理TCP或者UDP,不管是作为服务端还是客户端,只是简单的文件传输,不涉及文件内容的处理。

    Python的如下特性,能够完美契合这些业务需求,在极少的开发代码量下,效率能够媲美JAVA或者C,资源占用也不大。此类IO型等待的,一般使用线程池并发,或者协程异步都能满足需求,不需要使用进程池。直接使用线程池也能比较方便的控制并发量和运行,不需要并发细节。

    在这里插入图片描述

    Python的AI框架
    目前比较流行的Tensorflow,Yolo,Resnet,Paddle等等AI框架,直接使用Python就能调用,以图形领域为例,图形加载,矩阵相关运算有AI计算库 opencv和numpy等,如果计算频繁计算量大,还有发布的GPU版本。

    在这里插入图片描述
    其他所有非计算的小型项目
    Python语言本身的计算性能,由于其动态语言特性,永远比JAVA/C/GO等编译型语言会差很多,这是毋庸置疑的,只要项目中涉及到大量的数值计算,那Python肯定是不适合的。反之,对于非计算类型,或者计算可以使用numpy等矩阵运算库完成的项目,均可以使用Python来完成。

    4、Python适合什么团队

    很多公司Python开发可能只有一个人,不存在团队的概念,只是将Python开发来作为其他项目的补充,衔接各个项目组中一些不重要的模块。那已经有成熟的JAVA或者C团队,人员充足,也没有什么新兴方向的业务需求,不考虑缩小团队规模,或者以现有人力做更多小项目,那维持现状是最好的。 资金和人力预算充足,团队扩充不在乎成本,项目也是传统的CURD,不用考虑Python。

    选用Python组建团队,那首要目标肯定是低人力成本和快速的高产出,但跟其他语言一样,不是说几千块钱工资随便招一个后端开发,就能肩负起稳定的产品化项目。说Python适合什么团队,本质是什么样的Python团队才是好团队,需要具备哪些要素,才能为公司带来高效率的产出,个人经验有以下一些方面

    经验丰富Python技术过硬的带头人
    需要产品化经验丰富,不光是语言开发,在架构、稳定性、高可用等方面都需要有实际的经验,不能只有Python脚本工具开发的经验,很多外包项目都具备这些特定。

    也需要有切实的Python经验,每个语言和它的生态有其特点,不是说JAVA经验丰富就能规划好庞大的Python产品级开发任务。

    像Java和C一样范式化编程
    Python语言太灵活, 但作为生产项目开发,也必须借鉴JAVA/C等的模型、结构、固定变量类型和形参等等方式,团队开发过程中,这些范式非常重要,一个人自由编程没关系,但团队人多了,简单的函数参数、类型和接口类型这些不约束,那项目很容易崩盘。

    不要试图用Python完成一切
    Python主要还是后端语言,作为后端它也不能完成一切,特别是存在大量计算的CPU密集型模块,这些运算可以采用C/go/java等完成,当然如果你的项目中不存在这些场景,那么恭喜你,Python完全适合你的项目和团队。

    读者福利:知道你对Python感兴趣,还准备了这套python学习资料

    对于0基础小白入门:

    如果你是零基础小白,想快速入门Python是可以考虑的。

    一方面是学习时间相对较短,学习内容更全面更集中。
    二方面是可以找到适合自己的学习方案

    包括:Python永久使用安装包、Python web开发,Python爬虫,Python数据分析,人工智能、机器学习等学习教程。带你从零基础系统性的学好Python!

    零基础Python学习资源介绍

    👉Python学习路线汇总👈

    Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。(全套教程文末领取哈)

    👉Python必备开发工具👈

    温馨提示:篇幅有限,已打包文件夹,获取方式在:文末

    👉Python学习视频600合集👈

    观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

    👉实战案例👈

    光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

    👉100道Python练习题👈

    检查学习结果。

    👉面试刷题👈



    在这里插入图片描述

    资料领取

    上述这份完整版的Python全套学习资料已经上传网盘,朋友们如果需要可以微信扫描下方二维码输入“领取资料” 即可自动领取
    或者

    点此链接】领取

    好文推荐

    了解python的前景:https://blog.csdn.net/xiqng17111342931/article/details/127705925

    了解python的副业:https://blog.csdn.net/xiqng17111342931/article/details/127872402

  • 相关阅读:
    反射型XSS实验(2)
    微信小程序:仅前端实现对象数组的模糊查询
    环境安装-Linux虚拟机
    springboot整合极验实现登陆
    Flink日志收集到数据库/kafka
    docker容器资源限制:限制容器对内存/CPU的访问
    Nodejs+vue+Elementui课程教学网站系统
    论格斗游戏中“一滴血反杀”现象的心理机制与启示
    【2019】【论文笔记】基于石墨烯/TiO2/Si三层异质结的全光THz调制——
    Flink1.15源码解析--启动JobManager----WebMonitorEndpoint启动
  • 原文地址:https://blog.csdn.net/xiqng17111342931/article/details/128190482