Java项目:书评
本文是關于這本書的
Peter Verhas撰寫的Java Projects Second Edition
我去年寫的 這樣一篇文章的目的通常是為了促進這本書的銷售。 在這種情況下沒有什么不同,但是由于這是我寫的書,而且我是撰寫評論的人,因此贊美這本書將非常尷尬。 所以我不會,盡管我很喜歡這本書。 我認為,至少在準備就緒時,必須愛自己的產品。 以后您可能會像我對同一本書的上一版所做的那樣以不同的方式考慮它,這本來可以做得更好。 但是話又說回來,這就是為什么除了Java同時開發第二版之外,還有第二版的原因,它從Java 9變成了Java11。但是回到以前的想法:完成產品后,您必須愛上您的產品您可以將其丟棄。 如果您不喜歡它,那么沒有其他人會喜歡。 同樣重要的是,您在工作時也必須喜歡您的工作。 我做到了,我很喜歡創作這本書。
因此,現在我將寫這本書的內容,內容和意圖。 在本文的后面,我還將討論我在這本書上的工作方式,一些技術性知識和一些秘密。 (如果我在這里發布它們,它們并不是什么秘密。)但是在此之前,請在此處輸入URL,您可以在這里在PACKT或亞馬遜等處購買我的書。
- 包
- 亞馬孫
- 蘋果瀏覽器
目標讀者和本書的內容
與出版商達成協議后,我想為那些想學習Java但已經具有一定編程經驗的人寫一本書。 我不想寫關于變量,循環,條件構造的簡單概念。 我想寫一本書,教您Java和一些編程。 我想要一本書,任何剛從uni學習的PHP,Python,C#,C,C ++,Go等程序員都可以閱讀和學習一些Java編程,并且他們可以決定是否適合他們。 我想將上一章專門討論非Java編程主題,例如,如果您以程序員身份開始,那么在您的職業生涯后期會發生什么。 您可以保留程序員,也可以成為架構師,項目經理,devops工程師。 根據機會和興趣有很多可能性。 發行商方面達成了這個意圖,但達成的協議較少,但是他們接受了我的手是敲鍵盤的手,因此我們做出了讓步。 因此,最后一章還涉及一些技術主題,例如Java代理,多語言編程,注釋處理,DSL,SDLC等。
書的內容
這本書在500多頁中有10章。
- 第一章
是您入門的方式。 首先,您需要安裝Java環境,并且必須熟悉命令行工具。 這有點麻煩,就Java而言,它比其他語言更復雜。 我有一些朋友開始使用本書學習Java并為此而苦苦掙扎(不是因為這本書,而是因為任務的復雜性)。 當您開始學習Java時,此時必須耐心等待,并且必須堅信它會起作用。
- 第二章
關于支持工具和基本語言元素。 即使這本書是為那些已經可以使用某種編程語言進行編程的人而寫的,文本也必須描述語言的基本元素,例如變量,類,方法,類型,表達式,循環等。 您會看到Java多么復雜,因此它已經是
- 第三章
是我們開始編寫比“ Hello,World”更復雜的東西的地方。 該程序是一個排序程序,我們不僅實現簡單的氣泡排序,還實現快速排序。 在此過程中,我們還涉及諸如泛型,TDD,單元測試,Java模塊之類的主題。 這些是最初在后面的章節中計劃的高級主題,但是我想減少對語言的解釋,而希望對語言進行更多的編程。
- 第四章
是一個新程序和新主題。 在本章中,我們(我想像我和我一樣)開發游戲Mastermind 。 坐在電腦前的用戶“隱藏”了引腳,程序發現了隱藏的內容。 同一章討論了集合,依賴項注入和集成測試。
- 第五章
是我最自豪的那個。 它是關于并發編程的。 許多書都使用了一個很好擴展的例子。 您在一個處理器上運行它并運行。 您在兩個處理器上運行它,它的運行速度是它的兩倍。 通常在現實生活中,任務并不是那么獨立。 因此,我決定同時制作Mastermind游戲。 這需要一些重構。 老實說:在開始撰寫第5章和第4章之前,我還沒有意識到。 我決定不重寫第4章(盡管那會減少工作量),而是在本章中詳細說明了編碼決策以及如何重構代碼。 這只是本章中有關非常復雜主題的一部分,因此不要指望全面的重構教程。 如果您需要一本關于重構的好書,請閱讀Martin Fowler的《重構》一書。
除此之外,本章還詳細介紹了大多數并發編程工具:等待,通知,鎖定,隊列。 本章以引入微基準測試作為結尾,該技術顯示了更快的并行程序在許多CPU上的運行速度。
- 第六章
關于為程序創建一個簡單的Web界面。 因為本書的主題是Java,而不是HTML,CSS和JavaScript,所以前端非常簡單。 另一方面,本章重點介紹IP,TCP,DNS,HTTP甚至HTTP / 2。 然后繼續詳細介紹C / S架構,提到JavaServer Pages(必須是必須的),然后我們開發代碼來編寫運行Jetty的servlet。
- 第七章
使用一個新程序,在這里我們使用Spring MVC,Servlet過濾器,AOP審計日志來開發REST程序,甚至討論動態代理的工作方式。
- 第八章
擴展程序并觸及Java中的注釋,反射,函數式編程和腳本等主題。
- 第九章
是最后的編碼章節。 在這里,我們使用反應式界面創建一個“會計”應用程序。 這是一個尷尬的例子,但當時我找不到更好的東西。 不過,本章將描述反應式編程的原理以及如何在Java中使用新的反應式接口。
- 第十章
是最后一章,所以它是最密集的。 它討論了所有開發人員都應該知道但幾乎所有開發人員都不會使用的主題。 您可能永遠不會創建Java代理或注釋接口。 但是您應該知道它們是什么,這就是為什么在這里對其進行描述。 關于多語言編程,還有幾句話會越來越普遍。 本章的大部分內容是關于企業環境中編程的工作方式。
動機
我的動機是創建一本編程書籍,使它比Java的當前版本更好。 一本書可以教任何人閱讀一些編程知識,并幫助他們開始成為更好的程序員。 也許我對許多求職面試者感到沮喪,這些求職者雖然在某些非常重要的領域沒有頭緒,但仍然認為自己是高級開發人員,這也是一個激勵因素。
技術性
一開始,我嘲笑我會告訴你一些秘密。 他們來了。
Packt希望我使用Microsoft Word或基于WordPress的在線所見即所得編輯器來編寫這本書。 WordPress具有標記編輯的可能性,但是已被關閉。 我要求他們打開它,但被拒絕了。 因此,當我創建本書的第一版時,我決定使用Microsoft Word。 結果是災難性的。 從實際來源復制的代碼樣本在編輯過程中重新設置為編輯者手中的格式。 某些格式更改使代碼難以閱讀。 其中的某些更改是完全錯誤的,例如刪除單詞int和變量名n之間的所有空格,結果為intn 。
當我開始第二版時,我決定破解該系統。 到那時,我已經開始使用Python進行一些練習,并且創建了Pyama項目,該項目可以從源目錄中獲取代碼片段,并將其插入覆蓋舊版本的Markdown文件中。 我還創建了一個腳本,將特殊的WordPress風格HTML轉換為Markdown并返回。 Packt將我的書的第一版轉換為這種WordPress格式。
當我使用WYSIWYG編輯器打開一章時,按F12鍵進入調試模式,并使用WYSIWYG表單上的“ edit HTML”復制HTML并將其粘貼到文本文件中。 我將輸入HTML轉換為Markdown,并開發了Markdown版本。 我喜歡以編輯標記的方式工作,同時可以看到渲染的頁面。 準備好一章后,我將其轉換回HTML,并使用相同的調試工具再次粘貼了代碼。 有效。 Packt不知道。
摘要
我相信我寫了一本書,可以用來專業地學習編程,也可以用來學習Java11。正如我在第一章開頭所寫的那樣:
就像穿過森林中的一條小路一樣。 您可以將注意力集中在道路的碎石上,但這毫無意義。 取而代之的是,您可以欣賞周圍的景色,樹木,鳥類和周圍的環境,這會更加有趣。 這本書很相似,因為我不會只專注于語言。 我會不時地介紹一些接近道路的主題,并為您提供一些概述和指導,以幫助您在完成本書后可以走得更遠。 我不僅會教您這種語言,還會講一些算法,面向對象的編程原理,圍繞Java開發的工具以及專業人員的工作方式。 這將與我們將遵循的編碼示例混合在一起。
翻譯自: https://www.javacodegeeks.com/2019/08/java-projects-book-review.html
總結
- 上一篇: miui12分屏模式怎么打开miui12
- 下一篇: Spring Framework中的作用