見出し画像

【ノンビン塾:第1回】シーケンス図ってなに?

※「ノンビンとは?」となった方へ

へいしゃのやんちゃボーイです

本題に入る前に、ちょっち自分のこと語らせてください。
あれは遡ること1ヶ月前、、、

( -᷄ω-᷅ )「設計、学びたいなぁ」

当時のわたしは、唐突に漠然とした要素を学ぼうとしました。
というのも、ここ最近プログラムをガリガリしていると

(*''*)「こういう考え方もあったのか…!」
(*''*)「こんな名前付けもあったのか…!」

新たな発見に気付くことが多かったのです。

真新しい気付きが多い のは一見すごく良いことに思えるのですが
それって 単に知らないことが多いだけでは? とも捉えられます。

プログラムを書く、ということはずっとやってきているけど
今後(たとえば)新しいプロダクトに関わりたい!となったときに

( -᷄ω-᷅ )「プログラム書けます!」

だけじゃ ちょっとアピールポイント弱いなぁ と思ったんです。ネ
弱いなぁ と思ったのなら、強くなりたいですよね。

じゃあ、どこを強くしよう?と考えたときに
思い出したのが

(*''*)「こういう考え方もあったのか…!」
(*''*)「こんな名前付けもあったのか…!」

このキラキラした気持ち。
プログラムを書く前には、設計があります。

設計を強くしたら自分の開発ペースも上がるし、結果的に
ソースコードの保守性を高めることもできると思いました。

( -᷄ω-᷅ )「設計、学びたいなぁ」

そしてココに戻ります…

書籍も購入してみたのですが、
色々あってノンビン設計の基礎を教わる機会をもらいました。

全3回予定で、つい先日第1回目を受講したので
(自分のふりかえりも含め)noteとして残したいと思います。

ノンビン塾について

学ぶこと

設計の基礎について、なのですが、、
なぜ「基礎」なのか?

それは、自分自身の「設計力」が足りていないからです。
足りないなら学ぶのは、当たり前ですよね。

でも、ひとくくりに「設計」と言っても
いろ~んな設計があります。

ノンビンがしてくれた例え話をしてみますね。

100m走ってください というミッションがあるとします。

わたしは、50mを完走することができます。
しかし、100mを完走することができません。

この状況で誰かに教わるなら、
わたしは何を学ぶべきでしょうか?

学ぶべきなのは 100mを完走する方法 です。

50mを走るだけでも精いっぱいなのに、
「走り方が美しくないよ!」と言われても
直す余裕ないですよね。

そんな感じで、設計の基礎を身につけていない状態で
様々な設計思想を学ぶのは、基礎を身につけている人と比較して
理解力が異なる と思います。
(そういう思想があるのだな、と知るのは正義だと思ってます)

なので、ノンビン塾では
100m完走するために大切なことを学びます。

授業内容

ノンビン塾で学ぶことは、3つあります。

  1. シーケンス図

  2. フローチャート

  3. ER図

エンジニアをやってる方なら、知っているはず!という内容を学びます。
では、なぜこの3つを学ぶのか?

「こんな機能をアップデートして欲しい!」と要望してもらったときに
頭の中で組み立てることができるようになるからです。

わたしはテキストで「やりたいこと」を書き起こしてから
プログラムを書くので、それが頭の中でできるようになったら
それだけでも開発ペースがあがります

ゴール

開発したいものを頭の中で組み立てることができるようになる

シーケンス図 とは?

IT業界にいる方なら、開発に限らず見たことがあるかもしれません。
※わたしはノンビン塾ではじめて学ぶモノでした。

シーケンス図 それは、、、、

(-`ω-)「物事の流れを視覚的に見やすくするためのもの」

ここでまたノンビンが例え話をしてくれました。

(-`ω-)「ルフィがクロコダイルぶん殴ったじゃん?」
(-`ω-)「アラバスタ王国解放されたじゃん?」
(-`ω-)「でもさ、ルフィがクロコダイルぶん殴っただけじゃないよね?」
(-`ω-)「もともとはビビにお願いされたりとか、色んな背景があってさ」
(-`ω-)「いろ~んなイベントを介して、王国解放するじゃん!」

ルフィがクロコダイルを殴ったり(イベント)
ビビにお願いされたり(イベント)

イベントとなるものが、どういう流れで進んでいくのかを表す

それがシーケンス図です!

シーケンス図 作ってみる

プログラムちっくではなく、身近な例えで作成していきます。

(-`ω-)「ナナはキトさんにお願いして、『OK』を貰いたいとします」

キトさんは面白いことが好きな(自称)ダメ人間です

(-`ω-)「ナナは最初になにする?」
( -᷄ω-᷅ )「うーん、キトさんにお願いしにいきます…かね」
(-`ω-)「本当に?」

本当に?
いつもキトさんにお願いしにいくときのことを思い返してみます。

( -᷄ω-᷅ )「あ、キトさんにお願いする前に他の人に聞きます」

いきなりこうじゃなかったね

(-`ω-)「じゃあ誰に聞こうか?」

登場人物を2名ほど選びます。

本日の演者です

では、まずはミコさんに相談してみます。

助けて~ミコさ~ん

相談すると、ミコさんに  が宿ります。

四角が「いのち」です

ミコさんはちゃんと相談に乗ってくれます。

回答したらミコさんの命はなくなります

あら、どこか直す必要があるみたいです。
直す場所は教えてもらったので、自分で修正してみましょう。

自分のいのちが伸びました

よしよし、修正したのでもう一度ミコさんにお願いします。

今度はOKでした

相談が終わったので、キトさんにお願いしにいきましょう。

ミコさんのおかげで一発OK!

これでキトさんへのお願いはおしまいです。

(-`ω-)「でもさぁ、ミコりんっていいヤツじゃん?」

(-`ω-)「質問したことに対してわざわざ調べてくれたりするじゃん?」

(-`ω-)「修正してる間にキトさんに伝えてくれることあるじゃん?」

た、確かに
ミコさんはいつも先回りしてくれる・・・・
わたしの知らない間にもミコさんは動いてくれている・・・

(-`ω-)「でさぁ、キトさんもいいヤツじゃん?」

(-`ω-)「コニオに念のため共有してくれるとかあるじゃん?」

た、確かに
次回あったときのためにキトさんは報告してくれる・・・・

(-`ω-)「でさぁ、コニオもいいヤツじゃん?」

(-`ω-)「今必要じゃなくても勝手に調べて次に備えてくれるじゃん?」

た、確かに
コニオさんは自分に関係ない内容も熱心に調べてくださる・・・

全体図

主軸となるのは「ナナ」だけど、
メインが知らないところでもみんな動いている…!!

このように、処理の全貌が見えることによって
不具合を修正するときなどは特に

「どこの処理を修正すれば良いのか」

アタリをつけやすくなるんです!
シーケンス図ってすごく便利ですね🌞

また、シーケンス図を書くことによって物事を整理しやすくなるので
冒頭で言った「頭の中で整理することができる」の練習にもなりますよね!

ノンビン塾の宿題

※みんなもやってみてね😙✨

  • あなたは今、Suicaを使えないような田舎にいます。

  • Suicaの使えない駅から、3つ先の駅に行くシーケンス図を書きなさい

    • (電車に乗るまでで良いよ!)

自分で出した答えは第2回に書きます🙆
(暗に次回に続くということを伝える)

ノンビン塾が気になるコラボスタイルのみんなは、
宿題を持って受講してみてくださいね🔥