程式員必須懂的架構入門課

来源:https://www.cnblogs.com/itlaobingge/archive/2019/11/25/11928564.html
-Advertisement-
Play Games

程式員,真有必要瞭解架構嗎?有的人只關註眼下的“點”,有的人看到了延伸的“線”,還有人暢想出未來的“面”。就像在叢林中穿越,當你迷路找不到方向時,最好就是登上山頂或者爬上樹冠,讓自己有更寬廣的視野,從而找到通往目的地的最佳路徑。既要腳踏實地、低頭趕路,也要抬頭望天、暢想未來,正確的方向比速度更重要。 ...


程式員,真有必要瞭解架構嗎?

在解答這個疑惑之前,我們先來看一則故事:旅行者路過某個工地,建築工人們都在忙碌。出於好奇,旅行者問第一個人在乾什麼,那人頭也沒抬地回答道:我在搬磚。旅行者問第二個人在乾什麼,這個匆匆抬起頭認真地說:我在砌牆。旅行者問第三個人在乾什麼,那個人臉上充滿了光彩,很自豪地說:我在建造聖索菲亞大教堂,將福音傳播給更多人!

有的人只關註眼下的“點”,有的人看到了延伸的“線”,還有人暢想出未來的“面”。就像在叢林中穿越,當你迷路找不到方向時,最好就是登上山頂或者爬上樹冠,讓自己有更寬廣的視野,從而找到通往目的地的最佳路徑。既要腳踏實地、低頭趕路,也要抬頭望天、暢想未來,正確的方向比速度更重要。接下來,我們來看看架構跟你的“點、線、面”關係。

  • 一點

跟壘土坯房不同,建造摩天大樓離不開各式各樣的設計圖紙,構建複雜的應用系統也離不開架構設計。相信你所在的團隊也配了架構角色,或由資深開發兼任,或由專職架構負責。不管你從事哪方面工作,包括產品、開發、測試、運維或項目等,你都要跟架構師打交道,例如:產品可研、概要設計、技術選型、詳細設計、測試規劃、部署規劃、問題解決、招聘面試等等。如果對架構缺乏瞭解,那你就不清楚你跟架構師之間的協作界面,不知道架構師能給你提供哪些支持或幫助,不知道如何跟架構師高效地協作。如果只關心自己眼前的一畝三分地,那你很容易就滯留在“搬磚”層級。

  • 二線

中年危機,35 歲定律,這些命題對於你來說都是客觀存在的。隨著 IT 技術的不斷更新換代,普通程式員在市場上競爭力跟年齡成反比,除非你能提前構建出轉型升級所需的新技能樹。如果沿著技術通道發展,可選的晉升方向有兩個:技術專家,扎根於某個垂直的技術領域,往縱深發展;架構專家,構建出更加全面的技術體系,往廣博發展。雖然進化方向不同,但殊途同歸,最終幫你戰勝危機、突破自我,晉升到更高的職位,獲得了更好的薪酬。如果個人性格特質更適合往架構方向發展,那你有必要提前瞭解架構師的主要職責和必備技能。十年磨一劍,五年小成,十年大成,轉型升級所需的專業技能不是一朝一夕就能練就的。如果你現在就主動籌備 35 歲這場戰役,那你很容易從”搬磚”躍遷至“砌牆”。

  • 三面

學而優則仕,即使修煉成了技術大神,但個人能量總歸是有限的,管理崗是所有通道的終極進化方向,只有帶領更多人,你才能做更大的事。在互聯網行業,“科技是第一生產力”體現的最為淋漓盡致,不管往產品還是管理髮展,擁有深厚技術背景都是優勢。架構師,從某種角度看,就是全面瞭解各種技術或中間件的優劣,然後讓它們在你所設計的方案中揚長避短、優勢互補,發揮出最佳的合作效用。這跟產品維度的業務架構、管理維度的組織架構有異曲同工之妙,等你從技術架構中學習到知人善任、調兵遣將、排兵佈陣等道理,那你就可以站上更高的平“面”了,從“砌牆”躍遷至建造宮殿。

25 歲入行搬磚,30 歲前擔任技術經理、兼職架構,35 歲前轉型應用架構專家,一路走來老兵哥我積累了大量轉型、架構、培訓和咨詢等實戰經驗。近些年我將這些經驗做了整理輸出,曾面向初中級程式員開設過多門面授架構課程,累計參訓學員超千人,頗受好評。接下來,老兵哥我準備在 CSDN 這個分享平臺,把大家關註度最高的這些架構問題梳理出來,希望你持續關註:

  • 架構到底是什麼?它都有什麼作用?
  • 架構的演進過程,不同架構的特點?
  • 架構風格、模式、框架的相互關係?
  • 架構設計的輸入、輸出和工作流程?
  • 不同崗位應該關註架構的哪些方面?
  • 是否有標準來評價架構設計的優劣?
  • 架構師核心職責和必備能力有哪些?
  • 哪些特質適合往架構專家方向發展?
  • 架構專家需要搭建怎樣的知識體系?
  • 如何從資深開發成功轉型架構專家?
  • 架構師之後有哪些可選的發展方向?

暫時先分享到這裡,後續老兵哥會結合個人實踐陸續分享相關經驗,例如:如何通過三步走策略完成轉型、如何藉助段帶式進階構建新技能樹等,期待小伙伴們訂閱交流,謝謝!


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 自引jquery 1 <style> 2 * { margin: 0; padding: 0; } 3 ul { list-style: none; margin: 100px; } 4 .comment { 5 color: red; 6 } 7 8 .comment li { 9 float: ...
  • 螢火蟲 <style type="text/css"> *{ padding: 0; margin: 0; } #bg{ background: url(img/bg.jpg) no-repeat; background-size: cover; width: 100%; height: 100%; ...
  • 下雪效果 1 <style> 2 * { 3 margin: 0; 4 padding: 0; 5 } 6 #box { 7 width: 1000px; 8 height: 600px; 9 background: #000000; 10 border: 5px solid red; 11 mar ...
  • 選項卡(tab欄切換) 1 <style type="text/css"> 2 *{margin: 0; padding: 0; font-family: "微軟雅黑";font-size: 14px;} 3 #container{ 4 width: 398px; 5 margin: 100px a ...
  • 前端開發工作中經常會碰到奇形怪狀的圖形,當然也少不了UI設計童鞋的腦洞和創意啦,初級的開發人員可能會選擇使用圖片做背景加上位置屬性實現,不過很多時候,CSS能實現的就不要再動用PS等工具了,時間寶貴,經驗更寶貴,畢竟簡單的搬磚很容易就會,不動“聲色“的實現才是來之不易的經(踩)驗(坑) 完事開通難, ...
  • 在看設計模式這本書,遇到一個令人疑惑的for迴圈語句 比較疑惑,因為從平時接觸的來看基本上都是 現在的疑惑如下 實際上上面的語句等同於,這是為什麼 原來這裡等同於把迴圈終止條件和迴圈被執行後執行的語句相結合了即把判斷和賦值放到一起了,一邊迴圈一邊賦值,i--是什麼判斷條件,當i--為fasle即,循 ...
  • 基於offsetHeight和clientHeight判斷是否出現滾動條 by:授客 QQ:1033553122 HTMLEelement.offsetHeight簡介 HTMLElement.offsetHeight 是一個只讀屬性,它返回該元素的像素高度,高度包含該元素的垂直內邊距和邊框,且是一 ...
  • 本次使用動態代理的初衷是學習Redis,使用Java操作Redis時用到Jedis的JedisPool,而後對Jedis的方法進一步封裝完善成為一個工具類。因為直接使用Jedis對象時,為了保證性能,總會需要手動的獲取到連接池中的連接,使用完成後還需要手動的釋放連接,都是完全重覆的操作。所以想要使用 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...