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

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

注文伝票アプリ詳細画面の設計(基礎コース1.2)後編

小林は働いている。
誰からも働けとは言われていないのに、労働している。
なぜなのかは分からないが、このままいくと18時間労働ペースである。

さぼっても多分バレない。
だが、さぼってしまうと、自分にはバレてしまうのである。
小林はそれがすごく嫌なのである。

 

他者にウソを付くことはできても、己にそれをすることはできないのである。
努力しなければいけない。小林は障害者なのだからアホみたいに、大量に、努力する必要がある。なぜなら、日本は議会制民主主義の国であり、議会制民主主義の特徴は多数決だからである。

 

多数決においては少数派は損をするのである。
障害者という少数派になってしまった以上、非常に生きにくい。
だが、それらの苦痛や困難や悪意や憎悪や不平不満のすべてを努力で叩き潰すことは可能なのである。

 

別に上司は仕事しろとか言わない。
だが、仕事はいい。別に好きではないけれど、己を磨くのに、自己鍛錬のために仕事以上に有用な行為はないと障害者の小林は考えるのである。

 

努力に努力を積み重ね、その上に努力を行う。

己の苦痛のすべてを努力によって駆逐する。
だから仕事はいい。この世は精神の時代である。
少し努力するのではなく、頭がおかしくなるくらいに努力すれば、確実に結果は出る。
では、注文伝票アプリの詳細画面の設計を始めようではないか。

今までデータベースの設計と伝票一覧画面の設計を行ってきた。
ここでは伝票の詳細画面の設計に入る。

f:id:neomatsudaira:20160204210422p:plain

この画面は何を意味しているのか?

これは、「詳細画面を生成して、インプットパラメーターを設置して、Preparationを作って、アルゴリズムを作って、インプットパラメーターをドラッグアンドドロップしたら、インプットパラメーターの名前がOrderIdだからOrder(注文)のデータがリンクされ、データベースがフィルタリングされ、ドラッグアンドドロップ一つでデータベースの構築ができた」

の図である。

だんだん小林もラリってきた。
ここまで開発して来たみなさんなら、この文言もスラスラ読み解くことができるはずである。頑張ってできないことなんて、実はあまりないと思われる。

 

先へと進む。

 

OutSystemsは覚えれば覚えるだけもっともっと楽しめるはずである。
トレーニング画面では次のように説明している。

f:id:neomatsudaira:20160204211124p:plain

これだけかい!!
とあなた方は思われるかもしれない。
だが、8時間も10時間もOutSystems Platformをいじっていると、なんでなのか分からないけど、体が勝手に動くようになる。

 

動画の説明が分からなくても、体が勝手に動くのである。

f:id:neomatsudaira:20160204211513p:plain

インプットパラメーターをアルゴリズム内にドラッグアンドドロップしただけで、データベースがひとりでに設計されてしまったのである。

 

よく分からないけど、インプットパラメーターをドラッグアンドドロップしただけで、全てを開発基盤がひとりでに理解してくれ、解釈してくれて、勝手に作ってくれたのである。これ、プログラミングしたら500行くらいかかると思うのですがなんか意味不明だけど、ドラッグアンドドロップしただけなので、バグやコードの打ち間違いが一切存在せず、なんかもう知らんけど、全部やってくれるということだけは分かります。

 

この1週間OutSystems使ってて思うんだけど、ものすごく高度なことを、ものすごく簡単な操作で最低限の処理工数でやっているため、日本語の字幕が笑えるほど難しい。

 

だけど、操作自体は別に難しくはない。
JavaやC#やPHPのエンジニアが500行以上書いているものと同じコードを一つのドラッグアンドドロップで作ってしまうため、どうしても説明が難しくなるのだと思う。

それと、ドラッグアンドドロップしただけだからバグを出そうにも出せない。プログラミングは500行中たった1文字でも打ち間違えれば動かないか、変な動きをしてしまう。

 

つまり、1箇所でも間違えるとバグが発生してしまうのである。

 

だけど、超高速開発ツールでドラッグアンドドロップする場合、どう考えても間違えようがない。トレーニング動画の説明は頭おかしいくらい難しいけれど、これ、そもそも難しいことをやっているわけであって、既存のプログラマからしたら500行のソースコードをドラッグアンドドロップ一つで作ってしまっているため、反則とかズルとか言われても仕方がないと思われる。

 

ノンプログラマーの自分としては、なんでこんなに開発基盤のUI(ユーザーインターフェース)が難しいのか、これが普及に歯止めをかけている原因だと思われる。

f:id:neomatsudaira:20160204212359p:plain

いや短縮させすぎだっつーの!!

 

そして詳細画面のIF文に入るのである。
やってることは入門編と同じである。

f:id:neomatsudaira:20160204212649p:plain

“OrderId = NullIdentifier()”

 

これの意味は

 OrderId=・・・注文が

 NullIdentifier()・・・なかったとき

 

よって、このIF文の条件分岐は「注文がなかったとき」が真、注文があったときは偽の画面を表示させるというものである。注文がなかったときにやることと言えば、新規注文画面の設計であり、注文があったときにやることといえば、注文の編集画面の設計である。

超簡単である。

こういう基礎的なコードは何度も何度も書くことで体が自動的に動くようにしてしまうのがいい。そうするとサイボーグ21のように何も考えず体が動くようになる。

 かくいう私もそうしています。
(5回反復して作り直しています。)

 

ここも反復して頭に叩き込む

 

偽のときのコード

f:id:neomatsudaira:20160204213834p:plain

偽のときはOrderデータベースのID列が主キーのため、重複しないよう注文番号を指定している。
既存の注文番号を表示させたいのでこれを頭に叩き込む!

(これも5回反復した)

 

タイトルが完成したので、次は詳細画面のコンテンツを構築する

f:id:neomatsudaira:20160204214143p:plain

(まずは、ドラッグアンドドロップでフォーム(入れ物)を設計する)

 

次はフォーム部品(入れ物)にデータを格納し構築する

f:id:neomatsudaira:20160204215215g:plain

うむ。
ハイスピードなプログラミングである。
というか、速すぎる。しかもドラッグアンドドロップだけのため、バグが出ない。

 

次は、詳細画面のボタンの構築 

f:id:neomatsudaira:20160204215756g:plain

速い。速すぎる。
開発スピードがとてつもなく速いのである。
我々はいまイノベーションを目の当たりにしている。


ちなみに、両アニメーションとも、私の開発画面のキャプチャ動画である。

 

そうして、

f:id:neomatsudaira:20160204220047p:plain

恐ろしいスピードで一切のバグがなく詳細画面が完成してしまった。
小林は驚愕した。もしかして、このソフトすごくね?
と、今頃思った。

M氏に爆笑されるのが恥ずかしかったため、私だけの記憶に留めておきたいと思われる。
次のエントリーではお待ちかねの完成画面である。

 

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