ひがやすを技術ブログ

電通国際情報サービスのプログラマ

プログラマー人生

私が最初にプログラミングをしたのは、MSXという
パソコンを買ってもらったときでした。
もちろんゲームをやるためです。
何かプログラミングをすることもできたんですが、
本見て打ち込んでもたいていうまくいきませんでした。
残念!!!!!!!
その頃の本てあまり基礎的なこと教えてくれなくて、
これ見て打ち込め系だった気がします。
でも別に困りませんでした。
ゲームをかってこれば良かったので。(笑)


次はポケコンです。
理系の大学だったので、数学や物理や化学でなにやら
ポケコンを使っていました。
私はまったく使えなかったのですが、困りませんでした。
だって、コピペ房ですから!!!
理系の科目はあまり理解できなかったのですが、
悔しくはありませんでした。
だって、ワインの方が好きでしたから!!!
大学一年のときからワイン学校(アカデミーデュヴァン)に
通ってたんです。
授業料やワイン会のための金を稼ぐためにバイト大変でした。


あまり理系理系していない生命科学科というところにいきました。
そこにMacが置いてありました。
Macといえば、HyperCardですよ。
使いこなせばいろいろなことできて面白そうだったので、
勉強しました。結局、使えるようにはなりませんでした。
でも、困りませんでした。
紙に鉛筆で何か書き込むことで十分でしたから!!!!!


就職ははじめ経営コンサルタントになりたいと思ってました。
なんか、問題を解決するってかっこいいと思っていたためです。
堀紘一とか大前健一とかはやってた頃です。
でも、マッキンゼーもボストンも即戦力重視で、新人はとってくれませんでした。
それで、コンサルになるためにはシステムのことも分かっていなければいけない
と思って、今の会社に入りました。正確には電通国際サービスという会社
に入って今の会社に後で合併されたんですが。


会社に入って事務で使っていたPCはPC98、ソフトは一太郎
Macユーザだった私は、めちゃくちゃ違和感があってなじめませんでした。
パソコンを蹴っ飛ばすこともありました。
これじゃいけないと思い、事務はMacを使うことにしました。
プレゼンの書類を作っているところはMac使ってましたから!!!
当時は紙で提出していたので、それで困ることはありませんでした。
PC98を使えるようにしようとは思わなかったんですね。
生意気な新人です。(笑)


しごとではAS400というオフコンを使って開発してました。
何かを勉強するというよりは、完全なOJTです。
動いているものをまねする、知らないことは知ってる人に聞く。
当然、経験のある人の方がスキルが上なわけです。
勉強しようにも材料がなかったんです。
くやしかったなぁ。
プログラミングがどうこういうよりも負けず嫌いなんです。


そのうち大阪での仕事が舞い込んできました。初のC/Sです。
DBMSはオラクル、開発言語はForte(Sunのものではなく4GLのほうです)
とC。
やったねと思いました。オープンな環境なので、勉強する材料が
いっぱいあります。
最初の一ヶ月、開発に取り掛からずに朝から晩まで、
ラクルとForteのマニュアルを見ながらサンプルを実行し確認する
ということを繰り返していました。
いきなり試行錯誤するより、全部把握してから取り掛かった方が
結局早いと思っていたためです。
上の人はもちろん早く開発に取り掛からんかゴルァといってくるわけですが
試行錯誤は効率悪い理論を主張して押し切りました。
生意気な中堅です。(笑)
もちろん、案件は成功させましたよ。
努力した分、自分のスキルになるので良い時代になったなと思いました。
ということで、私が一番最初にマスターした言語は、PL/SQL
次がCですね。一応4GLですがForteも。


東京に戻るとその当時、BISの規制で各金融機関は、リスク管理
強化することが求められていたので、サーバサイドでCでリスク計算を
するって仕事をやってました。
Niftyでオラクルのフォーラムに入ったのもその頃です。
はぶさんやまさたかさんにあったのもその頃。
フォーラムで積極的に質問に答えるようにして、
スキルのブラッシュアップをしてました。
人に教えることは結局自分のためになります。


Delphi,VBの頃は、オブジェクト指向というよりも
コンポーネント指向だったように思います。
コンポーネントを画面にぺたぺた貼り付けるスタイルです。
そのうち、Javaがでてきて、オブジェクト指向の本もいっぱい出てきました。
OOPの良さは分かったけど、OOA,OODってよくわからんと思ってました。
プログラミングのスタイルも我流で、適当にクラスを作っていただけです。
心がけていたのは、メソッド全体を一度に画面で確認できるくらい
小さいものにすることだけ。


そのうち、J2EEとXPが登場します。
XPが私に与えた影響はめちゃ大きい。
別にオブジェクト指向なんかどうでも良くて、シンプルでテストがきちんと
行われていれば良いんだと思いました。
XPの技法を使って会社で、J2EEフレームワークを作りました。
ほとんど、自分1人で作ったんですよ。
利用者にとってシンプルでテストしやすいことを心がけました。
このフレームワークは、うちの会社のJavaの開発でいろいろ使われ、
私自身もいろいろなフィードバックをうけ、
かなり成長したんじゃないかと思います。
かなり成長モード。いわゆるKモードにはいったんですね。
やはり、自分で実際に手を動かすのが一番だと思います。


2002年にS0、2003年にS1を開発したわけですが、
この頃のスタイルは、XPスタイルです。
S1の前に起きた
http://d.hatena.ne.jp/higayasuo/20040607#1086565824
も私に大きな影響を与えました。
必死になって、

  • データにアクセスするロジックとそうでないロジックを明確に分離する。
  • ロジックは状態を持たない。
  • 1つのロジックで複数のことを行わない。
  • 同じロジックを複数に分散させない。

を徹底させましたから!!!生き残るために!!!
おっと、友達の話でした。
2004年になって、S2の開発をはじめたのですが、
こととき心がけたのがくーすのベースになっている

  • 仕様と実装を分離する
  • 役割分担を明確にする
  • 最も結びつきの強いクラスに役割を担当させる

という考えです。
S1とS2のソースコードを見比べるとまったく違うことが分かると思います。
そんなことする人いないと思いますが(笑)