- 編輯器
最常見: vim / SublimeText2 / PyCharm
Vim有興趣可以看看 k-vim 適合Python/Golang開發
- 本地環境
pip/easy_install 包管理
viertualenv + virtualenvwrapper 庫/版本管理, 環境隔離
ipython/ipdb
- Web 框架
Python 的Web 框架非常多……
個人偏好[有分先後]
flask 輕量! 可以靈活組合各類元件進行開發(第三方元件很豐富), 簡單高效, 便於快速開發和維護.
tornado 非同步, 高效能, 最新版本4.0
django 有些重, 配置和約定眾多, 可以快速開發一些”管理”性質的後臺, 其版本更新非常快
其他:
bottle 類flask, 一個檔案, 足夠小
- ORM
SQLAlchemy
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
還有挺多的, 後續瞭解後補充
- 程式碼管理及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 很牛的抓取框架, 適合規模較大,需求複雜的的抓取任務
- 搜尋
solr
完成搜尋功能, 雖然Python也有一些實現, 但是感覺還是使用成熟的方案會好些, 文件/資源豐富, 便於開發和維護. Solr, 足夠簡單及強大.
- 好用的第三方
requests HTTP for humans, 非常好用, 強烈推薦
jieba 中文分詞
- 非同步和佇列
gearman 支援分散式的任務分發框架, 並行/不同語言之間的通訊. 之前使用主要用來跨機器任務分發.
celery 分散式任務佇列
zeromq 之前使用的訊息系統是基於這個的, 沒有研究過
- 日誌
logstash 日誌收集和分析, 支援不同來源不同格式, 進行統一收集和分析處理
Kibana A log analyzing web interface for logstash and elasticsearch
三者組合
- 專案管理
Log:
1 |
2014-07-24 first version |
打賞支援我寫出更多好文章,謝謝!
打賞作者
打賞支援我寫出更多好文章,謝謝!
任選一種支付方式