インターンシップの感想

インターンシップ中の感想などをようやく書き終えました。
すっかり遅くなりましてすみません。特に一部の人(id:bleis-tiftとか)。

内容について:

  • 実習中の感想など。
  • 私の性格上愚痴が多いです。
  • ミス等ありましたら、適度にスルーするなり突っ込んでもらえるとありがたいです。
  • 文章に稚拙な部分が多々あるとは思いますが、そこはごめんなさい。精進します。


では以下より感想などなど。

実習先について一応

一応やったことはソフトウェア開発ですが、実習先はソフトウェア開発ばかりをやってる所ではありません。
まぁその、一言で言えば、ソフトウェアに関することに詳しい人が多いかというと・・・という現状。

開発言語と開発環境

開発言語はC++
ここまでならまだいいが・・・IDEBorland C++ Builder 6でした。
このBuilderがねぇ・・・後で色々書きます。
ちなみに私のレベルは所詮Better C程度。下手すればそれ以下。
とはいえ一応classの使い方ぐらいは知っているため*1、その辺は駆使してコード書いてました。
もちろん書きながら少しは勉強もしていましたが。

なんだこのソースコード

大雑把にいえば渡されたソースコードを改変・改良してソフト作る、という内容だったが・・・何このソースコード

  • C++とはいえその実態は9割ぐらいC言語
  • GUIプログラムだから一部は仕方ないとはいえ、グローバル変数とexternの嵐。
  • 参照ポインタ渡したくさん。
  • mainに当たるソースコード8000行。
  • ハンガリアン記法もたくさん。
  • コンパイル時、「○○は使用されていません。」との警告。これが100個以上。
  • 定数宣言がほぼ#defineを使用。列挙型はどこだ。

勘弁してくれ・・・。
改変するにも、ソースコードだけでウン百万行。
一部は改変しましたが*2、さすがにすべて改変できる量でもないし、指導担当者もそこまでのC++言語ができる方ではない模様*3

「ハッシュって何?」とか言われたんだが・・・

標準のC++ハッシュ関数ってありましたっけ?という話をした時の一言。
一応簡単に解説しておきましたが・・・。

ハンガリアンやめてやめてハンガリアン

ハンガリアン記法は元々嫌いではあるが、アプリケーションハンガリアンならまだ許せる。
システムハンガリアンでも特殊なものならば百歩譲ろう。
でも、"iSum"(int型)とか、"cMsg"(char型)と書くのに何の意味があるの?
そんなソースコード読む気なくす。

アクセラレータキー設定するぐらいならちゃんと割り当てようよ

「ファイル(Z)」とか「編集(Y)」とかつけられても困る。
自動割り当てに設定されていると勝手に割り当てられるから故意ではないとはいえ、こんなことになるぐらいなら最初からつけない方がましだと思うが・・・。

Builder○ねばいいのに、と何度思ったことか

本記事の中核。
とにかくこのBuilder、IDEのUIから言語までひどい。
Delphiのせいかもしれないけど。
とにかく数え上げればきりがないです。
Builder 6のことを書いてるため、最新版では改変されている点もあるかとは思いますがご容赦ください。

エディタに行数ぐらい表示させてくれよ

設定項目なし。もしかして、あると思っちゃいけないの?

フリーカーソル機能ぐらいOFFにさせてくれよ

あの機能個人的には邪魔で邪魔でしょうがないから。

コード補完等の機能ががかえって邪魔

貸与されたPCのスペックの問題だったのかもしれないが、コード補完機能が遅い。
しかもちょっとプログラムにエラーがある、もしくはエラーもないのにたまに「エラーがあるためコード補完を行えません」とのメッセージ。
あともう一つ、変数等へのマウスオーバーでポップアップ表示が出る機能が一番ダメダメだった。
これもスペックのせいもあるかもしれないが、少なくとも1秒は表示されるまでウェイトがある。
しかもその間操作がきかない。文字入力もポップアップ表示後に反映される。

AnsiStringとか何なの?

Builderの独自仕様として、文字型を扱うAnsiStringというものがあるのだが・・・どう考えても標準のstd::stringを少しおバカにしたようなものとしか思えない。
便利なメソッドも存在するが、c_str()メソッドの戻り値がconstでなかったり、インデックスが1から始まるとかもうね*4
後者は多分Delphiのせいだとは思いますが。

デバッグ中頻繁にBuilderがハングする

例外でプログラムがストップするとハングする、ステップ実行中にハングする*5など。
タスクマネージャで強制終了させようとしても、そのウインドウ表示タスクすら奪うという曲者。
元のプログラムがマルチスレッドだったことも原因であるのかもしれないが、ひどい時で5〜10分ごとにハングしてました。
そのたびBuilder再起動とかたまったものじゃないよ。


今思うと、私がインターンシップで苦労していたことはC++のプログラミングではなく、Builderの扱い方なのかもしれない。

箇条書きは必ず体言止めにしなければならないとだれが決めたのか

確かに、箇条書きにする際には体言止めにするのが原則だということには同意しますよ。
下手に文章書くと見通し悪くなるだけだし、そうするぐらいなら箇条書きにする、と念頭に置いてスライドを書いた方がいいのもわかる。
ビジネスでもこういうことは箇条書きにしたほうがいい、ということには否定はしない。
でもさ、箇条書きじゃないスライドを見せた時にものすごく嫌そうな顔をするのはちょっと・・・。
まるで箇条書きは絶対に体言止めでなくてはならない、といった考えを持ってるかのように。
「箇条書きに体言止め」はあくまで原則であり強制ではない、というのが私の考え。

なんだかんだ書きましたが

基本的に訓練先の人はいい人でしたよ。
生活面で色々とよくしてもらっていましたので。


とまぁ、こんな感じの日々でした。
最後に2 3点、終了後の感想。*6

  • 明らかに勉強不足を痛感
  • しばらくC++には触りたくない
  • 情報通信手段がなくなるって怖いね!

1つめは・・・精進します。orz
2つめは、まぁ、Borlandで痛い目見ましたから。
C++使えとか言うならBuilderじゃなくVS.NET使わせてください。もしくはeclipse
3つめは、ネットがほとんど使えなかったため。
今や何をするにもネットが必要不可欠。
種々の情報を入手するのもネット、研究室の連絡もネットとメールを駆使しないとダメ。
ネカフェも一応行っていましたが、当然お金はかかる。
・・・おかげさまで、帰ってから色々と苦労させられました。

*1:Javaも少しはやっていることもあるし

*2:明らかに列挙型で書いた方がいいところは列挙型使って書いたりとか

*3:一応プログラムが汚いことは承知していた。苦言を言ったらはぐらかされた

*4:混在させるなよ・・・

*5:使える時もあるが、数回進めるとハングする

*6:11月6日追記。2点じゃなくて3点書いていたことに今更気づいたw