
【いきなりStudio16】(ちょいコラ)自称さんは、IF文と正常処理でやらかす=縦にも横にも壮大なソースを組みたがり、大きなディスプレイを買い求める( ´∀` )~ガチラーに、大きなディスプレなぞ要らぬ。4GBのノーパソさんだけで充分じゃて( ´∀` )
さてと、前回
で、
インスタンスのセット
までは説明したんだけど、やってく中で、
可読性=読みやすさ
って言葉も出てきたし、次回からIF文を使った
確認作業
が増えてくので( ´∀` )ここで一旦、
「動けばいいや」の自称さんがやりがちな
IF文の組み方
を( ´∀` )
ここまでのソース

処理が固まりごとに条件分岐を通りつつ、あくまでも、
上から下
に繋がるように書いてるんだけど、
教科書とかがそうなっているからなのか
例えば、フォルダが存在するかで存在するTrueの時に、オイラは


次の処理へ繋ぎ、ファイルの存在も確認出来たら、同じ感じで、

次の、
MKakuConfigファイルの読み込み
に繋げてるだけ
なんだけど、IF文を漫然と使ってるだけな人って
処理が通れば同じ~~~
で、必ずと言っていいほど、

Thenの中にどんどん次の処理を
書いていっちゃう人が殆ど( ´∀` )
これって、オイラのノーパソ(ノートPC)のレイアウトだと
ThenとElseが縦だからまだ横への広がりが少ないんだけど、開発現場での普通のUiPath Studioだと、
横にThenとElseが並んでる
横にどんどん広がっていくんだよねえ、、、👀💦
まあ、それだけで見にくい、見にくい。
そのうえ、Thenの中に次の処理を入れて折りたたんじゃうと、、、

これだけにまとまっちゃうから、
初めて見た人が、何をしてるのか分かるようで、
いざシーケンスを展開してみると、ファイルの存在確認とConfigファイルの読み込み処理も隠れとんのかい(# ゚Д゚)
ってなる。。。💦
ゲンナリするよね( ´∀` )
なので、存在確認なら存在確認ってひとつの処理単位で
IF文のThenの中には、
次の処理を入れずに下に繋げる
👉処理の塊ごとにシーケンスを分ける

で、下へ下へに繋げた方が
横にも広がらない
地雷を潜ませるようなアクティビティにならない
👉何をしてるのかぱっと見、
圧倒的に分かりやすい
注釈も日付と、誰が何をしたかだけ書いておけば、これだけで
いつオイラが何をしたかすら、
一目瞭然でしょ( ´∀` )
こーゆーソースの組み方をしない人が、
名前も変更されてない
注釈もない
縦にも横にも長くて壮大なアクティビティを組みまくって
冗長なソースにして、
組んだ自分すら見にくい
から
大きなディスプレイを買って、
開発用のPCに繋げたがる( ´∀` )
綺麗でシンプルなソースを組む人=ガチラーなら、
そんな冗長で壮大なソースになりようがないし、処理時間もかかるような組み方をしないので、
4GBのノートPCで充分じゃて( ´∀` )
👉UiPath も民主化されたテクノロジー
ですぞ👀💦
ここでポイント①:なんでStudioXの時はしなかったの👀❓
それはひとえに、
で紹介した、
Throwアクティビティ
が、StudioXの初期機能でなかったし、確認用に組み込む
メッセージをログアクティビティ
もなかったから。だから、StudioXは
下へ下へどころか、
内へ内へ組んでたでしょ👀
一歩前へ:なんでThenのときにメッセージをログ入れてるの👀❓
これねえ🧐たしかに実際、どのプログラミング言語の開発現場でも
エラーハンドリング
ばかりに気を取られて、
Elseには、Throwなんかの処理を入れてるのに、
Thenには、何も処理を入れない=完全にスルー

みたいなソースやコードの書き方をしてる人や組織を見るんだけど、
これってひとつ大きな問題が隠れてるんだよね、、、👀
非常に長いソース全体でこれをやると、そう、実行したときに
エラーが出た場合にだけメッセージを出したり、確実にこかすだけ
👉どこまで正常に処理が終了してるかが
ログを見ただけで掴みにくい
例えば、

Thenのメッセージをログをコメントアウトして、ファイルをデバッグしてみると、、、

処理は綺麗に流れたけど、今までのログ

と見比べて、どちらの方がログを見ただけで
どの処理まで正常に実行されたかが分かるか
って話だし、
じゃあ、どこかでエラーでこけた場合は❓👀
👉正常に流れた場合のログも出力した方が、
エラー原因も辿りやすいでしょ( ´∀` )
もう一歩前へ:メッセージをログアクティビティを頻繁に入れると処理時間が長くなるのでは👀❓
まあ、何万行とかって繰り返し処理のときに入れると確かにそうなんだろうけど、逆に繰り返しで一行書き込める度に入れなきゃいいだけの話じゃん
👉繰り返しの前と後で正常に処理が終わったかだけそこは分かればいいんだから。それこそ、
ケースバイケースで臨機応変にやればいいだけじゃね( ´∀` )❓
実際、さっきのログの処理時間に大差ないでしょ( ´∀` )
要は、正常とエラーは表裏一体
で、エラーにだけ神経を使って、
いくらエラー対応の処理とか確認ログを差し込む
なんかをやっても、
どこの処理まで正常終了したかが分からない
👉結局、原因特定に時間がかかる
=どこまで処理されたか分からない
👉ロールバックも不用意にできない
てことで
エラーハンドリングする意味がない
ソースになるんだよねえ( ´∀` )
ま、オイラだったらこーするってだけで、
必ずこーしないといけないってわけではない
から、次回以降を見越して
あくまでも、ちょいとコラム
で、この考え方を展開してるだけ( ´∀` )
ホント、ソースの組み方自体は人それぞれ自由に組めるので~~~
さてと、次回は、
ここの話も踏まえた上で
全シートを取得アクティビティ
をやってく( ´∀` )
最後に、
余白が多くて見にくいかもしれないけど、今までの折りたたむと下図くらいめっちゃシンプル( ´∀` )
これで、前に言ってた
ミクロかマクロではなく、
メゾスコピック
👉処理単位
ってゆーてたのもちょっと分かってくんじゃね( ´∀` )
