これは Mayaa Advent Calendar 2015 の23日目です。昨日は「Mayaaの経験を活かして、JSPを注意して使う方法」でした。
あと3日です!
明日はクリスマスイブ、今日は天皇誕生日、一気に年の瀬な感じです。皆さん、年賀状は書きましたか?まだの方は、年賀状ソフトをネット販売で買いましょう。私の勤務先のお客様です。w
ちなみに僕は5年以上年賀状を書いていません。
もし、プログラマー初案件がMayaaだったら
今日のテーマは教育です。プログラミングは学校で習った程度で、Servletとか作るのは初めてな感じの新卒が、Mayaaを使っているチームに配属されたとします。
経験者なら良いんです。
Mayaaの公式ドキュメントを読んでください。その後、僕のブログで、このアドベントカレンダーの1日目から7日目を読んでくれれば良いんです。
JSP、Thymeleaf、JSF、Mixer2を経験しているなら、17日目から21日目も読んでおくと理解の助けになるでしょう。
後の記事はアーキテクトやリーダープログラマー向けなので、ぶっちゃけ読まなくてもいいです。(笑)
さて、本当にど初心者が入ってしまったらどうでしょうか?「JSPでは〜」というのが言えなくなります。
とりあえず、JSPを理解してもらう。
最近はフレームワークでドーンと最初から統合されたシステム作りをするのが主流だと思いますが、MayaaはJSPと同じレイヤーにするために、そのものはシンプルでもないのですが、JSPを覚えておく必要はあります。
昔だったらStrutsを使ってMVCにしても良かったのですが、今はSpringとかJava EEのような重量級をいきなり使うのはきついので、いっそ、生のServletとJSPでページを構成する体験をしてもらうしかないのかなと思います。
いしがみメソッドの4種類それぞれを実装してもらう
Mayaaそのものは柔軟性のある技術ですが、実際のプロジェクトでは、デザイナーと協調するために、いしがみメソッドでは、4種類の書き方に限定することを提唱していました。
しっかりと、4種類だけに限定して書く癖をつけてもらいましょう。
3日目から引用すると、
- *_HERE
- その場所に文字列を出力する
- *_TAG
- そのタグの属性を変化させたり要素を足したりする
- IF_*
- そのタグ及びその子要素が特定の条件にもとづいて消える
- LOOP_*
- そのタグ及びその子要素を特定の条件に基づいて繰り返す
そして、それぞれの書き方は
<!-- タイトルを出力します -->
<m:write m:id="TITLE_HERE" value="${page.getTitle()}" />
<!-- 商品画像を表示します。src属性を制御します -->
<m:echo m:id="ITEM_IMAGE_TAG">
<m:attribute name="src" value="${image.getSrc()}" />
</m:echo>
```markup
<m:if m:id="IF_MEMBER" test=${context.isMember()}>
<m:echo><m:doBody /></m:echo>
</m:if>
```markup
<m:forEach m:id="LOOP_ITEM" items=${items}>
<m:echo><m:doBody /></m:echo>
</m:if>
きちんとレビューをしてこの通りに書いていなかったら直させるようにしましょう。
これらを書くことは業務の中で圧倒的に多いことです。
まとめ
使い方を絞ったことによって、教える時も絞って教えられるメリットがあります。
ただ、教え方は人それぞれ、教わる方も、それぞれ向いたやり方は違いますので、「これがベストだ」とは言いづらいところがあります。
なので、今回は歯切れが悪くなってしまいますが、まあ、適宜、教育する人、教わる人で、良く話して、ベストなやり方を模索してください。