アンチパターン

レベルデザイン時の確率表示とUX

少し内容が散漫としていますが思ったことを書いていきたいと思います。 この記事ではゲーム内で表記される確率とユーザーの体験(いわゆるUX)を考えてみたいと思います。さて、よくガチャで当たりの確率が1%だと100回引いた時点での当選確率が63%程度とされ…

C#でTypeInitializationExceptionが発生する

ある日突然プログラムを実行したら「TypeInitializationException」が発生した場合の対処法です。 自分のコード内で発生している場合、以降で説明する状況で発生している可能性があります。 // 発生する例外のメッセージ // .NET Core System.TypeInitializa…

コメントが要らないプログラムの書き方

はてなブックマークで「コメントの要らないプログラムの書き方」が話題みたいです。 個人的には以下はまぁOKかなぁと思ってます。 自分の確認のために書いてある書くコメント(ギリギリ) 業務仕様を記述したコメント どうしてそうしているのかを書いている…

C#の三項演算子をリファクタリングする

C#で三項演算子って使ってますか? タイトルの件ですが、条件判定で、三項演算子を使った以下のようなコート見たことありませんか? public void SelectString(string text) { // text の中身が "animal" だったら0を返す。そうでい場合1を返す int index = …

内部でStaticな変数に依存しない

アンチパターンのひとつで、処理がStaticなメンバーへ依存してはいけないというものがあります。 大したことはないのですが。例えば以下のようにstaticな、ある種のグローバル変数があったとします。 public class GlobalValiables { public static bool Int…

コードのコメントはシンタックスじゃなくセマンティクスを書こう

コードの構造とか文法を一生懸命説明するシンタックスコメント職人が世の中に結構いるみたいです。例えばこんなの // ログを出力する Log.WriteLine("ERROR", "Failed to hogehoge function."); Log.WriteLine("ERROR", ex.ToString()); コード見ればわかる…

例外を握りつぶして bool で返すという闇のテクニック

最近のプロジェクトで本当によくこんなコードを見かけるんだけど public bool Foo(...) { try { // hogehoe } catch(Exception ex) { return false; } } こんなことして、.net のライブラリの応答方法とギャップがあるの気にならないのかな? 業務的な例外と…

ファンクション製造駆動開発(FMDD)のススメ

ソフトウェア業界で最も古くからあり、最もプロジェクトに採用実績のある素晴らしいソフトウェア開発プロセスのファンクション製造駆動開発をご紹介します。この項目は、独自研究を元に書かれています。 ファンクション製造駆動開発(FMDD)とは何か? ファ…