【C#】その例外、使ってもいいけど使っちゃダメです

Sonar Lint を使わなければ気づかなかったシリーズ

Sonar Lint で警告を食らう度に記事を書いてる気がしますが、有用な情報なのでスルーしない方が良いと思います。

“【C#】その例外、使ってもいいけど使っちゃダメです” の続きを読む

【デザインパターン】アダプター(Adapter)パターンの本質とは?原点に戻って考え直してみる。

この記事は、Design Patterns(いわゆる GoF 本)の一次ソースである原典にあたり、GoF が提唱したデザインパターンの本質を理解しようと試みた記録です。

今回はアダプターパターンについて調べます。

原典は Amazon で購入できます(Kindle 版もあります)。
※画像をクリックすると Kindle 版の購入ページに飛びます(アフィリエイトではありません)。

“【デザインパターン】アダプター(Adapter)パターンの本質とは?原点に戻って考え直してみる。” の続きを読む

【日本の恥】ガーベジコレクションをガベージコレクションと言うのをそろそろ止めるべき

スペルミスは良くあることなので、気づいたら直せば良いのですが、和製英語は広く社会に認知されているのでどうしようもないのが困ります。

“【日本の恥】ガーベジコレクションをガベージコレクションと言うのをそろそろ止めるべき” の続きを読む

【C#】IDisposable を継承する際に Dispose パターンの知識が必要になる理由

SonarLint を使っていなければ気づかなかったシリーズ。
C# は C++ と比べて変なテクニックを山ほど覚える必要がなく、とても扱いやすい言語だと思っていたのですが、最近はそうでもないと思うようになってきました。

using System;

// ヒャッハー集団のベースクラス
public class HyahhaaBase : IDisposable {
  public virtual void Dispose() {
    // アンマネージドリソースを解放する処理
  }
}

// モヒカンヒャッハークラス
sealed class MohicanHyahhaa : HyahhaaBase {
  public override void Dispose() {
    // 子クラスのアンマネージドリソースを解放する処理
  }
}

このコードはメモリリークします。

SonarLint については以下の記事で簡単に紹介しています。

その他の、SonarLint を使っていなければ気づかなかったシリーズ。

“【C#】IDisposable を継承する際に Dispose パターンの知識が必要になる理由” の続きを読む

【C#】Visual Studio 2022 で SonarLint を使ってソースコードをより堅牢にする

商業レベルの堅牢なソースコードを書くときに、とても役に立ちます。

“【C#】Visual Studio 2022 で SonarLint を使ってソースコードをより堅牢にする” の続きを読む

【コーディング】作って後悔したクラスー巨大なマネージャークラス

class なんかすごいマネージャー
{
 クラス A を生成
 クラス B を生成
 クラス C を…
 …以下、延々と続く

 クラス A を生成する前の準備
 クラス B を生成する前の準備
 クラス C を…
 …以下、延々と続く

 クラス B の状態を変える
 クラス D の状態を変える
 …以下、延々と続く

 クラス B の状態を返す
 クラス C の…
 …以下、延々と続く

 クラス A のコールバック先
 クラス B の…
 …以下、延々と続く
}

省略しているが、扱うクラスは10個以上。
メソッドの実装コードを含めると1000行を超える

“【コーディング】作って後悔したクラスー巨大なマネージャークラス” の続きを読む