「TypeScriptによるBackend開発 ~開発効率化と運用改善のくふう~」に参加してきました

GraphQLのダイエット術 TypeScript Language Service Pluginで未使用フィールドをなくす

  • Yasuyuki Matsumotoさん

tsとGraphQL

  • フロントエンドでAPIからデータを取得する時にオーバーフェッチングが起きる
    • GraphQLだとそれを発生させないでデータ取得できる
    • 未使用フィールドのチェックは手動でやらないといけない
    • Typescript Language Server Pluginで自動で未使用フィールドを検出する
  • 未使用フィールドの検出

SQL

  • PrismaやTypedORMもあるが直接SQLを書くケースも
  • SQLだと型安全じゃないのが課題
    • Prisma TypedSQLなど使えば結果に型がつく
  • SQLの補完やシンタックスエラー
    • エディタのプラグイン
    • SQLのLanguageServer
    • ts-sql-plugin
      • tsの文脈を理解してくれている
    • GraphQLの例のように不要なフィールドの取得を検知できる

TypeScript Compiler APIを利用したデータベースドキュメントの自動生成

  • Hironori Nakanoさん

DBドキュメント

  • 社内ではエンジニア以外の様々な人がDBのデータをさわる
  • Schema Spy
    • エンティティの関係図をUIで可視化してくれる
    • 便利だけど反映作業が手間だった
  • 運用のしかた
    • 説明のmd書いてxmlに変換してスクリプトを実行
      • ソースコードと別管理なので同期を取らないといけない
      • コメントとソースを一箇所にまとめたい
    • JSDocでコメントを書くようにした
      • TSCompilerAPIでJSDocを抽出してxml生成
      • JSDoc単体で見ても便利なので書く習慣を作りやすい
  • TypeScript Compiler API
    • tsのコードのastを解析できる
    • JSDocの検出も容易にできる