サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
体力トレーニング
blog.emattsan.org
感想は帰宅して興奮覚めやらぬままに書いたとおりですが、今回は特に「楽しかった」では済まない宿題をたくさんもらった思いです。 土日と頭を冷やしながらその宿題について考えていました。 で。本当はもっとまとまった文章にしたかったんですが、文章を考えているだけで風化してしまいそうなので、恥ずかしいのを覚悟でベタ書きのままアップしました。 (読み返してみても小学生の作文だ…) Object 「いままでどれぐらいのオブジェクトを書いたか?」「クラスでなくてオブジェクトを」 クラスとオブジェクトの話題は繰り返し目にしたことはあります。それに対するわたし自身の立場は保留で、踏み込んで考えたことはありませんでした。ただスタイルは「クラス指向」です、明らかに。この間、C++からLuaに翻訳したとき、「わざわざクラスを書いている」という感触がありました。そういった感触を感じていたのは、いつものようにクラスを基づ
std::vectorの連結で演算子が使えない、という話題に対して。 どういう話かというと、こういうことです。 #include <iostream> #include <vector> #include <algorithm> #include <iterator> int main(int, char* []) { std::vector<int> v1; std::vector<int> v2; v1.push_back(10); v1.push_back(20); v1.push_back(30); v2.push_back(100); v2.push_back(200); v2.push_back(300); // v1 += v2; // これをやりたいけど、こうは書けない v1.insert(v1.end(), v2.begin(), v2.end()); // これが一般的
あとでよく読む。 バイナリシリアライズ形式「MessagePack」 - Blog by Sadayuki Furuhashi http://code.google.com/intl/ja-JP/apis/protocolbuffers/ バイナリファイル形式パーサージェネレータが欲しい - 言語ゲーム バイナリファイルパーサジェネレータが難しい理由 - .mjtの日記復帰計画 仕事で、バイナリ形式で通信する部分にたずさわっていて、オブジェクトに格納したデータをバイナリ形式にして送信したり、バイナリ形式のデータを受信してオブジェクトに復元したりするわけですが…。 要は、オブジェクトのシリアライズ/デシリアライズ。 で、これがとにかくめんどくさい。言語はC++。言語のサポートは皆無に等しく。 おまけに手元にあるコードはバイナリ形式へ/からの変換と、データを処理する部分が一緒の関数の中に書かれ
最低限テストとして利用できる基本的な使い方について解説します。応用についてはおいおい。 テストを記述する テストは、関数のように見えるTESTマクロを使って記述します。 TEST(テストケース名, テスト名) { テスト本体 } 個々のテストは特に登録などの手続きをする必要がなく、TESTマクロを使って書き足すだけで実行の対象になってくれます。 #include <gtest/gtest.h> int add(int x, int y) { return x + y; } TEST(AddTest, Test1) { ASSERT_EQ(2, add(1, 1)); } TEST(AddTest, Test2) { ASSERT_EQ(3, add(1, 2)); } TEST(AddTest, Test3) { ASSERT_EQ(4, add(2, 2)); } int main(in
二種類のアサーション googletestのアサーションには大きく二種類のアサーションマクロが用意されています。 一つは評価が失敗した時点でテストを終了する、名前がASSERT_で始まるマクロ。もう一つは評価が失敗してもテストを継続する、名前がEXPECT_で始まるマクロです。 名前がASSERT_で始まるマクロの場合、例えば次のようなコードでは(1)で評価が失敗した場合(2)は実行されません。 ASSERT_TRUE(a); // (1) ASSERT_TRUE(b); // (2) 評価が失敗したときに実行されないのは以降のTESTマクロの内部のみで、テストケース全体やテストスイート全体が実行されなくなるわけではありません。 一方、名前がEXPECT_で始まるマクロの場合、次のようなコードで(3)の評価が失敗しても(4)も実行されます。 EXPECT_TRUE(a); // (3) E
導入 →googletestについてのまとめ テストの記述 基本的な使い方 →基本的な使い方 前処理・後処理のあるテスト →前処理・後処理のあるテスト アサーション 二種類のアサーション(FatalなアサーションとNonFatalなアサーション) 真偽を評価するアサーション 二つの値を比較するアサーション C言語形式の文字列を比較するアサーション →アサーションの解説(1) 例外を扱うアサーション →アサーションの解説(3) 評価方法を指定するアサーション 無条件の成功と失敗 →アサーションの解説(2) 実行時オプションと環境変数 →実行時オプションと環境変数(1)
主立った実行時オプションについて説明します。 実行時オプションには(--gtest_list_testsをのぞいて)対応する環境変数があります。環境変数に値を設定しておくと、実行時オプションを指定したときと同じ効果が得られます。 オプション 環境変数 機能 --gtest_list_tests テストの一覧を表示する --gtest_filter GTEST_FILTER 実行するテストを指定する(フィルタリングする) --gtest_repeat GTEST_REPEAT テストを繰り返す回数を指定する --gtest_break_on_failure GTEST_BREAK_ON_FAILURE テストが失敗した時点でテスト全体を中断させる --gtest_color GTEST_COLOR 結果のカラー表示を指定する --gtest_print_time GTEST_PRINT_TI
オブラブの合宿に参加してきました。会社の研修以外では合宿で何かを学ぶというのは初めてかも知れません。旅行という意味でも久しぶり。密度の濃い2日間でした。 ワークショップ わたしは、Ruby on Railsで実際に動くアプリケーションを作る、開発セッションに参加。Rails未経験(1週間座学)でできるのかと不安が先行したまま最初のイテレーション、90分間がスタート。途中かなり手助けしてもらったものの、イテレーションの終わりには見た目はともかく動いている。動くものを目にするとできたという安堵と自信が湧いてきて、次もできるかもしれないという気になるから不思議。動くものを作るというのはクライアントにデモできるというだけでなく、モチベーションを維持するためにも大事だと実感。 動くものができると、開発者のモチベーション以外にも得るものが。 開発する個々の機能の規模を数値で表しておいたので、1イテレー
個人的に年中行事になりつつある冬のオブラブイベントに参加。 今回も平鍋さんのお出迎え。 いつもにもまして手作り感が満載の雰囲気。 会場が小さいのでドラ響く?…と思っていたら、ドラ控えめだった。 「いきいき」ブーム到来。 LT、ネタ度は低く、ためになる話がたくさん。資料が出たらしっかり読みたい。 ワークショップでは、今回がイベント参加初めてという方の多いテーブルに参加。みなさん緊張の面持ち。もう少し話をしたかった。 忘年会でなくて「望年会」(by天野さん)。来年を展望、来年に希望。 Pythonもいっかいちゃんと勉強しようと思った。 イベントの本番である懇親会は泣く泣くパス。主に胃の都合で。身体鍛えないといけないなぁ。 懇親会に参加できなかったのがほんとに残念。今回のイベントが仕事のあとに参加できる時間帯だったためか、偶然なのかわかりませんが、わたしの参加したワークショップでは初回の方がほと
昨日開催されたXP祭り。今年も行ってきました。 ざっくばらんに。 Agile2008の報告。チームで突撃した様子が報告された。輸入物をありがたがるクセがあるけれど、意外と日本も実は負けてはいないのではないか、という気に。 「見積もりに意味があるのか」という議論までされているという話。日本では契約で切れてしまっているので契約のためにどうしても見積もりが必要になってしまう。 海外では、自前でIT部門を持っているというはなし。日本のように委託でなく。 日本では上から下まで一貫したチームになっていない。ユーザと開発者の直接契約がムダを省くこと。このムダをなくす活動をしていく。 ソフトは開発期間より保守期間(ユーザが利用する時間)の方が長い。だから保守大事という話だったんですが、組み込みソフトの場合はどうだろう、と考えてしまった。 「日本のソフト開発は山手線の中にある」(国内のソフト技術者の半数が東
引用記号に限らずですが。 例は、lsコマンドで一覧したディレクトリの内容に引用記号(>)をつける例です。 ls | ghc -e 'getContents >>= mapM_ putStrLn.map ((++) "> ").lines' 未来の自分のために解説。 getContentsで標準入力から文字列を取得 linesで文字列のリストに分解 map ((++) "> ")で引用記号を行頭につける mapM_ putStrLnで標準出力に出力 補足 Rubyだとこんな感じ。忘れないように。 ls | ruby -ne 'print "> #{$_}"' テンポラリファイルを作るのに、テンポラリフォルダの値を得る必要に迫られて。 忘れないうちにメモメモ。 import System.Environment get_env :: [String] -> String -> IO Strin
このページを最初にブックマークしてみませんか?
『エンジニアのソフトウェア的愛情』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く