架構師成長之路(4)--知識體系(方法)

前言:php

哲學家常思考的問題:" 我是誰?"" 我從哪裏來?"" 要到哪裏去?不僅是哲學家,我想每一個人都有本身對這三個問題的認知。


若是咱們要成爲架構師,咱們本身要面臨的三大問題:


找準本身定位:我是誰?在哪裏?


怎樣作好架構師:我要作什麼?


如何搭建架構師知識體系:我該怎麼作?


這裏面就是作事方法論:目標(我要作什麼),方法(計劃)(我該怎麼作),  執行/行動











 

 

 

 

 

要成爲優秀合格的架構師,必須具有前瞻性的眼光和系統性的思考能力。而擁有這些能力的前提是你必須完善本身的知識體系。html

 

互聯網思惟不是工具,它是世界觀。這篇文章以後,你能夠嘗試構建本身的知識體系了。前端

願每一個人均可以像一個U盤同樣,自帶系統隨處插拔。java


願每一個人均可以和別人不同。
node

 

 

一、通用技能表mysql

一、通用技能:

     我是誰:思惟方式,不將就認真作事的人
 
     如何作事:1)總體把握,找到方法論(解決方案),
                       2)思路:分而治之,優先排列,計劃進行(排期完成)。
                       3)及時溝通,反饋,敢於承擔責任
                       4)團隊意識
 
     成長:1)和優秀的人在一塊兒
                2)不斷學習充電
 
     完成定義:瞭解基礎原理,自測經過,及時跟蹤反饋問題,文檔更新
 
     熟練定義:繞開問題,而不是解決問題。
 

 

二、專業技能表linux

       
二、專業技能
      文檔:每一項技能,熟讀官方文檔
 
      基礎知識:1)網絡知識,http原理,tcp基礎知識
                2)office能力:熟練使用excel,ppt
                3)php基礎知識:php,linux,mysql,nginx/apache,代理負載均衡
                4)java基礎知識:Java高級特性和類庫,Java網絡與服務器編程, TCP/IP協議,以及線程,I/O模型,框架。
                4)數據結構算法,設計模式
                5)研發能力:
                瀑布模型需求->需求分析->設計->開發->測試->上線->運維/運營
                 調試和解決問題能力
                    敏捷思想:快速迭代,任務細分,wiki更新
 
     web安全:
            1)web安全
            2)安全維度:漏洞,風險,事件
     安全問題:xss,sql注入,ddos攻擊
     安全書:
         《黑客攻防技術寶典(Web實戰篇)》
         《白帽子講Web安全》
         《Web前端黑客技術揭祕》
         《Web之困》
         《SQL注入攻擊與防護》
       
  • 研發清單
    • 編碼環境
    • Python
    • Linux/UNIX
    • 前端
    • 爬蟲進階
    • 調度
    • 併發
    • 數據結構
    • 數據存儲及處理
    • DevOps
    • 調試
    • 算法
    • 持續集成
    • idea  
      安全
    • 協做
      • 相似Trello的在線協同平臺
      • Slack
      • 微信
      • 立會
  • 設計思想
    • 人人都是架構師:具有架構思想是一件多酷的事
    • 實戰出真知
    • 如何設計
      • 鬆耦合、緊內聚
      • 單元與單元屬性
      • 生產者與消費者
      • 結構
        • 隊列
        • LRU
      • 分佈式
        • 存儲
        • 計算
      • 資源考慮
        • CPU
        • 內存
        • 帶寬
      • 粗暴美學/暴力美學
        • 大數據,先考慮run it,而後才能知道規律在哪
        • 「run it優先」能快速打通總體,洞察問題
        • 「run it優先」能擺脫細節(繁枝末節)的束縛
        • 「run it優先」能快速迭代出偉大的v1
      • 一個字總結
  • 牛人1,2,3
    • 1研究:研究東西,有足夠洞察力,研究水準不錯
    • 2研發:Hack Idea本身有魄力實現,不懂研發的黑客如同不會游泳的海盜
    • 3工程:研發出來的須要實戰、須要工程化,不然只是玩具,而不能成爲真的武器
    •  
 

三、網站架構知識ios

  • 架構演進
    • 初始階段:LAMP,部署在一臺服務器
    • 應用服務器和數據服務器分離
    • 使用緩存改善性能
    • 使用集羣改善併發
    • 數據庫地讀寫分離
    • 使用反向代理和cdn加速
    • 使用分佈式文件和分佈式數據庫
    • 業務拆分
    • 分佈式服務
  • 架構模式
    • 分層:橫向分層:應用層,服務層,數據層
    • 分割:縱向分割:拆分功能和服務
    • 分佈式
      • 分佈式應用和服務
      • 分佈式靜態資源
      • 分佈式數據和存儲
      • 分佈式計算
    • 集羣:提升併發和可用性
    • 緩存:優化系統性能
      • cdn
      • 方向代理訪問資源
      • 本地緩存
      • 分佈式緩存
    • 異步:下降系統的耦合性 
      • 提供系統的可用性
      • 加快響應速度
    • 冗餘:冷備和熱備,保證系統的可用性
    • 自動化:發佈,測試,部署,監控,報警,失效轉移,故障恢復
    • 安全:
  • 架構核心要素
    • 高性能:網站的靈魂
      • 性能測試
      • 前端優化
      • 應用優化
      • 數據庫優化
    • 可用性:保證服務器不宕機,通常經過冗餘部署備份服務器來完成
      • 負載均衡
      • 數據備份
      • 自動發佈
      • 灰度發佈
      • 監控報警
    • 伸縮性:建集羣,是否快速應對大規模增加的流量,容易添加新的機器
      • 集羣
      • 負載均衡
      • 緩存負載均衡
    • 可擴展性:主要關注功能需求,應對業務的擴展,快速響應業務的變化。是否作法開閉原則,系統耦合依賴
      • 分佈式消息
      • 服務化
    • 安全性:網站的各類攻擊,各類漏洞是否堵住,架構是否能夠作到限流做用,防止ddos攻擊。
      • xss攻擊
      • sql注入
      • csr攻擊
      • web防火牆漏洞
      • 安全漏洞
      • ssl

 

 

4. GitHub上整理的一些工具和資源

 

2.1技術站點

 

  • Hacker News:很是棒的針對編程的連接聚合網站

  • Programming reddit:同上

  • MSDN:微軟相關的官方技術集中地,主要是文檔類

  • infoq:企業級應用,關注軟件開發領域

  • OSChina:開源技術社區,開源方面作的不錯哦

  • 51cto,cnblogs:常見的技術社區,各有專長

  • stackoverflow:IT技術問答網站

  • GitHub:全球最大的源代碼管理平臺,不少知名開源項目都在上面,如Linux內核

  • OpenStack等免費的it電子書:http://it-ebooks.info/

  • DevStore:開發者服務商店

2.2  不錯的書籍

  • 人件

  • 人月神話

  • 代碼大全2

  • 計算機程序設計藝術

  • 程序員的自我修養

  • 程序員修煉之道

  • 高效能程序員的修煉(成爲一名傑出的程序員其實跟寫代碼沒有太大關係)

  • 深刻理解計算機系統

  • 軟件隨想錄

  • 算法導論(麻省理工學院出版社)

  • 離線數學及其應用

  • 設計模式

  • 編程之美

  • 黑客與畫家

  • 編程珠璣

  • C++ Prime

  • Effective C++

  • TCP/IP詳解

  • Unix 編程藝術

  • 《精神分析引論》弗洛伊德

  • 搞定:無壓力工做的藝術

2.3 平臺工具(都是開源的好東東哦)

  • Redmine/Trac:項目管理平臺

  • Jenkins/Jira(非開源):持續集成系統(Apache Continuum,這個是Apache下的CI系統,還沒來得及研究)

  • Sonar:代碼質量管理平臺

  • git,svn:源代碼版本控制系統

  • GitLib/Gitorious:構建本身的GitHub服務器

  • gitbook:https://www.gitbook.io/寫書的好東西,固然用來寫文檔也很不錯的

  • Travis-ci:開源項目持續集成必備,和GitHub相結合,https://travis-ci.org

  • 開源測試工具、社區(Selenium、OpenQA.org)nginx

  • Puppet:一個自動管理引擎,能夠適用於Linux、Unix以及Windows平臺。所謂配置管理系統,就是管理機器裏面諸如文件、用戶、進程、軟件包這些資源。不管是管理1臺,仍是上萬臺機器Puppet都能輕鬆搞定。git

  • Nagios:系統狀態監控報警,還有個Icinga(徹底兼容nagios全部的插件,工做原理,配置文件以及方法,幾乎如出一轍。配置簡單,功能強大)

  • Ganglia:分佈式監控系統

  • fleet:分佈式init系統

 

2.4 爬蟲相關(好玩的工具)

  • Phantomjs

  • berserkJS(基於Phantomjs的改進版本)

  • SlimerJS

  • CasperJS

  • selenium

 

2.4 Web 服務器性能/壓力測試工具/負載均衡器

 

  • http_load:程序很是小,解壓後也不到100K

  • webbench:是Linux下的一個網站壓力測試工具,最多能夠模擬3萬個併發鏈接去測試網站的負載能力

  • ab:ab是apache自帶的一款功能強大的測試工具

  • Siege:一款開源的壓力測試工具,能夠根據配置對一個WEB站點進行多用戶的併發訪問,記錄每一個用戶全部請求過程的相應時間,並在必定數量的併發訪問下重複進行。

  • squid(前端緩存),nginx(負載),nodejs(沒錯它也能夠,本身寫點代碼就能實現高性能的負載均衡器):經常使用的負載均衡器

  • Piwik:開源網站訪問量統計系統

  • ClickHeat:開源的網站點擊狀況熱力圖

  • HAProxy:高性能TCP /HTTP負載均衡器

  • ElasticSearch:搜索引擎基於Lucene

  • Page Speed SDK和YSLOW

  • HAR Viewer:HAR分析工具

  • protractor:E2E(end to end)自動化測試工具

2.5 Web 前端相關

  • GRUNT:js task runner

  • Sea.js:js模塊化

  • knockout.js:MVVM開發前臺,綁定技術

  • Angular.js:使用超動感HTML & JS開發WEB應用!

  • Highcharts.js,Flot:經常使用的Web圖表插件

  • Raw:很是不錯的一款高級數據可視化工具

  • Rickshaw:圖標庫,可用於構建實時圖表

  • JavaScript InfoVis Toolkit:另外一款Web數據可視化插件

  • Pdf.js,在html中展示pdf

  • ACE,CodeMirror:Html代碼編輯器(ACE甚好啊)

  • NProcess:絢麗的加載進度條

  • impress.js:讓你製做出使人眩目的內容展現效果(相似的還有reveal)

  • Threejs:3DWeb庫

  • Hightopo:基於Html5的2D、3D可視化UI庫

  • jQuery.dataTables.js:高度靈活的表格插件

  • Raphaël:js,canvas繪圖庫,後來發現百度指數的圖形就是用它繪出來的

 

 

(原文地址:https://blog.csdn.net/hguisu/article/details/49445263   。  感謝做者,尊重原創!)

相關文章
相關標籤/搜索