クラスとは何か

オブジェクト指向の概念であるクラス。
クラスとは何かと聞かれると最近の答えの流行りは設計図のようですね。
僕はあまりしっくり来ません。

設計図はクラス図のことで、UMLやSysMLの図の中の一つです。
少し大きめのソフトウェアを作る時、僕はクラス図を書いてクラス設計をします。

クラスが設計図ならクラス設計は設計図設計になってしまいます。
何かがおかしい。

僕はC言語からプログラマーの世界へ入ってるので、
オブジェクト指向否定派の一人でした。

オブジェクト指向の嬉しさが全くわからず調べてみても自動車やら動物やらの例ばかり。
で、何が嬉しいの?が全くわからない。
抽象化、多様性、ポリモーフィズム、カプセル化・・・だから何?

そんな僕がクラスの嬉しさについて少し語ってみようかと思います。
クラスの嬉しさは「再利用」と考えるのが良いのではないかと僕は考えます。

行先ボードでも作ってみるか⑬ – 内部設計(クラス図-行先ボードGUIアプリ)(手戻り)

クラス図もmenDocを作成したので書き直します。

gRCPを使ってみた感じからすると、
gRPCを使用する部分はプロジェクトファイルを分けた方がよさそうです。
元々GUIアプリ(クライアント側)→GUIアプリ(サーバー側)→データベース
というような構成で考えていましたがちょっと方針転換します。

GUIアプリ(クライアント側) → 共通ライブラリ(gRPC) → コンソールアプリ(サーバー側)→データベース
こんな感じで行こうかと思います。

名前を付けておきます。

  • 行先ボード(ユーザー操作用):Destinationboard
  • 行先ボードサーバー(データベース操作用):DestinationboardServer
  • 行先ボード通信ライブラリ(gRPC用):DestinationboardCommunicationLibrary

menDocを使用して設計していきます。

そうだ プログラマー、増やそう – あなたがプログラマーを始める理由

最初に申し上げますが日本では「モノをつくる人」の地位は低いです。
工場の職人もそうですが、ソフトウェアをつくるプログラマーも同じです。
押し並べて、使われる側の立場です。

誰でもつくれるものをつくるというのは、特に駄目ですね。
いくら早くても、美しくても、品質が高くても関係ありません。
最終的には値段勝負になり、自分の技術力と時間を安売りすることになります。
まして、サラリーマンプログラマーなんて掃いて捨てるほどいる時代です。
技術力では上には上がいるし、価格やコンテンツ勝負では外国人たちに太刀打ちできません。

それでも僕はプログラマーをお勧めします。
理由は「つくれる」からです。