読書 Atomic Design ~堅牢で使いやすいUIを効率良く設計する 前半まとめ
作業概要
Atomic Design ~堅牢で使いやすいUIを効率良く設計するを読んで、背景や基礎知識など3章までの内容をまとめた。記事のボリュームが大きくなってきたので、4~6章の実践編は時間に分けよう。
作業時間/見積:4h / 4h
学び
- デザインとエンジニアリングの境界はますます曖昧になってきている
- UIコンポーネントの設計するときに意識すること
- Reactを学ぶ意味が明確になった
- コンポーネント・ベースの開発を行うため
- 詳細は下方に記載
メモ
- UI設計が抱えてきた問題
- 1:javascriptの大規模開発が難しかった
- モジュールを切り分けられなかったのが原因だが、最近は改善されてきている
- 2:CSSが破綻しやすい
- 3:スタイルガイドがプロダクトから乖離する
- プロダクトの成長とともに管理する必要があるが、放置されてしまう
- 4:デザインカンプで表現できないものを求められる
- レスポンシブやインタラクションなど
- 結果、設計と開発でギャップが生まれてしまう
- 5:デザイナー不在の現場がある
- 汎用的な課題はフレームワークで解決できるように、デザイン・パターンを再利用できるように運用する
- サービスのコアとなるような複雑な課題は解決できない
- 6:SPA(Single Page Application)が普及したことでフロントエンド・フレームワークの重要性が高まっている
- 1:javascriptの大規模開発が難しかった
- コンポーネント・ベースの開発を学ぶ意味
React, webpack, CSS Modulesを学ぶ意味
- 生のHTML, CSS, javascriptではコンポーネント・ベースの開発ができない
- コンポーネントベースでjavascriptの開発ができるようにしたライブラリの1つがReact
- ReactはHTMLの役割をJSXとしてjavascriptに取り込む
- 広く使われている
- ECMAScript modulesが実装されていないブラウザでも動作させるためにコードをバンドルするwebpackが必要
- モジュールを1つのファイルに繋げる(バンドルする)
- Reactでもコンポーネント化できないCSSにはCSS Modulesを使う
- CSSをjavascriptで扱えるようにハッシュオブジェクト化する
- Atomic Designの5段階
- 本だと解説が多くて流れが見えづらく、設計するイメージが掴みづらかった…
- いくつか記事を読んでみて世界と日本のUX | BLOG - Atomic Designがわかりやすかった
- Molecules(分子)とOrganism(有機体)の区別が難しい
- Frasco - Atomic Design の理解 : molecules と organisms をどのように分割するか
- assertInstanceOf('Engineer', $a_suenami) - Atomic Design における Atom, Molecule, Organism の見極め方
- 使われる文脈によっても変わるし、どこまで全体を見えているかにもよって変わるので、設計者と実装者で相談して決めようってことかな
未調査
- GraphQL
- プロトタイプベース言語
- create-react-appがやってること
- yarn test用いた開発フロー
学習計画
基本を学ぶ
- [x] エディターの準備
- [x] チュートリアルやる
- [x] デバッグ、デプロイ環境を整える
- [ ] Atomic designを読む
- [ ] コンセプトを抑える
- [ ] React for designersをざっと読んで計画に反映する
- [ ] 小さなフロント完結のアプリを作ってみる
サーバーを絡める
- [ ] フロントエンドエンジニアのための React ・ Redux アプリケーション開発入門
- [ ] Advanced guideを読む
- [ ] API Referenceを読む
- [ ] React Hooks 入門 - Hooksと Redux を組み合わせて最新のフロントエンド状態管理手法を習得しよう!
- [ ] サーバーサイド込みのアプリを作ってみる
- [ ] フロントエンドエンジニアのためのGraphQL with React 入門