「不要對你所取得的這些技術成就感到太自豪。與原力的力量相比,摧毀行星的能力根本算不了什麼。」——死星上的達斯‧維德。
介紹
也許,該系列文章的接下來的兩部分是許多人最期待的,並且有充分的理由。在地平線之外、在純粹的 Java 之外還有什麼?Java 開發人員在每個專案中都呼吸著什麼?對於任何主要程式語言是 Java 的普通後端工程師來說,這都是一本真實、完整的自學指南。我打算盡可能涵蓋醫院的平均水平,不僅描述最受歡迎的框架,還描述目前被認為相關的解決方案。當然,工具很多,而了解哪些是最重要、最好的卻是一條沒有出路的道路。你們每個人都查看了DOU上的「職位」部分,發現了一堆從空缺到空缺不斷重複的技術。我知道不可能描述所有的事情,但是提出一個總體框架是可以的,所以讓我們試著遵循這個方向。不知何故,在過去的一個專案中,發生了一種相當有趣的尷尬,我認為,對於某個領域的許多人來說,這種尷尬過去和現在都在不斷地重複。這個任務被設定為將一個 HTML 頁面的渲染附加到已完成的功能上,只是為了顯示各個實體的狀態。於是,我的同事決定在沒有人使用Spring的情況下,附加Spring thymeleaf,它拉取了Spring本身的部分核心依賴。這只是一個常規頁面的全部內容,該頁面僅顯示 2-3 個實體的狀態。 「我從來沒覺得使用兩把光劍有什麼意義…在我看來,這是一種炫耀」 — 歐比王‧克諾比。一方面,開發人員盡快解決了問題,安裝了一個他有使用經驗的框架,並在幾個小時內將其整合到專案中。但另一方面,我們的程序規模已經擴大,所以簡單的問題變成了:他做對了嗎?對於這樣的原子任務,當你確定這個thymeleaf/Spring MVC等更大的時候。它不會在任何地方使用,最好根本不使用它。我總是對諸如「哦!是的,我們這裡使用了 Hibernate!看,一切都很酷,ORM!”,當被問到是否可以使用常規 JDBC 來解決這個邏輯問題時,他們聳了聳肩。有普通的建築,它應該是簡單的,應該謹慎對待,而不是充滿時尚和超現代的框架。正如歐比王上面所說,這無非是炫耀,儘管需要知道如何使用它們。在我看來,年輕的Javaist是最不幸的——那麼多規範,那麼多庫需要研究。光是 Java EE 就有豐富的文件。問題出現了,初學者該做什麼,接下來他該學什麼,在霍斯特曼之後他該做什麼?簡單的回答:不幸的是,遇到了很多人。我們不會從業務框架開始,而是從更平凡的必要事物開始。作業系統
Linux
除了 Windows 和/或舒適的 Yosemite 之外,您還需要微笑著向 Linux 伸出雙手。對於某些項目來說,成為使用者並知道如何使用命令列就足夠了,而對於其他項目來說,了解如何使用命令列就足夠了。哪種方法最好?網路上有大量的書籍/教學。首先安裝Ubuntu或您喜歡的任何其他發行版,並嘗試在接下來的一兩個月內將其用作您的主要作業系統。如果您透過使用終端編譯和操作檔案來開始在 Linux 中學習 Java,效果會好得多。 Linux 命令列 作者:William Shots。閱讀這本書不是作為一本「五十度灰」小說,而是作為一門成熟的互動課程——打開終端並跟著作者重複。您想了解基礎知識以及 Linux 是如何運作的嗎?我們不要選電腦科學和作業系統課程——那是下一部分。造訪edx.org並嘗試簡單的Linux 簡介課程。還有上述系列中的一本書How Linux Works: What Every Superuser Should Know by Brian Ward。一本插圖精美的出版物,專注於網路、設備和資源管理。 前進?有一本很棒的書,順便說一下,我這裡有一本……是的(抖落灰塵)……就在這裡! Unix 和 Linux:系統管理員指南。埃維·內梅特. 相當大的一本手冊,翻譯得很好。說實話,我個人並沒有掌握它,但我真的很喜歡管理基礎知識(第一部分)。當然,你不能忽視 Shell 腳本。最好在實踐中嘗試所有這些,但是您可以從書籍中查看Cameron Newham 的《學習 bash Shell:Unix Shell 程式設計》。 如此大量的關於 Linux/Unix 的文獻不可能全部涵蓋,特別是在這篇文章中,Linux 是背景。我的同事在這件事上吃了狗,他建議了一個相當實際的事情: 下載 ArchLinux 並嘗試啟動並運行它。在這個過程中你會學到我最不想要的東西!視窗
程式設計師的履歷裡有一欄:「Windows經驗10年以上」。當然,我祝賀你,你從 10 歲開始就在 Windows 上玩反了,但我請你不要在面試時提前給自己挖坑,因為在一個你正在密切合作的項目上IIS,batch/powershell,上帝保佑,註冊表,面試不會真的很困難,除了坐在對面的人咧著嘴笑。利達,你也會受到某種程度的羞辱。你需要這個嗎?答案不言而喻。將盜版 Windows 從 torrent 擱置起來,試著將其安裝在某種 Windows Server 虛擬機器上。不能只從用戶端和JAVA_HOME安裝方面來研究。在這方面, Mark Minasi 所寫的 Mastering Windows Server 2012 R2一書提供了幾乎完整的指南。 例如,如果您使用 PowerShell,請查看Bruce Payette 所寫的 Manning撰寫的優秀書籍《Windows PowerShell in Action》。我知道不可能讀完1000頁,但至少你可以隨身攜帶它作為參考。我想,其他的都不需要了。 因此,請注意您在使用 Windows 方面的知識差距,並在 Internet 上尋找您感興趣的資訊。建構工具
梅文
在 Maven 中最需要理解的是什麼?以下是首要步驟和任務:- 了解Maven在每個階段做了什麼,你甚至可以記住它。這幾乎是 80% 的成功,並且會給您一個清晰的畫面。
- 使用多模組系統在本地創建您自己的沙箱項目,並具有明確的依賴關係管理。嘗試附加第三方函式庫,嘗試使用它們來創建一些東西。
- 玩個人資料
- 了解插件管理並研究官方網站上最受歡迎的插件清單。
- 探索如何在專案中最好地使用 Maven。例如,並行建置可以顯著減少建置時間。
螞蟻
這個工具看起來簡單多了,所以這裡沒什麼好學的。仍然有一些專案 ANT 是唯一的建置工具。這絕對是正常的:在管理小型原子任務(ant 任務)的上下文中,ANT 已證明自己是一個簡單直接的建構工具。當然,這裡有很多插件,就像Maven一樣。若要開始使用 ANT,請執行下列操作:- 嘗試操作文件和資料夾
- 執行不同的任務順序。在此基礎上,學習ANT中任務的依賴關係和優先權。
- 解壓縮和/或壓縮存檔。在任務中,嘗試使用已存檔的內容等等。
搖籃
對我來說,Gradle 更接近 ANT,而不是 Maven,但它完全可以稱為這兩個傢伙的同父異母的兄弟。它具有類似於 Maven 的生命週期,以及與 ANT 相同的任務的靈活性。嗯,最重要的是 Gradle 不使用 XML,而且,如果您或多或少熟悉 Groovy,您可以用它做任何您想做的事情。總的來說,是相當美味的東西。不要害怕在 IDE 環境中使用 Ant/Maven/Gradle。這些工具緊密整合到 Eclipse/IDEA 中,在 IDE 環境中使用這些工具非常舒適。持續集成
理論
這些是保護您免遭解僱的天使計畫。簡而言之,這是一種監視程式碼更改、建置和運行為您編寫的測試的軟體。如果每次提交/合併後一切都很好,那麼構建會發出宜人的綠色/藍光。一旦你破壞了某些東西,CI系統就會立即報告。不過,有一點理論──這很經典!持續整合:提高軟體品質並降低風險 作者:Paul Duvall。(俄語中又稱為「持續整合」) 這本書甚至討論了創建您自己的 CI 系統。讓我們看看該領域兩個最受歡迎的解決方案。詹金斯
詹金斯,又名哈德森。開放、友善、易於使用的應用程式。要更熟悉 Jenkins,請嘗試以下操作:- 將其下載到您的電腦上。安裝並配置 JDK、Maven、ANT 以及專案所需的一切。
- 建立第一個作業並指定專案的位置,例如主 pom.xml。運行它,確保您進行了某種測試,以便它清晰可見。
- 了解如何使用不同的設定和選項來運行您的專案。
- 附加不同的插件並查看它們如何與您的項目結合使用。
- 為不同的作業建立觸發器。創建一個小管道。
- 探索 DSL 並嘗試將其與 Jenkins 整合。
- 從另一台計算機設定從屬計算機和/或使其成為運行構建的常規計算機。
- 創建夜間構建。
GO TO FULL VERSION