Closed10
AWS CDKにおける「再利用性」を考えるのスクラップ
- 後藤さん
- AWS HERO
再利用性の実現方法
- 秘伝のタレ
- 属人化
どのようなConstractにすべきか?
スタックのpropsをConstructにそのまま渡さない
- 他のリポジトリで利用しにくくなる
propsのプロパティはreadonlyに
- 誤った上書きを禁止する
propsのバリデーションはTokenに注意
- Tokenとは後で解決される値を仮の値で格納しておく仕組み
- Token.isUnresoleved()でTokenか判断
- falseの時はバリデーションをする
number型やstringの方はバリデーションを想定すると良い
propsやConstructで公開するリソースのプロパティはIXxxx型に
- Bucket型じゃなくてIBucket(interface)にする
- IXxxは読み込み専用リソース
props=入力でIXxxにしておくと、スタック外のバケットもConstractに渡せる。
Constractで公開するpublic変数をIXxxxにすると
- 更新メソッドがなくなる
propsやConstractで公開するプロパティにプリミティブ型を避ける
bucketName:stringよりbucket:IBucketに
- 取れるものはIXxxxインターフェースに
publicメソッドを用意
-
特に要望がなければ作らない
-
リソースのアタッチはコンストラクト側でアタッチ
-
${id}などを利用してコンストラクト名がかぶらないようにする
バレル(index.ts)によるモジュール性向上
- 関連リソースを一つのモジュールにまとめる
- モジュールのポータビリティアップ
Costract単位のユニットテスト
Constract自体の信頼性・保守性のアップ
- テストが大量になるとsynthが遅くなるデメリットもあり
このスクラップは5ヶ月前にクローズされました