以下の記事はQiita@kei-tamiyaさんが記述した「課題解決手法としてのAtomic Designの解釈と実装」の紹介記事です。

前提

どんなプロジェクト?

  • もともとVue.jsを用いて動いているアプリケーションを1からリファクタするプロジェクト
  • 別リポジトリに、Nuxt.js, Typescript, Vue Apolloを使用して開発
  • フロントエンドエンジニア3〜4人、デザイナー1人
  • 全員リモートで、週1で30〜60minぐらいミーティングできる
  • GraphQLのAPIサーバーはおよそある状態
  • 主に大きなページごと(Userに関するページなど)をエンジニア1人が担当して開発する

もともと課題に感じていたこと・選定理由

もともとそこまで厳格に規約を決めずシンプルにVue.jsで開発をしていましたが、以下のような課題を感じていました。

  • 複数のエンジニアがデザインカンプを見て各々の実装をすると、デザインや実装に統一感がなくなる
  • 1つのVueファイルが多くの責務を持って肥大化してしまう
  • 車輪の再発明しがち・逆に誰かがコンポーネント作るだろうと様子の見合いになって結局作らない/できても中途半端
  • デザイナー・エンジニア間の共通言語を作ることで、将来の追加実装や他のプロダクトを開発する際にも応用できる状態にし、スムーズに開発できるようにしたい

そこで、Atomic Designを採用することでデザインや実装方針をある程度画一化し、品質を担保することを目指しました。

Atomic Designとは?

画面を「原子」や「分子」などの単位になぞらえてパーツやコンポーネントとして分割して、それらを組み合わせることで構築するUIデザイン手法です。









Related posts:

【Kotlin】MockKはKotlin独自の言語仕様をほぼ網羅しているモックライブラリ
【Kotlin】Unit Testing Firebase with Kotlin
【Swift】7 Awesome Open Source SwiftUI Projects to Inspire You (Part 2)
【Swift】7 Awesome Open Source SwiftUI Projects To Inspire You
【Column】The Future of Code Is in Your Browser
【JavaScript】The webpack plugin I can't live without
【JavaScript】6 Reasons Why You Should Learn JavaScript
【Node.js】Node.jsでサーバーサイドJavascriptに挑戦
【Flutter】初めてのアプリを公開するまでに参考にしたサイト一覧
【Flutter】社内でFlutterのハンズオンを行ったので、資料を公開します
【Azure】How To Host an Angular Static Website on Azure
【React】How to Deploy Your Static Sites for Free
【React】How to write tests for React in 2020
【Flutter】My Introduction to Flutter
【Flutter】How to run Flutter Golden (Snapshot) Tests with Codemagic CI/CD
【Flutter】How to run Flutter Golden (Snapshot) Tests with Codemagic CI/CD — Part2
【JavaScript】Deploying an Image Classifier using JavaScript
【JavaScript】How to build a basic line in D3.js
【JavaScriipt】4 Steps to Get Started With Serverless Functions on Netlify
【Swift】Building a Custom Transitioning for ViewController in iOS 13+
【TypeScript】What’s New in TypeScript 3.9?
【JavaScript】JavaScript Clean Code: Error Handling
【Nuxt.js】How I Picked Up and Built a Nuxt.js App in One Week
【Next.js】Next.js 9.3: 新世代の静的サイト生成、Built-in Sassのサポート
【Node.js】Node.js: CPU負荷で3秒かかっていた処理を「Worker Threads」で1秒に時短する
【TypeScript】Learn About Generics in TypeScript
【TypeScript】SwaggerをTypeScriptに変換してAPIリクエストで型チェックを有効にする
【Vue.js】今からVue.jsを始める人のための「知るのを後回しにしてよい」n個のこと
【Android】DroidKaigi 2020 アプリでの学び【Kotlin Coroutines Flow 編】
【React】ReactはウェブやHTMLとは特に関係のないライブラリです