社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

最近的工作,变成了Python全栈工程师

蚂蚁学Python • 4 年前 • 460 次点击  

大家好我是蚂蚁,本文不是广告^_^


实在是没想到,工作快8年了,最近的工作变成了一个Python全栈工程师。


Python在我8年工作经历中,一直都在使用,不过从来都不是主语言,我的主语言是JAVA,用Python会做不少"辅助"的事情,比如数据处理、定时任务、报表计算、Web页面等等。


半年前我跳槽到了当前的新公司,是一名推荐系统架构工程师。


我的工作围绕推荐系统工程架构展开,大团队的编程语言用到了3个,分别是C++用于底层推荐引擎、JAVA用于业务对接、Python用于机器学习和模型部署。


因为我所在的小组是推荐中台,更加偏重部署流程化的事情,Pythong更适合这个场景,因此是主语言,而同时我也需要了解团队其他的技术也得掌握C++/JAVA,但它俩现在是副语言。


从来没想到,副语言竟然转正了,每天写的最多的代码,变成了Python。


而用Python开发的首要技术模块,是Flask的Web服务,这个服务会提供给公司的推荐算法使用,可以自动化的配置模型、发起上线部署流程,是一个公用的平台。


## 分割线


相对于Java/C++,Python在开发一个Web部署类产品上,有明显的优势:


^_^,不由自主的又开始推销Python,不过这次结合下我的工作


1、开发非常快速


相比JAVA/C++的语法,Python真的是简洁明了,不用考虑类型适配,有大量的强大类库支持,比如用Python实现下载、解压、移动文件、上传等等


2、调试DEBUG方便


如果要调试C++程序,即使一点点代码,恐怕得花至少5分钟去编译、替换二进制,并且只能通过打印日志的方式调试。


JAVA其实在小项目DEBUG调试很方便,然而我们基础架构的JAVA是给第三方用的,结果也导致出问题DEBUG很麻烦。


而用Python,哪里有问题,Pycharm打个断点,几分钟就能揪出罪魁祸首,有几个写C++的同学用过几次Python,简直大呼过瘾。


3、一门语言搞定很多场景


Python在我这里主要用于Flask Web开发,但是它也承担其他的事情,比如配合Pandas/Seaborn做数据分析可视化、同时用于tensorflow机器学习模型的训练代码开发,相对来说更加多能。


## 分割线


然而,用Python开发Web项目,也会遇到一些问题:


1、代码难以规范、复杂模块凌乱


JAVA是代码规范+结构组织的典范,C++我敢说比Python更烂。


而Python这门语言,入门特别容易,并且能快速参与项目开发,很容易大家各自为政写出不规范的烂代码。


最近在研读谷歌的Python代码规范,就是想建议大家把代码写的规范,别人更易读和维护。


谷歌Python规范文档:

https://google.github.io/styleguide/pyguide.html


2、会遇到性能问题


很多性能问题,其实是和编程语言无关的,而是和代码本身的逻辑有关。


然而,Python好像更容易出现这类问题。


遇到了问题,需要通过阅读代码、性能分析等手段找到问题,然后解决。


如果是并发问题,还要更多的深究多线程、多进程、协程等机制。


不过我反而也觉得这是个机遇,说明Python是可以深挖的、有能长期积累的技术方向。


## 分割线


最后分享下,我现在工作用的Pythn用于Web的技术栈:


网关:Ngnix

前端:vue.js

后端:Flask,gevent.pyuwsgi,requests

存储:MySQL、本地文件

分析:Pandas、Seaborn、Jupyter notebook

模型:Tensorflow



## 分割线


最后,谢谢大家订阅我的公众号。



Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/106167
 
460 次点击