Upgrade to Pro — share decks privately, control downloads, hide ads and more …

『保守性の高いcssを書く』という不可能に立ち向かう

やし
June 18, 2019

 『保守性の高いcssを書く』という不可能に立ち向かう

2019/06/18
giftee tech bash #1
で発表した資料です。

やし

June 18, 2019
Tweet

More Decks by やし

Other Decks in Programming

Transcript

  1. ©2019 giftee Inc. all rights reserved ࠓ೔࿩͢͜ͱ 5 • なぜ保守性の⾼いcssを書くのは難しい(不可能︖)

    なのか • ⽴ち向かうアプローチ • 保守性の⾼いcssを書けるかもしれない⽅法
  2. ©2019 giftee Inc. all rights reserved ࠓ೔࿩͞ͳ͍͜ͱ 6 • ナウなヤングにバカウケのcssプロパティ

    – ex. flexbox, CSS Grid, ...etc • cssの実装⽅針(書き⽅) • 保守性の⾼いcssを書く⽅法
  3. ©2019 giftee Inc. all rights reserved 12 ͳͥಘҙͳਓ͸ډͳ͍ͷ͔ • (jsなどの)プログラミングと違う・・・︖

    • 求められたページの⾒た⽬を作るだけならできる、けど・・・。
  4. ©2019 giftee Inc. all rights reserved 15 カスケーディングとは,ある要素のあるプロパティに対する宣⾔が複 数あるとき,宣⾔の“強さ”の関係を定めて,うち 1

    つの宣⾔だけが有 効になるようにするしくみである。 出典: http://www.tg.rim.or.jp/~hexane/ach/lbcs/lbcs2-05.htm
  5. ©2019 giftee Inc. all rights reserved 16 DBTDBEJOH • 宣⾔の強さは仕様上決まっているものであって、コード上に明⽰さ

    れない • スタイル当てても適⽤されない/思ってないところにスタイルが当 たる
  6. ©2019 giftee Inc. all rights reserved 18 • Rails Developers

    Meetup 2019 • CSSの技術的負債との向き合い⽅ / How to Deal with Technical Debt of CSS (ja) • https://speakerdeck.com/upinetree/how-to-deal-with- technical-debt-of-css-ja
  7. ©2019 giftee Inc. all rights reserved 19 DTTͷٕज़తෛ࠴ • cssを変更したら思っていたところと違うところに影響した

    • cssがどこにどう作⽤しているか分からないので⼿を加えたくない • 指定したスタイルがなぜか適⽤されない • 使われていないcssがあるけど怖くて消せない
  8. ©2019 giftee Inc. all rights reserved 22 DTT͸ʮؔ৺ͷ୩ʯʹଘࡏ͢Δ エンジニア •

    cssは苦⼿意識があるので⼿を出しづらい デザイナー • デザインの表現⼿段の⼀つであり、構造を設計しようというモチ ベーションが湧きづらい
  9. ©2019 giftee Inc. all rights reserved 25 DTTͷ࢓༷ DBTDBEJOH ʹཱͪ޲͔͏

    • cssの設計を考えていく • 様々な設計思想がある • 「ファイルの分け⽅」と「命名規則」 • OOCSS, FLOCSS, SMACSS, RSCSS, ...etc • BEMなどの命名規則
  10. ©2019 giftee Inc. all rights reserved 26 ࠓճ࠾༻ͨ͠΋ͷ SMACSS •

    base, layout, module, state, themeに分ける • (BEMは不採⽤) • 理由: SMACSSに命名規則が⼊っている
  11. ©2019 giftee Inc. all rights reserved 27 ʮอकੑͷߴ͍DTTΛॻ͘ʯͨΊͷΞϓϩʔν ͦͷ エンジニアがちゃんと検討する

    • 何かを構造的に組み⽴てることが得意 既存の設計⽅針に乗ると良さそう • cascadingをコントロールしやすい
  12. ©2019 giftee Inc. all rights reserved 28 DTTͷཱͪҐஔ ؔ৺ͷ୩ ʹཱͪ޲͔͏

    引⽤: CSSの技術的負債との向き合い⽅ / How to Deal with Technical Debt of CSS (ja)
  13. ©2019 giftee Inc. all rights reserved 29 ʮؔ৺ͷ୩ʯΛʮຒΊΔʯ • cssを、デザインを表現するための⼿段だと(雑に)捉えると・・・

    • 表現対象となるデザインが(ある程度)決まりを持ったものになって いてほしい • デザインシステムの導⼊ – 決まりのあるデザイン→構造化したcssに落とし込みやすい
  14. ©2019 giftee Inc. all rights reserved 30 ʮؔ৺ͷ୩ʯΛʮຒΊΔʯ • デザインはデザイナーと⼀緒に作っていくぐらいがよいのでは

    – デザインはデザイナーだけのものではない • cssを書くのはエンジニアがやったほうが多分良い – 実装レベルで構造化するのはエンジニアのほうが得意
  15. ©2019 giftee Inc. all rights reserved 32 ·ͱΊ • cssは、その仕様や⽴ち位置的に保守性の⾼いものにし⾟い

    • 完璧に保守性を持ったcssにするのは不可能 • でも⽴ち向かわないと何も変わらない • やっていき
  16. ©2019 giftee Inc. all rights reserved 33 Φν • 実はCSS

    in JSしてしまえばこんな設計どうこうとか考えなくてい いんですけどね