げんきちの秘密基地

エンジニアリングが世の中の思いを実現してきた歴史に気づき、29歳未経験からWEBエンジニアとして転生!【Danger】綺麗事を割と本気で言ってきます【GitHub】https://github.com/0840kg【Twitter】https://twitter.com/0840kg

入門!アトミックデザイン

ぞす!げんきちです!\\\\٩( 'ω' )و ////

 

「いや、誰だよ」って方は、下記リンクを見てやってください。

  1. はじめまして!げんきちです! - げんきちの秘密基地

  2. 僕がエンジニアになりたい理由 - げんきちの秘密基地

目次〜

f:id:Genkichi:20190319084352j:plain

今日は、先日参加した勉強会の内容をシェアします!
自分用のメモのため、可読性についてはご容赦ください...🙇‍♂️

 

講師紹介

【成瀬 允宣】

SIer・ゲーム業界・Web 業界と居場所を転々。

現在は GMO インターネット株式会社にて Web プログラマ / デベロッパエバンジェリストとして所属。

GMO テクノロジーブートキャンプ、新卒研修、社内勉強会、社外セミナーと至る所でプログラミングの講師活動に勤しんでいます。

 

アトミックデザインとは

アトミックデザイン=ページの基礎となるコンテンツ構造

=atoms、molecules、organisms、template、pageの5段階

5階層に抑えることでモジュールの乱立を防ぐ意図がある。

 

Atoms(原子)

最小単位

 

例)

ロゴ

ヘッダータイトル

テキストボックス

プライマリーボタン

 

molecules(分子)

原子を組み合わせたもの

 

例)

ヘッダーリンク

サーチボックス(テキストボックス+ボタン)

テーブルの行(セル+セル)

 

organisms(生物)

原子と分子を組み合わせたもの

 

例)

ヘッダー(ヘッダーリンク+サーチボックス)

テーブル(テーブルの行+テーブルの行)

 

template

ワイヤーフレームのこと

 

page

ワイヤーフレームにデータを流し込んだもの

 

例えば、こんなことありませんか?

 

デザイナー:ここのボタンこのデザインに変えてー。

プログラマ:もっと再利用しやすいデザインにできませんか?

デザイナー:わかりましたー。

プログラマ:(伝わったかな…?)

デザイナー:(再利用しやすいデザインってなんだ?)

 

デザイナーとエンジニア

 

向いている方向は同じ→プロダクトの完成

けど、勘所が違う。

 

デザイナーの勘所

統一感

視線誘導

格好良さ

 

プログラマの勘所

通化

保守性

難易度

 

落とし所を見つけるために

デザインシステム(=関係する人が頭に浮かべるもの=アトミックデザイン=デザイナーもエンジニアも分かっている粒度)で会話をする必要がある。

 

アトミックデザインの目的(存在意義)

「アトミックデザインをすること」ではない。

協業のための共通基盤作り。

物事の名前は会話をするためにつける。名前がそのものを表すから。

 

コンポーネント志向とは

 

キーワード

web is behind

タグの組み合わせでいけちゃうHTMLすごすぎ

コンポーネント志向が育たなかった

 

すべてはコンポーネント

ボタンの形(デザイン)を変えて。

CSSを変更すればいける。

 

けど、

 

全てのモーダルの右上に閉じるボタンを付て。

これは終わった。全ページに要素を足さないと、、、

 

そんな時にコンポーネント志向であれば、コンポーネントに1行書き足せば良い!

 

コンポーネント志向の利点

=変更に強くなること

 

アトミックデザインとは 2

粒度にルールを加えたコンポーネント志向(コンポーネント志向を使いやすくした)

デザイナーの人からしたら、全てコンポーネントって哲学みたいに聞こえる。

 

実践してみよう!

学んだことは直ぐに実践しないと意味がない。

アトミックデザイン、どこから手をつける?

 

①サンプルページを作るところから。

 

②次にAtomを検討

Atom =UIの機能性を破壊しない最小要素

 

③次にモラキュラスを取り出す

 

④次にオーガニズムズを取り出す

 

 

①~④をできれば、デザイナーさんと一緒に行う!

そうすれば、共通認識を合わせられる。

 

コツ

下位要素を仮実装する。

例)

buttomタグではなく、divタグでつくる。

仮実装があれば上位の要素も作れる。

 

作業を分担する時は、事前に要素を洗い出すことが大切。

でないと、意図せず同じボタンとかが重複して書くことになる。

 

全体のテンプレートとコンテンツのテンプレートは分けるのがおススメ。

 

分けない場合

パンくずリストのあるコンテンツが含まれるサイドバーのあるメインページ

パンくずリストのないコンテンツが含まれるサイドバーのあるメインページ

パンくずリストのあるコンテンツが含まれるサイドバーのないメインページ 

パンくずリストのないコンテンツが含まれるサイドバーのないメインページ

 

分けた場合

①サイドバーのあるメインページ +パンくずリストのあるコンテンツ

②サイドバーのあるメインページ +パンくずリストのないコンテンツ

②サイドバーのないメインページ +パンくずリストのあるコンテンツ

②サイドバーのないメインページ +パンくずリストのないコンテンツ

 

分けた方が各々、再利用がしやすい。

 

便利なものを作ろうとすると、atoms、molecules、organismsの3段階では足りない。

 

どうする?

オーガニズムオーガニズムコンポジションすることもある。

 

オーガニズムオーガニズムオーガニズム

 

忠実に、することが難しさに繋がるなら、その本質を見極めて取捨選択すべき。

 

まとめ

アトミックデザインは、唯一無二のデザインではない。

開発に携わる全ての人たちの指標である。

 

アトミックデザインが簡単そうに見えるから、デザイナーが手を付けてくれやすい。

コンポーネント志向とか言うと、デザイナーが引いちゃう。

アトム、モラキュラス、オーガニズムのたった3つだけだよ?

って簡単そうに見せてコンポーネント志向に引っ張り込んでいく。

そうすれば、今までよりはコミュニケーションを図りやすくなる。

 

<一日一新>

太陽のチーズラーメン。名前から好き。

 

<学習進捗>

学習開始からの期間 :98日
今日までの合計時間:957h
今日までに到達すべき目標時間:892h
目標との解離:65h
10,000時間」まで、

 

残り・・・9,043時間!」

 

以上です。

読んでくれた方々、ありがとうございました!((_ _ (´ω` )ペコ。

genkichi.hateblo.jp

genkichi.hateblo.jp

 

f:id:www08056561815:20190224095507g:plain

twitter.com