Python技术栈/工具链整理V2

开发环境

开发工具

  • 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:分布式的异步任务处理器,配合RabbitMQRedis使用

项目测试

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

项目运维

服务部署

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

日志&监控

  • KibanaElasticSearch可视化平台,方便查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

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

你可能感兴趣的:(Python,开发工具,全栈,Python基础)