1. 程式人生 > >2018 年 6 月 1 日應領導要求編制新開發人員電子書目閱讀說明

2018 年 6 月 1 日應領導要求編制新開發人員電子書目閱讀說明

最簡 concepts 相關 領導 思想 AC 嘗試 出現 喜歡

請各位對我的知識、書目、認識進行指教。

書目閱讀說明

工作上涉及軟件開發的技術主要有Java和Oracle,分別建立了Java和Oracle文件夾。

關於Java,其優勢在於特有的JVM平臺,在語言上沒有明顯的優勢。Java作為面向對象語言,可以非常自然地描述非常復雜的場景,所以初學者很容易在使用它時陷入誤區。所以學習Java時應關註面向對象設計的理解和使用。

Java文件夾中《Java編程思想》包括了編程中所有需要的Java基礎知識,是一本非常全面的Java入門書籍。如果不習慣作者的寫作風格,可以嘗試《Head First Java 中文版》。

關於Oracle,它目前是世界上最優秀的事務型關系數據庫。和其他關系數據庫相比它的優勢是在同等硬件條件下,它可以承載更多的數據寫入、更新操作。Oracle功能繁多,物理和邏輯機制非常復雜,任何草率的操作都能引起一連串的影響,學習Oracle主要應關註其運行原理。由於Oracle的整體架構具有強烈的設計一致性,所以只要具備基礎的設計知識,Oracle運行原理和架構並不難掌握。

Oracle入門書籍中最簡潔、最準確的是官方文檔《Oracle Concepts》,作為補充,《Oracle.9i&10g編程藝術》強調了官方文檔的重點以及介紹了作者的經驗。如果對SQL不熟,那麽建議閱讀《深入淺出SQL》。

在前端(瀏覽器)開發技術上,整個行業沒有確定的方向,Boostrap,AngularJS,Vue.js,Reactjs目前都是主流的,誰將最終存活下來,並沒有結論。另外公司基礎環境所限,重點不在瀏覽器端,所以沒有提供電子資料。

以上是基礎技術書籍的介紹。

在Java和Oracle上,存在這麽一組矛盾,Java是面向對象的,SQL卻是面向關系的,對象構建的邏輯要以關系函數的模型持久化存儲到磁盤上,並在下一次加載對象時又將關系描述的數據讀取出來放入對象裏去。這裏會引出一些架構上的決策問題,但不是本文討論的範圍。在實踐中密切關註不同轉換方法的利弊,將對之後的學習有很大幫助。

如果技術的意義正如它的定義所描述“是制造一種產品的系統知識”,那麽我們對它的期望一定在產品上而不是在技術本身。為了達到這個目標,在軟件開發上的理想過程應是這樣的:

首先如果對軟件開發過程不熟悉,那麽請先需要閱讀《Head First軟件開發》。概念上、定義上、語義上的模糊和一知半解,將影響學習的方向,並在溝通中產生很多誤解。

其次,需要認識到,軟件需求是一定會發生變化的,即使業務人員發誓、簽字、賭咒,需求也將會在若幹個月之內發生變化。

最後,在實際中則會遇到兩種主要特征的開發場景。一是需求方在工作上積累了很多信息化可以解決的困擾,需求方了解他所需要的一切,包括細節上他所期望的系統的操作方式。二是為了提高領域優勢、行業競爭力,我們規劃了目標,但是並不清楚需要怎麽做,也許有其他公司走在前面可作為參考(僅僅是參考),也許並沒有,需求方並不清楚他要做什麽,他的想法可能明天就發生了變化。

這兩種情況是實際存在的,也都是合理的,因為需求方考慮的是技術將服務的產品,而不是技術實現的前提。有時候這兩種情況也混在一起出現,需求方一知半解,並且每天都有新的想法。

那麽應對這樣的場景,上文提到的理想過程是自頂向下的設計,自底向上的開發

自頂向下的設計,則是在設計過程中,首先需要拋開細節,從非常模糊和長遠的目標出發,一步一步結合實際情況做設計折衷,最後在可見的情況下完成充滿余地和變化的設計(所有需求方還未明白的地方都是未來肯定發生變化的地方,不需要在這裏確定細節)。這裏推薦的書籍是《設計原本》,相關書籍包括《設計模式》、《企業應用架構模式》(設計模式的入門書有《Head.First.設計模式》、C#版的《大話設計模式》)、《面向對象分析與設計》。

自底向上的開發,則是在開發過程中,根據設計目標方向,通過構建堅實的地基和穩健的結構,保障軟件系統在不斷變化需求的軟件開發工作中不會腐敗和倒塌。這裏推薦的書籍是《敏捷軟件開發:原則、模式與實踐》,作者作為行業最著名的程序員之一,以積極的姿態擁抱了原本會提高開發成本的需求變化。相關書籍有《代碼整潔之道》、《重構改善既有代碼的設計》。方法雖然簡單,但並不容易。

其他文件夾書籍說明:

《設計原本》的作者是IBM System/360之父,《人月神話》的作者,作為世界著名的項目經理,《設計原本》是他思考“軟件工程沒有銀彈”三十年來的總結。作者在書中展現了他在《人月神話》中所說的“成年人喜歡創建事物,特別是自己進行設計。我想這種快樂是上帝創造世界的折射,一種呈現在每片獨特、嶄新的樹葉和雪花上的喜悅。”

《面向對象分析與設計》作者是主流UML方法Booch方法的創始人,這本書介紹了面向對象的要素,工程軟件開發較少關註關系型數據庫知識,那麽面向對象要素則顯得尤為重要。

《重構改善既有代碼的設計》作者是ThoughtWorks公司的首席科學家, 他改變了人類開發軟件的模式,被開發者們尊為“教父”。重構和修改作文很像,代碼也有寫的好和壞,有些人即便不讀此書,隨著經驗的增長和自己的思考,也會自然而然去使用書中類似的方法。重構技能是軟件開發中像空氣和水一般存在的自然的良好的代碼協作習慣。

2018 年 6 月 1 日應領導要求編制新開發人員電子書目閱讀說明