ソフトウェア設計で、レベルは3段階に分かれると思っている。

 

初級  正しく動く。最低限動くだけ。

中級  わかりやすい。操作性が良い。親切な表示。

上級  安全性。例外処理に対応。不測の事態に対応している。

 

 動かすだけならすぐ作れるけれど、他人が使用する場合は、思わぬ操作をしたり初歩的な部分で理解できていなかったり、する。

 

 たとえば、ファイルが壊れていた場合、途中で終了してしまった場合、OKとキャンセルを間違えた場合、禁止されている文字を入力した場合・・・。

 

 自分では思いつかないことを、するかもしれない。

 操作を理解していない初心者が触るかもしれない。

 

 それらを全て想定して作る。それが本当に大変なのだ。

 

 内部の問題としては、後で変更するかもしれない可能性を考え、わかりやすいプログラムにしておく。

 こちらはもう、技術と経験が物を言う。

 

 プログラミングの、「リージョン」という考え方。

 

 リージョン・・・シルエットみたいなもの、である。白黒で、見せたい部分だけ黒(または白)。

 それほどお世話になることもなかったから、安易に考えていた。

 ウィンドウを丸くしたり中抜きしたり、そんな時に使っていたリージョンだが、キャラクターの背景をぶち抜くリージョンを作る方法が、なかった。

 

 フリーソフトの骨格をなす部分の画像処理であるため、この「背景ぶち抜きリージョン」が作成できないとなると、制作廃棄になってしまう。

 

 検索すると、同じ悩みを持つプログラマーが質問をし、回答するプログラマーも数人。

 

 結局、原始的な方法だった。

 全てのピクセルを二重の for() 文で検索し、キャラクター部分だけリージョンに追加していく。

 

 一度やれば済むから、処理速度や負担は問題ない。それでいこう。

 

 アッサリできたが、制作途中で悩むことは多々あるものだ。

 

 

 子どもの「吸収力」には、いつも驚かされる。

 マインクラフト、特にやり方を教えたわけでもないのに、いつの間にか街を作り上げていた。

 

 

 漢字も読めない、誰も教えてくれない、そんな中でも「やる気」さえあれば、何とか取り込んでいく。

 

 勉強も、趣味も、そこは同じ。

 

 「できるようになりたい」という向上心、目標、それが成長の第一歩。

 

 それがないと、何もしない人間になってしまう。