トップ «前の日記(2006-04-01) 最新 次の日記(2006-04-03)» 編集

かにの泡ぶく


2006-04-02 今日も当然仕事な日曜日。

_ あ"〜、パニック楽しい。

うん、やはり自営業フリーエンジニアはこうでなくてはいかんな。

_ C++でのクラス間独立性維持の落としどころ。

普通そうだと思うけど、あるシステムを開発する際には、まず、要求仕様を満たすために必要なシステム全体のトポロジーを整理し、モデリングして各オブジェクトを極力抽象化する。このへんは言語非依存。

その後、データ構造設計とビジュアルヒエラルキー、周辺IOを整理し、クラス設計を行なう。

ここまでは良い。

さて、ある程度実装が始まり、システムのパフォーマンスチューニングの段階に入ってくると、高速化を実現するためにはどうしてもクラス間の独立性を捨てねばならない箇所が出てきて、せっかく抽象化したクラス設計内に、突然泥臭い直接参照が発生したりしてしまう。

これはね、個人的には永遠の課題だと思っている。

過去には、関連のありそうなクラス間の通信を調停するための、CArbit classなんてのを作って多重継承させ、メッセージのbroadcast / listen構造を構築してみたり、shared buffer classみたいの作ってメモリマップでダイレクト通信してみたりしたこともあったのだけど、結局見通しが悪くなってしまい、かつ、あまりオーバーヘッド解消にもならなかったりして、いまいちインパクトに欠ける結果に留まっている。

ここ最近では仕方ないので、最後の最後まで抽象化は崩さず、どうしてもどうしようもないときになってから、あっさり直接参照による現世に著しく依存した実装を入れ込むようにしている。

はじめは自分の内で、『美しく抽象化推進者』と『動けばいいじゃん高速実装優先者』の二人が戦っていたのだけど、やってみると、注意深く慎重にモデリング設計されたプロジェクトであれば、チューニングの段階で多少現世に依存した実装が入れ込まれたとしても、全体としてのコードの持つ性質、美しさ・・・しいては見通しの良さ、メンテ性の良さはほとんど失われないということがわかった。

私が歳とって人間丸くなっただけっていう話はぜひ無しという方向で。


もっと読みたい奇特なかたは、↓の読みたい月をクリックしてね。
2000|04|
2005|01|02|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|08|09|10|11|12|
2014|01|03|04|12|
2015|09|12|
2016|04|05|12|
2017|12|
2018|09|12|
2019|02|03|10|12|
2020|04|12|
2021|12|
2022|12|
2023|03|12|
2006年
4月
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30


最新ツッコミ

  1. 青木@管理人 (10-09)
  2. こいち (10-09)
  3. 万年初心者 (04-01)
  4. 青木@管理人 (03-31)
  5. 万年初心者 (03-31)



  • 12月31日
    永劫回帰?!
  • 03月14日
    ランチに超高級カップ麺を食す。
  • 12月31日
    無為自然。
  • 12月31日
    今年もあと少し・・・
  • 12月31日
    大晦日。
  • 04月29日
    PCR検査陽性者数っていつの陽性者数?
    • 1. 日々の陽性者数はほぼほぼ意味無い。
  • 04月23日
    コロナ禍に思うこと。
    • 1. よんどころない話です。軽く読み飛ばしてください。
  • 04月22日
    買うとおカネが貰える?!
    • 1. 原油の価格がマイナスってナニソレ?!
  • 04月20日
    コロナ禍に思うこと。
    • 1. せめてもの報い。
  • 12月31日
    生きるということ。