泥水エンジニア日記

泥水の数だけ強くなれる

『プログラミングTypeScript』を読んだ

雰囲気で TypeScript をやっている危機感があり、非常によろしくないので本を読みました。複数本が出ているようなので、一番評判の良いものをチョイス。

プログラミングTypeScript ―スケールするJavaScriptアプリケーション開発

プログラミングTypeScript ―スケールするJavaScriptアプリケーション開発

  • 作者:Boris Cherny
  • 発売日: 2020/03/16
  • メディア: 単行本(ソフトカバー)

アメリカンジョーク多めだけど、翻訳は全体的に読みやすい。

TypeScript の言語仕様について俯瞰でき、フロントエンドやバックエンドと組み合わせて使う方法についても触れられていて、まさに欲しかった内容の本でした。2020 年に出版されたばかりの本なので、内容が古臭くなっていない点も嬉しい。

JavaScript から TypeScript への漸進的な移行」みたいな章もあって、既存のコードを少しずつ TypeScript に置き換えていきたい人にもオススメできそう。

読書メモはこんな感じ。

最後に、

この本の存在は、このツイートのおかげで知ることができました。感謝。

『React ビギナーズガイド』を読んだ

こんにちは。驚くべきことに、最近フロントエンドのコードを書き始めました。勉強しないとやばいんで本を読みました。

書名の通り、React の初学者向けの入門書。三年前の本なので、ところどころ古い React のコードが書かれていたりしますが、React の考え方を学ぶ上では有用な本でした。

props や state、JSX について書かれているのはもちろんのこと、

  • JSX を使わない場合のコード例
  • ECMAScript 仕様についてざっくり
  • JavaScript のトランスパイル・パッケージングについてざっくり

みたいな内容も書かれていて、フロントエンド初学者にはありがたかったです。この本を読み終えた後に公式ドキュメントを読んでみたところスルスルっと読めて助かった。

ja.reactjs.org

React Router や Redux、React の比較的新しい機能(hook など)については触れられていないため、これさえ読めば OK ってわけにはいかないのが悩ましいところですが、最初の一冊としてはいいんじゃないでしょうか。

『初めてのGraphQL』を読んだ

転職に伴い、体感5年分くらい加速した開発環境になりまして、毎日テンパりながら過ごしております。テンパっててもしょうがないので読書を。

初めてのGraphQL ―Webサービスを作って学ぶ新世代API

初めてのGraphQL ―Webサービスを作って学ぶ新世代API

『Web API: The Good Parts』の GraphQL 版みたいなのないかなあ、と思ってたらこの本にたどり着きました。

  • GraphQL を使うメリットって?
  • というかそもそもどんな風に API 叩けばいいんだ?
  • GraphQL の設計と実装ってどんな風に進めていけばいいんだ?
  • デファクトっぽいツールとしてはどんなものがある?

みたいな疑問にしっかり答えてくれる親切な本でした。

instagram っぽいアプリの開発を題材にしつつ、Apollo Server を使ったバックエンド開発、Apollo Client + React を使ったフロントエンド開発、グラフ理論の基礎なんかにも触れていて、実践的、かつ、とてもわかりやすい。

「GraphQL なんもわからん…」って困ってる人には、とりあえずこの本を渡しておけばなんとかなりそう。布教用に追加購入したくなるくらい万能な一冊でした。

いつもの読書ログはこんな感じ。

早く馴染みたいし戦力になりたいんだけど、焦ってもまあしゃーないので、今日はいったん酒を飲みます。おわり。

『Kubernetes 完全ガイド』を読んだ

Kubernetes なんもわからん状態から脱却したかったので読んでみました。

Kubernetes については、

  • 実際に触ってみたことはない
  • 体系的な知識を持ってたりするわけでもない
  • Kubernetes 関連のエコシステムの進化の流れに全くついていけてない

という感じで大分危機感があったんだけど、『Kubernetes 完全ガイド』はちょうどそういう人向けに書かれた本だったので非常に助かりました。

本の構成に沿って、サンプルをひたすら打ち込んでるとだんだん分かってくる。Kubernetesアーキテクチャやリソースについて、とにかく体系的に書かれているのも嬉しい。

マニフェストの汎用化」「モニタリング」「ログの集約」「CI/CD」「サービスメッシュ」などのテーマでよく使われているオープンソースのソフトウェアについて触れてあるのも助かりました。直近で誘われたエンジニア飲み会で何もわからんくて超焦ったんだけど、この本のおかげでとりあえず入り口には立てたような気がする。

マニフェストの写経ログはこんな感じ。

「Docker はまだわかるけど Kubernetes はわからん」という人は、とりあえず手に取ってみると道が開けていいんじゃないでしょうか。

『実践 Rust 入門』を読んだ

人生にはいろいろあるもんでして、仕事で Rust を使うことになりそうだったので読んでみました。久々に新しい言語の勉強がっつりやった。

実践Rust入門[言語仕様から開発手法まで]

実践Rust入門[言語仕様から開発手法まで]

  • 他のプログラミング言語と比較しつつ「なぜ Rust なのか?」がしっかり解説してあったり
  • 初学者がつまづきやすいポイントについて丁寧な説明があったり
  • Web アプリケーションを開発する上で有名なフレームワークについても触れてあったり

という感じで、全体的に満足度の高い一冊でした。

はじめは『The Book』で勉強していたのだけれど、「所有権」とか「ライフタイム」のあたりでちょうどつまづいてしまい、どうしたもんかなあ……という感じだったのですが、この本に詳しく書いてあったのでかなり助かりました。

当時の絶望を物語るツイート:

読書メモはこんな感じ。

はじめのうちはコンパイルエラーが起き続けるので辛い、という話もよく聞きますが、コンパイラに口うるさく注意してもらえるくらいの方が個人的には助かるので(実行時エラーと戦いたくない)、Rust はかなり好きになれそう。

Rust の勉強を始めてみたけどいまいち捗らない、という人は読んでみるといいんじゃないでしょうか。

『エンジニアのためのマネジメントキャリアパス』を読んだ

キャリアとかよくわかんねえよ、といいながらオフィスで檸檬堂を飲んでたら、お隣のチームの人がそっとこの本を差し出してくれたので読んでみた。

タイトルの通り、技術系の管理職に求められるスキルを解説した書籍。メンター、テックリード、エンジニアリングリード、技術部長、CTO (または VPoE)と立場が変わるにつれて、求められる役割がどんな風に変わるのかが知れて面白かった。

ぼんやりと思ってたことが明快な言葉で書いてあるのを目にして「やっぱそうだよね!」と膝を打つようなシーンがあった一方で、めちゃくちゃ耳の痛いことが書いてあってお腹が痛くなるシーンもあり、なかなか読み進めるのがツラかった。本に書いてあるアンチパターンを他ならぬ自分が踏み抜いてるなあと気づくようなシーンもあり、なんというか、今読んでおいて本当によかったなという気持ち。

読書メモはこんな感じ。

技術系の管理職は、辛いし、コード書けなくなるので面白くない、みたいなイメージが先行しがちだけれど、そういった先入観はいったん捨てて試しに読んでみると新しい発見があるんじゃないでしょうか。

で、読んでて辛くなってきたらとりあえず檸檬堂を飲みましょう。

2019 年の振り返り

去年に引き続き、今年も振り返りを書いてみる。

副業にチャレンジできた

厳密には副業とはちょっと違うけど、今年は「自分が趣味で書いたコードがお金になる」という稀有な体験をさせてもらった。流れとしてはこんな感じ。

  • 姉の事務作業を自動化するべくちょっとした GAS を書いた
  • データ量が増えて辛くなってきたので Web アプリケーションに作り変えた
  • 姉貴の所属企業の IT 部門の目に止まり、ひょんなことから売却できる運びになった

「話をしたい」と言われて恵比寿のドトールに呼び出され、御社の CTO(!)に自分が作った Web アプリケーションのプレゼンをする、というドッキドキのイベントがあったのだけれど、思いのほか好意的に受け止めてもらえ、お褒めの言葉までもらえたのは非常に嬉しかった。御社のドメインを勝手に取得したことについては怒られました。

技術スタック等についてはざっくりこんな感じ。

ちなみに aneki.js は僕の実装した Web アプリケーションの俗称です。

「代表作」と言えるようなものが開発できた

こちらは本業の方の話で、去年の 4 月くらいから開発していた機能群が今年の 7 月頃にリリースできた。お客さんへの提案活動みたいなのに同行させてもらったり、チーム横断で PM 業っぽいことをしてプロジェクトを推進したりと、初挑戦だらけのメモリアルなプロジェクトでした。

提案業については、「自分の知ってる周りの優秀なエンジニアたちはみんな経験してるけど、俺にはその経験がないんだよな……」っていうコンプレックスみたいなものがずっとあって。なんとなく今のままじゃダメなような気がして、怯えながらも手を挙げてやらせてもらったんだけど、

  • 「課題はそもそもなんなのか」から話を進めるクセが身についた
  • 人前で何かを説明するのに物怖じしなくなった
  • 資料を作るスピードがなんかようわからんが早くなった

みたいな感じで、色々とベーススキルが上がった気がする。「ウチ以上にウチの会社のことを考えてくれていてありがたい」と言ってもらえたのもじんわりと嬉しかった。まあ、そこに到るまでに色んな人とたくさん揉めたんですが……。

ともあれ、色々あってリリースした機能が、きちんと売上に貢献できていて、正しくドヤれるものになったのは非常に嬉しかったです。

学んだこととか

技術系

gushernobindsme.hatenablog.com gushernobindsme.hatenablog.com gushernobindsme.hatenablog.com

ブログに書いたもの以外だと、AWS の CodeBuild、Deploy、Pipeline、ECS、ECR、Parameter Store、SSM、ライブラリ の Jib などを触りました。

業務知識系

gushernobindsme.hatenablog.com gushernobindsme.hatenablog.com

ブログに書いたもの以外だと、『怒りに負ける人 怒りを生かす人』と『ヤフーの 1on1』を読んだりしました。

怒りに負ける人 怒りを生かす人

怒りに負ける人 怒りを生かす人

ヤフーの1on1―――部下を成長させるコミュニケーションの技法

ヤフーの1on1―――部下を成長させるコミュニケーションの技法

今年は読書量が少なくていまいちなので、来年はもう少し頑張りたい。

その他

あとは、子供部屋おじさんを卒業したり、作りおきをしたり、トレラン大会に初出場したり、ボルダリングをちゃんとやり始めたり、日本語ラップをちゃんと聞き始めたり色々ありました。

特に日本語ラップはすごくて、聞き始める前と後では心の持ちようがまるで違ってきていて、大変ポジティブに日々を過ごしております。俺は今まで何をやってきたんだ。 ギアを入れたい時によく聞いている曲のリンクを 3 つほど載せておきます。

www.youtube.com www.youtube.com www.youtube.com

おわりに

来年からはやる仕事の性質が若干変わりそうなので、変化に対応するための努力をしつつ、ボルダリング行ったり、山に行ったり、日本語ラップの音源を集めたり、作りおきをしたりして健やかに過ごそうと思います。オススメの音源をお持ちの方は教えてください。おわり。