Py学习  »  Python

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

蚂蚁学Python • 3 年前 • 242 次点击  

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


实在是没想到,工作快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
 
242 次点击