---
title: "從入伍後讀的一些書"
date: 2016-04-12T00:00:00+08:00
publishDate: 2016-04-12T14:22:38+08:00
lastmod: 2020-03-15T03:35:46+08:00
tags: ["心得"]
permalink: "https://blog.aotoki.me/posts/2016/04/12/the-book-i-read-from-my-military-service/"
language: "zh-tw"
---


入伍之後一直擔心自己的技術會退步，所以其實有好幾個月的時間都很焦慮。
不過運氣不錯的是，所處的單位算是不錯的，現在的區隊長管理方式也讓我有不少時間可以充分利用。

這邊就簡單介紹一下到目前約八個月多所讀的書，大部分時間都是利用睡前跟午睡時間去讀的，一次大約十到二十分鐘，反而因為軍隊規律的生活變成每天讀書的習慣，意外讀了不少。

<!--more-->

前期都是讀實體書比較多，因為當時還沒開放使用智慧型手機。
目前大多用手機讀，不過就被限制在資訊相關領域的，前期比較多是在設計領域的書。

其實有幾本書名也沒有印象了，所以就簡單介紹一下。

### GUI Design

這本書是很早期看的書，厚厚的一本，裡面類似型錄一樣紀錄了不少介面設計的作品。
其實我覺得對設計師來說，多看作品的益處是很大的，而且也有助於靈感的尋找。

### 設計的心理學

這也是一本很有趣的書，從從心理學的角度去看設計。
其實這也跟最近常常在討論的 UX 有不少關係，像是門把的設計在人的習慣中會辨識為哪種操作方式。
有些設計讓你猜不出用途，是為了阻止一般人去使用之類的。

---

中間有讀了一些書，不過其實沒什麼印象。
一部分是簡單的小書（50 幾頁左右）後面基本上就是電子書的部分了！

### Implementing Laravel

裡面介紹了一些 Laravel 在實作上使用的一些技巧與 Design Pattern 不過現在去回想除了一些設計模式還有印象外，對書的內容只剩下「原來可以用如此巧妙的方式寫 PHP 框架」的感嘆了⋯⋯

### Microservices in Go

一本我買了幾年作者都還沒寫完的書，也不清楚什麼時候會寫完。
不過倒是給了想利用 Golang 開發 Microservice 的人不錯的參考範例，畢竟就我自己的經驗框架很多，但是實務上的分享卻不多呢！

順帶一提，架構設計上大概是這樣的：

- application
	- serviceA
		- model
		- controller
	- serviceB
		- model
		- controller
	- view

不過後來看了 Heroku 的 Go-kit 之後，又有不同的見解。
這樣的設計主要是抽象化跟分離的設計，每個服務之間都封裝好如何操作，實際上呼叫只需要知道 API 就足夠了。

> 我覺得相較傳統的做法來說，架構上是需要非常獨立的設計。也認為這是之前一篇介紹架構文章中所敘述，其實 Microservice 實作並不容易的原因。

### Learning C++ by Creating Games with UE4

在 Google Play Store 上面買的書，是想要看看其他人怎麼用 C++ 去開發 UE4 為基礎的遊戲。
> 順帶一提，用手機看書大推非 PDF 格式，現在 Android / iOS 的閱讀工具都有翻譯功能，讀原文很方便，唯獨 PDF 不能翻譯也不能自適應成適合螢幕大小的文字，挺困擾的。

前半部大多在講 C++ 基礎，從高中讀過螞蟻書之後就一直沒碰，算是當作一個複習。
後半部在實作簡易的 ARPG 系統，至少我在大學前期開發的方向其實沒有差太多（意外發現寫遊戲系統沒有想像中難）

不過 Unreal Engine 4 的原始碼還是得熟讀才能熟練運用 C++ 開發遊戲，大概會是之後的課題之一。

### Ruby Perdormance Optimization

這本書開始就讀蠻久了，大概都是有 300 ~ 400 頁左右的原文書，相較前幾本頂多 100 ~ 200 頁就吃力很多。

不過即使不是針對 Ruby 也是一本很棒的書，裡面一直在傳授優化的概念。
基本上就是兩個方向，一個是記憶體的使用（跟 GC 有關）另一個是運算的方式，另外介紹像是 Profiler 等工具，算是讓我對使用 Profiler 比較有了解。

使用工具跟找貧頸的技巧在其他語言也很受用，另外就是要注意語言特性問題。

> 像是 Ruby 在字串操作上會因為複製記憶體增加 GC 負擔，如果沒有必要可以利用 ! 的方式避免複製等等。

### Eloquent JavaScript

前面應該還有幾本小書被我漏掉，最近期的應該就是這本。
就 JavaScript 入門書來說我覺得算是很棒的一本書，介紹的非常有系統跟全面。
> 就是讓我覺得廢話有點多，看了好久介紹才讀到正文 XD

裡面常利用透過設計小遊戲的方式去介紹 JavaScript 讓人比較不會覺得乏味，順便也讓我吸收幾招以後可以設計遊戲用的技巧。

當初會讀是因為入門書的推薦，讀完之後真心覺得真的是非常適合入門的書。

### What to Look for in a Code Review

一本介紹在做 Code Review 該注意的重點，基本上分成幾個章節去看幾大重點。
像是安全性、在多執行緒的使用、資料結構使用的正確性等等，除了看別人程式碼可以用到之外，用來反思自己在寫程式時是否有注意到，也是很不錯的。

### TypeScript Deep Dive

因為以後可能會用到，所以讀了這本書算是 TypeScript 的入門系列。
雖然有幾個章節似乎還沒寫完，但是是免費電子書就無視了！

實際了解 TypeScript 之後，我馬上從原本的純 JavaScript （最早是 CoffeeScript）轉換到 TypeScript 上面，因為我覺得這樣的設計有助於我產出的程式碼品質改善。

尤其是我注意到一個點，那就是在 C/C++ 中常用的 header 設計，跟 TypeScript 的 Defined File 有異曲同工之妙，而且很重要的是他能讓開發者先「思考」API 的設計，再去實作內容。

某方面來講是改善程式碼品質的一個方法，很大的原因是因為這個讓我決定轉換跑道。

### SDL Game Development

目前主要在讀的書，跟 `Learning C++ by Creating Games with UE4` 是同一家出版社。
似乎是這家出很多寫遊戲相關的書，所以常常買到。

不過重點不在這，這本比較面向有基礎的 C++ 遊戲開發者。裡面對 C++ 的介紹不像前一本那樣，但是帶入了不少基本的 Game Design Pattern （有一本書書名跟這類似，可以查一下）範例，而且這家出版社的書用字非常容易讀，大概三天左右我就讀完快 300 頁（也包含是留守期間，時間比較多一點）

想從零開始寫一個遊戲，讀這本書算是蠻不錯的選擇。

### 小結

已經很久沒有讀這麼多書了，前幾年東忙西忙的也都沒有好好看書。雖然帶實體書看的機會很少，但是電子書意外成為我的好夥伴。剩下還有三個月多，應該會繼續好好利用多讀一點。

退伍希望還可以有讀書的習慣，待會又要回營區了（傷心）

