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年も引き続き頑張ります。
今年このブログを読んでくれたすべての方に感謝します。ブログを書くプロセスは自分の考えを整理するプロセスでもあります。至らない点はぜひご指摘ください。
良いお年を!