OutSystemsエンジニアの猛勉強ブログ

初心者OutSystemsエンジニアのブログです(ぺこり)。

バリデーションアルゴリズムを拡張する・後編(基礎トレ3.2)

前回の続き。
入力検証アルゴリズムをこのエントリーで完成させます。
まずはAssignアイコンについて。

 

Assign内で第一にやっている処理は

f:id:neomatsudaira:20160227034708p:plain

”Product_QuantityInStock.Valid=False”

ですね。画像の右下黄色の枠で囲んだコードです。
OutSystems Platformはノンプログラマーでも操作できるという謳い文句がありますが、これ、ノンプログラマーでは無理です。

自分、現場での経験はないけど参考書を元にプログラミングした経験はあるので、このコードの意味が分かります。

 

  X =  2

 

は、数学だと「xが2ですよ」という意味です。
だけど、プログラミングにおいては意味が変わってきます。プログラミングにおいて上記の数式は、xという箱に2を代入しますよという意味になるのです。

この説明を踏まえて

 

  Product_QuantityInStock.Valid=False

 

の意味はどうなるのかというと、クアンティティストックの中にあるValidという箱の中にFalseという値を代入しますという意味です。

で、ValidにFalseを入れるとアルゴリズムの1つ下の

条件文が

 

  ProductForm.Valid
  (このコードの意味は、Validは真ですか偽ですか?です)

 

のため、ValidにFalseを入れたため、このIF文がFalseとして処理されるのです。そうすると右側のEndへと処理が流れるということです。
だから、エラーとして正しく処理され、サーバーに間違ったデータが保存されることを防ぐことができるということです。

でも、プログラミング未経験でこの説明をしないままだったら、全員が着いて来れなくなります。それを着いて来れない本人が悪いと言うのは間違った行為です。

ITの素養のない人に向けてのトレーニング動画なのであれば、最低限の知識は伝えておくべきです。

 

ほらね

f:id:neomatsudaira:20160227035957p:plain

”フローで次にチェックする、FormのVaidプロパティに影響を与えます。”

これだけの説明では理解は進まないです。
Assignは変数のセットの機能を持っています。
そして、このトレーニングをしている人は変数すらも知らないでやっているのです。さらに、Assignの説明すらもが省かれています。

やってる人はノンプログラマーなのだから変数知らないのは当然なんです。それを度外視しているのがこの動画のミスであり、落ち度です。

情報技術(IT)の知識を知らないでやっているため、途中で挫折する人が続出するのです。それは理に適っている。
つまり合理的なんです。

 

次に、間違った入力をしてしまったときに警告するメッセージはこちら

f:id:neomatsudaira:20160227040428p:plain

警告メッセージの内容が読めないwwwwwwwwwwwww

 

「stock needs to be greater or equal than zero」の意味は、

f:id:neomatsudaira:20160227040715p:plain

“在庫が大きいか、ゼロと同等にする必要があります。”

警告メッセージの意味が分かりにくいため、適当に自分も警告文を書いておきます。在庫に-500とか入力したユーザーに贈る言葉ですので、

 

まあこんな感じでしょうか。

f:id:neomatsudaira:20160227041019p:plain

 

条件分岐もう一つ作ります。

f:id:neomatsudaira:20160227041151p:plain

前回のは在庫に0以下を入力したときの条件式でした。
今度は商品の金額にマイナス値を入力したときの警告メッセージの作成です。

 

金額が0より大きければTrueなので条件文はこうなります。

f:id:neomatsudaira:20160227041643p:plain

” ProductForm.Record.Product.Price > 0”

日本語訳すると入力フォーム内のレコードのなかにあるプロダクトデータベースのプライス列の箱の中身が0以上だったらTrueという意味です。

Falseのときは金額に-5,000円などのたわけた数値を打ち込んでいる輩に対しての警告メッセージになるため、同じように処理をしていきます。

 

まず、ValidにFalseを実装させます。

f:id:neomatsudaira:20160227041920p:plain

 

Falseを実装した小林の開発画面はこちらです。

f:id:neomatsudaira:20160227042018p:plain

 

次に警告メッセージを入力します。まあ、適当に

f:id:neomatsudaira:20160227042131p:plain

こんな感じで。
はい。バリデーションアルゴリズム(改)が完成しました。

 

アルゴリズムの完成図

f:id:neomatsudaira:20160227042312p:plain

結構簡単でした。ただ、ITの知識がないと意味不明になると思います。
にしても見事なまでにすべてが英文ですね。

 

それでは、アプリを起動してバリデーション(入力検証)を試してみます。

f:id:neomatsudaira:20160227042526p:plain

金額をわざと-500円にして

 

Saveボタンを押してみると

f:id:neomatsudaira:20160227042811p:plain

ちゃんと波紋パワーが伝わりました。
日本人として誇らしいです。

しかも画面に警告文を出すことで、まだこの画面に留まっているため、やり直しをすることができます。また、サーバーに変なデータを保存させない検閲にもなっています。

 

次に在庫量を-2にしてみます。
ちゃんと警告メッセージが出るか検証してみなければなりません。

f:id:neomatsudaira:20160227043044p:plain

 

この状態でSaveボタンボタンを押すと

f:id:neomatsudaira:20160227043211p:plain

ちゃんとざまああああああああああああ!!!が表示されました。
日本人として誇らしいです。

 

<アプリを作り終えた感想>

アルゴリズム回なので楽しかった。
指の皮が剥がれた状態で2,000文字タイピングしたのでちょっとだけ辛かった。

自分はアルゴリズム好きだからやってて辛くないのだと思う。アルゴリズム嫌いな人がこのトレーニングやったら、とても大変なトレーニングだと印象に残るのだと思う。

すべて英語で記述しないといけないため、アルゴリズム内は英文だらけだったけど、やっていることはかなり簡単なので、アルゴリズムに親しんでもらえればと小林は考えます。

コンピューターは情理ではなく、論理で動いているため、コンピューターを理解しようとすると最終的にアルゴリズム(論理演算)にぶち当たります。

なのでアルゴリズムは好きになってしまったほうが楽です。どうしても避けては通れない部分です。「知りたいという気持ち」を持続させれば、あとは脳が勝手に覚えていってくれます。

 

(次のトレーニングに続く)