ただいま修行中...

ソフトウェア開発において、勉強中で悪戦苦闘の日々

常に進化し続ける

2008-02-28 23:36:46 | ソフトウェア開発
ソフトウェア開発に携わっていると、常に製品だったり、人だったり色々なものが進化し続けています。

例えば、製品で考えると、外部仕様で考えると、使い勝手がよくなったり、ユーザーインターフェースが綺麗になったりします。
内部仕様でもリファクタリングをして内部のコードが見やすくなったり、当初考えていたものが何度も破綻して、それらを繰り返すうちに、内部構造が良くなっていきます。

これらはあくまでもエンドユーザーに受け入れられて、使い続けていくという前提です。そうでなくてはまったく価値のないシステムになってしまいます。

人も技術といった部分で成長することがあります。プログラマは、常に色々な物事を考えたり、今まで知らなかったことや色々な人のソースコードを見るので、成長します。
テストする人も習熟度や仕様の理解が深まったりしていき、バグを多く出すコツがわかってきたりします。

そういった意味では、色々なことが常に進化し続けているなと思います。

プロジェクトって違和感がある

2008-02-26 22:23:46 | ソフトウェア開発
ソフトウェア開発でも○○プロジェクトという名称で呼ばれることがあります。

私の中ではどうしてもこの○○プロジェクトという表現に違和感があります。
なぜ違和感があるかというと、ある製品を開発したときに、Ver1.0で完成するわけではなく、常に進化し続けるものです。機能追加だったり、バグフィックスだったりします。一生終わりがないものにプロジェクトという名称を用いるのはどうかなという理由です。

プロジェクトの意味は、ある目的がありその目的を達成するために、集まったチームでその目的を達成したら、解散となるです。

この表現から考えると○○プロジェクトというのはどうだろうと思います。

ただし、パッケージ製品などは、リリースという区切りがありますので、区切りと考えればいいのかもしれません。

ようやく理解できた

2008-02-20 22:37:13 | ソフトウェア開発
先日からHTMLCSSを用いて、WEBデザインの勉強をしておりますが、実際に色々なサイトを見ていると、左にボタンがあったりする場合にどのように画面を分割しているのだろうと思い、ソースを見ていると、Frameタグを使用するのではなく、背景色で分割しているだけということがわかりました。

以前までは、Frameを使用するのかなと思っていましたが、どのサイトを見てもあまり使用していないので、本当に使用しているケースがほとんどありませんでした。

やはり色々なものを見て、実際に他のところではどうしているかを疑問に持ち、調べることが重要であるなと思いました。

ただ、デザインに関しては、まだまだ勉強中といった具合なので、かなりひどい状態はいうまでもありません。

黒糖焼酎「れんと」

2008-02-17 21:13:08 | 未分類
先日、知人のお店に飲みに行った時に、黒糖焼酎の「れんと」というお酒を出してもらいました。
これが非常に飲みやすく、水割りでかなりの量を飲んでしまいました。

黒糖なので、あまいというようなイメージをもっておりましたが、まったく甘くないので、甘いものが苦手な人でも飲むことができます。

割とこのお酒は希少価値が高いようで、なかなか手に入らないようなお酒だそうです。
かなり貴重な体験ができました。

技術の本質を学ぼう

2008-02-16 23:27:18 | プログラミング
以前からこのブログ上で、技術の本質を捉えないと、どうしても言語が変わったり、技術が変更されたときにどうしても役に立たない状態になってしまいます。

では、技術の本質を捉えるためにはどうしたらいいかというと、私はまずは、コンピュータが動作する仕組みを理解しなくてはならないと思います。

動作する仕組みと言ってもすごく幅が広く、2の補数だったり、なぜその仕組みがあると嬉しいのかです。

その他にも、例えば、ソートアルゴリズムがあったときにどうしてクイックソートが早いのかを考えなくはなりません。それは、計算量を求めることで理解することが出来ます。

それらを知らないのに、オブジェクト指向デザインパターンがどうのこうの言っている場合ではありません。
オブジェクト指向の本質は、私は疎結合読みやすいコードを書くことであると思います。
これも、なぜこういったパターンが有効であるかそれを実現するためにはどういったことをしなくてはならないかになります。
正直、パターン名を知らなくてもああこの実装ならここで使っているよなどでも良いと思います。

こういった技術の本質を理解しないで、ただ本に書いてあることだけを見て、ここにあるから試してみようというのではなく、その本質はナンであるか・それを知ることでどういったことができるかを判断できるスキルが必要になってきます。

ショックだな

2008-02-14 23:24:23 | プログラミング
最近は、C#での開発作業が主だったので、人に教えるのに久し振りに別の言語を使用して、説明をしたときに、なんとfor文の宣言がどうだったかをちょっと考えながら、コードを記述しました。

少し前までだったら、脊髄反射的に、何も考えずにコードを書くことができましたが、しばらく別の言語を使用していたので、脊髄反射的には書くことができなくなってしまっていました。
ちなみに別の言語の方が使用暦は長いです。

C#で書くときには、もちろん脊髄反射的に記述することができるので、まったく問題ありません。しかし、しばらく使用していない言語は脊髄反射的にはかけなくなってしまうなと身をもって体感しました。

漢字もPCを使用しているとかけなくなる現象と同じであるなと思いました。

文字を縦書き描画する方法

2008-02-13 23:05:00 | C#
C#文字列を縦書きに描画する方法は以下のとおりにすれば簡単に出来ます。

Font fnt = new Font("@MS ゴシック", 9);
StringFormat sf = new StringFormat();
sf.FormatFlags = StringFormatFlags.DirectionVertical;

Delphiであると結構面倒な処理ですが、C#だと簡単に描画することができます。

それ以外にも縦方向や横方向の文字寄せを変更したりすることができるたりするので、結構簡単に描画することができます。

これからのビジネスモデルはどうなるか?

2008-02-12 23:08:52 | ソフトウェア開発
最近、今後のITビジネスとして何がありそうかを考えると、やはりテーマは、「ECO介護」ではないかと思います。事実、そういった分野に進出している企業は多くあると思います。

実際に、ECOと介護に関して実際に何が効率が悪くてITを活用するとどういったことができるのか、そして利益が上がるのかは正直、実際の現場を見たことが無いので、よくわかりませんが、たぶんキーワードはこの二つではないでしょうか?

ただ漠然と考えているだけなので、具体的にどういった行動をとればいいのかなどは、はっきりとしていません。

ただ、間違いなくこの2つの業界は成長し続けると思います。これからビジネスモデルがどうなっていくかを検討していく必要があると思います。

目標:平均110km:その2

2008-02-09 23:02:34 | 未分類
以前、球速をあげなくてはとならないと思い、筋トレを始めました。
そのせいもあってか、少しだけですが、体が締まってきました。
締まってきたのは主にウエストで以前よりも少しだけですが、ズボンがゆるくなってきました。
大体週に1回程度なので、目標の110kmは中々でないと思いますが、体が絞れてきたので、動くのには楽になってきました。
後は、筋トレの回数を増やして、目標の速度になるまで頑張ろうと思います。

ICloneableについて

2008-02-08 22:51:37 | C#
C#ICloneableというインターフェースがあります。
単純にオブジェクトのコピーを行いたければ、以下のようにします。

class Sample: ICloneable
{
public object Clone()
{
this.MemberwiseClone();
}
}

注意しなくてはならないのは、参照型のものに関しては参照だけがコピーされるので、参照型フィールドをコピーする場合には、そのフィールドもICloneableを実装しておかなければなりません。

このあたりは、Delphiと違って、簡単に実装できます。Delphiの場合には、TPersistentAssignを使用して一つ一つ定義しなくてはなりません。