2018年が終わろうとしている。この記事を書き始めるにあたって、今年書いたブログを振り返ってみると、なんと約50本も書いていた。1月の Vue 新機能メモから12月の深い記事まで、自分が本当に成長していると感じる。
今年の技術的な収穫
フレームワーク面:
- Vue 2 のリアクティブの原理、VDOM、SSR を深く理解した
- React エコシステムを把握した:Fiber アーキテクチャ、Hooks(まだ安定していないが)、Suspense
- TypeScript を本格的に学び始め、「必要ないかも」から「これはすごい」へ
エンジニアリング面:
- Webpack を 3 から 4 へアップグレード。ビルド速度が大幅に向上
- Babel 7 のアップグレードは想定より手間がかかったが、オンデマンドの polyfill は本当に便利
- バンドルの分析、Tree Shaking、コード分割を習得
- マイクロフロントエンドの概念に触れ、本番環境で最初の実践を行った
基礎の強化:
- JavaScript のプロトタイプチェーン、クロージャ、イベントループをようやく理解した
- ブラウザのレンダリング原理:クリティカルレンダリングパス、キャッシュ戦略
- HTTP/2、CORS などのネットワーク知識
ツールとフロー:
- Git ワークフロー、Code Review の規則
- Jest による単体テストをゼロから実践へ
- ESLint + Prettier によるコード規則の設定
技術以外の成長
今年から「フレームワークの使い方」だけでなくソフトウェア設計を真剣に意識するようになった。
『クリーンコード』を読んで、以前書いた「動けばいい」コードを多く反省した。命名、関数の大きさ、単一責任を気にするようになり、今の自分のコードはまだエレガントとは言えないが、少なくとも意識は持てた。
何度か技術共有を行い、ブログの内容を資料にまとめてチームに発表した。表現能力が年初よりかなり向上した。
2018年 技術の出来事
- 2月:Webpack 4 リリース。ビルド速度が大幅向上
- 8月:Babel 7 正式リリース
- 8月:React 16.6 で lazy/Suspense が登場
- 10月:React Conf 2018、Hooks が正式発表
- 11月:Vue 2.6 リリース、v-slot でスロット構文が統一
- 通年:TypeScript が継続的に普及し、使うプロジェクトが増加
React Hooks は今年最も興奮したことだ。まだ安定していないが、この方向性は正しいと思う。ロジックを UI から分離して、カスタム Hook で再利用する。HOC や render props より断然エレガントだ。
2019年の計画
技術面:
- React Hooks の正式版を待ち、会社の React プロジェクトを全面移行する
- Vue 3.0 の進捗を真剣に追い、Composition API を学ぶ
- TypeScript の高度な型と型体操を理解する
- Node.js を体系的に学ぶ。スクリプトを書くだけでなく、より深く理解したい
能力向上:
- 『リファクタリング』を読み切る
- オープンソースプロジェクトへの貢献を試みる
- ブログを書き続ける。目標 30 本以上
試してみたい分野:
- WebAssembly の基礎
- GraphQL。インターフェース層の新しいアプローチ
- CSS Houdini。より強力な CSS 拡張能力
一言
今年最も深く感じたことは:技術の更新は速いが、底層の原理はあまり変わらないということだ。
フレームワークは変わり、ツールはイテレーションを続けるが、JavaScript の実行メカニズム、ブラウザのレンダリング原理、ネットワークプロトコルの基礎——これらは数年経っても変わらない。基礎固めに時間を使う方が、新しいフレームワークを追い続けるより価値がある。
もちろん、新技術を全く追わないわけにもいかない。Hooks のような規模のイノベーションは、完全に普及してから学び始めると大きく遅れることになる。大事なのは「必ず追うべき」大きな変化と「知っておけばよい」細かいことを見分けることだ。
2018年、以上だ。2019年も引き続き頑張る。
今年このブログを読んでくれたすべての方に感謝する。ブログを書くプロセスは自分の考えを整理するプロセスでもある。至らない点はぜひご指摘ください。
良いお年を!
