• Python后端相关技术/工具栈


    • 编辑器

    最常见: vim / SublimeText2 / PyCharm

    Vim有兴趣可以看看 k-vim 适合Python/Golang开发

    • 本地环境
      pip/easy_install 包管理

    virtualenv + virtualenvwrapper 库/版本管理, 环境隔离

    ipython/ipdb

    • Web 框架
      Python 的Web 框架非常多……

    个人偏好[有分先后]

    flask 轻量! 可以灵活组合各类组件进行开发(第三方组件很丰富), 简单高效, 便于快速开发和维护.

    tornado 异步, 高性能, 最新版本4.0

    django 有些重, 配置和约定众多, 可以快速开发一些”管理”性质的后台, 其版本更新非常快

    其他:

    bottle 类flask, 一个文件, 足够小

    SQLAlchemy is the Python SQL toolkit and Object Relational Mapper that gives application developers the full power and flexibility of SQL.

    似乎这个就足够了, 无出其右

    • 模板

    只提第三方(很多框架自带了, 例如Django/Tornado), 话说天下模板都大同小异

    Jinja2, 最喜欢的一个, 之前写了篇 PYTHON模板-JINJA

    Mako, 介绍PYTHON模板-MAKO

    还有挺多的, 后续了解后补充

    • 代码管理及Wiki

    使用git, 搭建gitlab
    gilt针对项目级别, 可以用markdown写一些文档, 可以简单的code review, 可以进行讨论等等.

    Wiki的选择:

    gollum 很赞

    trac老牌, 但是个人不大喜欢其语法编辑方式.

    • 代码发布

    fabric + rsync

    rsync 用于生产代码目录的同步, 足够简单强大

    fabric 用于自动化部署, 将流程固化到脚本中重复使用, 提高效率降低风险, PYTHON FABRIC实现远程操作和部署

    Fabric is a Python (2.5-2.7) library and command-line tool for streamlining the use of SSH for application deployment or systems administration tasks.

    • 项目部署

    nginx 服务器, 主要用于负载均衡, 反代等

    gunicorn a Python WSGI HTTP Server for UNIX, 用来运行Flask项目

    Supervisor A Process Control System, 配置管理各种程序, 进程监控, 自动重启等

    • 监控

    nagios 服务器各类参数监控, 负载,内存,IO, 网络等, 也可以配置对进程进行监控报警

    sentry 实时收集事件日志, 可以在管理后台查看到当前程序异常及报错具体信息, 很强大的平台, 支持多种语言的程序

    statsd + graphic

    statsd 实时服务数据收集(e.g. counters and timers) 收集后数据提供给graphic进行展示

    graphic 企业级开源监控工具(数据绘图工具),用于采集服务器实时信息并进行统计, Graphite 自己本身并不收集具体的数据,这些数据收集的具体工作通常由第三方工具或插件完成. 其控制台前端项目 tessera

    • NOSQL

    redis 缓存/持久化/特殊需求(计数-排行榜-时间线等)

    memcached 集群, 多用于有时限性质的缓存

    mongodb 在技术选型玩了下, 没有正式在生产用过

    • 数据库

    mysql 不解释, 感觉是不是所有Python的底层db都是mysql……

    postgresql 开发日志统计系统使用过, 学院派, 各种牛叉的功能, 对json的支持令人印象深刻.

    • 抓取

    beautifulsoup 配合urllib2或者requests库进项简单的抓取分析工作

    scrapy 很牛的抓取框架, 适合规模较大,需求复杂的的抓取任务

    完成搜索功能, 虽然Python也有一些实现, 但是感觉还是使用成熟的方案会好些, 文档/资源丰富, 便于开发和维护. Solr, 足够简单及强大.

    • 好用的第三方

    requests HTTP for humans, 非常好用, 强烈推荐

    jieba 中文分词

    • 异步和队列

    gearman 支持分布式的任务分发框架, 并行/不同语言之间的通信. 之前使用主要用来跨机器任务分发.

    celery 分布式任务队列

    zeromq 之前使用的消息系统是基于这个的, 没有研究过

    • 日志

    logstash 日志收集和分析, 支持不同来源不同格式, 进行统一收集和分析处理

    Elasticsearch 数据

    Kibana A log analyzing web interface for logstash and elasticsearch

    三者组合

    • 项目管理

    tower

  • 相关阅读:
    Spring.NET学习笔记一。
    Spring.NET学习笔记三(log4net的配置)
    C# 中virtual,override,new 的区别与用法(转载)
    java中的输入输出(转载)
    C# checked与unchecked用法
    C# string学习(转载)
    C# TextBox中的Validating与Validated事件
    java代理模式 (转)
    Jquery好友选择器
    回溯与递归
  • 原文地址:https://www.cnblogs.com/WayneZeng/p/9290731.html
Copyright © 2020-2023  润新知