エコシステム
フロントをとりまくエコシステムについておさえる。
フロントエンド開発においてやれることを認識する。。
💡
エコシステムとは
なんか誤用とか言われますが、周辺ツール的な意味合いで便利でよくつかわれるので許してください。
フロントのプログラミング言語
基盤はJavaScriptの場合が多い。特に理由が無ければ、JavaScriptに型を付けたTypeScriptを利用してください(静的解析が出来るので強力です)。
- JavaScript
https://developer.mozilla.org/ja/docs/Web/JavaScript
function add(input) { return input.x + input.y; } const input = { x: 1, y: 2 }; let result = add(input); console.log(result); // 3 - TypeScript
https://www.typescriptlang.org/
type Input = { x: number; y: number } function add(input: Input) { return input.x + input.y; } const input = { x: 1, y: 2 }; let result = add(input); console.log(result); // 3
コンポーネントカタログ
- https://storybook.js.org/
- 作成したコンポーネントを一覧できるようにするツール
- 一部テストも可能
Test
- ユニットテスト
- https://jestjs.io/ja/
describe("新規登録ボタン", () => { test("押したとき、モーダルが表示される", async () => { const { user, typeCreateButton, onChange } = setup(); await typeCreateButton(); await waitFor(() => expect(onChange).toHaveBeenCalledWith( expect.objectContaining({ isOpen: true, }) ) ); });あまり良いコード・テストではないかも - https://vitest.dev/
- https://jestjs.io/ja/
- VRT(Visual Regression Testing)
- E2Eテスト
-
Playwright: TypeScript(JavaScript) -
Cypress: TypeScript(JavaScript) -
Selenium: python
-
ユニットテスト・インテグレーションテスト・E2Eテストのバランス
あまり意識する必要は無いが、言葉だけ。
テストピラミッド型か、テスティングトロフィ―型のテスト戦略を意識しよう。
- アイスクリームコーン型は一般的にはアンチパターンなので理由があれば
CSS
コンポーネント単位のCSS
ビルド時にクラス名やdata属性を使って、コンポーネント単位に閉じたCSSを生成するもの。
- Scoped CSS
- CSS Modules
CSS in JS
ほぼReact専用技術。
CSSファイルを作らず、JavaScriptから全てのCSSを操作する。
- Emotion
CSSフレームワーク
既存のCSSフレームワークを使う。たくさんあるので列挙しきれない。
制作チームが基本作るので、デザイン当てることは無いが、実装するために生のCSSを当てることは少ない。
- Tailwind CSS
- クラスを付けるだけで、いちいちクラス名を命名しなくていいので楽
- コンポーネント
- daisyUI
- shadcn/ui(厳密にはコンポーネントではない)
- bootstrap
- 読み込んでクラス名を付けてデザイン
デザイン管理
- Figma
- Adobe XD
Test
- Storybook, Playwright, Vitest が上がっている
その他
- https://jamstack.org/
- 元々はJavaScript, API, Markup
- 今はJavaScript, API は必須ではない
- 静的ファイルを事前ビルド、動的コンテンツはクライアントサイドで実行する技術の組み合わせ
- データなどはあらかじめビルド時に埋め込んでおく
- https://astro.build/
- https://gohugo.io/
- https://wordpress.com/ja/
- 元々はJavaScript, API, Markup
- 余談: MicroCMSのニフティ取り上げブログ