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

news2024/11/22 10:26:09

前言

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全套学习资料已经上传CSDN官方,朋友们如果需要可以微信扫描下方CSDN官方认证二维码输入“领取资料” 即可领取

在这里插入图片描述

好文推荐

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/65972.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JAVA五子棋手机网络对战游戏的设计与实现(源代码+论文)

五子棋网络对战游戏的设计与实现 论文作者姓名:申请学位专业:申请学位类别:指导教师姓名(职称):论文提交日期: 五子棋网络对战游戏的设计与实现 摘 要 在现代社会中,及其它无线设备越来越多的…

铁矿行业BI经营分析框架(四)经营分析

在中国大部分的铁矿企业集团都是有央国企背景的,都是属于一个大集团下的二级集团性企业。所以,首先是需要背上集团下发的经营业绩指标的,这个一定是整个经营管理分析的核心要重点关注。 业绩情况 第一个分析要点就是这家企业集团在整个集团中…

Matplotlib入门[04]——处理图像

Matplotlib入门[04]——处理图像 参考: https://ailearning.apachecn.org/Matplotlib官网 图片来源:百度(如有侵权,立删) 使用Jupyter进行练习 import matplotlib.pyplot as plt import matplotlib.image as mpimg imp…

sqlserver时间字段索引失效,重建后索引又正常了

文章目录前言索引相关操作1 、查看全部索引信息2 、重建所有表索引3 、查看某个表索引信息4 、重建某个表索引查询索引字段说明执行修复索引字段前言 这几天被一个项目搞得烦死了,客户老是反馈后台查询前一天注册的用户数据失败,看了错误日志&#xff0…

【Java面试】能说说你对volatile关键字的理解吗?

文章目录volatile能否保证线程安全?原子性可见性有序性volatile能否保证线程安全? 下文使用到了javap命令进行class文件的反汇编来查看字节码,如果想要了解的可以学习一下javap命令。 什么是javap命令 javap命令的参数 要解决这个问题首先要…

【数据库】数据库的慢查询问题

现象: 在压测过程中发现接口返回数据非常慢,甚至超时,页面加载不出数据 问题定位:如果有慢查询怎么恢复? 1.查看服务日志,打印连接数据库超时,接口返回超时 查看数据库所在节点cpu占用很高使…

夯实算法-跳跃游戏

题目:LeetCode 给定一个非负整数数组 nums ,你最初位于数组的 第一个下标 。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个下标。 示例 1: 输入: nums [2,3,1,1,4] 输出: tru…

【测试沉思录】23. 如何实现基于场景的接口自动化测试用例?

作者:陈爱娇 编辑:毕小烦 自动化本身是为了提高工作效率,不论选择何种框架,何种开发语言,我们最终想实现的效果,就是让大家用最少的代码,最小的投入,完成自动化测试的工作。 基于这…

EMQ 宣布推出 LF Edge eKuiper 全新 Logo 标识

全球领先的开源物联网数据基础设施软件供应商 EMQ 映云科技宣布,即日起,将正式启用全新的 LF Edge eKuiper(以下简称 eKuiper)产品 Logo。焕然一新的 eKuiper 产品 Logo 标志着 EMQ 在不断提升品牌全球化战略之上,对于打造高性能、高可用、高安全的世界级开源软件产品的极致追求…

关于密码设置

使用一个密码并在数据泄漏时保护自己的其它账号 关于密码 现在好多软件,好多网站都需要我们设置密码,这个时候我们的处理办法一般分为2种。 对不同的软件设置不同的密码,这种理论上是最安全的,但是记不住啊,所以不实…

Letbook Cookbook题单——数组二分与双指针

Letbook Cookbook题单——数组二分与双指针 1. 两数之和 难度:简单 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。…

Locust学习记录5-任务属性【Task】

Task 当负载测试开始时,将为每个模拟用户创建一个User类的实例,他们将开始在自己的绿色线程中运行。当这些用户运行时,他们选择他们执行的任务,休眠一段时间,然后选择一个新任务。 这些任务时普通的python可调用文件…

windows环境下python连接openGauss数据库

文章目录一、python 介绍二、Python下载及安装三、openGauss Connectors (Psycopg2) 介绍四、openGauss Connectors (Psycopg2)下载并初始化五、连接并访问openGauss数据库六、问题总结(FAQ)一、python 介绍…

Maven学习笔记

Maven Maven是一个项目管理工具依赖管理 传统工程中我们直接把jar包放在项目中maven工程真正的jar包放在仓库中,项目中只防止jar包的坐标 一键构建 maven自身集成了tomcat插件,可以对项目进行编译、测试、打包、安装、发布等操作 仓库的种类 本地仓库远程…

计算机毕业论文java毕业设计选题源代码ssm校园兼职系统|求职招聘系统

💖💖更多项目资源,最下方联系我们✨✨✨✨✨✨ 目录 Java项目介绍 资料获取 Java项目介绍 3.1 需求分析 校园兼职系统主要是为了提高工作人员的工作效率和更方便快捷的满足用户,更好存储所有数据信息及快速方便的检索功能&am…

人工智能与机器学习

欢迎关注博主 Mindtechnist 或加入【Linux C/C/Python社区】一起探讨和分享Linux C/C/Python/Shell编程、机器人技术、机器学习、机器视觉、嵌入式AI相关领域的知识和技术。 人工智能与机器学习📝人工智能相关概念☞什么是人工智能、机器学习、深度学习☞人工智能发…

思科防火墙NAT——实验

作者简介:一名在校云计算网络运维学生、每天分享网络运维的学习经验、和学习笔记。 座右铭:低头赶路,敬事如仪 个人主页:网络豆的主页​​​​​​ 目录 前言 1.实验 防火墙配置 其他配置 前言 本章将会讲解思科NAT配置的…

记一次 .NET 某工控软件 内存泄露分析

一:背景 1.讲故事 上个月 .NET调试训练营 里的一位老朋友给我发了一个 8G 的dump文件,说他的程序内存泄露了,一时也没找出来是哪里的问题,让我帮忙看下到底是怎么回事,毕竟有了一些调试功底也没分析出来,…

Hash与ZSet的常用命令以及其底层数据结构

目录hash类型命令hsethgethmsethmgethgetallhsetnxhdelhexitshincrby与hincrbyfloathkeys与hvalshlenhstrlen有序set型命令zaddzrange 与zrevrangezrangebyscore与zrevrangebyscorezcardzcountzscorezincrbyzrank 与 zrevrankzremzremrangebyrankzremrangebyscorezrangebylexzl…

MySQL学习笔记(十四)索引失效有哪些情况?

1.表和数据 CREATE TABLE t_user (id bigint(32) NOT NULL AUTO_INCREMENT,user_name varchar(40) DEFAULT NULL COMMENT 用户名,user_code varchar(40) DEFAULT NULL COMMENT 用户编号,phone varchar(11) DEFAULT NULL COMMENT 电话,age tinyint(3) DEFAULT NULL COMMENT 年龄…