我流クラス設計の仕方

rubyという言語を俺はメインで使ってるんやけど、最近ようやく中級ぐらいにはなったんちゃうかと思ってる。っていうのはクラスの設計とまで言うと大げさやけどそういうのがなんとなくわかってきたんやわ。んでこういうのは初心者の頃に知りたかったことやからメモついでに書いとく。

プログラミングはデータとアルゴリズム

プログラミングとかを教えるところって「情報科」とか言ったりするけど、コンピューターがやってることってのは「情報処理」なわけやわ。んで「情報」ってのが「データ」で「処理」が「アルゴリズム」(合ってる?)。で、どっちのほうが大切かっつーと「データ」のほうが大切なわけ。データがないと処理しようにもできんからね。
初心者向けのプログラミング言語の本なんかを読んでもデータに注目しろってのはあんまり見かけんのよね。その代わりに関数の定義の仕方だとかそういうのを書いてるわけやわ。処理するべきデータもないのに関数なんか書けないわけで、この辺りが初心者を躓かせている(とりあえず俺はつまづいた)んやないかと思うわけよ。

RPGこそオブジェクト指向

RPGっていうのはオブジェクト指向をイメージするのに一番適してるんやないかな。キャラにそれぞれ「こうげきりょく」「ぼうぎょりょく」「すばやさ」だとかの値があって「たたかう」「ぼうぎょ」「にげる」なんかのコマンドを使えると。オブジェクト指向的に言うと「こうげきりょく」なんかの値は「プロパティ」、「たたかう」とかのコマンドは「メソッド」って言ったりする。

擬人化はやめる

今やったみたいな擬人化した例えってのはよく出るわけやけど、これも何気に初心者を混乱させてると思うんよね。っつーのも実際のアプリには人なんて出てこないわけやし。ってことで身近なもの(かな?)でBBSとかBlogなんかを例にして設計をしてみようかと思ったけど長くなったからまた次にまわすことにする。