やっぱり何本と数えるのか?
http://www.atmarkit.co.jp/news/200901/16/migration.html
移行で最も苦労したのは既存のCOBOLプログラムの総数が分からなかったことだ。開発計画時は5366本と見積もっていたが、実際は6573本のプログラムがあった。
前見た記事とも書いている人違うし、Cの世界では聞いたことないし、やっぱCOBOL用語なのかなぁ。
refactoring to patterns.
パターン指向リファクタリング入門~ソフトウエア設計を改善する27の作法
- 作者: ジョシュア・ケリーエブスキー,小黒直樹,村上歴,高橋一成,越智典子
- 出版社/メーカー: 日経BP社
- 発売日: 2005/08/04
- メディア: 単行本
- 購入: 11人 クリック: 313回
- この商品を含むブログ (130件) を見る
デザインパターンへのリファクタリングの過程を丁寧に書いている本で、同時にデザインパターンを使わない方向へのリファクタリングも書いてある。デザインパターンが絡まないよりシンプルなリファクタリングについては、マーチン・ファウラーのリファクタリングを参照することとなるので、そっちも合わせて必要となる。
UMLは素人を騙すくらいにしか役に立たないらしい。
よーするに、日常的にUML使って設計している私は、素人の自分を自分で騙してると言う結論に至る。
ちょっとは反論してみようと思わなくもないのだが、多勢に無勢で勝てそうもないので特に何もせず。こーゆーところはふつーのソフト会社と変わらないんだよなぁ(前の会社で40代50代の人々を相手にグダグダやってたのを思い出す…思い出したくないけど)。他の事では優秀な人々なので、人間得手不得があるという手当り前の話ではあるが、私的にとてもやる気が削がれる瞬間でもある。
こういう事を言う人は、まともにオブジェクト指向プログラミング出来る人が回りにいなくて、ネットとか本で出来の悪い情報を見聞きしただけとか、OOPを口にするだけの偽者にしかあった事ないんだろうな(と、憶測でものを言ってみる)。id:minekoa先生と一時期一緒に仕事させていただいていた事は、本当にラッキーだったと痛感。
とりあえず、UML批判を吹聴するなら、マーチン・ファウラー氏あたりを倒してからにしていただきたい。
対角線上
サンワサプライ 光学式トラックボールマウス 5ボタン ブラック MA-TB38BK
- 出版社/メーカー: サンワサプライ
- 発売日: 2008/12/01
- メディア: Personal Computers
- クリック: 18回
- この商品を含むブログ (8件) を見る
なんか使いずらいきがしなくもなかったが、ちょうど対角線上に手を置くといい感じ。ボタンとボタンの間に薬指置けるのとか、もしかして狙った設計なのかな?
Boost C++ Libraryのお勉強その11
Boost.Integer
C99でstdint.hが追加になってるけど、現行のC++にはないのでboostにありますよとか、互換性の為のもの。
Boost.Interprocess
UN*Xの世界でIPCとか言ってるもの。プロセス生成自体が色々面倒なので飛ばす。
Boost.Interval
数値の範囲同士を計算するクラス。
#include <iostream> #include <boost/numeric/interval.hpp> int main(void) { boost::numeric::interval < int > a(1, 2); boost::numeric::interval < int > b(3, 4); boost::numeric::interval < int > c = a + b; std::cout << c.lower() << ", " << c.upper() << std::endl; return 0; }
4, 6
Boost.Intrusive
要素側がコンテナのデータを保持するもの。
リストのデストラクタが何かするらしく、要素とリストを同じスコープに入れてるとダメ。
#include <iostream> #include <algorithm> #include <boost/intrusive/list.hpp> class Dummy : public boost::intrusive::list_base_hook <> { private: int data; public: Dummy(int d) : data(d) {} void view(void) { std::cout << data << std::endl; } }; int main(void) { Dummy a(1); Dummy b(2); { boost::intrusive::list < Dummy > list; list.push_back(a); list.push_back(b); list.front().view(); list.back().view(); } return 0; }
1 2