C# / VB– category –
-
柔軟な拡張性を実現!C#で学ぶPluggable Objectパターンの実践
アプリケーションの拡張性や保守性を向上させるために、多くの設計パターンが活用されています。その中でも「Pluggable Objectパターン」は、機能の追加や変更を簡単にできる柔軟な設計を実現する手法です。 本記事では、C#を使った実践的なサンプルを交えながら、Pluggable Objectパターンの概念やメリットを分かりやすく解説します。 Plugg... -
Self Shunt(自己接続)パターンとは?テストの効率を向上させる手法を解説
単体テストを行う際、モックオブジェクトを活用するのは一般的ですが、テストクラス自体が依存するインターフェースを実装する「Self Shunt(自己接続)」パターンを活用すると、よりシンプルで管理しやすいテストコードが書けます。 本記事では、Self Shuntパターンの概要とC#での実装方法を解説し、その利点についても紹介します。 Self Sh... -
C#で理解するMock Objectパターン:テストを効率化する疑装オブジェクトの活用法
ソフトウェア開発において、ユニットテストはコードの品質を保つ重要な要素です。しかし、外部のデータベースやAPIに依存するコードをテストする際、それらの環境が整っていないとテストが実行できないことがあります。 そんなときに役立つのが「Mock Object(疑装オブジェクト)パターン」です。本記事では、Mock Objectの基本概念を解説し... -
【デザインパターン】Factory Methodパターンの基本と実装例 – 柔軟なオブジェクト生成を実現
Factory Methodパターンは、オブジェクトの生成方法をサブクラスに委ねることで、柔軟な拡張性を持たせるデザインパターンです。 本記事では、C#を使った具体的なサンプルコードを通じて、Factory Methodパターンの仕組みと実装方法をわかりやすく解説します。 他のプログラミング言語でも応用できるため、オブジェクト指向プログラミングを... -
【デザインパターン】シンプルな設計を実現!Template Methodパターンの基本と実践
Template Methodパターンは、アルゴリズムの共通部分を抽象クラスに定義し、具体的な処理をサブクラスに委ねるデザインパターンです。このパターンを使うと、コードの重複を減らし、拡張しやすい設計が可能になります。 本記事ではC#のサンプルコードを用いて、Template Methodパターンの仕組みと実践方法を解説します。他のオブジェクト指向... -
【デザインパターン】イテレータパターンとは?データ構造を柔軟に扱う設計手法を解説
イテレータパターンは、コレクション(配列やリストなど)の内部構造を隠蔽しつつ、要素を順番に走査する方法を提供するデザインパターンです。 C#を例に具体的な実装を紹介しますが、JavaやPythonなど他の言語でも応用できます。このパターンを使うことで、異なるデータ構造に対して統一的なアクセス手法を確立し、柔軟な設計が可能になりま... -
【デザインパターン】異なるインターフェースを橋渡しする Adapter パターンの活用術
プログラムを開発していると、異なるインターフェースを持つクラスを統一的に扱いたい場面がよくあります。そんなときに役立つのが Adapter(アダプター)パターン です。 このパターンを活用すると、既存のクラスを変更せずに、異なるインターフェースを持つオブジェクトを統一的に扱えるようになります。 本記事では C# を用いて Adapter ... -
【ホロリス夏の自由工作】パチスロ風スロットの機能別作り方まとめ【備忘録】
スロット開発における各機能を紹介し、それぞれの実装方法に関する記事リンクをまとめました。 普段ゲーム開発を行わないゲーム開発素人のコードですので、一例として参考程度にご覧いただければ幸いです。 https://www.youtube.com/watch?v=QM59cgrID74 指定した目の出るスロットマシンを実装する方法 特定の結果を出すスロットマシンの実装... -
【Unityゲーム開発】画像と文字をDOTweenで右から左に流す機能の実装【備忘録】
Unityを使ってゲームやアプリケーションを開発していると、UI要素をスムーズにアニメーションさせることが求められるシーンがよくあります。 この記事では、画像と文字を組み合わせたUIプレハブを作成し、これを右から左に流れるアニメーションをDOTweenを使用して実装する方法について解説します。 必要なツール DOTweenをアセットストアか... -
【Unityゲーム開発】数値をアニメーションで増加させる機能を実装する方法【備忘録】
Unityでゲーム開発を行う際、プレイヤーのスコアや経験値など、数値が増加する演出をアニメーションとして表示すると、より魅力的なユーザー体験を提供できます。 この記事では、数値が滑らかに増加するアニメーションをUnityで実装する方法を初心者向けに解説します。 紹介する実装方法は、Unityのチュートリアルレベルの知識があることが前... -
【Unityゲーム開発】 動画再生機能:拡大・縮小機能を持ったビデオプレイヤーの作り方 【備忘録】
Unityを使って、小さな状態から拡大し、動画を再生して、再生終了後に小さくなって消えるような動画再生機能を実装する方法について解説します。 紹介する実装方法は、Unityのチュートリアルレベルの知識があることが前提にしています。すべての設定項目等を細かく伝えているチュートリアル的な記事ではない点をご留意下さい。 前提条件 この... -
【Unityゲーム開発】ムービーをフルサイズで再生・前後にムービーを半透明で重ねる機能の作成方法【備忘録】
Unityでムービーをフルサイズで再生し、前ムービーと後ムービーを順に再生、さらには前ムービーを半透明にして後ムービーに重ねて同時に再生する機能を実装する方法を解説します。 この機能は、複数のムービーを滑らかに切り替えたり、同時に再生したりする際に便利です。 紹介する実装方法は、Unityのチュートリアルレベルの知識があること... -
プログラムの質を高めるためのリファクタリング&コードレビューのチェックリスト
プログラムを書く際、またリファクタリングを行う際には、コードの品質を維持・向上するための具体的な指針が役立ちます。 本記事では、C#のサンプルを用いながらも他のプログラミング言語でも応用可能な「リファクタリング&コードレビューのチェックリスト」を紹介します。 このリストを活用することで、読みやすく保守性の高いコードを書... -
MSTest完全攻略:テストコードの基礎から応用テクニックまで
テストコードの書き方を知らない初心者でも、この記事を読めば基本的なユニットテストを作成することができます。 この記事では、MSTestを使用した単体テストプロジェクトの設定からテストの実装までを詳細に解説します。 具体例はC#を使用しますが、他の言語やフレームワークにも応用可能な考え方を紹介しています。効率的な開発の第一歩と... -
ユニットテストを活用してリファクタリングの失敗を防ぐ方法:サンプルコードで学ぶ効果的な実践法
リファクタリングは、コードの可読性や保守性を向上させる重要な手法です。しかし、リファクタリングの過程で、機能に影響を与えるエラーを招いてしまうことも少なくありません。 この記事では、RPGゲームを題材としたC#のサンプルコードを通じて、リファクタリングのミスを防ぐためにユニットテストをどのように活用するかを学びます。 C#に... -
ソフトウェア設計におけるクラスのモデリングの基本と実践的アプローチ
本記事では、ソフトウェア設計において重要な「クラスのモデリング」について解説します。 適切なモデリングは、メンテナンス性や拡張性の向上に寄与し、コードの品質を大きく左右します。 本記事では、RPGゲームのキャラクタークラスを例に、悪い設計と良い設計を比較し、クラスモデリングにおける基本原則を学んでいきます。 サンプルコー... -
保守性を高めるためのコメント活用術:適切なコメントでコードの品質を向上させる方法
この記事では、コード保守性を高めるためのコメント活用方法について解説します。退化コメントや不明瞭な命名を避け、ドキュメントコメントを活用することで、他者が理解しやすく、メンテナンスが容易なコードを実現する方法を紹介します。 サンプルコードには、RPGゲームを題材とした実例を用意しているので、ゲーム開発の視点からも役立つ... -
コードの可読性を高める名前設計のコツ:目的に沿った命名で効率化を図る
プログラミングで重要なのは、単に動くコードを書くことではなく、誰が見てもその目的が理解できるコードを書くことです。 本記事では、C#でRPGゲームのようなサンプルコードを通して、目的駆動の名前設計の方法をご紹介します。 他のプログラミング言語でも応用可能な考え方と、よくある「悪い例」と「良い例」を対比させながら、読みやすく... -
避けるべきリファクタリングの落とし穴:コード設計を守る7つの改善ポイント
リファクタリングは、コードを読みやすく保ち、保守しやすくするための重要なプロセスです。しかし、設計の健全性を損なうリファクタリングは、予期しないエラーやパフォーマンスの低下を引き起こす原因にもなります。 本記事では、具体例としてRPGゲームのコードを使い、避けるべきリファクタリングの対象と、良いリファクタリングの方法を... -
密結合を解消するための設計改善:internalの活用でコードをシンプルに
コードの構造が複雑になる原因のひとつが「密結合」です。密結合はコードの保守性や拡張性を損ない、プロジェクトの成長を阻害します。 この記事では、RPGゲームを題材に、「悪い例」と「改善された例」のサンプルプログラムを使いながら、publicなアクセス修飾子による密結合を解消し、internalを活用して適切な結合度を保つ設計について解...