Open28

メモ書き、ネタ帳|DEAD CODE COOKBOOK

j5c8k6m8j5c8k6m8

「呼ばれないデストラクタ」というレシピを加えたいが、書ける気がしないから入れていない

j5c8k6m8j5c8k6m8

スレッド、非同期、ロック、マクロあたりのレシピも書きたいが、書ける気がしないから入れていない

j5c8k6m8j5c8k6m8

exit メモ

j5c8k6m8j5c8k6m8

exit は、多くのプログラミング言語で、処理(プロセス)を終了させるために使われる。
呼出により直ちに処理を終了させる目的の関数という点は共通しているが、
後処理の制御の有無 と、リターンコード返却方法 はプログラミング言語毎に異なり、また、プログラミング言語内で、複数の exitが用意されている事が多い。

後処理があるexitは、エラーハンドリングを例外処理と同様に行うことが多く、 throw後のコードのレシピ で利用される機能との厳密な区別が難しいが、ほとんどのプログラミング言語では、例外処理とは別にリターンコードを利用した中断方法を提供しているので、違和感はない?はず。

ただし、リターンコードを意識した例外処理を伴うプログラミングを行う時の使い分けは難しい。これは本書の対象外

j5c8k6m8j5c8k6m8

ランタイムエラーも合わせて、後処理、終了時の出力内容(標準出力かどうか)、終了コード、出力をいつするか?(終了時、呼び出し時)あたりで、表でまとめてみる。自分用のためにも

j5c8k6m8j5c8k6m8

標準出力に関して、デッドコードとの関わりはないかな?ないか。

j5c8k6m8j5c8k6m8

exitを使うと、「呼ばれないファイナリー」というレシピが作れる。パワーワードだし、exit後のコードとは、別レシピとしよう。

j5c8k6m8j5c8k6m8

osの機能を利用したパターン??

j5c8k6m8j5c8k6m8

シグナルを利用したレシピ?
ファイルロックを利用したレシピ?

j5c8k6m8j5c8k6m8

今、レシピを作るうえで、
原因 -> 対策
を記載している部分があるが、ここの記載を難しく感じている。

ただ、実際のバグ管理では、原因や対策をコードから選ぶ現場もあるし、
そこのコードレベルでここを整理することで、何か得られるか?
(何かいい参考資料とか(現場以外で)あるかな?)

j5c8k6m8j5c8k6m8

ただ、原因コードや対策コードをしっかり記入できるのは、基となる設計書ありきなので、
本書の整理とは少しずれがあるはず。ただ、本書としてやっぱり整理しておきたい。

j5c8k6m8j5c8k6m8

同じオブジェクトの==でtrueにならないことがある⇒部分同値関係

j5c8k6m8j5c8k6m8

doctestのスコープってどうなるのか。(特にRust)。未使用パターンに対して、doctestってできるか?

j5c8k6m8j5c8k6m8

要求されないイテレータアダプタ。rustでは警告。