1. 程式人生 > >大後端技能樹

大後端技能樹

prot 加密 -s hash ubuntu 學習 文件 uid str

你了解後端嗎? 後端的工作是什麽? 做好後端工作需要了解和學習哪些技能?

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

大後端技能樹