ルールズ・オブ・プログラミング読書会vol.42
https://scrapbox.io/files/655372c161a776001bf71cc6.jpeg
開催日時
2025年9月30日(火) 19:30~21:00
開催URL
参加人数
3人
ウォーミングアップ
ルール18 コードに自らの物語を語らせろ
「未来の自分」とは「他人」
先々週の自分ですら他人
先々週作っていた内容を忘れて同じものを作ってた
ただの忘れっぽい人(自分)では?
真実じゃない物語を語るのはやめよう
未来の自分がわかりやすいように心がけてコード書いてる
それでも見返すと不十分なところが見つかる
Connect::Retryのおかげで、有効なハンドルを必ず得られる
絶対成功するとか書かれると逆に「ホンマか?」と確認したくなる
凄い嗅覚
逆にいいコメントなのでは?
コメントのメンテナンス大変
アサートを使え
アサートどころか回避させずにクラッシュさせろ、下手に延命させるな
最新のC++だと「契約に基づくプログラミング」を使えるようになるのかな
チェックに失敗すると即座にterminate()するのでまったく同じようには使えない
違反ハンドラとかが使える?
物語に必ず意味があるようにしよう
Doxygenのコメント記述
コメント書かなくてもコールグラフは出力してくれる
とりあえずコールグラフを出力すると全体を俯瞰することはできる
書式
Doxygenの書式見づらい
MicrosoftのXMLドキュメントコメントに比べると大分マシ
これはひどい・・・
Doxygenの書式見やすかったわ
良い物語を語る
次回ここから
お悩み雑談室
code: cpp
template <typename T>
auto addressof(typename std::vector<T>::reference r) // 引数はネストした型
{
return &r;
}
std::vector<int> v;
addressof(v0); // Tをintに推論してほしい…… なんでネストした型は推論してくれないんですか?と新人さんに聞かれた
特殊化があるからreferenceが一意にならない
推論せずにaddressof<int>(v[0])ならOK
例題が悪い気がする
vectorではなく例のためのクラスを用意して説明したほうがいい