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

程序員是否應(yīng)當(dāng)有權(quán)自主選擇語(yǔ)言以及框架?

譯文
開(kāi)發(fā) 開(kāi)發(fā)工具 前端
明明是憑著“擅長(zhǎng)JRuby編程”得到錄用的,結(jié)果實(shí)際工作卻需要跟C#打交道。

[[113460]] 

網(wǎng)友Spencer問(wèn)道:

我目前就職于一家主要面向C#語(yǔ)言的公司,雖然公司內(nèi)部也有幾位喜歡Java與JRuby的同事,但大多數(shù)程序員都更傾向于使用C#。當(dāng)時(shí)我被錄用的理由是,我擁有豐富的Web應(yīng)用程序創(chuàng)建經(jīng)驗(yàn)而且比較喜愛(ài)JRuby on Rails或者node.js這類(lèi)新型技術(shù)。

最近我開(kāi)始接手一個(gè)Web應(yīng)用程序構(gòu)建項(xiàng)目,主要工作就是必須在短時(shí)間內(nèi)保證該應(yīng)用能夠?qū)崿F(xiàn)大量針對(duì)性功能。軟件開(kāi)發(fā)負(fù)責(zé)人要求我使用MVC 4來(lái)取代Rails,這倒并不是什么過(guò)分的要求,但我對(duì)于MVC 4完全不了解、對(duì)于C#也一無(wú)所知。然而我又是惟一一位負(fù)責(zé)創(chuàng)建Web應(yīng)用程序服務(wù)器及前端UI的程序員。

難道說(shuō)我就不能使用自己非常了解而且已經(jīng)熟練掌握的框架(Rails)來(lái)代替MVC 4嗎?之所以作出這樣的決定,是因?yàn)檫@位軟件負(fù)責(zé)人不知道如何運(yùn)用JRuby/Rails、當(dāng)然也就無(wú)法重復(fù)利用由此開(kāi)發(fā)出的代碼。

反對(duì)意見(jiàn):

• 既然他本人并不參與代碼編寫(xiě)工作,那么坦率地講整個(gè)開(kāi)發(fā)項(xiàng)目根本不需要他的參與。因此,無(wú)論他了不了解JRuby/Rails都并不重要。

• 我們實(shí)際上能夠重新使用這部分代碼,因?yàn)槲覀儞碛写罅縅ava應(yīng)用,因此與JRuby之間進(jìn)行代碼往來(lái)與交換。事實(shí)上,他還要求我們把一部分資源由Java庫(kù)轉(zhuǎn)換成C#,而不準(zhǔn)員工直接在JRuby on Rails應(yīng)用中運(yùn)行Java庫(kù)。這一切的惟一理由就是,他不喜歡Java或者JRuby。

我曾經(jīng)親自開(kāi)發(fā)過(guò)很多Web應(yīng)用程序,但使用自己不熟悉的語(yǔ)言會(huì)給流程帶來(lái)障礙,而且我更沒(méi)辦法在這么短的時(shí)間里拿出像過(guò)去那樣令人滿(mǎn)意的成果。這倒不是什么無(wú)法接受的狀況,畢竟在開(kāi)發(fā)領(lǐng)域?qū)W習(xí)新技術(shù)算是不可或缺的重要一環(huán)。但問(wèn)題在于,在這個(gè)項(xiàng)目中我們不僅要頂住巨大壓力、還得盡快搞定這么多任務(wù)。

因此,開(kāi)發(fā)人員要在怎樣的條件下才能自主選擇所使用的工具?這該由公司方面決定嗎?到底是我所在的公司糟糕透頂,還是說(shuō)這已經(jīng)成為業(yè)界常態(tài)?我是否應(yīng)該選擇其它更適合自己的企業(yè)?我審視這個(gè)問(wèn)題的角度是否有所偏差?

反饋意見(jiàn)

網(wǎng)友Telastyn的回答(得到111票贊成):

開(kāi)發(fā)人員要在怎樣的條件下才能自主選擇所使用的工具?

當(dāng)這種選擇不會(huì)給整個(gè)團(tuán)隊(duì)帶來(lái)影響時(shí)。

我審視這個(gè)問(wèn)題的角度是否有所偏差?

明顯是的。

沒(méi)錯(cuò),公司給你設(shè)定的截止周期實(shí)在太過(guò)緊張。沒(méi)錯(cuò),如果使用Rails,你能更快地完成任務(wù)。不過(guò)公司需要應(yīng)對(duì)與應(yīng)用程序相關(guān)的全部部署與維護(hù)工作。如果這家企業(yè)擁有一大批精通C#語(yǔ)言的開(kāi)發(fā)人員,那么開(kāi)發(fā)C#應(yīng)用很可能會(huì)帶來(lái)維護(hù)上的成本優(yōu)勢(shì)(以及應(yīng)用質(zhì)量?jī)?yōu)勢(shì))。

這家公司的數(shù)據(jù)庫(kù)管理員以及其他運(yùn)維同仁可能對(duì)于C#堆棧非常熟悉,而且擁有一整套應(yīng)對(duì)此類(lèi)特殊堆棧的部署與更新流程。即使你個(gè)人能夠更快更好地完成代碼編寫(xiě)工作,不同的編程方式也很可能給其他同事帶來(lái)困擾,并最終使這款專(zhuān)業(yè)Web應(yīng)用程序的調(diào)試與運(yùn)行周期變得更為冗長(zhǎng)。

請(qǐng)記住,我們用在應(yīng)用程序維護(hù)方面的時(shí)間要遠(yuǎn)多于編寫(xiě)應(yīng)用的時(shí)間,而優(yōu)化對(duì)于這部分成本顯然非常重要。

學(xué)習(xí)技能,賺取回報(bào)

網(wǎng)友Ampt的回答(獲得19票贊成):

堅(jiān)持使用Java/JRuby也未嘗不可

主要理由在于,老板的最終目標(biāo)是讓你完成生產(chǎn)任務(wù)。他們雇用了你,你也將因此為公司創(chuàng)造價(jià)值。請(qǐng)確保他們明確意識(shí)到強(qiáng)迫你使用自己不熟悉的框架會(huì)帶來(lái)哪些負(fù)面影響,例如:

1. 以較低的生產(chǎn)效率交付工作成果。

2. 所創(chuàng)建代碼的質(zhì)量較低。

即使是最優(yōu)秀的程序員,在接受新的語(yǔ)言/框架時(shí)也需要一段熱身過(guò)程。

關(guān)于學(xué)習(xí)MVC 4與C#的建議

學(xué)習(xí)新的編程語(yǔ)言絕對(duì)不是壞事。作為一名程序員,技能的培養(yǎng)與投入就像是一場(chǎng)冒險(xiǎn)——我們不知道自己已經(jīng)掌握的語(yǔ)言/平臺(tái)會(huì)不會(huì)在什么時(shí)候、甚至是不久的未來(lái)突然退出歷史舞臺(tái)。不過(guò)由于微軟始終保持著良好的發(fā)展態(tài)勢(shì),我認(rèn)為投身這一陣營(yíng)是個(gè)比較安全的選擇。C#與MVC最近剛剛完成又一輪更新,這證明了它們二者都具備出色的發(fā)展空間、并將在未來(lái)的前進(jìn)道路上繼續(xù)保持活力。

要想成為一位更為全面的開(kāi)發(fā)者,你必須始終保持積極的接納與學(xué)習(xí)態(tài)度。從最理想的狀況出發(fā),你的老板可能愿意為整個(gè)學(xué)習(xí)過(guò)程承擔(dān)必要開(kāi)支,這意味著你能在幫助自己提高身價(jià)的同時(shí)繼續(xù)領(lǐng)取目前的這份薪水。

總結(jié)陳詞

你也許最終能夠在這場(chǎng)沖突當(dāng)中實(shí)現(xiàn)自己的訴求,但隨之而來(lái)的則是面對(duì)同事們的不滿(mǎn)甚至對(duì)立情緒。請(qǐng)向你的經(jīng)理詳細(xì)解釋使用熟悉開(kāi)發(fā)方式的優(yōu)勢(shì)與弊端,這樣雙方都能獲得相對(duì)令人滿(mǎn)意的處理結(jié)果。

把話(huà)說(shuō)開(kāi)

網(wǎng)友FrustrateWithFormsDesign的回答(獲得87票贊成):

在我看來(lái),你需要跟開(kāi)發(fā)團(tuán)隊(duì)負(fù)責(zé)人深入交流,并就以下幾個(gè)話(huà)題進(jìn)行溝通:

“我知道大家都是.NET的堅(jiān)定支持者,但我能夠加入這個(gè)團(tuán)隊(duì)、主要憑借的是自己豐富的Java/JRubyRails開(kāi)發(fā)經(jīng)驗(yàn)。利用這些已經(jīng)非常熟悉的工具,我能夠在xx天之內(nèi)完成新應(yīng)用的開(kāi)發(fā)工作。如果大家堅(jiān)持,我當(dāng)然可以從頭開(kāi)始學(xué)習(xí)C#/MVC 4,但單這一項(xiàng)所需要的時(shí)間就將超過(guò)xx天。您對(duì)此怎么看?”

問(wèn)題的實(shí)質(zhì)在于“之所以雇用你所看重的技能”與“你現(xiàn)在需要掌握的技能”之間存在沖突,但在表達(dá)這一點(diǎn)的同時(shí)你也強(qiáng)調(diào)了自己愿意學(xué)習(xí)各類(lèi)新技能,只不過(guò)這會(huì)導(dǎo)致新應(yīng)用的開(kāi)發(fā)工作耗時(shí)更長(zhǎng)、畢竟目前要使用的工作集對(duì)你來(lái)說(shuō)還太過(guò)陌生。再次強(qiáng)調(diào),你一定要充分表達(dá)自己對(duì)學(xué)習(xí)新技能的積極接受態(tài)度。如果你對(duì)于新技能的學(xué)習(xí)總是抱有抵觸情緒,那么一旦你的現(xiàn)有知識(shí)儲(chǔ)備無(wú)法幫助企業(yè)解決實(shí)際問(wèn)題,下一個(gè)會(huì)被炒掉的員工肯定就是你了。

最后談?wù)勀闾岢龅膸讉€(gè)問(wèn)題:

開(kāi)發(fā)人員要在怎樣的條件下才能自主選擇所使用的工具?這該由公司方面決定嗎?到底是我所在的公司糟糕透頂,還是說(shuō)這已經(jīng)成為業(yè)界常態(tài)?我是否應(yīng)該選擇其它更適合自己的企業(yè)?我審視這個(gè)問(wèn)題的角度是否有所偏差?

問(wèn)題的答案在不同的企業(yè)中往往有所區(qū)別。如果一家公司購(gòu)買(mǎi)了微軟工具,并將VisualStudio平臺(tái)與.NET框架作為執(zhí)行標(biāo)準(zhǔn),那么開(kāi)發(fā)者堅(jiān)持使用Linux與C語(yǔ)言的行為顯然有些不可理喻。這種情況非常正常。對(duì)于那些并不太挑剔具體編輯器類(lèi)型的企業(yè)來(lái)說(shuō),上述矛盾可能會(huì)得到顯著緩解,例如允許開(kāi)發(fā)人員選擇Vi或者Emacs,只要輸出結(jié)果不受影響即可。我見(jiàn)過(guò)的一部分企業(yè)甚至允許開(kāi)發(fā)人員在Windows或者Linux之間自由切換,但前提是他們所使用的語(yǔ)言必須能在兩種操作系統(tǒng)平臺(tái)上順暢運(yùn)行并具備良好的支持。

為什么企業(yè)要部署這樣的流程?保持一致性是其中的一項(xiàng)重要原因。如果多位開(kāi)發(fā)人員根據(jù)個(gè)人喜歡選擇語(yǔ)言/框架、采取不同的工具并在不同系統(tǒng)之上進(jìn)行測(cè)試,那么在為應(yīng)用程序代碼庫(kù)進(jìn)行補(bǔ)丁更新時(shí),企業(yè)方面將很難完成必要的調(diào)試工作。相比之下,如果所有開(kāi)發(fā)人員都能在最大程度上使用相似的設(shè)置環(huán)境,那么這些難題將被消弭于無(wú)形。

在你的事例中,聽(tīng)起來(lái)雇用你的這家企業(yè)并沒(méi)有就技術(shù)體系提出一套標(biāo)準(zhǔn)化流程。我個(gè)人對(duì)此不太理解,也許你該跟人事部門(mén)的負(fù)責(zé)人談?wù)?,了解一下他們?dāng)初為什么會(huì)按這樣的標(biāo)準(zhǔn)錄取新員工。

英文:http://arstechnica.com/information-technology/2014/05/should-a-programmer-have-freedom-in-choosing-a-language-and-framework/

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

2012-11-01 13:46:54

程序員

2009-07-28 08:28:15

2009-03-02 09:40:13

程序員程序語(yǔ)言開(kāi)發(fā)

2018-02-05 08:58:21

2009-02-27 09:25:28

編程語(yǔ)言程序員C#

2015-09-11 09:35:35

CPU

2013-05-30 13:30:00

代碼效率程序員

2018-10-15 10:08:53

程序員技能深度學(xué)習(xí)

2015-05-26 09:17:34

程序員泛泛涉獵

2011-09-06 09:02:06

程序員

2015-03-16 11:14:26

Java程序員面向?qū)ο?/a>程序員

2009-04-14 11:13:22

主流開(kāi)發(fā)開(kāi)發(fā)技能程序員

2015-03-20 11:50:09

程序員程序員警句

2013-04-28 11:03:41

編程語(yǔ)言程序員私有云

2013-06-17 10:45:34

2011-05-19 08:19:50

Lisp

2013-08-20 09:33:59

程序員

2012-03-06 09:22:46

程序員

2014-11-03 14:43:38

程序員

2015-08-27 10:39:59

新手程序員必知
點(diǎn)贊
收藏

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