09

intra-mart Accel platform で開発していて

最近 intra-mart Accel platform での開発を Mac + Sublime Text でやっている(スクリプト開発モデル)のだけど、なんかちょっとづつイライラしていて、だんだん積もり積もっていきそうなのでここらで一旦書き出してみる。(eBuilderを使えばいくらか軽減はされるのだろうが、それでも劇的に改善させるでもない、はず)

Jvascript 1.6 サポートが欲しい

Sublime Text には様々なプラグインがあって、Sublime linterとか入れているのだけど、Javascript 1.6 をサポートしていなくて困る。もしかしたらなにかオプション的なもので対応できるのかな。 デフォルトで入っているシンタックスハイライトが やっぱりJavascript 1.6をサポートしていなくて困る。いちおう、プラグイン(?)でJavascriptNextというのがあって、それで対応できるのだけど、ちょっと雑なハイライトなのでいまいちな感じがある。 こういうプラグイン、自分で作れるのなら作ってみたい気もするけど、今のところよくわからない。

スニペット/処理テンプレート

定型フォーマットにできそうな部分がいろいろあって、スニペットとか自動生成とか欲しい部分が結構ある。新しいページ作ったときに定型のhtmlとjsを作ってほしい。imart タグの補完(か、スニペット)も欲しいところ。 今の開発で結構共通化処理とか作っていて、そうするとファイルの先頭で結構お決まりのincludeとか初期化処理とか書くんだけど、その辺もっと簡略化したい。個人的には通常のViewかAjax処理かである程度処理のパターンが出てきたりしているのだけども、そうすると使用する共通関数などもある程度整理できるので、 例えばviewであればview用のお決まりの処理をテンプレート的に書いておいて、それをloadして、穴になっている処理を埋めるとか。ただloadの仕様によってこれはうまく行くかどうかというところがある。

DBアクセス周り

データベースのメタ情報読んである程度自動的にDAOを生成してほしい。今の開発である程度よく使うパターンは出てきているので、これ簡単に生成できると良いなあとか思っている。ただし、今のやり方がコンセプトとして問題ないかってのはあるかな。これやろうとするとjdbc使えた方が良いのでJavaで書かざるを得ないのかなあ。 DB周りというとORMだけど、ActiveRecordはよくしらんけどdjango見たいなORMはjsでは使いにくいだけだと思うので、ダックタイプ的に相性の良い感じのORMがあればいい。けどそれって現状提供されているAPIで十分なのかもしれない。

ベストプラクティスの抽出と集約

ディレクトリ構成も結構毎回考えるので、ある程度ディレクトリ構成のベストプラクティスを抽出して、コマンドかなにかで自動的に構成できるようにしたい。今やっているのはまずアプリケーション要のフォルダを切って、その中に以下のようなフォルダを作ったりしてる

  • ajax
    • maintenance
  • importer
  • validation
    • maintenance
  • views
    • maintenance

けど、この構成だとあるviewで使ってるajaxとかvalidationがばらばらに遠くに行ってしまうので、やめた方が良いのかなと思っている。ajaxはちょっとREST APIっぽくなっているので独立させたんだけれども、基本的にREST API として成立するものはそのように設計してrest_apiとかフォルダを切った方が良いだろう。 で、たとえばajaxとかvalidationを独立させるのをやめると多分こんな構成になる

  • view1
    • view1.html
    • view1.js
    • validation.js
    • ajax1.js
    • ajax2.js
    • ajax3.js

共有化できる ajaxはcommon-ajaxとかフォルダを作って管理するといいのかな。 あ、フォルダやファイル名はハイフンよりはアンダースコア使った方がいい。時々へんな制約に引っかかる事があるので。

これに関わらず、ベストプラクティスを収集していつでも使えるようにしたいなあというのはある。

テスト

Javascriptのテストを全くサポートしていない。外部からランタイムを呼び出せると良いんだけど、そんな事ができないような。eBuilderならできるんかな?いずれにせよCIはできない。

ルーティング

やはりルーティングがちょとした障壁になる。開発プロセスとの相性もあるかもしれないが。基本的に最初からすべてのページのURLを割り当てて、とか、すべてのページを作ってからとかいうことができれば特に問題とはならないのかもしれないが、今やってる方式はチケットドリブンなのでチケットは必要に応じて切られ、開発項目が流動的になっている。またちょっとしたものでも「あ、ここはAjaxの方が良いな」となった瞬間URLが増えるので、実装者の裁量でURLを作りたい事もあるだろうな。