Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

独りガラパゴス開発

2,655 views

Published on

独りガラパゴス状態な自分がC++でのWindowsソフトウェア開発で使っている独自且つ自作のものを簡単にご紹介します。

■solomon
独自ビルドフレームワーク
■trickerr.h
独自エラーハンドリングフレームワーク
■バグベアード
独自デバッグフレームワーク

Published in: Technology
  • Be the first to comment

独りガラパゴス開発

  1. 1. 独りガラパゴス開発
  2. 2. 概要  独りガラパゴス状態な自分がC++での Windowsソフトウェア開発で使っている独 自且つ自作のものを簡単にご紹介します。 独りガラパゴス開発 2
  3. 3. 概要  solomon  独自ビルドフレームワーク  trickerr.h  独自エラーハンドリングフレームワーク  バグベアード  独自デバッグフレームワーク 独りガラパゴス開発 3
  4. 4. SOLOMON 独りガラパゴス開発
  5. 5. solomon  Windows用コマンドラインビルドフレーム ワーク。  https://bitbucket.org/wraith13/solomon/  ビルド結果別に作業ディレクトリのス ナップショット(履歴)を作成。  ビルド結果:コンパイル成否xテスト成否 独りガラパゴス開発 5
  6. 6. solomon  スナップショット(履歴)  なぜかエラーになる、あるいは、なぜかエ ラーが消えたという場面でも、コンパイルの 成否およびテストの成否の状態別にスナップ ショットが残っているのでディレクトリ比較 することで問題箇所が簡単に明白になる。 独りガラパゴス開発 6
  7. 7. solomon  スナップショット(履歴)  お一人プロジェクトや、新プロジェクトの初 期段階で、スナップショットがバージョン管 理ツール代わりになって重宝します。 独りガラパゴス開発 7
  8. 8. solomon  スナップショット(履歴)  スナップショットは最終版だけを残したり、 自動的にzipファイルに固めたり、テストは無 しでコンパイルの成否だけを見るようにした りといろいろカスタマイズできます。 独りガラパゴス開発 8
  9. 9. solomon  自動ビルド  ファイルの更新を監視してファイルが更新さ れたら自動的にビルドを行うこともできます。 独りガラパゴス開発 9
  10. 10. solomon  おまけ  エクスプローラの[送る]メニューに登録してお くことで簡単に日時ZIPを作成する機能もあり ます。 独りガラパゴス開発 10
  11. 11. TRICKERR.H 独りガラパゴス開発
  12. 12. trickerr.h  C++用エラーハンドリングフレームワーク  http://tricklib.com/cxx/dagger/trickerr.h 公開場所を bitbucket に移行予定。 独りガラパゴス開発 12
  13. 13. trickerr.h  例外と同じく関数呼び出しのインタ フェース上には現れずにリスナーによっ てエラーをハンドリング。 独りガラパゴス開発 13
  14. 14. trickerr.h  エラー発生時に処理の中断・継続を呼び 出し側に設置するリスナーで制御可能。  例外のthrowのように処理を中断すべきかどう かは呼び出しのコンテキストに依存すること が多く、末端の関数内では決めようがない問 題を回避。 独りガラパゴス開発 14
  15. 15. trickerr.h  ツリーエラーモデル  エラー情報をツリー構造で扱う。 独りガラパゴス開発 15
  16. 16. trickerr.h  RAIIが真価を発揮できる。  RAII的にはデストラクタで後処理を行うのが必 然だがデストラクタには戻り値もなく例外を 使ってしまうと二つ目のエラーが発生した時 点でアウトだが、エラーのハンドリングをリ スナーで行いエラー情報をツリー構造で扱う ことによりRAIIがその真価を発揮できる。 独りガラパゴス開発 16
  17. 17. バグベアード 独りガラパゴス開発
  18. 18. バグベアード  C++用デバッグフレームワーク  http://tricklib.com/cxx/ex/bugbeard/ 公開場所を bitbucket に移行予定。 独りガラパゴス開発 18
  19. 19. バグベアード  ステートメントハックを使った暴力的な 機能。  トレーサー プログラムがどのような挙動をしたのかログ ファイルから詳細に追跡できます。  プロファイラ プログラムのどこで時間を喰ってるのかホット ポイントが一発で分ります。 独りガラパゴス開発 19
  20. 20. バグベアード  ステートメントハックって?  #define if(X) if (省略) のような形で予約語の多 くを改ざんし、ソースコード全体にわたって 強制的にデバッグの為の埋め込みを行う。 独りガラパゴス開発 20
  21. 21. まとめ 独りガラパゴス開発
  22. 22. 独りガラパゴス開発 まとめ  solomon  ビルドの結果別にスナップショットを作成。  ソースコードが保存されたら自動ビルド。  trickerr.h  ツリーエラーモデル。  末端のコードでは処理の中断・継続の設計判断が不要で、 呼び出し側のリスナーで制御。  バグベアード  ステートメントハックによるコード全体のトレース。  ステートメントハックによるコード全体のプロファイル。 独りガラパゴス開発 22

×