zaki-yama

zaki-yama's reading list

2021-05-14

ひとこと

TypeScript の typeinterface の使い分けについて調べてた TypeScript で Type Aliases と Interfaces どちらを使うべきか

読んだ

📝 : 下の方に内容メモあり

☁︎ Salesforce

Web, Frontend

Rust, WebAssembly

その他

読みたい

書いた

Stale

読んだ記事のメモ

How we use Web Components at GitHub | The GitHub Blog

GitHub 社がどんなふうに Web Components を開発・運用しているかの話。 Github は多くの Web Components を OSS として公開しており、その一覧はこちらで見られる。 https://github.com/github/github-elements

※はっきりと書かれてないが、社内に UI Systems team という FEE チーム的な立ち位置のチームがあり、そこの活動だと思って読むのがよさそう

  • 社内のエンジニアが高品質な Web Components を効率的に作成するために、Catalyst (https://github.com/github/catalyst)という独自フレームワークを作っている。
    • "Catalyst leverages TypeScript to add decorators, which save on a lot of the boilerplate necessary to write Web Components."
  • Web Components を使用した開発のライフサイクル
    • Start with Catalyst
      • プロダクトチームにコンポーネントを開発してもらうときは、最初は Catalyst を使って書きはじめてもらう
      • よくある落とし穴を回避したりベストプラクティスを強制できる
    • Extracting a component from the monolith:
      • アプリケーション固有のコンポーネントはそのままでは OSS にできないような状態。 多くはハードコーディングされたオプションの値など。
      • コンポーネントとして抽出する前に、一度 Catalyst 固有の機能を取り除いてプレーンな Web Components に変換している
      • なぜか?
        • Catalyst は社内の開発者にとって有用なものの、コンポーネントは極力依存性をゼロにしたい
        • 外部の開発者に、コンポーネントへのコントリビューションの前に Catalyst について理解してもらうというのは避けたい
    • Open source components mean specific requirements
      • オープンソースにするコンポーネントは、モノリスなコンポーネントとは異なる(品質の)基準を設けている
      • 依存関係がほとんどなく、特定のフレームワークやライブラリに依存せず(agnostic)、軽量で、スタイルフリー(style free)で、 他のコンポーネントから切り離されており、1つのことを1つの方法で行う
      • 標準化された構成を用意し、完全なテストスイートとリンターのセットアップを保証してる
  • What's next?
    • Web Components の将来に期待しており、HTML spec への変更のプロポーザルもモニタリングしてる
    • 最近最も期待してるのは