1. 程式人生 > >【讀書筆記】Java 工程師修煉之道

【讀書筆記】Java 工程師修煉之道

日期:2018年10月19日 13:09

地點:玉泉慧谷

圖書:《Java 工程師修煉之道》2018年3月出版

一、記錄

前天晚上睡前無聊,在多看app裡搜了下 Java 相關的電子書。有 3 本成功吸引了我的注意力,其中一本就是上面提到的這個。看到的時候,已經很晚了,簡單看了下目錄,覺得內容對自己的需要。

昨天一天簡單看了下內容,算是 Java 後端開發技術索引,省得挨個去網上搜索了。

二、目錄概覽

因為是索引性質的書,簡單翻翻就夠了。

第1章 後端技術導言

1.1 後端基礎設施(比較簡明介紹了後端的業務場景)

1.2 Java後端技術概覽(基於“基礎設定”,引出需要的技術點)

1.3 如何學習後端技術(如何學習 1.2 提到的技術點,有點戳中。我經常是到“動手實踐”那一步就停止了。所以導致現在做了一堆的 Hello World,然後過不了多久就差不多忘光了,徒留一點點錯略的印象。)

第2章 Java專案與工程化

2.1 專案構建

(Ant 在上學時聽說過,從來沒用過。Maven 公司的專案在用,自己寫 Hello World 的時候都是用 Gradle,最早寫 Android Hello World 專案也是用的 Gradle。

當然,對構建工具的引用,用到的是依賴管理、用已有的外掛、用已有的 task。還沒有寫過自定義任務,持續繼承之類也是沒有用過的。

除了常用的依賴管理、外掛、偶爾用到的幾個外掛內建 task,其他東西用起來並不熟練。)

2.2 程式碼版本控制

(SVN 公司在用,但是我寫的是單獨的小型程式,並沒有提交到公司程式碼庫。Git,偶爾寫一些 Hello World 和小程式,會提交到 Github。會用一點 Git。)

2.3 程式碼質量保證

(聽說過,但是除了控制一下格式,沒用過程式碼質量保證措施。

單元測試,聽說過,但是自己寫的小型程式,很少寫單元測試。)

第3章 開發框架

(從框架來說,接觸比較多的是 Spring、Spring MVC。

Spring,用到的是依賴注入,也就是 DI 相關的幾個註解。Spring MVC 基本也是用註解,偶爾用到 AOP,也是用框架現有的幾個註解,並不會自己手寫 AOP 應用。)

3.1 依賴注入

3.2 物件關係對映

(MyBatis、Java Persistence API、Hibernate。這三個多少接觸過一點,MyBatis 是公司專案在用,Hibernate 是當作 JPA 的實現用的。JdbcTemplate 寫 Hello World 的時候用過。)

3.3 日誌

(日誌只在 Hello World 的時候用過。平時寫的小型程式,都是 System.out.println 直接列印到控制檯。)

3.4 WebMVC

(Spring MVC 用得最多。上學的時候,還流行 SSH,現在也已被 SSM 替換了。

資料庫操作寫一下,Action 寫一下,View 寫一下,然後就是堆業務邏輯了。)

第4章 Spring

(因為 Spring 有《Spring 實戰》《Spring Boot 實戰》等專門的書,這一章我是直接跳過的。)

第5章 資料儲存

(因為是索引性質的書,簡略的敘述反而很適合我。)

5.1 關係型資料庫——MySQL

(MySQL 是我最常用的資料庫了,基本也是唯一在用的資料庫了。)

5.2 非關係型資料庫

(對資料庫發展的概述,很受用。之前看的書、教程中這部分內容很少,或者比較分散。)

5.3 快取

(Redis,寫過 Hello World。在 Spring 中加快取的時候,用過。

不過,Windows 下 微軟支援的 Redis 版本有些老。當然對我寫 Hello World 是完全足夠了。)

5.4 搜尋引擎——Elasticsearch

(這個詞是第一次聽說。不過它基於的底層庫,在微博上看到過。還下載過相關的電子書,不過感覺一時想不起來哪裡用得到,就沒有深入理解。

這次同樣,想不起來用在哪裡,就先跳過了。)

第6章 資料通訊

(RESTful、RPC 都在《Spring 實戰(第4版)》中接觸過,寫過 Hello World。)

6.1 RESTful 架構風格

(寫過 Hello World,不過對架構層面還是缺乏理解。)

6.2 遠端過程呼叫——RPC

(同樣,在《Spring 實戰》的”整合“部分,看到過相關內容,印象中沒有寫程式碼,只是看了兩遍書。)

6.3 訊息中介軟體

(完全陌生的技術。只是在招聘的職位要求裡看到過,比如 RabbitMQ。日常沒有用到過。)

第7章 Java 程式設計進階

7.1 Java 記憶體管理

(買過一本《Java 虛擬機器 ***》的書,不過內容有點超脫了我現在的階段,看了 JVM 的簡介,沒有進一步閱讀。)——

7.2 Java 網路程式設計

(Socket,看《Java網路程式設計(第4版)》的時候,瞭解過一點。之前學 Java 的時候也寫過一點 Hello World。

不過很少用,平時都是直接用 HTTP,很少在 TCP 協議層面寫東西。)

7.3 Java 併發程式設計

(《Java 程式設計思想》《Jva 核心技術 卷I》都有相關內容,不過是從最基礎開始講的,看過幾次都沒完整看完。

就日常用途來說,用過 Executor 相關的幾個 JDK 中的類。用現有的執行緒池管理,基本足夠了。)

7.4 Java 開發利器

(FastJson、Apache Commons 用過一點點,不過因為自己寫程式還是少,遇到的問題少,這幾個庫還是用得少。)

7.5 Java 新版本的特性

(Java 7 的 Objects、Paths、Files、try-with-resource、範型型別推斷(鑽石操作符),多少用過一點。比如《Java 核心技術 卷II 原書第10版》裡邊第一章就有 Paths、Files 的介紹。

Java 8 的函數語言程式設計、Stream API,寫過一點 Hello World,還是因為程式碼寫的少,不熟練。

Java 9、Java 10、Java 11,用過 jshell。其他的特性,比如區域性變數 var,很少用。)

第8章 效能調優

(完全陌生的領域了,在基礎、中級還沒熟練的情況下,我總是對效能調優提不起興趣。)

第9章 安全技術

(有一次來到知識的荒原,術語未開墾的荒地。有待將來進一步發掘。)

9.1 加密

(看過一點對稱加密、非對稱加密、數字指紋、數字證書相關的概念介紹,用得少。)

9.2 安全HTTP——HTTPS

(Google Chrome 一直在推 HTTPS,聽過,看過,自己很少用到。除了訪問 HTTPS 站點有時候需要加證書,比如訪問臺北故宮博物院的 OPEN DATA,改用 HTTPS 之後,自己的地址抓取小程式也需要對應修改。)

9.3 Web 安全

(自己的小型程式,不涉及。公司的已經搭好的專案框架,自己直接寫業務程式碼即可,接觸不到這個。

認證、授權,用的是 Apache Shiro,配置一下網址許可權,資料庫配一下角色、資源許可權也就足夠了。

更深的東西,沒接觸過。)

----13:53----