エンジニアに捧ぐ、ブックレビュー 2017 前編 プログラムスキルアップ編

ピクセルグリッドのスタッフが実際に読んで、これはいいと感じた仕事に役立つ書籍リストを紹介します。第1回目はプログラムのスキルをアップさせてくれる書籍です。読み応えのある本も多いので、秋の夜長にぜひ。

発行

  • 中島 直博
  • 宇野 陽太
  • 杉浦 有右嗣
  • 藤田 智朗
エンジニアに捧ぐ、ブックレビュー 2017 シリーズの記事一覧

はじめに

今回から2回に渡って、ピクセルグリッドのスタッフがリストアップしたエンジニアにおすすめしたい書籍を紹介します。

第1回目は主にコードを書くスキルを上げるための書籍や、フロントエンドに今後不可欠となるであろう周辺技術情報が得られる書籍を4冊紹介します。紹介者は、宇野 陽太藤田 智朗中島 直博杉浦 有右嗣です。

本シリーズにおける「書籍」について

本シリーズでの「書籍」とは、紙の書籍だけでなく電子書籍も含みます。中にはWeb上で公開しているものもあります。

指針に沿ったレビューができるように

著者:上田 勲

コードを書くときの指針についてまとめた本。個々の項目は、インターネットなどで一度は見たことがあるようなものもありますが、「それはなぜか」「どうすればいいのか」というところにも言及していたり、 他の項目と関連付けされカテゴライズしてまとめられているので、読みやすい内容になっています。

こんな人におすすめ

コードレビューをするときの視点や、判断に迷う場面が多かったので、同僚の奥野に相談したところ、この本をすすめられました。

コードを書く人・レビューする人全般におすすめしますが、「レビューを任されたけど、どういう点を指摘すればいいかわからない」「レビューで指摘されたけど、なんでダメだったのかわからない」というような経験のある人には特に良さそうです。

おすすめポイント

この本を読むまでは、それまでの経験をもとに「なんとなくこっちのほうがいい気がする」「どちらかといえばこっちのほうが好み」というように、明確な根拠のないレビューをしていました。この本を読んで、なんとなく感じていたことが間違いではなかったのを確認することができました。それと併せて、しっかりした根拠が得られたことによって、レビューの判断に迷っていたようなところでも、指針に沿ってレビューすることができるようになったので、レビュー時間も短くなった気がします。

また、レビューだけではなく自分でコードを書く場合においても、指針に沿うことで、漠然としていた「良いコード」が自分の中ではっきりしたものになりました。レビュアーや、チームメンバーに「なぜこういうコードを書いたか」ということを、コードで伝えやすくなったように思います。

自分の場合はレビューで悩んでいたことがきっかけだったので、こういう感想になりましたが、単純に「良いコードを書きたい」と思ってる人にもおすすめできるのではないかと思います。

(フロントエンド・エンジニア:宇野 陽太)

高品質なプログラミングをするために

著者:Steve McConnell、翻訳:クイープ

ソフトウェア開発の方法論を幅広く網羅した入門書で、上下巻に分かれています。上巻は設計やプログラミングの話が中心になっています。開発者が陥りやすいBad Codeの具体的な例を挙げ、何が問題でどのように改善すべきなのかを解説してくれます。また、序盤にはそういった陥りやすい問題を建築業界で実際に起こった失敗になぞらえて説明する箇所もあり、興味深い内容になっています。

こんな人におすすめ

ピクセルグリッドの中村がすすめていた一冊で、かつ、奥野にすすめられて見たt_wadaさんのスライド、【改訂版】PHP7で堅牢なコードを書く - 例外処理、表明プログラミング、契約による設計 内の紹介で一番多く登場していた書籍です。

高品質なプログラミングを体得したい人におすすめします。また、第8章の内容に限定されてしまいますが、アサーションとエラー処理をどのように使い分け、アサーションはどのように使うべきかを知りたい人が読むと良いと思います。

おすすめポイント

高品質なプログラミングをつくるための設計時点での考え方や、オブジェクト指向におけるクラスを作る際の注意点などが網羅的にまとめられており、問題のあるコードを例に出して、「このままだといずれどのような問題が発生しかねないか? ではどのように改善するべきなのか」がわかりやすくまとめられています。

また、アサーションをどのように書くべきかといった情報を得られる書籍はなかなかないと思いますが、第8章でそのことを詳しく学ぶことができます。前述したt_wadaさんのスライドと併せて読むと非常に勉強になります。

(フロントエンド・エンジニア:藤田 智朗)

Three.jsを学ぶきっかけに

著者:Jos Dirksen、翻訳:あんどう やすし

Three.jsの基本的なことから応用までを、段階に分けて細かくコードとサンプルを示しながら解説しています。これを読めばThree.jsをどう使えばいいのか、どんなことができるのかを一通り知ることができます。

ただ、ページ数が400ページを超えます。リファレンス的な使い方にはあまり向いてないように思うので、読むのに根気が必要です。

こんな人におすすめ

Three.jsに触れるにあたって取っ掛かりがほしかったのが、本書を読んだきっかけです。3Dに興味はあるけど何からやったらいいかわからない人、もしくは特に作りたいものがないけどThree.jsに触れておきたいと思ってる人におすすめできます。

おすすめポイント

すごく丁寧に段階を踏んで解説しているので、JavaScriptがある程度わかっていれば、Three.jsの使い方が把握できます。日本語版にはMMD*を扱う方法が付録として付いてくるので、とりあえず3Dモデルを動かして遊んでみたい、という場合にもよいかもしれません。

*注:MMD

3DGCソフトウェアのMMD(MikuMikuDance)で扱える3Dモデル形式のことです。

(フロントエンド・エンジニア:中島 直博)

HTTP/2の全容とネットワーク関連のトピックを知る

著者:渋川 よしき

HTTP 1.0から始まり1.1、そして2へと、Webの歴史とHTTPの進化をあわせて学ぶことができます。HTTPというプロトコルの仕組みから、ブラウザ内部の動作、サーバーとのやり取りについても解説しており、その他のネットワーク関連のトピックスも幅広く網羅しています。

こんな人におすすめ

HTTP/2について、普及する前にきちんと全容を知っておきたかったというのが本書を手に取ったきっかけです。また、著者が前職の同じ会社で、すごく優秀なエンジニアだと知っていたからということもあります。

慣れ親しんでいるはずのHTTP/1.xおよび、この先もこの業界にいるなら必ず使うであろうHTTP/2について、きちんと把握したい人。最近のWeb技術のネットワークレイヤーの進歩をまとめてキャッチアップしたい人。そんな人たちにおすすめです。

おすすめポイント

HTTP自体の解説だけでなく、このプロトコルを使ってどういうことができるのかの具体例までカバーしているところがよいです。

またHTTPだけでなく、WebSocketやWebRTC、HLSやDASHなど、ネットワークに関するトピックスのカバー範囲がとにかく広いところ。この分野のことを調べるときには、何から調べていけばいいかわからなくなることがよくあるので、そういう取り掛かりとしてはとてもよいと思います。

GoでHTTPクライアントを実装するセクションも多分にあり、サンプルコードも充実しているので、Goに興味がある人にもおすすめです。

(フロントエンド・エンジニア:杉浦 有右嗣)

ここまでのまとめ

今回はコードを書くスキルを上げるための書籍や、フロントエンドに今後不可欠となる周辺技術情報が得られる書籍を紹介しました。後編となる次回は、プログラムやコーディングを支える周辺トピックに関連した書籍を紹介します。

中島 直博
フロントエンド・エンジニア

JavaScriptとCSSへの興味から大学院を中退してWebの世界に飛び込む。大手デジタルコンテンツベンダーにてHTML、CSS、JavaScriptなどフロントエンド全般の担当として、主にスマートフォン向けゲームの開発に従事。2014年1月にフロントエンド・エンジニアとして株式会社ピクセルグリッドへ入社。スマートフォンサイトの実装を得意とする。2019年、退社。 また、在学中からhtml5jのスタッフとして、さまざまな技術系勉強会の運営に関わり、HTML5 Experts.jpのコントリビューターもつとめる。

宇野 陽太
PixelGrid Inc.
フロントエンド・エンジニア

大手ソフトウェアダウンロード販売会社、ソーシャルアプリケーションプロバイダーなどで、デザイナー、マークアップ・エンジニア、フロントエンド・エンジニアとして、主にスマートフォン向けゲームの開発に携わる。2015年1月に株式会社ピクセルグリッドに入社。 JavaScriptフレームワークを用いたアプリケーション設計・実装を得意とする。 著書に『Angularデベロッパーズガイド 高速にかつ堅牢に動作するフロントエンドフレームワーク』(共著:インプレスジャパン、2017年12月15日)などがある。

杉浦 有右嗣
PixelGrid Inc.
シニアエンジニア

SIerとしてシステム開発の上流工程を経験した後、大手インターネット企業でモバイルブラウザ向けソーシャルゲーム開発を数多く経験した。2015年にピクセルグリッドへ入社し、フロントエンド・エンジニアとして数々のWebアプリ制作を手掛ける。2018年に大手通信会社に転職し、低遅延配信の技術やプロトコルを使ったプラットフォームの開発と運用に携わっていたが、2020年ピクセルグリッドに再び入社。プライベートでのOSS公開やコントリビュート経験を活かしながら、実務ではクライアントにとって、ちょうどいいエンジニアリングを日々探求している。

藤田 智朗
PixelGrid Inc.
フロントエンド・エンジニア

Web制作会社、システム開発会社を経て、主にフレームワークを用いたサーバーサイドとフロントエンドをまたいだB2Bシステムの開発に従事。そのかたわら、JavaScriptへの興味が尽きず、静岡JavaScript勉強会の開催や、JavaScript関連の公式ドキュメントの翻訳などを行う。個人の活動として、JavaScript関連のライブラリやフレームワークなどの公式ドキュメントを翻訳したjs STUDIOを運用している。

Xにポストする Blueskyにポストする この記事の内容についての意見・感想を送る

全記事アクセス+月4回配信、月額880円(税込)

CodeGridを購読する

初めてお申し込みの方には、30日間無料でお使いいただけます