Tbpgr Blog

Employee Experience Engineer tbpgr(てぃーびー) のブログ

達人プログラマー/二章 P63チャレンジ DSLのアイデア

  • チャレンジ

現在作業中のプロジェクトで上がってきている要求のいくつかを、
専用の言語で表現できるでしょうか?また、要求されているコードの
ほとんどを生成するようなコンパイラトランスレータを記述することが
できるでしょうか?

来年から関わるかもしれないとある案件に関して。
以前、一回関わっているので大体内容については想像がついてる。

該当プロジェクトにほぼ共通した仕様

  • ServerAからFTPでファイルの取得
  • 取得したらファイルから文字を読み取って変数に格納
  • 変換が必要な場合は格納前に変換処理あり
  • 必要がある場合はDBからデータの取得
  • DBから取得したデータを変数に格納
  • ファイルから取得したデータとDBから取得したデータをCSVに変換する
  • CSVFTPでServerBに送信する

上記をあるサービスA〜Eの5個があるとしたらすべて個別にベタ書きで
作成しているのが現状。
現状ではサービスが増えるたびにコピペでコードを作成している。

それを踏まえて専門言語化による改善案。

設定ファイルに

  • ファイルの取得元IP、ユーザー
  • 取得元ファイルパス、ファイル名
  • 取得したファイル内の文字の読取位置X文字目からY文字
  • ファイル内の各項目の変換ルール
  • DBのコネクション情報
  • DBから取得するデータのSQL
  • 取得したデータに変換が必要なら変換ルール
  • CSVに出力するデータを列挙
  • CSVの区切り文字
  • 送信先サーバーIP、ユーザー
  • 送信先ファイルパス、ファイル名

このぐらいを設定してやればプログラミングレスでサービスを作れそうな気がする。
問題は、私が全く使ってない言語かつ私自身の発言力が低いことか。

実際に担当するかしないか分からないのが一番の問題だったりしますが
もし担当することになったら事前準備の時間をもらうか、別働隊にさせてもらって
既存サービスの裏で改良版システムを作らせてほしいなー。

これが成功したらこの案件にかかるコストを大幅削減できる。
テストの自動化も全く導入されていないので、設定ファイルと自動テスト
だけで運用出来る内容に再構築したらさぞかし気持ちいいだろう。

達人プログラマー―システム開発の職人から名匠への道

達人プログラマー―システム開発の職人から名匠への道

  • 作者: アンドリューハント,デビッドトーマス,Andrew Hunt,David Thomas,村上雅章
  • 出版社/メーカー: ピアソンエデュケーション
  • 発売日: 2000/11
  • メディア: 単行本
  • 購入: 42人 クリック: 1,099回
  • この商品を含むブログ (348件) を見る