myugaruの色々構想中・・・!

「C#」「画像処理」「XNA未対応PCでゲームIDE作りの無謀な野望」

ホーム 連絡をする 同期する ( RSS 2.0 ) Login
投稿数  98  : 記事  0  : コメント  2342  : トラックバック  59

ニュース

myugaru
仕事(昔)=ヲタク系プログラマー~マスコミ系サポートデスク
仕事(今)=電子機器系サービス業
趣味a=パズルゲーム全般、シューティングは主に見学
趣味b=画像処理関係の勉強
趣味c=プログラミング言語の勉強
趣味d=アキバ系ヲタク
趣味e=芸能アイドル系ヲタク
d,e色の強いもう一つのブログ
最新目標=シューティングゲームを作る

わんくまりんく

わんくま同盟blog C#,VB.NET掲示板

ぶろぐつーる

あわせて読みたい

はてなりんぐ

書庫

日記カテゴリ

ギャラリ

お友達

リンク

●ドキュメント化不要?

私はC#のプログラムを作るときには、いきなりコンパイラのエディタに向かってがしがし書いてます。
ずいぶん前に使っていたUNIX-Cの時にはさすがにいきなりはプログラムを作れなかったので、ある程度はテキストとして仕様書など書いたりしていました。
あの頃を思い返せば最近のプログラミング環境は本当に素晴らしいなと感じます。

さくさく作れるのは主に2つの素晴らしい技術があるからです。

1つ目はOOP(オブジェクト指向プログラミング)の絶大パワー。
オブジェクトとしてクラスにまとめ、プロパティやらメソッドを実装してNewする。
そういう部品をどんどん作っていく作業、さらにその部品を組み合わせる作業の2フェーズでとても複雑な仕事も簡単にプログラムに表現できてしまいます。

2つ目にIDE(統合開発環境)の絶大パワー。
コードを書くときにほとんど識別子は頭文字一つとタブキーあるいはデリミターとなる記号の入力。これだけで勝手に入力が完成します。
さらにほどよく自動整形されます。
これのおかげでいくらでも長い識別子を作ることも平気になりました。
昔はコード入力の労力を極力省くために”大域的な識別子ほど短く”みたいなダメダメっぽいスタイルでもやっていました(汗)。
もちろんソースは可読性が下がりましたし今思うと本当に非生産的だったと思います。

ほかにも仕様書要らずの理由は
「一人で作っているからドキュメントでの他者との疎通なんていらない」
とか思っています。・・・いや「いました。」


●苦しくなってきた

・・・といった具合に仕様書要らずの楽々環境を手にした私。
なるべく汎用的なゲーム製作用ライブラリを構築しようと
これまでやったことが無いくらいにかなり大掛かりな構想を練って、
どんどんクラスを量産している日々でした。
それがだんだん非常に具合が悪くなってきたのです。
なんだか自分のプログラムを把握しきれなくなくなっているのです。
例えば同じようなクラスがごちゃごちゃ出来て整理がしきれなくなっています。
同じような、なら良いですがうっかり全く同じクラスを作りかねない状況です。


●初めて出くわした問題

私は難題に出くわしたら

・ステップ1 Google先生とがんばる
・ステップ2 それでダメなら誰かに聞く(※1)

の2ステップで大丈夫、みたいなエントリーを前に書きました。

Google先生だけでがんばる(その1)

Google先生と一緒にがんばる(その2)


でも1と2だけじゃあどうしようも無い問題もあることに初めて気付きました。

「自分で解決が十分に出来る範囲にあるのにどうしても解決できない」

のです。
・・・本当にどうしたらいいのでしょうか?

※1:ImageUtils画像処理ライブラリの作者でもあるjunkiさんには、このところかなり甘え気味かも知れないなと反省しています。


●あわや車輪の再発明

自分の問題点は何だろう?何がまずいのだろう?
なんともモヤモヤした気分がずっと続いていました。
いや、おぼろげにドキュメント化がキーワードかなあとか思って
やみくもにGoogle先生に聞こうともしたのですが、
なかなか思うような答えにたどり着けません。困り果てました。

実はかれこれ半月以上は悶々としてたのです。
そしてふいにUMLにたどり着いたのです。
自力で既存の車輪を見つけられたのはある種の奇跡です。
あと少し遅かったら・・・
車輪の再発明 - Wikipedia
(o;ω;o)
四角い車輪の再発明 "en:reinventing the square wheel"
「車輪の再発明」をしようとしてさらに役に立たないものを作ってしまうこと。
・゚゚・(/□\*)・゚゚・


●技術って勉強するためじゃなく使うためにあるんだね

UMLという言葉はネットでプログラムの情報とか見たりするたびに、
あるいはわんくま同盟の多くの方のエントリーアーカイブにも見かけました。
いつも近くにあったと思います。
でも具体的にこういうところで使う技術だというのは気が付いていませんでした
そして自分がそういう窮地に陥るというのも考えていませんでした。
気分はまさにJ-WALK(※2)

考えたら必要も無いのにエントリー立てたりしませんよね。
それはつまり現実のSEの人たちが常にこの問題に直面していることを物語っていたのですね。
言い忘れてたかも知れませんが私は今を生きるSEでも何でも無いです。

(※2)http://music.yahoo.co.jp/shop/p/53/11579/Y003959


●そうと決まればさっさと始めよう

今はとりあえず以下のページから勉強を始めました。

http://mamezou.net/modules/xfsection/index.php?category=2&start=10&orderby=weight
http://www.objectclub.jp/technicaldoc/uml/
http://www.asahi-net.or.jp/~DP8T-ASM/java/uml/index.html

良さそうなアプリも見つけました。

http://journal.mycom.co.jp/news/2006/05/23/341.html


●勝手なまとめ

今回は私には使える道具が少なかったのが問題だったと判明しました。
UMLだけが回答じゃないような気もしています。
でも、まずはUMLで少し自分の把握できる範囲が広がりそうに思いました。

本当はわんくま同盟に居てこんなエントリー書いてたら相当恥ずかしいのは承知しています。
ですが私のように同じ様にハマる人は世の中に私だけじゃないと思うんです。
私はわんくま同盟のほかの人のように難しいことは書けないので、
そういうハマる人たちと同じ立場で色々と体験談を残しておいて、
Google先生がいつか誰かのために役立ててくれる事に期待しようと思います。

それにしても我流独学ってのは引率の先生の居ない児童のようなものです。
自分で言うのもアレですがとても危なっかしいです。
私はほかにも色々当たり前のことに気づいて無いと思うので、
もし危なっかしく車道を歩いているのを見かけたなら、
いつでも遠慮なくクラクションを鳴らしてもらえると助かります(汗


今回はいっぱい突っ込みコメントがありそうでちょっと怖い・・・

投稿日時 : 2008年3月14日 20:21

コメント

# re: 何も言えなくて・・・夏~UMLをとりあえず発明しかけた(汗) 2008/03/14 21:31 とっちゃん
明日は勉強会があるし、週末なので、突っ込みイパーイは、日曜か、それ以降かな?
タイミングで来ないこともあるけどw

>ずいぶん前に使っていたUNIX-Cの時
この当時は、識別子は8文字以下じゃなかった?
それに収めないと、コンパイルできないとかもあったし、今とはかなりというか根本からして違う。
OOがどうとかという次元ですら...w


ってことで本題。

>なるべく汎用的なゲーム製作用ライブラリを構築しようと

して
>どんどんクラスを量産している日々でした
はだめです。

まずは、どんなものを用意しておけば、そのライブラリを使う人は楽ができるか?
から検討していかなければなりません。

そしてそれは、そう簡単にクラスを量産できる世界ではないはずです。

だって、すでにあるものをリメイクするというだけだというのに、一週間かけて、持ってこれたクラスはたったの10個もない。

全体から見れば1割どころか、1パーセントも持ってこれていないんですから。

あと、一度作ったら、プラットフォームが同じ限りずーっと使い続けられるくらいの心意気で作らないとだめです。
ちょっと都合が悪ければ作り変えちゃえばいいやなんて甘えは絶対に許されません。
なにせ、使ってもらえなければ、何の意味もないんですから。


# re: 何も言えなくて・・・夏~UMLをとりあえず発明しかけた(汗) 2008/03/14 23:59 片桐
自分がわかっていること=他の人がわかっていること

ではないし、

自分ができること=他の人ができること

でもないし、

自分を判ってもらうこと=他の人が自分を判ること

にもならないものね。。

実は、自分を伝える、ってことが一番難しいと思うの。
ドキュメントを書くってプログラム書くよりはるかに難しいですですです。

# re: 何も言えなくて・・・夏~UMLをとりあえず発明しかけた(汗) 2008/03/15 3:00 myugaru
To とっちゃんさん
>タイミングで来ないこともあるけどw
なるほど!いいタイミングで書きましたね(違

>この当時は、識別子は8文字以下じゃなかった?
ああそういう意味もあったかもしれません。すごく懐かしさだけが残っていて詳細は全然おぼえていません(笑

>まずは、どんなものを用意しておけば、そのライブラリを使う人は楽ができるか?
>から検討していかなければなりません。
そうなんですよ!分析とかのUMLの序章勉強してて恥ずかしさの余り玄関を飛び出して向かいの電信柱のてっぺんまでよじ登って「ばかやろ~」って叫びたい気持ちなんです。

生まれ変わっていく私をとくとご覧ください(と大見得だけ切っておく^^;

To 片瀬さん
>実は、自分を伝える、ってことが一番難しいと思うの。
そうだと実感しています。
とっちゃんさん宛てのコメントに昔のことを忘れたって書きました。
考えたら人間いろいろ忘れる動物なのでした・・。
だから、
今のプログラミングする自分へ伝えるためにも、
将来の色々忘れてしまっている自分に伝えるためにも、
やっぱり何か伝え方を勉強しておくべきだと痛感しています。

>ドキュメントを書くってプログラム書くよりはるかに難しいですですです。
なんだか逃げ出したくなりましたが(待て
逃げ場もなかったので(泣)諦めて進めていこうと思います;;。
でも幸い時間だけはあるので焦らないで着実にがんばりたいです。

# re: 何も言えなくて・・・夏~UMLをとりあえず発明しかけた(汗) 2008/03/15 14:22 凪瀬
一人でプログラムしていても、過去の自分と、未来の自分とのコミュニケーションとる必要があるんですよね。

# re: 何も言えなくて・・・夏~UMLをとりあえず発明しかけた(汗) 2008/03/15 15:47 myugaru
To 凪瀬さん
そうですね。
ちなみに凪瀬さんの過去エントリーにもしっかりUMLが詰まってました(汗
私が色々語れるようになるにはもうちょっと・・・いや、かな~り時間がかかりそうって事ですね。
コメントありがとうございました。

#この手の論文みたいなエントリーを毎日書くのはさすがにしんどくなってきましたww

# re: 何も言えなくて・・・夏~UMLをとりあえず発明しかけた(汗) 2008/03/15 18:49 凪瀬
自分もペースがまちまちですw
毎日、こんだけ考察するのはさすがにしんどいw

# re: 何も言えなくて・・・夏~UMLをとりあえず発明しかけた(汗) 2008/03/15 22:24 やまだ
> 本当はわんくま同盟に居てこんなエントリー書いてたら相当恥ずかしいのは承知しています。
それを言われたら、私は脱退するしかなくなりますが。

再発見の課程ってのは大事ですよ。とりあえずUMLを使ってみるのと、その理由がわかってて使うのとは、その意味が全然違うと思うので。
#実際はUMLだけでも限界あると思いますけどねー。

> To 片瀬さん
あ、あと片瀬さんでなく片桐さんです。


# re: 何も言えなくて・・・夏~UMLをとりあえず発明しかけた(汗) 2008/03/16 1:01 myugaru
To 凪瀬さん
私が暇人なだけです。
凪瀬さんの過去エントリーを書き方とか真似しようと思って見てたんです。
ところが、エントリーに秘められた説得力というエネルギーに威圧されてしまって・・真似してやろう、みたいな態度がガラガラ音をたてて崩されてしまいました。
うーん。しかたないので普通におもしろく読みふけってしまいました(笑
私にはまだまだ修行が必要です。


To やまださん
>それを言われたら、私は脱退するしかなくなりますが。
と言われると私も何も言えなくて・・・夏。

UMLでも限界がありますかー。
とりあえず今は藁にもすがる思い・・・・・・
どんどん吸収中・・・
のはずなのに・・・なかなか序章から出られません(´・ω・`o)

それと・・・ああ、ほんとうです。
片桐さんお名前間違えました。(片瀬という知人が居て、つい間違えました)


片桐さんご覧になっていらっしゃったら申し訳ありません。


Post Feedback

タイトル
名前
Url:
コメント