成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

架構師修煉課程:透過問題看本質

原創
開發 架構
架構師的長處之一就是善于看到問題的本質。不過,什么是看到問題的本質?程序員應該如何修煉這個能力?本文從一位菜鳥程序員的編程生涯開始說起,介紹透過問題看本質這一能力的修煉過程。

【51CTO獨家特稿】一個剛剛從學校畢業的、致力于投身編程事業的年輕人,在投遞了n封簡歷之后,終于如愿以償得到了***份編程的工作。如果他在求學期間沒有積累過項目經驗,那么可以說這就是他職業的起點,他青澀的編程之路開始了。

51CTO開發頻道年終巨獻:架構師最怕程序員知道的十件事

可能他一開始會滿腔抱負、意氣風發的按照自己的方式完成小頭目交給自己的一些練手任務,然后懊惱的發現小頭目對這些看似能夠完成任務的代碼大搖其頭,指指點點;然后在真正進入項目之后,又會被各種不知道從哪里冒出來的bug和漏洞搞得暈頭轉向……

這些問題一方面和這位菜鳥程序員缺乏經驗有關,但是在過來者看來,造成這些問題的一個主要原因正是在于,這位程序員沒能看到問題的本質。

而看到問題的本質,也是架構師所必須具備的素質。

所謂看到問題的本質,實際上是一個思考的層面問題。比如說,你現在看到的這篇文章,從表面上看,就是你的顯示屏顯示出來了一些文字,但這明顯不是它的本質。從內容而言,這篇文章是一篇有關架構師技能的文章,它是對一個職業的某一項能力的描述;從技術而言,這篇文章是在世界上某臺服務器上的數據庫中提取出來的某些信息,經過漫長光纜和層層協議的傳遞,經過你的網線插口(或無線接收器)進入了你的機器,通過瀏覽器解讀并最終呈現出來。

聽起來,這個和另一篇文章介紹的同樣是架構師所需要的“抽象思維”有點像,只是方向不同:抽象思維是往高層次的升華,透過問題看本質則是往深層次的挖掘

讓我們看看文章一開始的那位菜鳥程序員為什么總是失敗。如果你是一位PHP程序員,那么可以參考這篇文章,里面總結了一些常見的問題。最簡單的一個(有時被用作面試題)可能出現在這樣的情況下——小頭目說:“顯示用戶提交的ID名”,然后菜鳥程序員大筆一揮:

  1. echo $_GET['username'];  

小頭目閱畢自然抓狂不已,因為這是一個再明顯不過的安全隱患。菜鳥程序員被小頭目訓了一頓,然后知道這樣做是有問題的。

這個事情如何與通過問題看本質有關?這個就取決于這位菜鳥程序員是如何改正這個錯誤的。如果這位程序員只是把下面的那段“合格”代碼抄襲過來并死記硬背,那么,以后等待這位程序員的大概是比較悲慘的結局——因為漫長的代碼生涯中有極多類似的問題,而等到他進入真正的項目之后,犯錯誤是有成本的。他的學習方式表示他沒有主動避免這樣類似問題的能力,那么他可能將會造成極大的損失,從而最終失去在這個行業的競爭力。

但是,如果他了解到代碼之下,更深層次的那些機制,比如echo是如何執行的?在什么時候執行的?哪些字符可能導致安全問題?htmlspecialchars為什么能解決這個問題?它真的解決這個問題了么?那么他將會一點一點的進步,逐漸成為一個合格的程序員。

什么是本質?將世界萬物理解為原子,將整個互聯網理解成0和1,這倒的確是非常本質了,不過并不能解答任何問題。從問題看本質,實質上是一個從表層逐步深入的過程。在架構師面對一個用戶需求時,這個“用戶需求”是非常表層的——比如說,一個自動遠程備份數據庫的功能。而架構師的主要工作,就是把這樣的“業務需求”翻譯成“技術需求”。這個過程一方面需要通過抽象思維將用戶需求提煉為啟動、讀取、存儲、中斷處理等模塊,而另一方面則需要看到更深層次的網絡、操作系統、硬件等方面,以及其可靠性、穩定性、適用性、安全性等問題。

#T#上面述說的是個小型需求,按照某些行業標準,這頂多只能算是一個資深程序員的工作,而沒有達到“架構”的規模——即,非大型項目中不存在真正的架構師(按照王翔先生的描述,大型項目差不多是“100M(RMB)、B(RMB)、10B(RMB)”這些數量級)。那么,讓我們看看大型系統的情況。以eBay為例,按照其架構師Randy Shoup的介紹,電子商務站這樣大型的系統有兩個層面的功能:“垂直功能,如買、賣、搜索、付款等。水平功能,如數據庫、事件與消息系統、服務基礎設施、展示框架等。”按照編者的理解,如果說垂直功能是抽象思維的產物,那么其中的水平功能的劃分則是一個架構師“透過問題看本質”能力的體現——這些劃分體現了架構師看到了表層的功能是建造在哪些因素之上的。同時,架構師要看到“電子商務站”這樣一個服務的本質,就是要提供一個多人同時在線進行交易的平臺,因此系統的本質也必須包括“功能,性能,可伸縮性,可管理性,安全性,以及可用性”這些因素。否則,即使搭了個架子,沒有上述特性的系統是完全無法滿足客戶需求的。

看到這里我們應該明白了,“透過問題看本質”并不是什么神秘的能力,而是有一定經驗能力的程序員都具備的能力。如果你在編寫Java代碼時考慮到了JVM的性能,在編寫PHP代碼時想到了潛在的安全問題,甚至于在編寫HTML+CSS頁面時考慮到了不同瀏覽器的兼容性,這些都體現了“透過問題看本質”的素質。只是,架構師之所以為架構師,是在于他們在面對龐大系統之時,仍然能夠敏銳的發現其底層之真實。這不僅需要此哲學層面的“內功”,還需要架構師具有多領域知識和經驗的積淀。

“透過問題看本質”,這也是程序員往往需要修煉十余年才有資格晉升為架構師的主要原因之一。程序員們,好好努力吧!

[[7723]] 

本文為《架構師害怕程序員知道的十項技能》中的透過問題看本質篇。

責任編輯:yangsai 來源: 51CTO.com
相關推薦

2023-02-17 18:32:42

JavaAIOIO

2015-12-10 15:10:10

2025-02-20 08:10:00

神經網絡模型AI

2013-02-26 09:34:10

服務器虛擬化云部署

2013-02-27 16:03:48

云部署服務器虛擬化

2012-06-20 13:54:44

架構性能優化

2009-02-19 16:19:48

SaaS開發SaaS安全SaaS

2011-03-25 10:23:51

架構師

2014-07-11 09:35:26

架構師

2021-02-02 15:23:20

Cloudera大數據

2012-05-01 21:32:39

蘋果

2009-12-08 15:37:39

2018-07-04 13:41:17

架構系統結構數據庫

2009-12-18 10:22:50

Ray Ozzie架構師

2020-08-24 08:50:12

架構師TL技術

2009-12-09 16:14:50

2021-08-02 13:05:49

瀏覽器HTTP前端

2013-04-19 15:12:17

架構師WEB架構師

2017-12-18 09:43:35

架構師CTO秘籍

2013-09-25 09:26:03

平臺軟件企業虛擬化云網絡
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 伊人超碰| 福利网址| 浴室洗澡偷拍一区二区 | 中文字幕精品一区久久久久 | 中文字幕视频在线观看 | 午夜爱爱毛片xxxx视频免费看 | 中文字幕一区二区三区不卡在线 | av天天爽 | 午夜视频一区 | 一级全黄视频 | 波多野结衣中文字幕一区二区三区 | 国产大毛片 | 在线一区二区三区 | 国产精品成av人在线视午夜片 | 亚洲欧美一区二区三区视频 | 久久99精品视频 | 日韩视频精品 | 91精品久久久久久久久久 | 日韩黄a| 国产久| 免费h视频 | 亚洲网站在线播放 | 日韩精品免费视频 | 成人在线视频一区 | 97久久久久久久久 | 国产精品毛片av一区 | 一区二区免费看 | 日韩一区二区福利 | 久久精品亚洲成在人线av网址 | 黄色国产 | 精品久久精品 | a国产一区二区免费入口 | 久久99精品久久久久蜜桃tv | 国产午夜精品一区二区 | 噜久寡妇噜噜久久寡妇 | 国产欧美精品一区二区三区 | 亚洲性视频网站 | 久久一 | 日本黄色大片免费 | 在线观看久草 | 久久久九九九九 |