自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

獨(dú)家專訪Randy Shoup:架構(gòu)師要學(xué)會(huì)權(quán)衡取舍

原創(chuàng)
開(kāi)發(fā) 架構(gòu)
出色的程序員都能成功的晉級(jí)為出色的架構(gòu)師么?51CTO開(kāi)發(fā)頻道近日對(duì)eBay杰出架構(gòu)師Randy Shoup先生進(jìn)行了郵件專訪,希望能夠幫助有志于成為架構(gòu)師的開(kāi)發(fā)者們更加深入的了解這個(gè)行業(yè)。

【51CTO獨(dú)家特稿】在軟件行業(yè)中,架構(gòu)師往往是從那些出色的程序員中蛻變而成。然而,出色的程序員都能成功的晉級(jí)為出色的架構(gòu)師么?這是51CTO開(kāi)發(fā)頻道年終活動(dòng)《架構(gòu)師最怕程序員知道的十件事》的主旨。雖然并非每一個(gè)程序員都希望能成為一個(gè)架構(gòu)師,但潛意識(shí)里他們是尊敬架構(gòu)師的——而一個(gè)優(yōu)秀的架構(gòu)師往往在舉手投足中顯示出一個(gè)編程大師的風(fēng)范。

51CTO開(kāi)發(fā)頻道年終巨獻(xiàn):架構(gòu)師最怕程序員知道的十件事

為了深入的了解這些問(wèn)題的答案,51CTO開(kāi)發(fā)頻道展開(kāi)了對(duì)國(guó)內(nèi)外幾個(gè)著名架構(gòu)師的一系列郵件訪談。本次訪談的對(duì)象是eBay的杰出架構(gòu)師Randy Shoup先生。

架構(gòu)師個(gè)人簡(jiǎn)歷

[[7484]] 
eBay杰出架構(gòu)師Randy Shoup

Randy Shoup是eBay市場(chǎng)架構(gòu)團(tuán)隊(duì)的杰出架構(gòu)師(Distinguished Architect)。他從2004年開(kāi)始成為eBay搜索基礎(chǔ)設(shè)施的主要架構(gòu)師。在eBay之前,他是Tumbleweed Communications的***架構(gòu)師,并在甲骨文以及Informatica公司擔(dān)任數(shù)職。他是斯坦福大學(xué)的數(shù)學(xué)與計(jì)算機(jī)系以及政治科學(xué)系的本科畢業(yè)生。

以下是此次訪談的具體內(nèi)容。

51CTO編輯:不同的企業(yè)和項(xiàng)目經(jīng)理對(duì)架構(gòu)師往往定義不完全相同。在您的團(tuán)隊(duì)中,對(duì)架構(gòu)師是如何定義的?對(duì)于招聘的架構(gòu)師會(huì)有怎樣的技能要求?

Randy Shoup:在eBay,一個(gè)架構(gòu)師的任務(wù)就是設(shè)計(jì)一系列的技術(shù)方案,這些方案必須滿足商業(yè)上的要求,同時(shí)還要能夠維持高標(biāo)準(zhǔn)的功能,性能,可伸縮性,可管理性,安全性,以及可用性。一個(gè)架構(gòu)師與開(kāi)發(fā)團(tuán)隊(duì)、產(chǎn)品團(tuán)隊(duì)和運(yùn)維團(tuán)隊(duì)通過(guò)緊密的合作來(lái)實(shí)現(xiàn)上述的這些目標(biāo)。

在產(chǎn)品團(tuán)隊(duì)開(kāi)始醞釀一個(gè)新的主意的時(shí)候,架構(gòu)師是產(chǎn)品團(tuán)隊(duì)***個(gè)接觸的人:架構(gòu)師會(huì)幫助他們把可行性、技術(shù)需求以及權(quán)衡取舍等因素一一剖析清楚。一個(gè)架構(gòu)師之后的工作可總結(jié)為以下幾條:

◆設(shè)計(jì)整體的技術(shù)實(shí)現(xiàn)步驟

◆與開(kāi)發(fā)團(tuán)隊(duì)一起,完成設(shè)計(jì)與實(shí)施的細(xì)節(jié)

◆與開(kāi)發(fā)團(tuán)隊(duì)和運(yùn)維團(tuán)隊(duì)一起,完成部署的過(guò)程

◆與運(yùn)維團(tuán)隊(duì)一起,進(jìn)行部署之后的維護(hù)和故障排除

一個(gè)架構(gòu)師設(shè)立好技術(shù)風(fēng)向標(biāo),并確保整個(gè)項(xiàng)目的進(jìn)展按照這些方向進(jìn)行。一個(gè)架構(gòu)師不愛(ài)下達(dá)命令,他往往通過(guò)影響力來(lái)領(lǐng)導(dǎo)團(tuán)隊(duì)。一個(gè)架構(gòu)師考慮“大的”和“長(zhǎng)期的”,并在各個(gè)因素之間做出權(quán)衡。

由于eBay是一個(gè)大站,每一個(gè)架構(gòu)師都要為這個(gè)站的不同方面負(fù)責(zé)。有些對(duì)垂直功能負(fù)責(zé),如買(mǎi)、賣(mài)、搜索、付款等功能。有些對(duì)水平功能負(fù)責(zé),如數(shù)據(jù)庫(kù)、事件與消息系統(tǒng)、服務(wù)基礎(chǔ)設(shè)施、展示框架等功能。

我們?cè)谡衅讣軜?gòu)師時(shí)有如下要求:

◆在設(shè)計(jì)與開(kāi)發(fā)大型系統(tǒng)方面有10年以上做為開(kāi)發(fā)者和技術(shù)管理者的經(jīng)驗(yàn)

◆技術(shù)領(lǐng)導(dǎo)能力

◆出色的交流和處理人際關(guān)系的技能,尤其是向開(kāi)發(fā)者和非開(kāi)發(fā)者解釋高級(jí)技術(shù)話題的能力

◆出色的分析和解決問(wèn)題的能力

◆對(duì)我們的技術(shù)堆棧有相當(dāng)程度的經(jīng)驗(yàn)

◆對(duì)于商業(yè)需求和客戶需求有著很強(qiáng)的理解能力,尤其是對(duì)權(quán)衡取舍方面有著出色的把控能力

51CTO編輯:假設(shè)有三名優(yōu)秀的程序員,A尤其擅長(zhǎng)溝通與團(tuán)隊(duì)管理;B的編程功底深厚,且對(duì)新技術(shù)能快速掌握;C在邏輯思維和抽象能力方面表現(xiàn)優(yōu)秀。您會(huì)重點(diǎn)培養(yǎng)哪位程序員成為架構(gòu)師?

#T#Randy Shoup:一個(gè)優(yōu)秀的架構(gòu)師需要同時(shí)兼有A,B和C的能力。我們希望我們招聘的架構(gòu)師擁有以上所有這些能力,這也是為什么并非每一個(gè)***開(kāi)發(fā)者都能夠成為一個(gè)優(yōu)秀架構(gòu)師的原因:-)

如果一定要排序,那么我會(huì)按照C、B、A的順序。條理清晰的邏輯思維能力可能是一個(gè)架構(gòu)師最重要的技能了,而我們往往發(fā)現(xiàn)擁有這種技能的人就像稀有動(dòng)物那樣難找。不過(guò),這個(gè)能力僅僅在和大量的實(shí)際開(kāi)發(fā)經(jīng)驗(yàn)、豐富的理論背景和好的領(lǐng)導(dǎo)能力相結(jié)合的時(shí)候才能體現(xiàn)出它的價(jià)值。

51CTO編輯:對(duì)于一個(gè)剛剛從程序員轉(zhuǎn)型過(guò)來(lái)的架構(gòu)師,通常有哪些問(wèn)題是他最難把握的?

Randy Shoup:做為一個(gè)從菜鳥(niǎo)成長(zhǎng)起來(lái)的架構(gòu)師,我還真記得幾次挑戰(zhàn):

◆習(xí)慣了思考細(xì)小的方面:有時(shí)候,一個(gè)新手架構(gòu)師很容易在具體的代碼編寫(xiě)和實(shí)施上花費(fèi)太多的精力。一個(gè)架構(gòu)師最基本的職能是往廣處思考,把系統(tǒng)看做一個(gè)完整的個(gè)體來(lái)思考,以維護(hù)并增強(qiáng)可伸縮性和可用性這些系統(tǒng)級(jí)的特性為目標(biāo)。一個(gè)架構(gòu)師不能將實(shí)施細(xì)節(jié)拋之腦后,但她***的價(jià)值在更高的層次。

◆習(xí)慣了單獨(dú)工作:有時(shí)候,一個(gè)新手架構(gòu)師會(huì)覺(jué)得她的工作就是獨(dú)自開(kāi)發(fā)出一個(gè)項(xiàng)目的架構(gòu)和設(shè)計(jì),并將這一整個(gè)成品交給一個(gè)團(tuán)隊(duì)來(lái)完成實(shí)施的部分。不過(guò)據(jù)我所知,大多數(shù)成功的架構(gòu)師都喜歡與其他團(tuán)隊(duì)成員一同完成架構(gòu)和設(shè)計(jì)這一塊的工作。這不僅對(duì)架構(gòu)本身有利,而且會(huì)令實(shí)施過(guò)程進(jìn)展的更加平滑。

#p#

附錄:與Randy Shoup郵件答復(fù)內(nèi)容的英文原文

1. How to define Architect

Usually, different project managers in different teams have somewhat different definitions for the term Architect. In your team, what does an architect do, and what's your recruiting criteria for an architect?

[rshoup] At eBay, an architect is responsible for designing technical approaches which both meet business goals and maintain high standards of functionality, performance, scalability, manageability, security, and availability. An architect works closely with the development team, the product team, and the operations team to achieve these goals. An architect is the first contact for the product team when they propose a new idea, to help them think through feasibility, technical requirements, and tradeoffs. An architect designs the overall technical approach, works with the development team on detailed design and implementation, works with the development and operations teams on deployment, and works with the operations team on post-deployment maintenance and troubleshooting. An architect sets technical direction, and makes sure it is followed all the way through. An architect leads by influence, rather than by command. An architect "thinks big", "thinks long-term", and makes trade-offs.

Since eBay is a large site, individual architects are responsible for different areas of the site. Some are responsible for vertical functions: selling, buying, search, billing, etc. Some are responsible for horizontal infrastructures: databases, event and messaging systems, service infrastructure, presentation frameworks, etc.

We look for architects who meet the following criteria:
* 10+ years of experience in design and development of large-scale systems, both as developer and technical lead
* Proven technical leadership abilities
* Excellent communication and relationship skills, particularly the ability to articulate advanced technical topics to developers and non-developers
* Excellent analysis and problem-solving skills
* Extensive experience with our technical stack
* Strong appreciation for business priorities and customer needs, particularly the ability to make effective trade-offs

2. Choosing the potential architect

Suppose you have 3 good programmers in your team. Programmer A tops in communication skills and team management. Programmer B tops in coding practices and theories, as well as coping with new technical skills. Programmer C tops in logical thinking and explaining abstract concepts. If you'd like one architect to come out from the three, which one would you prefer?

[rshoup] A good architect needs all the skills from A, B, and C. We look for architects that have all of those skills, which is why not every top-notch developer will make a good architect :-). If I had to prioritize among those skills, I would order them C, B, A. Clear and logical thinking is perhaps the most important skill for an architect, and it can be surprisingly rare to find. But it is only valuable in combination with extensive real-world development experience, excellent theoretical background, and good leadership skills.

3. From an experienced architect's point of view, what do you think are the main obstacles faced by those novice architects who just transformed from a programmer's role?

[rshoup] I can remember several challenges as a former novice architect: * Temptation to think too small: Sometimes, there is a tendency for a new architect to concentrate too heavily on detailed coding and implementation issues. The architect's primary role is to think broadly about the system as a whole, to maintain and improve systemic characteristics like scalability and availability. The architect cannot forget about the implementation details, but her greatest value is at the higher level.

* Temptation to work alone: Sometimes, a new architect may feel her role is to develop architectures and designs alone, and then hand them down fully-formed to a team for implementation. Most successful architects I know prefer to work collaboratively with other team members on architecture and design. This improves both the architecture itself and makes the implementation go more smoothly.

責(zé)任編輯:yangsai 來(lái)源: 51CTO.com
相關(guān)推薦

2009-12-09 16:14:50

2009-12-15 17:19:23

架構(gòu)師梁遠(yuǎn)華聚聚呀

2009-12-14 17:31:56

架構(gòu)師馮大輝

2012-10-12 17:19:01

微軟STB云計(jì)算

2012-08-28 15:05:23

2009-12-09 13:36:33

架構(gòu)師王翔

2009-11-13 03:03:09

2010-08-26 08:57:04

AndroidAndroid開(kāi)發(fā)

2013-08-01 10:31:11

2012-08-28 10:00:46

聯(lián)想曾國(guó)章

2009-11-20 13:25:31

2021-08-09 10:08:23

數(shù)據(jù)中心

2009-11-12 16:43:41

趨勢(shì)科技退出VB100Virus Bulle

2017-05-23 14:16:29

互聯(lián)網(wǎng)

2016-08-29 11:33:23

京東云云計(jì)算云安全

2010-01-29 09:54:55

林昊Java模塊化OSGi

2009-12-29 15:32:01

架構(gòu)師

2015-04-30 14:53:27

2009-12-29 11:18:00

架構(gòu)師權(quán)衡取舍妥協(xié)

2011-12-23 15:56:02

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)