首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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

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

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

## 分割线

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

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20210115A01Q1L00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券