ルールズ・オブ・プログラミング読書会vol.14
https://scrapbox.io/files/655372c161a776001bf71cc6.jpeg
開催日時
2024年6月25日(火) 19:30~21:00
開催URL
参加人数
8人
ウォーミングアップ
ルール7
ハンドル閉じた後でファイルアクセスしようとする
Rust使え(C++全否定)
ハンドル閉じると変数自体が消滅
正確には所有権が移動する
マインクラフトで動く8bitプロセッサ(すごい・・・)
https://youtu.be/FDiapbD0Xfg?si=J7tJcNLRXr5jGuIh
シャットダウン用ルーチンを呼び出した後にファイルハンドルを閉じるってどういうこと?
その順に呼び出さないと呼ばれたくないコールバックが呼ばれてしまう
シャットダウンしてるならクローズする必要なくない?
ダーティハック
posixのファイルアクセス
ドキュメントにはクローズに失敗すると書いてある
失敗してるが閉じられているケースがある
戻り値見てチェックしてもどうしようもない
fcloseとかは戻り値voidで失敗しない
自滅しやすくなっている関数
お金がdouble型
日本円だと整数型をイメージするが、ドル換算だと小数点が必要
%sと%fを入れ替えると大変なことになる
C言語においてプログラマは神なので間違えない
ハックとしてねじ込まれるprintfのチェック
運用でカバー
printfは時代が時代なので・・・
最近のC++ならformatが使える(C++20)
文字列内に変数名を書くことでフォーマットしてくれるやつあるよね
自分の行為が原因の、間接的な自滅
ローカライズだと出てくるauthorNameとamountが出てくる順番変わりそう
printfの$指定でインデックスを指定できる
showAuthorRoyalities()
assertについて
NDEBUGが定義されてなければabort,定義されていれば何もしない
indexはtitles基準なのでroyaltiesだけがバカみたいに大きい場合はストップしない可能性がある
convertCoordinateSystem()
うまく人に説明できないコードはよくないコード
命名に悩んで長い名前になる
やってることが多すぎ
自滅を避けるためにコンパイラーの力を借りる
TitleInfoクラスを用意
わかってるがつめかえるの面倒
どうせつめかえるところでサイズチェックが必要になる
この関数外にチェックの責任を投げただけ
ライブラリ側とユーザ側
ユーザ側で用意することでユーザ側に投げれる
2つのサイズが違った場合にユーザ側がどうしたらいいかを判断できる
途中まででも出力してほしいのか
そもそも何も出力してほしくないのか
本文より長い訳注
古いAPIだと複雑
いろんなことができるけどそんな使い方してるケースほとんどないAPI
最近だとシンプルな関数から初めて必要に応じて足していく
windowシステムのX
「また、関連する引数を~」
次回ここから
お悩み雑談室
続・ドラム式洗濯機
進捗あまりないです