艾伦图灵_Java英雄:丹·艾伦
艾倫圖靈
“ Java英雄 ”系列休息了很長時間。 老實(shí)說,我想即使有很多人我想把它包括在這里,它也可能會在茫茫荒野中終結(jié)。 丹是其中之一。 我第一次要求他捐款已經(jīng)差不多一年半了,并且在此期間發(fā)生的所有事情使我安然無not。 但是以下內(nèi)容在JavaOne期間到達(dá)了我的收件箱,基本上對我來說是生日禮物。 因此,我今天再次打開Java英雄書,并在其中再加一章! 謝謝丹! 稱您為朋友非常好!
丹·艾倫
Dan Allen是開源和標(biāo)準(zhǔn)的倡導(dǎo)者和創(chuàng)新者。 他在Red Hat擔(dān)任首席軟件工程師。 在此期間,他擔(dān)任Arquillian社區(qū)經(jīng)理,為各種開源項(xiàng)目(包括Arquillian,Asciidoctor,Awestruct和JBoss Forge)做出了貢獻(xiàn),并參加了JCP。 他幫助各種開源項(xiàng)目取得了巨大成功。 他還是《 Seam in Action》(曼寧,2008年)的作者,為各種出版物撰寫過技術(shù)文章,并且是國際公認(rèn)的演講者。
一般
你是誰?
我是一名開源倡導(dǎo)者和開發(fā)人員,社區(qū)催化劑,作家,演講者和企業(yè)主。 目前,我正在通過領(lǐng)導(dǎo)Asciidoctor項(xiàng)目,通過倡導(dǎo)Arquillian來提倡更高的軟件質(zhì)量來改善文檔狀態(tài),并且,一般而言,我將盡我所能來做出我所貢獻(xiàn)的開源項(xiàng)目及其社區(qū),大獲成功。 經(jīng)過漫長的會議一天后,您可能會發(fā)現(xiàn)我和社區(qū)成員一起喝著Trappist啤酒歡呼雀躍。
您在公司的正式職位?
我與Sarah White共同創(chuàng)立的咨詢公司OpenDevise的開源黑客和社區(qū)戰(zhàn)略家副總裁。
你在乎嗎?
與過去的標(biāo)題相比,我更關(guān)心此標(biāo)題,主要是因?yàn)槲冶仨殞ζ溥M(jìn)行定義。
通常,標(biāo)題可能毫無意義。 拿我以前的頭銜,中間件首席軟件工程師。 像這樣的所有真正成功完成的職務(wù)都是傳達(dá)員工的薪資等級。 “校長”之后的榮譽(yù)是“高級校長”。 那接下來呢 “校長?” 我以前是什么? 初級微不足道的工程師? 我們不妨像美國政府那樣使用數(shù)字等級(例如GS-10)。 至少這是一個邏輯系統(tǒng)。
像許多同齡人一樣,我一直在為自己的角色定義自己的頭銜。 對我來說,標(biāo)題的目的是幫助其他人了解您的專業(yè)和重點(diǎn)。 這樣,他們就會知道您何時是他們需要尋找的人。 這就是為什么我選擇標(biāo)題“開源黑客和社區(qū)策略家”的原因
我生活和呼吸開源,所以標(biāo)題的“開源”部分很合適。 如果您想討論有關(guān)開源的任何事情,我總是很游戲。
我也喜歡社區(qū),尤其是熱情社區(qū)。 我一直在思考它,以及如何使其更好地工作。 這就是“社區(qū)戰(zhàn)略家”一詞的來歷。
我喜歡讓人們對技術(shù)感到興奮,然后在他們發(fā)現(xiàn)自己對技術(shù)進(jìn)行改進(jìn)或創(chuàng)新的熱情時,幫助他們前進(jìn)。 雙方都經(jīng)歷了如此激動而自豪的經(jīng)歷。 在我看來,這種感覺被稱為開源。 我只是反復(fù)地以“開源黑客和社區(qū)策略家”的身份來復(fù)制它。 也許有一天,人們會認(rèn)出我是“串行社區(qū)創(chuàng)建者”!
開源的我們也通過我們領(lǐng)導(dǎo)或幫助管理的項(xiàng)目(如果有)來識別自己。 目前,我是Asciidoctor項(xiàng)目的負(fù)責(zé)人-力所能及。
你會說外語嗎? 哪個?
我希望。 我在高中學(xué)習(xí)法語,但認(rèn)為這種經(jīng)歷純屬學(xué)術(shù)性質(zhì)。 我正在挑戰(zhàn)自己閱讀法文推文,以重溫我曾經(jīng)知道的內(nèi)容。
我在外語方面的真實(shí)生活經(jīng)驗(yàn)來自與來自全球的開源社區(qū)成員的互動以及在其他國家/地區(qū)度過的時光。 即使我聽不懂其他語言,也喜歡聽音樂般的聲音和節(jié)奏。 我從聆聽中獲得了一定的樂趣,而不會分散注意力。
我最喜歡的外語體驗(yàn)是使用《 Arquillian用戶指南》的翻譯及其翻譯。 它不僅使我接觸到多種語言(超過十二種),而且使我對一種語言在一個人的身份中所扮演的角色以及對一個國家的自豪感產(chǎn)生了直接的欣賞。
經(jīng)驗(yàn)也促使我理解Unicode和字體。 我很自豪地說,我了解了Unicode的全部內(nèi)容以及它的工作方式(至少從編程的角度而言)。
我期待著與翻譯更多地合作,重新考慮翻譯的管理方式,并繼續(xù)吸收語言的聲音和節(jié)奏。 也許有一天,我至少會精通其中之一。
您的日常“引導(dǎo)”過程需要多長時間?
一個更有趣的問題可能是“何時?” 因?yàn)槲冶3至艘恍┢婀值臅r間。 我的日常目標(biāo)通常是在太陽升起之前上床睡覺。 這使我的早餐和自助餐可以處理您的午餐。 當(dāng)然,這全都取決于時區(qū)。 正如我的一位同事所指出的那樣,我在會議上非常無吸血鬼。
您可能想知道瘋狂的時間表是怎么回事。 關(guān)于管理開源項(xiàng)目的事情是,您永遠(yuǎn)不知道某人何時準(zhǔn)備好參與。 當(dāng)有人準(zhǔn)備參加時,您需要抓住機(jī)會。 他們可能需要一段時間(如果有的話)才能再有時間。 這個人可能在世界任何時區(qū)。
說實(shí)話,無論如何我也喜歡夜晚和白天。 我享受夜晚的寂寞,然后我經(jīng)常做一些最好的工作。 其他時候,我只是享受沉默。 我也期待這一天,尤其是在科羅拉多洛磯山脈的景色很清晰的時候。 我在紫色或白色峰頂?shù)谋尘跋伦隽艘恍┪易詈玫墓ぷ鳌?您可能會說,我白天和黑夜都汲取了靈感,以培養(yǎng)我的創(chuàng)造力。
在“早上”我只做咖啡的第一件事,但是我每天做幾次其他引導(dǎo)活動(例如Twitter)。 我花了大約一兩個小時才能瀏覽自己的電子郵件和Twitter,并在Google+進(jìn)站。
推特
你有推特手柄嗎? 為什么?
當(dāng)然。 這是@mojavelinux 。
我有一個Twitter帳戶:
- 開放
- 連接
- 去探索
- 報(bào)告
- 保持聯(lián)系
當(dāng)我第一次使用Twitter(超過6年前)時,許多人認(rèn)為它是荒謬而毫無意義的。 之所以吸引我,是因?yàn)樗峁┝艘环N無需事先安排即可進(jìn)行交流的方法。 它有點(diǎn)像一個全局IRC通道,并對其應(yīng)用了上下文過濾器。
Twitter改變了我開展業(yè)務(wù)的方式以及與同事和社區(qū)互動的方式。 寧愿嘗試解釋它,我將舉兩個例子。
當(dāng)我們發(fā)展Seam 3社區(qū)時,我們不僅在等待人們加入郵件列表。 我們在Twitter上尋找了談?wù)揓SF和Java EE的人。 當(dāng)時最有聲音的人之一是布萊恩·萊瑟姆(Brian Leathem)。 當(dāng)他發(fā)布有關(guān)JSF的反饋或投訴時,我們會通過直接回復(fù)他來吸引他。 那把他的帖子變成了對話或設(shè)計(jì)會議的開始。 當(dāng)需要雇用某人擔(dān)任相關(guān)職位時,他已經(jīng)是最高候選人,并且自此成為最高雇員。 有像布萊恩的故事。
很容易得出結(jié)論,我們“雇用了我們在Twitter上認(rèn)識的人”。 這沒有抓住重點(diǎn)。 Twitter的公共頻道使我們有機(jī)會找到對特定技術(shù)或平臺有濃厚興趣和經(jīng)驗(yàn)的人。 如此公開,我們甚至不必知道在哪里尋找對方(Twitter上除外)。 聚會是不可避免的。
Twitter還消除了與您自己的公司甚至其他公司的員工進(jìn)行通訊的開銷。 您只需在Twitter上發(fā)布廣播,通常會植入一些觸發(fā)詞或標(biāo)簽,然后該人會看到它,或者有人將其傳遞給該人。 無論哪種方式,您都可以消除雇員目錄的整個麻煩。 Twitter上發(fā)生了全球性對話,我們都參與其中。 現(xiàn)在打開了。
您總體上關(guān)注誰?
首先,我的社區(qū)成員。 正如我提到的,Twitter是我保持社區(qū)脈動并與他們進(jìn)行全天交流的方式。 我遵循一些公司和項(xiàng)目的提要,例如GitHub和Java EE,但大多數(shù)時候我想知道該帳戶背后有個人。
我不愿跟我認(rèn)識的任何人進(jìn)行面對面的交流,無論是面對面還是在線對話。 我也對LinkedIn和Google+遵循相同的政策。
你對推特有個人的“政策”嗎?
一種政策是保持撥入狀態(tài)。我每天至少在我的時間表上耕作一次,并嘗試回答我遇到的任何問題。 作為社區(qū)負(fù)責(zé)人,出席并參與全球?qū)υ捄苤匾?有幾天,我只有在咨詢了自己的信息流之后才確定議程。
我確實(shí)確保不讓它接管(某種)。 當(dāng)我發(fā)現(xiàn)自己只在閱讀或轉(zhuǎn)發(fā)而不是分享時,我意識到我需要重新進(jìn)行創(chuàng)作,以便可以分享一些東西(或稍作休息)。
我非常謹(jǐn)慎地發(fā)布和轉(zhuǎn)發(fā)有用的信息。 那是我個人政策的重要組成部分。 我使用諸如Klout,“ Twitter提及”標(biāo)簽和新的Twitter分析之類的工具來了解人們認(rèn)為有用或有趣的內(nèi)容,并專注于擴(kuò)展這些主題。 我撥出沒有React的主題,因?yàn)槲易鹬刈冯S者的時間。
貴公司是否限制或鼓勵您使用Twitter?
公司的政策是,使用您自己的判斷。
公共社交網(wǎng)絡(luò)對開源產(chǎn)生了巨大的積極影響,主要是因?yàn)殚_源既是公共的又是社會的。 這使得Twitter對我的職位至關(guān)重要。 我們經(jīng)常在Twitter上發(fā)現(xiàn)新的貢獻(xiàn)者(反之亦然)。 我們有時也將其用作140個字符限制的郵件列表(相信我,這是對真實(shí)郵件列表中經(jīng)常出現(xiàn)的論文的一種緩解)。
簡而言之,沒有Twitter(或類似的東西),我就無法完成工作(在當(dāng)今時代)。
工作
您的日常開發(fā)設(shè)置是什么?
一個帶標(biāo)簽的終端,其中包含許多Vim和一個Web瀏覽器。 我所做的幾乎所有工作都在這些環(huán)境中進(jìn)行。 由于我一直大量參與AsciiDoc和編寫內(nèi)容的工作,因此我的許多Vim會話都有排隊(duì)的AsciiDoc文檔。
我在Vim中進(jìn)行所有的Ruby開發(fā)。 我依靠語法高亮顯示和自己的直覺作為Ruby IDE。 如果您看到我分割窗戶的次數(shù),它會使您感到恐懼。 不要模仿我的工作,它可能效率很低,但是以某種方式對我有用。
當(dāng)我需要進(jìn)行一些Java黑客攻擊時,我絕對必須啟動IDE。 在Vim中編輯Java(無需任何其他插件)只是浪費(fèi)時間。 我最喜歡Eclipse,因?yàn)槟鞘俏衣殬I(yè)生涯中最先使用的東西。 但是,最近我經(jīng)常啟動IntelliJ IDEA,有時我確實(shí)喜歡Netbeans。 當(dāng)我必須在項(xiàng)目中編輯XML時,我會回到Vim,因?yàn)閺?fù)制粘貼效率更高!
在瀏覽CSS時,瀏覽器中的開發(fā)工具可以節(jié)省生命和時間。 我喜歡在實(shí)時會話中制定所需CSS規(guī)則,然后將其轉(zhuǎn)移到項(xiàng)目中的樣式表中。 一切都始于“檢查元素”。
哪種工具可以為您的工作提供最高的生產(chǎn)率?
Vim。 在過去的十年中,我每天都在計(jì)算機(jī)上使用Vim。 我無法想象沒有它的生活。 Vim是我的錘子。
您更喜歡與同事互動的方式?
主要是異步通信,一年進(jìn)行幾次面對面的聚會。
異步通信是郵件列表,社交網(wǎng)絡(luò),電子郵件和(開和關(guān))IRC的混合體。 由于我們所有人都有太多電子郵件,因此我與密友的大部分私人電子郵件已被Google+和Twitter私人消息所取代。 您會驚訝那些私人消息的有效性更高。 當(dāng)然值得一提。
我們通常在Devoxx和JavaOne之類的會議上會面。 這段時間非常重要,因?yàn)檫@是我們在屏幕名稱后面形成人的印象的時候。 遇見某人并聽到他們的聲音后,您再也不會再從他們那里收到一封電子郵件了。 您會聽到他們的聲音和表情來自他們的聲音。 這些印象,以及當(dāng)您親身時所形成的聯(lián)系,才是使虛擬關(guān)系起作用的原因。 除了技術(shù)(特別是技術(shù))之外,您還發(fā)現(xiàn)了其他需要談?wù)摰氖虑椤?
有時,我會被安排參加這些喜歡進(jìn)行電話會議的團(tuán)隊(duì)。 首先,有人可以殺死會議電話嗎? 他們太恐怖了,被嗡嗡聲殺死了。 除此之外,跨國公司的電話根本不起作用。 沒有時間是一個人的好時光。 當(dāng)我們最終設(shè)法讓(大多數(shù))人通電話時,沒人知道什么時候該說話(或閉嘴)。 這是馬戲團(tuán)。 讓我回到異步通訊。
如果確實(shí)需要“打電話”,我更喜歡Google Hangouts(在可行時)。 當(dāng)我說這幾乎和當(dāng)面一樣好時,我并不夸張。
您最喜歡的待辦事項(xiàng)管理方式是什么?
我在這方面做了很多研究,并決定使用一個名為Nirvana的在線應(yīng)用程序。 它比我評估過的任何其他方法都更加忠實(shí)地遵循David Allen的GTD方法。 當(dāng)我擅長堅(jiān)持時,它對我很有幫助。
當(dāng)我表現(xiàn)不佳時,我會回到兩個錨點(diǎn),即一個名為WORKLOG的文本文件和我的電子郵件收件箱。
我使用多年的一個技巧(對于上下文切換非常有用)是在我從事的每個項(xiàng)目中維護(hù)一個WORKLOG文件。 該文件中的任務(wù)并不是很急,但是確實(shí)讓我想起了當(dāng)我有時間從事該項(xiàng)目時下一步要做的事情。 長時間休息后返回項(xiàng)目時,此功能特別有用。
如果您希望在自己喜歡的公司工作,那會是什么?
現(xiàn)在,我的理想工作不是在別人的公司,而是我自己。 我喜歡開源的主要原因之一是它賦予的自治權(quán)。 我沒有找到方法來創(chuàng)造價(jià)值的問題,但是有時候我確實(shí)有說服我的雇主追求價(jià)值創(chuàng)造的問題。
在我現(xiàn)在追求的理想工作中,無論如何我都可以創(chuàng)造價(jià)值,可以判斷何時成功,何時為自己失敗,可以決定何時需要增長,何時不需要增長我可以捍衛(wèi)對我重要的原則。 這就是為什么我和妻子邁出自己的事業(yè)去做的原因。 我們的目標(biāo)非常簡單:生存,快樂與健康,創(chuàng)造價(jià)值,以開源方式工作并幫助客戶取得巨大成功。
Java
您正在用Java編程。 為什么?
我堅(jiān)信可移植性和選擇。 我相信JVM為我們提供了這種自由。 它是最優(yōu)化,最高效的運(yùn)行時之一,這錦上添花。
我使用Java是因?yàn)樗荍VM上的默認(rèn)語言。 如果將另一種語言替換為默認(rèn)語言,我可能會改用它。 Java是在JVM的通用運(yùn)行時上運(yùn)行和集成代碼的一種方法,并且可以結(jié)束該代碼。 有一些引人入勝的功能使Java變得令人愉悅,例如注釋,現(xiàn)在的lambda和流。 但是,如果我可以選擇的話,我更喜歡其他語言,例如Ruby,Groovy和Clojure ....只要該語言在JVM上運(yùn)行良好!
Java的最大樂趣是什么?
儀式和冗長。 輸入太多。 我喜歡可以在很小的空間內(nèi)完成很多工作的代碼,但是仍然易于閱讀和直觀。 Java需要大量空間。
Java還缺少您在大多數(shù)其他語言中找到的標(biāo)準(zhǔn)庫中的某些真正關(guān)鍵功能。 一個很好的例子是可以從文件或URL中讀取所有內(nèi)容的單個函數(shù)。 這是一個簡單的概念。 它應(yīng)該具有簡單的功能。 Java并非如此。
而且,獲取器和設(shè)置器都很笨。
如果您可以用Java更改一件事情,那將是什么?
減少進(jìn)口儀式。 我知道,這不是很多人想到的第一件事...那是除非您已經(jīng)使用動態(tài)語言完成了大量工作。
Java語言和動態(tài)語言之間最大的區(qū)別之一(是經(jīng)常提及的)是默認(rèn)語言集中的類型數(shù)量和需要更多獲取的導(dǎo)入語句數(shù)量。
看起來似乎沒什么大不了的,尤其是因?yàn)镮DE可以幫助管理導(dǎo)入語句,但是您會驚訝于它們?nèi)匀皇鼓兟?#xff0c;并且在沒有IDE的幫助下徹底癱瘓了開發(fā)。 在Ruby(在某種程度上是Groovy)中,您可以編寫最簡單的程序而無需單個import(需要)語句。 這意味著您可以繼續(xù)插拔電源。
Ruby還使您可以導(dǎo)入整個庫,以便可以使用一個語句(RubyGem)訪問應(yīng)用程序中的所有文件。 在Java中,您必須在每個文件中導(dǎo)入您使用的每種類型(或至少包含它們的每個包)。 這是要管理的大量額外行。
我希望這種改進(jìn)與Java模塊化一起出現(xiàn)。 您可以將模塊導(dǎo)入應(yīng)用程序,然后在任何地方使用它的類型。 那對我來說將是改變游戲規(guī)則。 結(jié)合Java 8中的語言改進(jìn),我的Java效率也許可以趕上Ruby的效率。
您最喜歡動態(tài)語言的什么?
Ruby。 現(xiàn)在,用Ruby寫的代碼比使用任何其他編程語言( https://www.openhub.net/accounts/mojavelinux/languages )都要多。 (我還廣泛研究了Ruby和Java互操作)。 我可以證明Ruby是非常自然的,正如語言設(shè)計(jì)師所預(yù)期的那樣。
我也是Groovy和Clojure的粉絲。 我之所以喜歡Groovy是因?yàn)槲蚁矚gRuby,它具有與Java無縫集成的附加好處。
Clojure是我的“挑戰(zhàn)自己的語言”。 我不會說這對我來說還很自然,但是它促使我編寫更好的代碼。 他們對LISP說的是真的。 它確實(shí)擴(kuò)大了您的思維范圍。
哪種編程技術(shù)使您前進(jìn)最多,為什么?
毫無疑問,函數(shù)式編程。 這是一個流行的回應(yīng),但有充分的理由。 這不只是一種趨勢。
根據(jù)我與Java EE,Seam和CDI的合作經(jīng)驗(yàn),我相信我有資格說在最佳情況下在共享上下文中管理狀態(tài)是困難的,通常是容易犯錯或不可能的。 隨著孤立的流程變得越來越稀有,我們必須改變我們的發(fā)展方式。
函數(shù)式編程為我們提供了必要的工具。 高階函數(shù)使我們無需依賴類層次結(jié)構(gòu)和依賴共享狀態(tài)的誘惑就可以編寫邏輯。 持久的集合且沒有副作用,讓我們編寫默認(rèn)情況下線程安全的代碼,更好的是,準(zhǔn)備針對多核甚至分布式進(jìn)行優(yōu)化。
不過,請不要相信我。 只需聽一些Rich Hickey的演講,然后獲取有關(guān)Clojure的書或教程并開始學(xué)習(xí)即可。 您的想法會說服您。
您從事過的最大項(xiàng)目是什么?
這是一個J2EE Web應(yīng)用程序,它促進(jìn)了抵押貸款和自動評估服務(wù)。 該應(yīng)用程序是在一個不太清晰的基于組件的框架中編寫的,該框架早于與EJB2后端和webMethods服務(wù)進(jìn)行通信的JSF。 為了使其能夠運(yùn)行,必須將其加載到Weblogic的bootclasspath上,其原因我永遠(yuǎn)也不會理解。 在我在那里工作期間,測試套件從未成功完成,而且沒人能解決如何修復(fù)這個龐然大物。 調(diào)試是一場噩夢。 不好看 可以說,我很欣賞像Spring這樣的輕量級框架的需求,并且一旦我不肯使用該系統(tǒng),就改變了我的職業(yè)道路。
關(guān)于這項(xiàng)工作的好處是,我獲得了使用XP開發(fā)方法的經(jīng)驗(yàn)(故事卡,結(jié)對編程,持續(xù)失敗的集成等)。 這可能是該應(yīng)用程序保持生存并向前發(fā)展的唯一原因。
您犯過的最嚴(yán)重的編程錯誤是?
沒有記錄(也沒有測試)。
我總是因?yàn)闆]有記錄而自欺欺人。 我們將編程錯誤視為邏輯或語法錯誤,但我們可能犯下的最嚴(yán)重罪行沒有傳遞知識和穩(wěn)定性。 這就像在地雷周圍散布地雷,忘了地雷,然后將其變成公園一樣。 錯誤將由下一個不知道要確保系統(tǒng)安全運(yùn)行所需的所有知識的人犯。
最后,我將對今年OSCON上最受歡迎的Tweet進(jìn)行修改,以幫助鼓勵您成為更有紀(jì)律的程序員。
總是[寫文檔],好像最終維護(hù)您代碼的[人員]將是一個知道您住在哪里的暴力精神病患者。
—約翰·伍茲( 來源 )
翻譯自: https://www.javacodegeeks.com/2014/10/the-heroes-of-java-dan-allen.html
艾倫圖靈
總結(jié)
以上是生活随笔為你收集整理的艾伦图灵_Java英雄:丹·艾伦的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: window电脑装虚拟机(安装windo
- 下一篇: 360壁纸电脑桌面美女图片(360电脑壁