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

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

OutSystems戦記第1話「小林、呪文を唱える!!」

終わった。
今、魔界から生還してきた勇者・小林です。
OutSystemsトレーニング基礎コース4.2は、初学者にはキツかった。
朝7時40分から原稿を書き始めて、アプリが完成したのが11時頃。

所要時間3時間20分、Wordで原稿35枚、文字数5,796文字。キツかった。本気で辛かった。
お外は快晴で天気がぽかぽかしているのに、こっちは、朝っぱらからずっとプログラミングして、それを記事にする。

延々と3時間20分も書いていました。
それではこの暗黒のトレーニング基礎コース4.2という名のソドムをここに再現し、採録していきたいと思います。

 

4.2、リンクスタートです。

f:id:neomatsudaira:20160302113250p:plain

OutSystems基礎コース4.2のトレーニング内容は

  メソッドからの戻り値

   カプセル化されたロジックから戻り値を出すことで、機能を向上させます。

です。
終わってみて、カプセル化とか言われても未だに意味不明です。
なぜ、こうも難しく書くのか?今回のトレーニングでやったことを日本語化すると、「注文が入った時、注文された数だけ在庫の商品を減らすプログラムの設計」です。

前のエントリーでは「注文をキャンセルするとキャンセルした分だけ在庫の商品数を増やすプログラム」を設計しました。

だけど、それはキャンセルされた場合のみのプログラムでした。今回は在庫から売り場へ商品を出荷したときのプログラムを作っていきます。

簡単そうに見えたのに、これが悪夢のはじまりになることを、このときの小林は知る由もなかったのです。

 

動画の説明が開始される

f:id:neomatsudaira:20160302114259p:plain

うむ。
次へ行こうか。

 

f:id:neomatsudaira:20160302114414p:plain

了解。
ここら辺は超簡単です。開始4秒の頃は本当に幸せでした。
ていうか、楽勝だと思ってました。

まさかこの後関数を覚え、ヒャダルコ使えるようになるとは思ってもみませんでした。

 

f:id:neomatsudaira:20160302114810p:plain

注文に商品を追加すると

 

f:id:neomatsudaira:20160302114854p:plain

その分、在庫から商品を減らすプログラムを作ります。

まずロジックにUser Actionを追加する。

f:id:neomatsudaira:20160302115138p:plain

User ActionはC言語でいうところの関数です。
ただ、このトレーニングはノンプログラマー向けのトレーニングなので、どう説明したらいいのか分かりません。

呪文を唱えると召喚される魔物みたいなものです(笑)。
関数の中身が「(×2)」だったとすれば3を放り込むと6にしてくれるプログラムが関数です。

この場合2を放り込むと4にしてくれます。
そして、この放り込む数を「引数」と呼びます。
さらに、関数から帰ってきた数を「戻り値」と呼びます。

「(×2)」プログラムくらいだったら関数は使いません。

もっとアホみたいに複雑なものを通常は使います。
今回は在庫・注文の連動プログラムなので、注文が入った瞬間に在庫が減るプログラムを関数で作ることになります。

で、それをヒャダルコみたいに呪文を1回唱えることで、一瞬のうちに召喚してしまうのです。しかもヒャダルコと2回唱えれば、2回関数が呼び出せます。

 
制限回数がないため、何度でも呼び出すことができます。
だから呪文みたいなものです。今回の関数の完成図はこれ↓です。

f:id:neomatsudaira:20160302121601p:plain

(小林の開発画面だよ)

これほどに複雑なコードをたった一つの言葉で呼び出せるのが関数です。OutSystemsの場合はこれをUser Actionと呼んでいます。要するにユーザーが独自に作れる魔法のことです。

 

プログラミングをしているとたまに魔法使いみたいな感覚を覚えるのは、この呪文を自分で設計し、自分で呪文に名前を付け、それを唱えられるからです。

そこには呪文の設計のおもしろさがあるのです。
ドラクエとかの場合はレベルが上がると勝手に呪文を覚えてくれますが、プログラマーの場合は、この呪文の設計図を自分で作るのです。
そしてこの設計図のことをアルゴリズムと言うのです。プログラマーにとってアルゴリズムが一番大切と言われているのはこのためです。

 

でも、一度作ってしまえればMPみたいなのがないため、何度でも呼び出すことができます。

f:id:neomatsudaira:20160302121651p:plain

 (UserActionを追加した小林の開発画面)
まだ何も作っていないため、まっ白です。今回の呪文の名前は「AddOrderItem」です。
OutSystems Platformでは英語にしか対応していません。


なのでヒャダルコとか書けないです。書く気まんまんだったのですがねw
OutSystemsは画面内全部英語だから英語アレルギーの人は相当キツいと思います。
ExcelのVBAとかだと日本語でプログラムを書ける部分が結構あります。


それでもa1とか英語で書くことのほうが多いですが、Excel VBAはとても親しみやすい言語です。

f:id:neomatsudaira:20160302121811p:plain

投げ入れる数(引数)の説明ですね。
引数は数字とは限らないです。この場合データベースを投げ入れています。文字を入れることもあり、なんでも入れられます。

 

 引数を作り終えた

f:id:neomatsudaira:20160302122129p:plain

 

次にデータの切り取りを行う。切り取るデータはこれ

f:id:neomatsudaira:20160302122417p:plain

 

貼り付け先は今作ったUserAction内の「AddOrderItem」。

f:id:neomatsudaira:20160302122632p:plain

とりあえず、画面内に貼り付けて

 

ドッキングさせる

f:id:neomatsudaira:20160302122729p:plain

 

プログラムをつなぎ合わせる

f:id:neomatsudaira:20160302122819p:plain

移植手術みたいなものだったため、ロジック内部が拒絶反応を起こしてしまい、バグが大量に生まれました。
次号のトレーニングにおいては「バグとの戦い」を記録することになります。

 

(トレーニングは続きます)