現在までの記録(1)

この計画も、今日始まったものではありません。一念発起し、様々な検討を重ねて、半年以上が経過します。
それまでの記録を。(素人の試行錯誤記録なので、ちょっと内容が冗長…。)


プログラミングの経験としては、15年ほど前にC言語を覚え、その後プログラミングにはあまり触れずに生きて来ました。(HTMLなんかは書きますが、これをプログラミングとは言わないですよねぇ。)
その後、機会があってPHPを覚え、趣味でちょっとしたアプリケーション*1を組みました。このサービスは、正に趣味で作っていただけなので、モダンなプログラミングとは掛け離れた、行き当りばったりな開発で、(セキュリティ対策はそれなりに真面目に行っているものの)、メンテナンス性・スケーラビリティ・パフォーマンスなんぞ全く考えていないシロモノになってしまいました(笑)

そんな時に、実現したいサービスのアイデアが閃き、将来のこともきちんと見据えたプログラミングを心がけようと、色々調査・検討を始めました。情報源は、Webと本*2。また、技術評論社の「SoftwareDesign」と「WEB+DB PRESS」の購読を始めました。

最初は、経験もあることですし、LightweightなPHPで作ろうと考えていました。しかし、色々調査を進めるうちに、以下のような理由から開発言語としてJavaを選択することにしました。

  • 私のプログラミング脳の根本にあるものがC言語であり、静的型付け言語の扱いも好きであったこと
  • 当時全く理解していなかった「オブジェクト指向」の学習から入れるメリットがあったこと
  • 書籍やウェブ上の資料が豊富であったこと
  • フレームワークやライブラリが充実していると感じたこと
  • ウェブアプリケーションに限らず、多方面に応用可能であること

そして、さらに調査を進め、IDEにはEclipseを採用し、試行錯誤を始めました。そしてフレームワークの選択。一般的な職業SEさん達が手がけるプロジェクトと異なり、1人で身軽な開発であるため、最新の技術を取り込んだプログラミングも、ひとつのテーマとなりました。

最初は、PHPで検討していた時にMojaviについて調べていたところから、プレゼンテーションにはStrutsを採用しようと考えていました。また、データアクセスにHibernateを、そして近頃話題の技術「DIコンテナ」にはSpring採用しようと計画を進めていました。

が、国産DIコンテナ「Seasar2」を発見するに至り、状況が一変…。すばらしい。というわけで、Seasar2(S2Container)を中心に、WEB+DB PRESS Vol.36 で特集されている Super Agile の開発スタイルを採用! あらためて、すばらしい。

WEB+DB PRESS Vol.36

WEB+DB PRESS Vol.36

最近、具体的には、S2Container+Teeda+S2Daoの使用を前提とした開発手法を勉強中です。

S2Daoに代わる、Uujiの存在も気になりますが、まだリリースされていないんですよね。残念TT
また、Teedaにおいてレイアウト継承機能が使いたい…、というのが目下の願いであります。

将来実装される予定であるTeedaのレイアウト継承機能を意識した開発って、ひとまずどうしておくのが吉なんでしょうかねぇ…。

*1:現在もサービス提供中ですが、閑古ってるので放置中(汗)

*2:本を買っていたら、書籍代破産しそうになったので、図書館の利用を始めました(笑)