ルールズ・オブ・プログラミング読書会vol.27
https://scrapbox.io/files/655372c161a776001bf71cc6.jpeg
開催日時
2025年1月28日(火) 19:30~21:00
開催URL
参加人数
4人
ウォーミングアップ
ルール12 大きなチームには強い規制が必要
ここでいう別とは?
中かっこの位置
命名規則
引数
それぞれが自由に作っていると複雑性が増す
複雑性が増すと成功から遠のく
AIにコードを作らせて使い捨てればいいという風潮がある
テストケースは人が作るのでそこで担保
昔の「コード→コンパイラ→機械語」の流れでコンパイラの変わりにAIが代替するようになるという主張にへー、となった
コンパイラもブラックボックス
AIにジョークWebサイトを作ってもらった
HTMLや中身の文章まで作ってもらった
使い捨てと割り切ると便利だった
書式整形規則
2つのコーディングスタイルの例
1つ目のスタイル
typedef TREE selfにだけ気になるがそれ以外は気にならない人
メンバ変数を改行してないのが気になる人
多少著者の偏見が混じってない?
2つ目のスタイル
あちこちにTreeって書いてあって多少冗長にも感じる
autoにしたときにTree書いといてよかったってなるのかな?
C言語だとオーバーロードできないので役立つ
メンバ変数初期化してないのが気になる
ポインタ未初期化が怖い
初期化してくれるな、というケースもある
後でif文のどっちかによって代入を差し替えるからコンストラクタで初期化しないでほしいケース
CPUリソース貧乏癖
スタイルを混ぜることが問題
言語の使い方の規則
ラムダ式が出てきた
ラムダ式の出現部分が局所化しているから使ってもいいという考え方
「sumTree()というインタフェースだけを見ればやることはわかるから中はどんな形でもいいでしょ?」
問題解決のための規則
Sucker Punchでは使い方の間違いをエラーではなくアサートとして扱う
何が問題のコード?
ネストが深い?
そこじゃない
エラーの返し方が複数あることが問題
tryをつけるという規則
!file.good()とfile.bad()って何が違うの?
goodは状態値が空であることを判定するので、例えばEOFだった場合はgoodはfalseになる
resultにエラー値を持たせられるstd::expected
次回「p.208 成功か失敗かを単純なbool型の値で~」から読み進めていきます
効果的なチームは、同じように考える
お悩み雑談室
AIが出してくる情報が古いけどどうしたらいい
企業版だと外部の検索が封じられていたりするので古くなるかも
ネットで検索しても出てこないからAIに聞いたら古い情報だった
AIのInputがそもそもないから古い情報になりがちかも
スクエニのチャットボットの研究
社内情報を見つけられないのでチャットボットが出来たらいいな