2022年5月6日のブックマーク (2件)

  • 『良いコード/悪いコードで学ぶ設計入門』を読んで気になったことのメモ

    はじめに 話題となっている『良いコード/悪いコードで学ぶ設計入門 ―保守しやすい 成長し続けるコードの書き方』 (出版社のページ) を読みました。 全体的には「うんうん、そうだよね」と同意できることが多かったです。 もちろん、初めて目にするような考え方, アイディア, テクニックもありました。 一方、気になったことやちょっと引っかかったこともありましたので、メモしておきます。 あくまでもメモなので結論のようなことはありません。 p.55: HitPoint.isZero HitPoint クラスに isZero メソッドがあります。 「ヒットポイントがゼロであれば true」という仕様で、実装は次のようになっています。

    『良いコード/悪いコードで学ぶ設計入門』を読んで気になったことのメモ
    hariboten
    hariboten 2022/05/06
    Immutable なオブジェクトにadd()したいって要求が不毛な気が
  • [C++] bool 型を強くする YesNo クラス

    これは C++ Advent Calendar 2021 の参加記事です。 C++ のプログラムを少しだけ読みやすく、安全にするために作った便利クラス YesNo<T> と、それを簡単に使えるライブラリ siv::YesNo (Boost Software License 1.0) を公開します。このライブラリは Siv3D の API で長らく使われている類似のクラス s3d::YesNo<T> を、再利用しやすく切り出したものです。 1. よくある問題 bool 型の引数は、呼び出し側からは意味が分からなかったり、取り違えたりするおそれがあります。 void ToHex(int n, bool uppercase) { if (uppercase) std::cout << "uppercase\n"; else std::cout << "lowercase\n"; //... }

    [C++] bool 型を強くする YesNo クラス