ayumin.log

読みにくかったら脳内sedで整形してね

最近読んだ技術書

この記事はHUITアドベントカレンダー2020 19日目の記事です

qiita.com

アドカレ2枠目

seccampネタは既に3記事あって食傷気味だし、最近の技術書ネタでいくことにした。

最近勉強していること、やっていることを改めて纏めることで ネタ切れを隠し 記事の嵩増し 今どんなことをしているか知ってもらおうという魂胆。

最近何してるの

Goとjavascriptの学習を主に行っている。

といってもコードを書いているというよりは、基礎文法の理解を進めている段階。

手を動かしてみても基本的なところで止まってしまい、うまくいかないことが多くなったので、心機一転ちゃんと体系的に学ぼうとしている。

とはいえ飽き性の自分は暇さえあればURL欄にtwiとかyoutとか入力してしまうので、最近は風呂に浸かりながらkindleを読むことで強制的に本を読むことにしている。

中々これが良くて、kindle端末はkindleを読むこと以外何もできないので、読み始めると風呂を出るまで他のことをしなくてすむ。

最近読んだあれこれ

やっと本題。まずちょっと前から読んでたのはこれ。

Goの標準ライブラリだけでwebアプリを作ろう、という本。

ブログにも1日目だけ載せたが、実はあの後一旦読むのを止めている。

本自体が3年前に出版されたものであり、今の環境だと動かないことが頻発しているためである。

特にgo mod がなかった時代の本なので、この辺のツールについての最新の知識を入れてから臨もうと思った。


そこで、

を読んだ。これは実践tips集でいわゆる「小手先の技術」とか言われがちなタイプの本ではある。(特に1冊目が標準ライブラリを使う基礎基本をしっかりと固めるための本なので)

でも実際問題こういうベストプラクティスがまとまった本がないと、情報がなくて先に進めなかったり、形骸化した方法で先に進んで後で困ることが往々にしてある。

最新の公式情報を追うにも、最近どんな感じで言語やその技術が推移してきたのかある程度知っておかなければならないし。

そんなわけでざっと読んだ感想としては、tips集と言うだけあり実用的な話があるなぁ、という感じ。

個人的に刺さったのは

  • クロスプラットフォームのためのコーディング
    • windows/unix系ではディレクトリ構造が違うので、直接ファイル名を使わずpath/filepathパッケージを使うと違うOSにも対応しやすい
  • os/execパッケージの安全な使い方
  • ORMの速度比較
  • シグナルの扱い方
  • テスト(testingパッケージ)について

辺りだろうか。ツール作成に使えそうな話が詰まっていて、とても面白かった。

こういった細々としたところは、どうしてもうまく使えてるか心配で疑心暗鬼になることが多いので、日本語でちゃんとまとまった本があるのはとても助かる。


こちらはうってかわってjavascriptの本。

NodeやTypescriptなどを学ぶにあたって、しっかりjavascriptの基礎固めをしたかったので読んだ。内容は言語仕様の話が7割、フロントの話が3割ほど。

ボリュームはあり、しかも参照の話など他の言語が分かることを前提にしてくる部分もあるので、かなり歯ごたえはあった。

割と序盤からデータ型のうち配列やオブジェクト、関数は参照型で、アドレスを格納している…などポインタを知らないと理解できない概念が出てくるので、Typescriptを使いたい人や、大規模なJSアプリケーションを書きたい人向けの本だという感覚はあった。

以下は内容についての話になる。

まず言語仕様の話では、ES5とES6を両方とも解説するスタイルになっている。

このスタイルは個人的には良いと思う。ES5の書き方もまだ見るのである程度は読めないと困るし、そもそもES6でなぜ文法が変わったのか?という部分も掴めるのでより頭に入りやすかった。

例えば、プロトタイプベースのオブジェクト指向の話が出た後、ES6のクラスベースのオブジェクト指向の話が出てくる。

プロトタイプの実態は、なんてことはないただの関数である、という話の後に、より詳しいクラスベースのオブジェクト指向との差異を説明し、その後ES6のクラスの話やJavaなど他言語の話が少しだけ出てくる、という順序になっている。

こういう順序だと、なんでこんな複雑なやり方を…?となった後に、スッキリしたES6のコードが出てくるので、ああこれを改善するためにこの文法を採用したのか、と納得して先に進める。この書き方はとてもありがたい。

ただしこれを読んですぐ実用的なコードが書けるわけではない。あくまで基礎固め用という感じ。


あとは技術書とは少し違うのかもしれないが、

なんかも読んだ。良い感じのスライドデザインを作る本。

これはseccampのスライドを見ていて、人によってとても見やすいスライドと、あまり見やすくないスライドがあるなと感じたので、何が違うのかをなんとなく理解したかった。

グルーピング、図/イラストの活用、コントラストなどの話はUIデザインにも通じるものがあると思う。

まぁ自分はデザインが苦手なので、テンプレート的なものをこの本に求めていたが、テーマが生物系のスライドが多かったり、悪いスライドを納得できる方向に改善していく、というこの本のスタイルが自分に合っていて、通学中などにたまに目を通している。

積読

積読は文化。

JPNICの本。DNSの講義を受講していたが、その人がJPNICの人だったのでkindle半額セールの時に買ってみた。

当分積むことになるが、半額だったので買って正解だったと思う。どうせ欲しかったし。


SQLの本。モダンSQLというところに惹かれて買った。これもkindle半額セールの時に買った。

isucon以降SQLのパフォーマンスチューニング知識が欲しかったので、これもそのうち読むと思う。今はまだ積むけど。


↑と紹介順序逆な気がするが、これは半額セール時じゃない時に普通に買った。

3割ぐらい読んで放置している。ちょっと簡単すぎたかなぁという感じ。読むモチベはあるが、今はとりあえずGoとjavascript頑張りたい気分なので、 SQLについては当分積んでも良いかなという気持ちではある。


上級国民への道のりは遠い。

今後の展望

とりあえずjavascript完全理解者になってきたので、Typescriptで小さめのDiscord botを書いている。

あとはここに乗せていない詳説正規表現やらマスタリングTCP/IPがあるので、ゆっくり読み進めていきたい。

時間ある今のうちにあらかた終わらせたいな、とは思っている。