大後端技能樹
阿新 • • 發佈:2017-07-01
prot 加密 -s hash ubuntu 學習 文件 uid str
你了解後端嗎? 後端的工作是什麽? 做好後端工作需要了解和學習哪些技能?
- 硬件
- CPU
- 了解CPU
- CPU高效編程技術
- SMP、NUMA、MPP體系結構介紹
- 存儲
- 磁盤Raid簡介及性能分析
- 網絡存儲
- 了解IO設備
- 了解IO協議棧
- SSD (SLC, MLC, TLC區別,什麽是Trim,如何開啟)
- SAS 跟 SATA 的區別
- 性能與調優
- 基礎
- Software optimization resources
- 系統調優
- SUSE Linux Enterprise Server System Analysis and Tuning Guide
- Linux Performance Analysis and Tools
- http://www.brendangregg.com/linuxperf.html
- 數據庫調優
- MySQL數據庫開發的三十六條軍規
- 數據庫的優化與調優:從理論到實踐
- Linux and H/W optimizations for MySQL
- 淘寶商品庫MySQL優化實踐
- 基礎
- 操作系統
- Linux
- 各大發行版: Archlinux, Ubuntu, CentOS, Gentoo, Debian, Fedora
- 中斷
- irqbalance
- 內核參數(了解 /proc 裏面的常見參數)
- 進程通信
- 文件打開數限制(了解ulimit用法)
- 防火墻(ufw和iptables)
- 磁盤分區(gparted,fdisk)
- Linux
- 存儲相關
- 文件系統
- EXT系列(ext2, ext3, ext4)
- XFS
- ZFS
- BFS
- ReiserFS
- 混合存儲
- flashcache
- bcache
- Raid(常見的Raid5, Raid10)
- madm
- megacli
- 文件系統
- 網絡協議
- 網絡模型
- TCP / UDP
- HTTP / HTTPS (狀態碼,緩存機制,瀏覽器請求機制)
- RPC
- Thirft RPC
- JSON RPC
- 軟件工程
- 包管理(Python的pip,Go的gopm、gom)
- git-flow
- issue管理及編寫規範
- 設計模式
- 分布式系統
- 算法
- 二階段提交
- Paxos算法
- http://zh.wikipedia.org/wiki/CAP
- 一致哈希
- 相關軟件
- Hadoop / Hive / Spark / Hbase 等,可以看 Cloudera的版本(公司在用)
- 算法
- 序列化
- Protobuf
- Thirft
- msgpack
- json / bson
- 安全
- 攻擊防範
- SQL註入
- DDOS攻擊
- XSS
- CSRF
- 加密解密
- 不對稱加密:rsa
- 對稱加密:xxtea / rc4 / des
- 了解HTTPS協議的設計
- 攻擊防範
- 算法與數據結構
- 那些不常見又美妙的數據結構
- Which hashing algorithm is best for uniqueness and speed?
- 推薦網站
- http://highscalability.com/
- https://linuxtoy.org
- 各個國外開發團隊博客,比如 Dropbox, Foursquare, Twitter, Facebook
- 各個語言的郵件列表,比如 go-nuts, python-dev
- 源碼閱讀
- http://tengine.taobao.org/book/
- http://redisbook.readthedocs.org/
- 框架源碼閱讀
- Python:Tornado
- PHP:CakePHP / Yii
- Go:https://github.com/rcrowley/go-tigertonic
- 推薦論文
- Google 三駕馬車
- http://research.google.com/archive/bigtable-osdi06.pdf
- http://research.google.com/archive/mapreduce.html
- http://research.google.com/archive/gfs-sosp2003.pdf
- 中譯版:http://blog.csdn.net/myan/article/details/1726553
- Google 三駕馬車
- 推薦關註技術峰會
- QCON http://www.infoq.com/cn/qcon/
- Velocity http://velocityconf.com/
- 語言
- 學習指引
- Golang學習指引
- Python學習指引
- PHP學習指引
- 類庫
- https://github.com/ziadoz/awesome-php
- https://github.com/avelino/awesome-go
- https://github.com/vinta/awesome-python
- 性能
- Python: PyPy / Gevent / Greenlet
- PHP: Opcache
- 學習指引
- 機器學習
- https://github.com/josephmisiti/awesome-machine-learning
- 計算廣告
- http://study.163.com/course/courseMain.htm?courseId=321007
- http://web.stanford.edu/class/msande239/
- 後端軟件棧
- HTTP
- Nginx
- Haproxy
- Varnish server
- Trafficserver
- Netty
- Tengine
- 可用性
- Monit
- Nagios
- Ganglia
- Supervisor
- Upstart
- 緩存或K/V存儲
- Fastcgi cache
- Apc
- Memcached
- Redis
- SSDB
- 數據庫
- RDBMS
- MySQL / Percona Server / Mariadb
- Percona Xtrabackup
- PostgreSQL
- NOSQL
- Tokudb / Tokumx
- Mongodb
- redis
- Leveldb
- SQLite
- HBase
- 主從讀寫分離
- MySQL-proxy
- mysqlnd_ms
- RDBMS
- 隊列
- ZMQ
- RabbitMQ
- Redis
- nsq
- 運維
- 網絡:ifstat / ifstatus / dstat / tcpdump / telnet / ifconfig / ifdown / ifup
- 程序狀態:strace / top
- 存儲: iostat -d -x -k 1 / iotop
- 文本處理:sed / awk / grep / sort / uniq
- 調優:sysctl
- 實用工具:watch / touch / tee
- 日誌:logrotate / syslog
- 開發相關
- https://github.com/robbyrussell/oh-my-zsh
- https://github.com/spf13/spf13-vim
- vagrant
- curl (調試HTTP神器)
- 推薦文章
- 技巧: 使用truss、strace或ltrace診斷軟件的"疑難雜癥"
- https://linuxtoy.org/archives/sed-awk.html
大後端技能樹