Translate

2011年1月18日火曜日

書籍「Force.comクラウドアプリケーション開発」に悩まされる

セールスフォースを使いこなそう
Force.comクラウドアプリケーション開発


という本を買った。

1章の概要は
ほんとうに必要最小限の情報だけ。
エディション別の比較があったところは参考になった。

2章、3章は
ざらっとパラ見したが
コードを書かないで設定だけでアプリを作る方法を
紹介している。
ワークブックだと画面スナップがなくよくわからない
という人には参考になるかもしれない。

ただ画面はバージョン10なので
現時点で1世代前だから
多少入力項目名などが変わっているかもしれない。

私はワークブックをやっていたので
読まずにパス。

4章に
VisualforceとAPEXコードを書いた
アプリを作成し、
Force.comアカウントのない人にも
使える公開アプリの作りかたを紹介するもの。

なので、4章からはじめた..

が!
この本..
本当に校正やらチェックやらやったのだろうか..

まず、
Visualforceコードが
画面スナップのみでしかみせていない。
しかも、
スナップ内のコードの文字サイズが
0.5ミリくらい..

これ、読めってか!

..仕方ないので
目を細めて精読して読み取った。
読み取ったコードは以下の通り。


1画面目Visualforce:forminput
<apex:page controller="form_controller" tabStyle="lead">
<apex:form >
<apex:commandButton action="{!step2}" value="確認" />
</apex:form>
</apex:page>

2画面目Visualforce:formconfirm
<apex:page controller="form_controller" tabStyle="lead">
<apex:form >
<apex:commandButton action="{!step1}" value="Previous" />
<apex:commandButton action="{!step3}" value="Next" />
<apex:commandButton action="{!cancel}" value="Cancel" immediate="true" />
</apex:form>
</apex:page>

3画面目Visualforce:formfinish
<apex:page >
入力完了しました。
ありがとうございました。
</apex:page>

..なんだ、これ..
「確認」押して、
「Next」押して、
固定文言のページを表示するだけじゃん..
サンプルにしても
もうちょっと入力するフォームとかにすればいいじゃん..

..文句はあるけど
とりあえず続ける。

Controllerにあたるコードが4.2.3章に載っているんだけど、
まず前の章では一挙手一投足画面スナップで紹介しているのに
ここの章は全然書かれていない。
どこにAPEXコードを新規登録すればいいのか
一切書かずにコードだけペロンと載せている..

まあワークブックやっているので
設定→開発→Apexクラス選んで、
Visualforceのpageタグで定義しているform_controller
って名前のクラスを新規で作って、
本に載ってるコードをそのまま打ち込んだ。

で、
保存しようとしたら..
step2(), cancel()がないとかでエラー..

ああこのソースコード完成してないじゃん..
で、以下のように修正。

Apexコード:form_controller
public with sharing class form_controller{

public PageReference cancel() {
return Page.forminput;
}

lead ld;

public lead getLd(){
if(ld==null) ld= new lead();
return ld;
}

public void setLd(lead ld){
this.ld = ld;
}

public PageReference step1() {
return Page.forminput;
}

public PageReference step2() {
system.debug(ld);
return Page.formconfirm;
}

public PageReference step3(){
lead ld = getLd();
return save(ld);
}

PageReference save(lead ld) {
if(ld.Company == null){
ld.Company = 'uhuru';
}

if(ld.LastName == null) {
ld.LastName = 'abe';
}

insert ld;

PageReference leadPage = new PageReference('/apex/formfinish');
leadPage.setRedirect(true);
return leadPage;
}
}

..またこれも、
内容のないサンプルだなあ..

leadオブジェクト作って、
必須項目の会社名、名前だけ決め打ちで入力して
保存するだけ、じゃん..

いくら表紙で
マウス操作だけで作れる!
っていれたからって、
Visualforce/Apexコードの章
めちゃくちゃだ..

本当にゲラチェックとか
してるのかな..

..と書いた人のウフルなる会社のサイトを
見たのだけれど..

Salesforceの開発者ブログなどは
全然上級者っぽいひとがいそうな感じだ..

こういった技術者がいるのに、
なんであんな本つくってしまうのだろうか..




p.s.

この記事を書いた後に
Force.com開発者コースという研修を受けたのだが、
ある演習問題のソースをコピペしたんじゃないか..
っていう片鱗を見つけた..

いやいや!
Force.com開発の雄ウフル社の書籍だから
決してそのようなことはしないだろう。

これはきっと腹黒い私の憶測でしかない考えだ。
うんうん気のせい、気のせい。
こんな憶測書いてしまってごめんなさい。

0 件のコメント:

既存アプリケーションをK8s上でコンテナ化して動かす場合の設計注意事項メモ

既存アプリをK8sなどのコンテナにして動かすには、どこを注意すればいいか..ちょっと調べたときの注意事項をメモにした。   1. The Twelve Factors (日本語訳からの転記) コードベース   バージョン管理されている1つのコードベースと複数のデプロイ 依存関係 ...