Atomic Componentsがどういうものかを知り、
現状抱えている課題を解決するきっかけを
持ち帰って頂けたらと思います.
フロントエンドのコンポーネントの粒度どうしよう。
何もわからない。
どのファイルがどのコンポーネントで、何があって何がないのかよくわからない。
やっと見つけたと思ったら作りが合わなさすぎて全然再利用できなかった。
これはOrganisms?
これはMolecules?
これMoleculesじゃなくない?
言われた通りにTemplate作ったら誰もコード読み解けなくなったよ!
ごめん、やっぱMoleculesだったww
やっぱ区切る部分間違えてたぽくて、どれでもなかったわwww
Organisms微妙に再利用できる気がする! 画面毎のデザイン違うけど分岐入れるか!
我々が開発しているのは、フロントエンド。 悩んでいたのは最近のコンポーネントシステムの設計。 Atomic Designが話しているのはデザインシステムの話し。
Joey Di Nardoさんがmediumで記事を公開していたのですが、先日からその記事が404になってしまい、現在その記事を見る方法は多分以前自分が和訳したこの記事しかないはず
youtubeで見つけたが、他の方が2015年のjsconfで発表していたらしい。動画は21分。リンクはこちら
※ 2019年現在日本のFrontend界隈ではAtomic Designどうすれば良いか耐えずに議論しているが、世界では2015年時点で既にそこよりずっと先に進んでいた。
概要だけ。
前のページに詳しく解説してくれているyoutubeへのリンクを貼ってあるので、詳しくはそちらを見て欲しい。
Atomic Componentsは、扱うデータが多い、スケーラブルなWebアプリケーションとモバイルアプリケーションの作成と管理を容易にするためにPatternlab.ioのチームによって設計されました。
Atomic Designの派生系です。
Atomic Componentsは、コンポーネントベースのアプリケーションアーキテクチャ内で具体的に動作するように設計されており、Atomic Designの原則を拡張して変更することで、データの委任やコンポーネントの構造化などの技術的詳細を触媒化するのに役立ちます。
Atomは、アプリケーションの基礎的要素です。 これらは通常セマンティックなHTML要素で、コンテナ以外の唯一の原子要素です。 現実の世界の原子のように、これらは抽象化しても意味をなさない最小限の構成要素を表すはずです。 単純なテキストとアイコン、いくつかのスタイルである返信ボタンを考えてみてください。 Atom達は協力して、OrganismsやMoleculesのような様々なAtomic Componentsを構成します。
Moleculesは、再利用されるUIインターフェースの静的な要素グループです。※2いいねボタン、共有ボタン、ブックマークボタン、etcなどが含まれます。
それらはどの階層にでも現れることができますが、Moleculesは反復するOrganismsの中で最も頻繁に見られます
Organismsは実際には動的Webアプリケーションの中核コンポーネントでもあり、これらのコンポーネントは、UI全体で一貫して繰り返される情報の動的コンテナを表します。 ツイートボックス、マテリアルカードなどを考えてみましょう
Ecosystemは、主要なコンテナコンポーネントとインターフェイスが通信しようとしているアイデアを表す必要があります。これは、スタイルのための独立した外部コンテキストも提供します。
データ管理にReduxを使用している場合、EcosystemはEcosystem-to-Ecosystemレベルでの相互のコミュニケーションを容易にするスマートコンポーネントとなります。
子としてOrganisms、Molecules、Atomsを介して操作された状態を※3stateless functional componentsに委譲するだけでなく、Reduxを介して還元されたデータを処理する責任があります。
環境はビュー全体またはページに対応します。 静的なアプリケーションを作成している場合や、別々のルートで完全に別々のビューを持っている場合は、複数の環境があります。
デザインチームがAtomic Designじゃない場合において、結局コードの書き方や粒度が中々わからないし、チームも混乱してしまう. ※ これはサーバーサイドでも特定のアーキテクチャを導入した際に起こる問題. チーム開発の場合は1人ができても意味がない