シフトレフト

元々ソフトウェアテスト文脈で使われることが多かったが、最近ではソフトウェアセキュリティの文脈でも使われるようだ。 

セキュリティにおける 「シフトレフト(Shift Left)」 とは、より早期の段階でセキュリティに関する問題に対処する、ソフトウェアの開発や運用の考え方です。元々この概念は仕様を満たしているか等の検証に対するソフトウェアテストのジャンルで使われていた言葉ですが、近年セキュリティの世界で注目されています。

前倒しで対処 ー セキュリティを考慮したソフトウェア開発アプローチ「シフトレフト」とはー | SQAT®.jp

内部DSLと外部DSL

通常のコードとDSLコードを統合する方法は、基本的に二つあります。 一つはDSLコードと通常のコードを別々のファイルに保存する方法です。 その後、DSLコードを自動コード生成機能によってプログラミング言語のコードに変換するか、もしくは、プログラムでドメイン固有言語のコードを読み込んで実行します。

この一つ目のアプローチは汎用言語(GPL)とDSLコードを分離するため、外部DSLと呼ばれています。 SQLは外部DSLの一例とみなすことができます。

二つめのアプローチは、DSLコードと汎用コードを同じプログラムファイルに混在させることで、両者をより緊密に統合するというものです。 DSLはGPLの文法とパーサーを再利用し、ホスト言語の利用可能な拡張オプションを利用します。 このようなシナリオは、内部DSLと呼ばれます。

複雑な外部DSLを開発する

Ruby とかは柔軟な言語なので、かなり内部DSLが作りやすい言語だなと思う。

あわせて読みたい