Python技术栈/工具链整理V2

系统 1611 0

开发环境

开发工具

  • Vim / SublimeText2 / PyCharm / VS Code
    用着顺手就好,我是由vim转PyCharm的。集成开发环境自动补全、单步调试等功能好很多,有利于提高工作效率。
  • iTerm :Mac下必备,谁用谁知道
  • Tmux :分屏工具,可以复用session,这点很赞
  • XShell :远程登录
  • Sequel :数据库登录
  • Postman :HTTP接口调试工具

开发环境

  • pip/easy_install 包管理
  • viertualenv + virtualenvwrapper 库/版本管理,环境隔离
  • ipython
  • pydev

项目开发

代码管理

  • Git :版本管理,SVN基本已经被淘汰
  • Gitlab :大部分互联网公司都是搭建自己的Gitlab
  • Source Tree :Git客户端,方便diff代码 管理分支
  • Jenkins :持续集成

Web框架

  • Django :有些重,配置和约定众多,即可作为成熟的web框架,有可快速开发一些”管理”性质的后台
  • Flask :轻量! 可以灵活组合各类组件进行开发(第三方组件很丰富),简单高效,便于快速开发和维护
  • Tornado :异步,高性能。
    Python Web框架也是超多,目前主流的就是这三个了;目前工作中用过的Django和Tornado。

ORM

  • SQLAlchemy :标配MySql ORM
  • PyMongo :MongoDB ORM
  • peewe :一个更轻量的ORM,简单了解,没在生产环境用过

数据库

  • MySql :标配,关系型数据库
  • MongoDB :NoSql数据库,不久前好像不开源最新版本了。
  • TiDB :高拓展性,后起之秀

缓存Cache

  • Redis :缓存/持久化/特殊需求(计数-排行榜-时间线等),用 codis 做集群来访问
  • Memcached :数据结构没有Redis丰富
    目前业务中这2个都有用到,感觉Redis有逐渐取代memcached的趋势

分布式存储

  • HDFS :大数据分布式存储
  • Hive :分析数据
  • Hbase :列数据库,可以存储海量数据,上10亿条不在话下,跟关系型数据库区别较大

消息队列

  • RabbitMQ :Python中 pika 操作
  • celery :分布式的异步任务处理器,配合 RabbitMQ Redis 使用

项目测试

  • 软件测试:单元测试,集成测试,压力测试等等;很多开发瞧不起测试,但是考虑周全的、高效的测试不容易
  • 测试工具:请参考我整理的Python 测试工具

项目运维

服务部署

  • Nginx :主要用于负载均衡,反向代理,使用极为广泛
  • uWSGI :用来部署Django项目
  • Gunicorn :a Python WSGI HTTP Server,用来运行Django/Flask项目

日志&监控

  • Kibana ElasticSearch 可视化平台,方便查log
  • Falcon :小米开源的监控系统
  • grafana :可视化的监控平台

运维管理

  • SaltStack :别名,盐栈。自动化运维工具
  • Puppet :Ruby开发的服务器管理系统
  • Fabric :用于自动化部署
  • Supervisor :A Process Control System,配置管理各种程序,进程监控,自动重启等
  • Ansible : Ansible一种集成IT系统的配置管理,应用部署,执行特定任务的开源平台

其他

Python学习资源

  • 请参考我整理的Python免费学习资源

常用三方库

  • 请参考我整理的Python常用三方库

前端基础

  • html,css,JavaScript,jQuery,BootStrap,AngularJS,React,vue.js 
    作为一个后端工程师,了解一些基本的前端知识也是必要的,关注下业界动态,按需学习即可。
    目前工作中用到 jQuery  +  BootStrap  +  AngularJS 来开发后台管理系统。

软件工程

  • 设计模式
    Python是动态语言,许多Java复杂的设计模式用Python实现很简单,基本的设计模式也会用到。
    常用的有组合模式,单例模式、装饰器模式、工厂模式。
  • REST接口 vs RPC接口
    软件工程说起来可能比较务虚,有比较才有差距,多看别人代码,借鉴提高。

云计算&AI

  • 大数据:Hadoop生态、Spark、Flink等,程序员进阶的方向
  • 容器:K8S,Memos,Docker,目前看起来K8S大局已定
  • 虚拟化:KVM,OpenStack
  • 公有云:AWS,阿里云,Azure

本文由 络壳 原创,转载请注明出处


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论