分類: プログラミングの話 日付: 2023年06月04日公開 昨日ツイートした件ですが、もう少し個人的に触れておきたかったので、ブログで書きます。独りよがりですが・・。 まず、配列を受け取る関数で空配列か、つまり java では length が 0 のときだと思いますが、そもそもそういうチェックが必要な関数は書いたことがないです。これは自分一人で書いているというのがありますが、もし空配列かをチェックしないと駄目なら膨大な関数の頭にそのチェックが入ることになります。これは非現実的です。 もし大きなプロジェクトで別の人が書いたコードから呼ばれるような場合、その人と仕様決めをします。 仕様決めとかしない場合は、正解は true みたいなのを見たのですが「空集合があらゆる集合の部分集合になるというルールに矛盾するから」という理由です。それってプログラミングを超えて数学の論理的な話の気がします。 普通に考えて、例えばですが1年間の毎月の収支が入っている配列(12個の要素)があり、それが全て正なら超優良企業と判定する関数があったとします。 そして、その関数の判定により、真が戻った際に「超優良企業である旨及び毎月の収支」を表示する機能があったとします。ここで誤って空配列を渡すケースを考えると、超優良企業と表示してしまいます。そして毎月の収支は表示できずにフリーズしたり落ちたりするでしょう。 フェールセーフで超優良企業ではないと表示し毎月の収支表示を表示せず落ちない方がシステムとして優れています。前述したように仕様決めしないのが前提です。 自分はフェールセーフは結構大事と考えている方で、フェールセーフに救われて不具合が顕著化しないで済んだことは何回かあります。 あと Twitter で「その後の処理が true を返した方がフェールセーフに働く場合のみ true。」と書いたのですが、これはあまり良くない設計だとは思います。true なのにフェールセーフはなんか直感に反します。 自分がこれをしているかはわかりませんが、false (偽) でフェールセーフの方が直感的で良いとは思います。 アプリゲーム紹介 Mocoゲーム作成で比較的人気の無料ゲーム タンク大作戦 を公開中です。Google Play 及び App Store でダウンロード可能です。 プログラミングでは、Warning は「ワーニング」が正しいと思う 中学校の「技術」という教科で、HTML+JavaScript を学ぶ!? 全然知らなかったセンター試験にプログラミングがあったこと、DNCLという言語 デグレ、デグレ、デグレ・・・ プログラムにデグレはつきもの 前後のブログ 2023年06月06日 iOS 17 は iPhone 8 が対応外って・・ 2023年06月05日 EU(欧州)の巨大IT企業に対する規制が何気にえげつないと思う 2023年06月04日 もう少し触れたい「配列のすべての要素が条件を満たすならtrueを返す」関数に空配列を渡したらtrueかfalseかのこと ≪ 2023年06月03日 Twitter Blue によりチェックマークが入りました 2023年06月02日 アップルに「アプリストア」開放義務づけの件 2023年06月01日 ガイラルディア転生2開発情報 ⇒ より最新のブログ ⇒ より以前のブログ
|
最新エントリー
⇒ より以前のブログ コンテンツ分類 AI(人工知能)の話 (37) YouTuberと動画サイト (74) いろいろ (365) いろいろレビュー (27) アプリの事 (367) アプリストアの話 (271) アプリ公開情報 (367) アプリ更新/修正情報 (249) クイズいろいろ (40) ゲーム全般 (675) スプラトゥーン (207) スポーツの話 (207) スマートフォンの話 (563) タブレットの話 (97) テレビの話 (25) ネットの話 (93) パソコンの話 (92) フォームへの返答 (39) プログラミングの話 (95) ページの事 (135) ページ更新情報 (171) ポケモンGO(位置ゲー) (116) メルマガの事 (20) 家電の話 (44) 開発情報 (351) 技術的な話 (92) 携帯の話 (647) 時事的な話題 (141) 将棋の話 (39) 独り言 (81) カレンダー 2024年11月 ⇒ ブログカレンダー |