色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Web架構師應該具備哪些能力

工程師人生 ? 來源:工程師吳畏 ? 2019-04-03 17:03 ? 次閱讀

最近和幾個朋友談到時下流行的Web 2.0,提到了其中最重要的角色——架構師。多方各有爭執,不外乎是因為職業背景和視角的緣故。包括架構一詞,本身就從建筑學借鑒而來,至于架構師,則可以簡單地從建筑學的設計師來引申,不外乎就是設計結構,設計一個大樓的結構。回到軟件本身,那就可以簡單地理解為負責設計軟件框架的人了。

我們沒有討論清楚架構師、軟件架構師、系統架構師及其Web 架構師這些看似相同卻有所區別的角色的關鍵區別,本身見仁見智,也不是一時半會能夠說清楚的,最后我們討論了作為一個Web 2.0 網站架構師需要的一些基本的知識和能力(個人看法,難免有失偏頗):

1,熟知你的業務模式和目標人群

這是最重要的,Web 2.0 本質上是以Web 作為平臺的應用,如果不真正了解你的業務,不了解用戶的核心需求,不了解你目標客戶的典型行為,是很難做好網站的。從這個角度來講,一個Web 架構師首先必須是一個出色的產品經理。大多時候,我們只要做到業務技術領先就足夠了,一味地追求技術的先進性反倒會深陷泥潭。

在技術和業務之間找到一個平衡,也就意味著必須明白整個業務核心的競爭力在哪里?目標人群的基本訴求在哪里?然后選擇最低成本的技術來實現業務需求,但是反過來,又必須適當地為業務拓展保留適當的空間。

打個比方說,如果是一個以照片分享為目的應用,你可以將注冊程序寫的爛一點(但是不可以爛到不能動),你可以將幫助系統做的不那么好看一點,但是上傳照片和瀏覽照片絕對不可以慢,你可以數據庫設計的不是那么好,但是存儲問題絕對要慎重,絕對不能夠在照片超過1 萬張后,網站速度就和牛一般……

只有真正理解你所要做的事情,技術那玩意兒才可能變得可愛起來。

2,了解負載均衡策略實現

不管怎樣的Web2.0,怎樣的業務,你都必須做一個關鍵的假設:你的流量一定會上漲的,單臺機器一定不能夠滿足你業務發展的需求。我相信這樣的假設是合理的,沒有一個Web 2.0 公司相信他們可以用一臺機器來改變世界。

并不是要求從一開始就設計一個理想化的負載均衡策略,那樣未免有些過于“未雨綢繆”,但是作為一個Web 架構師,一定要給自己留下一些“分家”的余地。因此適當地了解不同層面的負載均衡策略實現是必要的。

一般來說,在小規模發展初期,適當地考慮數據庫分拆和按照業務進行域名分拆就足夠了。在中等規模的情況下,可能需要適當地采納硬件或者軟件Load-Balancer,在這種場景中,Web 層面的負載均衡你可以通過F5/NetWare 那樣的硬件來幫你實現,當然了,選擇Apache 或者更加專業的負載均衡軟件也未嘗不可,比如Windows 下面的NLB 和Linux 下面的LVS 。而為了實現負載均衡,在應用服務器層面作一些適當的調整也是必要的,至少此刻不能夠讓你隨心所欲地使用session 變量了(其實也并不是完全不可用),而一旦你采用了緩存(Web 2.0 有誰不知道MemCached?),如果考慮不夠周全,本來單機環境下好好的應用到頭來就會變得亂七八糟,本質上無非是數據不同步的問題,其實反過來想,你把流量和壓力分解了,數據各自為政了,不出問題也是沒有天理的。

言歸正傳,作為一個Web 架構師,必須了解負載均衡策略的不同實現,更要了解負載均衡之后可能引發的問題和關鍵點,對此一無所知,在面子上也是說不過去的。

3,設計“合理”的存儲

該沒有人打算將所有的東西存儲在一個關系數據庫里面吧,也該沒有人可以說,一個Web 2.0 網站用一個關系數據庫可以解決問題。如果說Web 2.0 是以用戶為中心,那么也可以說成是以用戶數據為核心價值,應用的核心驅動是數據。沒有辦法討論是應該用關系數據庫還是不用關系數據庫,許多東西就是在其中找到一個平衡,一個“合理”的平衡。

傳統的存儲會分為SAN 、NAS 和DAS,只不過隨著技術的發展,其中的邊界越來越模糊,模糊的可以甚至讓你忘記其中的差別,你盡管看好口袋里的銀子,大致明白有多少銀子能夠辦多少事情就可以了。但是你還是需要去做選擇,對于Web 應用而言,大多還是PC 服務器,也可能許多人熱衷于通過相對廉價的設備構建諸如GFS 那樣的存儲架構。

許多人認為Web 2.0 最關鍵的是業務,“用錢可以解決的問題,就不是問題”,這話是對的,在早期如果就將架構設計為未來5-10 年的架構,架構師的這種“遠見”必定成為日后的笑柄,但是反過來不去考慮任何數據分布的可能,如此短見終究會自食其果。

再看看實際情況中,架構師應該如何面對呢?在啟動階段,簡單而直接的關系型數據庫就可以了,你并不需要花費太多的精力去考慮,只要大致測算出一臺服務器的容納能力,然后估算出在到達容納能力上限的一半左右,你有多少的時間可以去折騰,如此而已,也真夠了。簡單地說,粗魯一點,一臺文件服務器,一臺數據庫服務器,只要別犯愚蠢錯誤,諸如文件只有一個目錄,完全不可拆分,如數據庫只有一個表,耦合了太多邏輯等等,既然沒有,那就放手去做。而在業務發展到一定規模,如已經有10 萬用戶,不考慮你的存儲已經不可能了,此時我們會發現,諸多性能問題是因為不太合理的存儲問題而導致的,這個時候存儲設計更多是應對性能而考慮的。而在發展到更大規模,存儲的可管理性和成本問題逐步成為關鍵。

對于架構師而言,不同時期選擇不同的設計策略是尤為重要的,沒有最好的,只有合理的架構,存儲亦然。

4,異構平臺的整合能力

如果從企業應用的角度而言,絕對不贊成一個系統中有多個平臺的,那會無謂地增加集成的成本,過去的“數據孤島”是最好的證明。那么究竟Web 架構師是在一個平臺上爐火純青就夠了,還是能夠在多個平臺之間漂移為好呢?

我們來重新定義“平臺”的含義, 我簡單地把它理解成兩個層面的,一個是操作系統層面,一個是開發語言層面,當然討論開來,問題就大了,可以說框架,可以說數據庫,可以說協議等等。但是有一點必須肯定,操作系統是你業務軟件層面的基礎,而開發語言是實現業務的工具,而兩者結合起來,都有一些推薦的經典架構,.NET 方面是Windows 2003/2008+Sql Server +IIS 6.0,然后通過Visual Studio 2005/2008,以微軟為依托,完全使用他們提供的服務。LAMP 則是Linux+Apache+MySql+Php, J2EE Web 架構則普遍接受為Hibernate+Spring+Struts,至于RoR、Python,這是明星式的后起之秀。

一個Web 架構師去仔細考察哪個平臺孰優孰劣是愚蠢的,除了能夠精通一個平臺,那樣能夠讓你處理業務的時候得心應手,但最好還能夠同時熟悉另外一個平臺,雖然我們可以說時代已經變了,所有的都是XML,都是標準的REST調用,但是你真的能夠保證嗎?大多應用都是.NET 寫的,需要提供一個論壇,你用了Discuz,你需要適當地修改業務,雖然論壇本身的定制功能很強大,但是要嵌入特定的業務,不至于對LAMP 一無所知吧,那樣連統一登錄的問題都不好解決,當然了,也可以為自己說我不需要它,因為有別的可以選擇,但是有一點也是事實,你無法隨心所欲地根據業務需要增加最適合你業務的模塊。

在我個人的理解,一個好的架構師最好能夠同時熟悉兩種操作系統,兩個以上的開發語言,一個方面是現實世界的業務復雜度使然,一個方面是既然會存在不同的平臺,那必定有其合理性,博取眾家之長,能夠幫助一個架構師在他的工作平臺上更加理性、公正地看待問題本身,其實反過來看.NET 、Java 或者PHP,也不就是相互借鑒其優點嘛。

一個好的架構師,是應該有處理異構平臺的能力的,必須記住,Web 本身就是異構的。

5,設計更好的交互

說到交互,大多人會想到是產品設計范疇的交互式設計,Web 2.0 強調以用戶為中心,而交互,也是以用戶為驅動的交互設計。但是我在這里談及的,更多是通常意義的Web前端設計,也可以稱之為“表現層架構”。

我們都知道Web 2.0 很重視交互,也正因為如此,大多工程師耗費更多的時間并不是在后臺的數據處理,而是前臺的交互。在AJAX 、RIA 大行其道的今天,Web 架構師一個極其重要的職責是簡化因為“高度交互”而導致的開發高復雜度。

我們討論AJAX,但不是讓每個開發人員都去操作XmlHttpRequest,不是讓每個人去了解HTML DOM 、JavaScript 和CSS,然后組合的眼花繚亂。所有人都知道,讓很多開發人員吐血的不是后臺代碼調試,而是JavaScript 和CSS,因為需要無比的耐心和技巧。而架構的職責呢,就是定義行之有效的規范和實現。

簡單一點地說,開發人員要彈出一個類似Facebook 的框,總不至于讓每個開發人員各顯神通去拼吧,然后絞盡腦汁地去兼容不同的瀏覽器,兼容不同的版本,再然后兼容不同頁面。我需要從后臺取數據,需要每個開發人員去自己寫,需要一個隱藏的效果,也需要各顯神通。

于是,有人會說,上面的幾個問題jQuery 可以解決,也有開發人員會采用這個類庫,但是也會有人用Prototype或ExtJs,而架構師的職責,就是規定應該用什么,怎么用,而哪些又是不可用的。

那我可以簡單地理解,在這個層面的交互架構師的關鍵職責是定義到底是不是用jQuery, 不同的界面應該用怎樣的html,應該采用怎樣的服務器界面技術,應該采用怎樣的遠程處理框架。

定義這些交互技術的目標是用最簡單的方式實現最好的交互,這個也正是架構的職責所在。

5,性能和故障診斷

本來不應該把這個問題列入其中的,但是考慮到典型的Web 2.0 是永遠的beta 版,換句話說,問題是永遠存在的,你不可能一開始就做出一個完美的應用。隨著業務的增長,出現性能問題和系統故障的情況是不可避免的。場景很平常: 流量上去了, 卻發現整體網站變得奇慢無比,有些頁面間歇性地出現錯誤, 更加要命的是, 開發人員也進行了代碼復查, 卻還是沒有找到“低級”的錯誤。

一個好的架構師,在這個時候應該能夠協助進行一些診斷和優化,基于業務的、技術的判斷,在愈加復雜的系統中,找出核心的問題所在。通常來說,一個應用系統的性能和SQL 的水平是有關系的,但是到底哪些SQL 有問題,問題影響的程度如何,需要作出快速、準確的判斷。

我不太贊成事后諸葛亮,但是一個好的Web 架構師還是應該能夠洞察到性能導致的問題所在,也會提出一套行之有效的故障診斷方案:是數據庫、程序還是網絡,是操作系統還是硬件本身的問題,或者都兼而有之?

性能和故障診斷涉及到的層面太多了,有操作系統、數據庫、配置文件、程序代碼,甚至還會和網絡有關,每個方面都需要用一本書來說明,也許還不夠。但是作為架構師,是必須對此有感覺的。

這是我個人對于Web 2.0 架構師所需要素質的一些理解,但是我想還有很多方面的能力是需要的,比如溝通的能力,抽象的能力,平衡的能力等等,也希望各位來幫忙補充。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 架構師
    +關注

    關注

    0

    文章

    47

    瀏覽量

    4622
收藏 人收藏

    評論

    相關推薦

    電力電子工程拿到50W以上的年薪需要具備哪些技能

    高薪電力電子工程需要具備的技能
    的頭像 發表于 11-05 09:44 ?284次閱讀
    電力電子工程<b class='flag-5'>師</b>拿到50W以上的年薪需要<b class='flag-5'>具備</b>哪些技能

    一位架構師的自述:在尚未踏入的世界成為你自己

    這是我參與創作者計劃的第1篇文章 ? ? 我叫艾佳,工作經驗14年,編程經驗30年。 我來自智能平臺部,負責標簽平臺、標簽圈人、標簽選品、EasyData、算法數據流的架構工作。 致力于批量
    的頭像 發表于 09-23 15:25 ?352次閱讀
    一位<b class='flag-5'>架構師</b>的自述:在尚未踏入的世界成為你自己

    鉗位能力與電流和負載具體是什么關系,應該怎么考慮?

    記得錢一段時間請教過這個電路,但是一直也沒弄明白。我想知道鉗位能力與電流和負載具體是什么關系,應該怎么考慮?為什么要用一個強的源?負載重是啥意思,電流消耗大?在實際應用中使用電源芯片,輸出端也常被負載拉低,這樣說是不是也是鉗位能力
    發表于 09-23 08:27

    SDN全景:架構創新與網絡功能的未來

    與數據轉發功能,并倡導全面的編程控制能力。 智能化SDN業務層:北向接口的通信與服務優化 通過應用具備通過編程接口向網絡控制器發送行為指令的能力,SDN架構的業務層集成了智能網絡應用。
    的頭像 發表于 07-26 14:26 ?391次閱讀

    鴻蒙ArkTS聲明式組件:Web

    提供具有網頁顯示能力Web組件,[@ohos.web.webview]提供web控制能力
    的頭像 發表于 07-04 15:35 ?668次閱讀
    鴻蒙ArkTS聲明式組件:<b class='flag-5'>Web</b>

    中級自動駕駛架構師應該學習哪些知識

    隨著自動駕駛技術的成熟,對系統架構師的需求逐漸增加。自動駕駛系統架構師負責設計整個系統的結構、組件、接口和數據流;需要協調不同領域的專業知識,確保系統的可靠性、安全性和性能。總之,自動駕駛系統架構師
    的頭像 發表于 06-20 21:47 ?285次閱讀

    初級自動駕駛架構師應該學習哪些知識

    隨著自動駕駛技術的成熟,對系統架構師的需求逐漸增加。自動駕駛系統架構師負責設計整個系統的結構、組件、接口和數據流;需要協調不同領域的專業知識,確保系統的可靠性、安全性和性能。總之,自動駕駛系統架構師
    的頭像 發表于 06-20 21:45 ?298次閱讀

    一篇文章告訴你:射頻工程的主要能力應該是什么?

    手機射頻工程的主要能力是什么,是匹配嗎?為什么N次的面試都糾結于史密斯和調匹配,這很重要嗎,我不這么認為,因此我來說說我的看法ChrentVol.1首先自然是原理圖的設計能力。當然,從無到有目前
    的頭像 發表于 06-20 08:27 ?325次閱讀
    一篇文章告訴你:射頻工程<b class='flag-5'>師</b>的主要<b class='flag-5'>能力</b><b class='flag-5'>應該</b>是什么?

    馬斯克再次宣稱特斯拉Roadster 2將具備飛行能力

    特斯拉公司首席執行官埃隆·馬斯克再次為科技界投下一枚重磅炸彈,他宣布備受矚目的特斯拉Roadster 2將具備飛行能力。這款被外界戲稱為“永遠在明年推出”的車型,以其超前的設計理念和卓越的性能,一直吸引著全球消費者的目光。
    的頭像 發表于 06-17 16:00 ?480次閱讀

    fpga 工程應該掌握的

    1.熟悉FPGA架構及應用,熟悉圖像算法的FPGA實現。 2.熟悉verilog hdl,熟悉Xilinx或Intel等開發工具。 3.有AI算法 fpga實現經驗優先。 4.本科及以上學歷,碩士優先。具有強烈的責任心,執行力,良好的溝通能力和團隊合作
    發表于 05-30 17:08

    鴻蒙原生應用元服務開發WEB-使用Devtools工具調試前端頁面

    Web組件支持使用DevTools工具調試前端頁面。DevTools是一個 Web前端開發調試工具,提供了電腦上調試移動設備前端頁面的能力。開發者通過setWebDebuggingAccess
    發表于 05-21 15:59

    索尼微軟或布局ARM架構游戲機

    近日,知名數據挖掘者Puff在索尼日本公司發布的招聘信息中發現了新的亮點,該職位強調應募者需具備使“PlayStation系列游戲在新架構系統上運行”的能力
    的頭像 發表于 05-20 17:07 ?603次閱讀

    鴻蒙原生應用元服務開發-Web相關說明

    Web組件用于在應用程序中顯示Web頁面內容,為開發者提供頁面加載、頁面交互、頁面調試等能力。 頁面加載:Web組件提供基礎的前端頁面加載的能力
    發表于 05-10 15:03

    OPPO與哲庫科技解散團隊,全力研發自研芯片底層架構

    1月8日,OPPO首席產品官劉作虎在接受媒體采訪時指出,雖然OPPO不會自主研發芯片,但仍舊會保持哲庫科技原有核心架構師團隊,發揮其與聯發科、高通等企業的溝通交流作用,旨在打通終端需求和 SoC 能力之間的通道。
    的頭像 發表于 01-30 09:29 ?721次閱讀

    從Google多模態大模型看后續大模型應該具備哪些能力

    前段時間Google推出Gemini多模態大模型,展示了不凡的對話能力和多模態能力,其表現究竟如何呢?
    的頭像 發表于 12-28 11:19 ?1263次閱讀
    從Google多模態大模型看后續大模型<b class='flag-5'>應該</b><b class='flag-5'>具備</b>哪些<b class='flag-5'>能力</b>
    主站蜘蛛池模板: 94色94色永久网站| 动漫H片在线播放免费高清| 国产成人aaa在线视频免费观看| 久久精品美女久久| 天堂so导航| 97人妻AV天天澡夜夜爽| 国语对白老女人8av| 日本大尺码喷液过程视频| 永久免费毛片| 国产精品美女久久久久AV超清| 欧美狂野乱码一二三四区| 野花日本韩国视频免费高清观看| 高清大胆欧美videossexo| 暖暖日本 在线 高清| 伊人影院网| 国产午夜在线视频| 色偷偷爱偷偷要| sao虎影院桃红视频在线观看| 狂野欧美性猛XXXX乱大交| 亚洲精品在线网址| 国产激情视频在线播放| 青青视频国产依人在线| 97人妻中文字幕免费视频| 九色PORNY真实丨国产免费| 亚洲AV无码影院在线播放| 国产传媒精品1区2区3区| 热の中文 AV天堂| 99精品视频| 蜜桃传媒在线观看| 在线播放午夜理论片| 好爽别插了无码视频| 羞羞答答影院在线| 高龄熟女50P| 日本一区二区三区在线观看网站 | 久久国产高清字幕中文| 亚洲AV福利天堂一区二区三| 古代荡乳尤物H妓女调教| 日韩精品久久久久久久电影| 99在线免费| 欧美高清18| WWW国产精品内射熟女|