第6回|小さな部屋に仕事を分けると、世界は散らかりにくい(やさしいプログラミングの世界)

* 当サイトでは、コンテンツの一部に広告を掲載しています。

System Note $ cat /proc/ai-disclosure

本記事の構成および論理分析にはAI(人工知能)を使用しています。情報の正確性は、システム管理者(UNIXユーザー)による手動検証済みです。

第6回|小さな部屋に仕事を分けると、世界は散らかりにくい(やさしいプログラミングの世界)

やさしいプログラミングの世界 | 第6回

目次

机の上にやることを全部広げると、どこから手をつけていいかわからなくなる夜

静かな夜、宿題をしようと机に向かったとき、ふと気がつくと本もノートも筆箱も、ついでにあとで読むつもりだったプリントまでが所狭しと広がっていることがあります。
ひとつひとつはどれも必要なものなのに、全部が同じ場所に重なり合ってしまうと、目の前の景色は急に落ち着きを失ってしまいます。

やることが少ないうちは、それでも力技で進めることができるかもしれません。
けれど、読むもの、書くもの、計算するものが混ざり始めると、「今、自分は何をしていたんだっけ?」と、自分の立ち位置さえ見失いそうになります。
机の上が散らかるのは、物が多いからというより、役目の違うものが同じ場所に集まりすぎているせいなのかもしれません。

そんなとき、小さな箱や引き出しがあると、心はすっと軽くなります。
書くものはここ、読むものはそこ、大切な記録は別の場所へ。
役目ごとに居場所を少し分けてあげるだけで、世界は驚くほど扱いやすくなります。
プログラミングで「仕事を分ける」という考え方も、それによく似ています。

すべてをひと繋ぎに書いてはいけないのだろうか

「わざわざ部屋を分けなくても、上から順番に全部書いていけば、コンピューターは文句を言わずに動いてくれるのではないか」そう感じるのも、もっともなことです。

短い手順であれば、一箇所にまとめて書いておいたほうが、全体が見渡せて楽なようにも思えます。

けれど、プログラムが育ち、やるべきことが増えていくにつれて、ひと繋ぎのコードは巨大な迷路のように絡み合っていきます。

どこを直せばいいのか、どこで間違いが起きているのかを探すだけで、一晩がかりの作業になってしまうこともあるのです。では、どうすればどんなに大きなプログラムになっても、あの整った机のような清々しさを保ち続けられるのでしょうか。

「部屋」を作り、そこに役目という名前をつける

プログラミングには、特定の「仕事」をひとまとめにして、別の小さな部屋に預けておく仕組みがあります。
この部屋に「おやすみの挨拶」や「合計の計算」といった名前をつけておけば、必要なときにその名前を呼ぶだけで、中の仕事を実行してもらうことができます。

これは単なる整理術ではありません。
「この部屋はこれをする場所」という境界線を引くことで、一度に考えなければならないことを、ぐっと小さく絞り込むための工夫です。

部屋の外にいるときは、中の細かい手順まで気にする必要はありません。ただ名前を呼んで、仕事を任せればいいのです。

仕事を分けることは、複雑なことを無理にシンプルにするのではなく、複雑なものを「小さな、安心できる単位」の集まりに変えていくこと。そうして作られたひとつひとつの部屋が、プログラムという大きな世界を、迷いなく歩くための道しるべになってくれます。

小さな例|挨拶という仕事に、自分の居場所をあたえる

たとえば、「挨拶をして、名前を呼ぶ」という一連の動きを、ひとつの部屋に分けてみましょう。
その部屋には `say_hello` という名前をつけておきます。

def say_hello():
    print("こんにちは")
    print("いい天気ですね")

# あとは名前を呼ぶだけでいい
say_hello()

ここでは、`def` という言葉を使って、「ここから先は挨拶のための部屋ですよ」と教えてあげています。
一度この部屋を作っておけば、あとの流れの中で何度挨拶をしたくなっても、もう手順を書き直す必要はありません。
ただ、その部屋の名前を呼ぶだけで、コンピューターはいつでも同じ丁寧さで挨拶を済ませてくれます。

気づき|分けることは、複雑さを増やすのではなく、減らすこと

仕事を分けると聞くと、「部屋の数が増えるぶん、かえって管理が大変になるのでは?」と思うかもしれません。
けれど実際には、その逆です。
ひとつの場所にすべてが重なっているほうが、どこに手を触れれば安全なのかが分かりにくくなってしまうからです。

役目ごとに部屋が分かれていると、今見ているコードが「何のための仕事なのか」が一目で分かります。
もし間違いを見つけても、その部屋の中だけを片付ければいいので、他の場所を散らかしてしまう心配もありません。
「関数」という専門用語は、今はまだ記号のように眺めておくだけで大丈夫です。
大切なのは、分けることが安心に繋がり、再利用しやすさという「自由」をくれるという感覚です。

世界が散らからないのは、物が減ったからではありません。それぞれが、あるべき場所へと戻ったからです。
プログラムの中も、そうやって整えられていくことで、ようやく深呼吸ができるような風通しの良さが生まれます。

まとめ|役目に名前をつけると、流れはやさしくなる

今回は、仕事を小さく分ける「部屋」の考え方を見てきました。
長い手順をそのまま抱えるのではなく、役目ごとに区切って名前をつけてあげる。
そうすることで、プログラムの景色はぐっと見通しが良くなり、読み手にとっても優しいものに変わります。

分けることは、思いやりです。
自分自身が迷わないために、そしていつかこれを読む誰かが困らないために。
小さな部屋をひとつずつ整えていくことで、プログラミングは単なる「記述」から、心地よい「設計」へと変わっていくはずです。

次回予告|部屋の窓から、メッセージをやり取りする

部屋を分けると、世界はきれいに整いました。
けれど、部屋を閉め切ったままでは、外の様子を中に伝えたり、中で起きたことを外に知らせたりすることができません。
「この名前を呼んでほしい」と中へ伝え、仕事が終わったら「結果」を外へ返してほしい時があります。

次回は、部屋と部屋の間で言葉を交わす、「引数(ひきすう)」と「戻り値(もどりち)」のお話です。
分かれた部屋たちが、どうやって協力し合いながらひとつの物語を紡いでいくのか。
その、ささやかな情報の受け渡しについてたどってみましょう。

さらに学びたいあなたへ

用途ごとに選ぶ Linux のおすすめ本

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

のいのアバター のい UNIX Cafe マスター

Macintosh Color Classicから始まった旅は、長いWindows時代を経て、Windows10のサポート終了をきっかけにUNIXの世界へ戻ってきました。UNIX Cafeでは、UNIX・Linux・そしてMacな世界を、むずかしい言葉を使わず、物語のように書いています。プログラミングは、アイデアをコンピューターに伝えるための言葉です。簡単な単語と文法を覚えれば、誰でもコマンドを使えます。ぜひ一度、やさしいプログラミングの世界をのぞいてみてください。

Created by UNIX Cafe

目次