
C言語、C++、テスト駆動開発、Google Test が何かを理解し、本コースで学習する内容について理解することができます。
コースの目的、対象者、学習できること、目標を理解することで学習効率を高めることができます。
本コースを受講する上での注意点を確認することができます。
本コースの講師について知ることができます。
再生スピードが速い、または遅い場合
受講生がどのツールをインストールする必要があるか確認することができます。
Visual Studio 2022 のインストール方法を理解し、インストールを完了することができます。
Visual Studio Code のインストール方法を理解し、インストールを完了することができます。
CMake を使って Google Test のフォルダから Visual Studio のプロジェクトを作成することができます。
Visual Studio を使って Google Test をビルドし、Google Test のスケルトンを作成することができます。
本セクションが全体像のどこに位置するかを確認し、学習する概要を確認することができます。
Visual Studio 2022 で新規プロジェクトの作り方を学習します。
C言語とC++で使うファイル形式について学習します。
簡単なプログラムの書き方を学習します。
プログラムから実行ファイルを作成する手順について学習します。
開発ツールが持っている機能について学習します。
C言語とC++でコメントを書く方法を学習します。
C言語とC++で簡単な関数を作成する方法を学習します。
C言語とC++のプログラム構成とプログラムの流れについて学習します。
C言語とC++における命令文の書き方のルールを学習します。。
ライブラリが何かを理解し、C言語とC++でライブラリを使う方法を学習します。
C言語とC++で変数を作成する方法を学習します。
C言語とC++で足し算、引き算、掛け算、割り算をする方法を学習します。
C言語とC++で使う変数の型の種類と有効範囲について学習します。
C言語とC++で配列を使う方法と文字列と配列の関係について学習します。
二次元配列を使う方法と文字列の配列を作る方法を学習します。
条件文 if、else if、else の使い方を学習します。
条件文の比較パターンを学習します。
C言語とC++で複数の条件文を組み合わせる方法を学習します。
C言語とC++で真偽値(true、false)を使う方法を学習します。
?と:を使って条件文を簡単に書く方法を学習します。
C言語とC++で関数を呼び出す方法を学習します。
C言語とC++で関数を呼び出す時に引数を渡す方法を学習します。
C言語とC++で関数の実行結果(戻り値)を返す方法を学習します。
C言語とC++の関数で使う void の意味と使い方を学習します。
引数に変数や関数の戻り値を使う方法と、関数の戻り値に計算式や関数の戻り値を使う方法を学習します。
C言語とC++で関数の前後関係の問題を解決する方法を学習します。
C言語とC++の変数の有効範囲について学習します。
C言語とC++で使う条件分岐 switch の使い方を学習します。
C言語とC++で簡単に+1とー1をする方法を学習します。
for を使ったループ文の書き方を学習します。
while を使ったループ文の書き方を学習します。
do-while を使ったループ文の書き方を学習します。
C言語とC++で無限ループを書く方法を学習します。
typedef を使って変数の型名を変更する方法を学習します。
C言語とC++で関連する変数をひとまとめにする方法を学習します。
構造体の配列の作り方と初期化方法を学習します。
ポインタの意味とアドレスの取り方を学習します。
ポインタを使って変数の値を参照したり変更したりする方法を学習します。
ポインタを引数にして別関数で変数の値を変更する方法を学習します。
ポインタと配列の関係と先頭アドレスについて学習します。
構造体のポインタ変数からメンバー変数にアクセスする方法を学習します。
ポインタの概要と使い方について再確認します。
C言語とC++でよく利用する二進数、十進数、十六進数について学習します。
プログラミングでよく使うビットとバイトという単位について学習します。
ビット単位の計算について学習します。
C言語とC++で使う共用体について学習します。
C言語とC++でデータ型を強制的に変換する方法を学習します。
C言語とC++で定数の定義を作成する方法を学習します。
define に引数を付ける方法を学習します。
C言語とC++で複数のソースファイルを使って開発をする方法を学習します。
ビルド前の処理を記述する方法を学習します。
変数や関数をファイルを跨いで利用する方法を学習します。
値の変更ができない変数を作る方法を学習します。
セクション終了の挨拶です。
本セクションが全体像のどこに位置するかを確認し、学習する概要を確認することができます。
C++でコンソールに文字を表示する方法を学習します。
C++でポインタにNullを設定する方法について学習します。
C++で文字列を扱う時に使うstring型について学習します。
関数に引数を設定しなかった場合にデフォルトの値を設定する方法を学習します。
C++で引数を変えて同名の関数を作成する方法を学習します。
C++で変数の型を自動で設定する方法を学習します。
C++で変数名に別の名前を付ける方法を学習します。
C++でメモリを動的に割り当てる方法を学習します。
オブジェクト指向とは何か?どんなプログラミング手法かを学習します。
オブジェクト指向でプログラミングをする手順について学習します。
C++でクラスを作る方法を学習します。
クラスを使って変数を作成する方法を学習します。
オブジェクトとインスタンスの違いについて学習します。
クラスのメンバー変数とメンバー関数の使い方を学習します。
別ファイルに書かれたクラスを使用する方法を学習します。
前レクチャーの最後に出題した演出問題の解答です。
クラス作成時と破棄時に実行される関数の作り方を学習します。
thisポインタの使い方を学習します。
インスタンスを経由せずメンバー関数やメンバー変数を使う方法を学習します。
C++でクラスを継承して新しいクラスを作る方法を学習します。
前レクチャーで出題した演出問題の解答です。
クラス内のメンバー変数とメンバー関数のアクセス制限について学習します。
継承しているクラスのアクセス制限について学習します。
基底クラスの関数を隠す方法について学習します。
C++で仮想関数を作る方法とオーバーロードの仕方を学習します。
C++で純粋仮想関数を作る方法を学習します。
メンバー関数をconst関数にする方法を学習します。
C++でクラスのポインタをキャストする方法について学習します。
C++で強制的にデータ型を変換する方法を学習します。
C++で例外処理を書く方法を学習します。
例外処理で使うexceptionクラスについて学習します。
C++で関数テンプレートとクラステンプレートを作成する方法を学習します。
テンプレートの応用的な使い方を学習します。
C++で名前空間を作成する方法を学習します。
名前空間の注意点と応用的な使い方を学習します。
C++でラムダ式を作る方法を学習します。
ラムダ式を引数にする方法を学習します。
C++で動的な配列を作成する方法を学習します。
C++で連想配列(辞書型)を使う方法を学習します。
mapで利用頻度の高いメンバー関数について学習します。
セクション終了の挨拶です。
本セクションが全体像のどこに位置するかを確認し、学習する概要を確認することができます。
テスト駆動開発の概要と特徴について学習します。
テスト駆動開発で開発をする時の手順について学習します。
テスト駆動開発で使う専門用語について学習します。
Visual Studio 2022 で Google Test を使うプロジェクトを作成できるようになります。
簡単なテストを作成してテスト駆動開発の開発手順を確認します。
テスト駆動開発で実装コードを作る時の注意点を学習します。
作成するFizzBuzzアプリのテストケースを確認します。
FizzBuzzアプリのテストケース、1~4を作成します。
FizzBuzzアプリのテストケース、5~7を作成します。
FizzBuzzアプリのテストケース、8~10を作成します。
前回の続き。FizzBuzzアプリのテストケース、8~10を作成します。
前回の続き。FizzBuzzアプリのテストケース、8~10を作成します。
完成したFizzBuzzアプリの動作確認をします。
動作確認後に追加したテストケース11を作成します。
セクションで学習した内容のまとめをします。
本セクションが全体像のどこに位置するかを確認し、学習する概要を確認することができます。
テスト駆動開発で使うアサーションについて学習します。
Visual Studio 2022 で Google Test を使うプロジェクトを作成できるようになります。
Google Test のアサーション EXPECT_EQ について学習します。
Google Test のアサーション EXPECT_NE について学習します。
Google Test のアサーション EXPECT_LT と EXPECT_GT について学習します。
Google Test のアサーション EXPECT_LE と EXPECT_GE について学習します。
Google Test のアサーション EXPECT_TRUE と EXPECT_FALSE について学習します。
Google Test のアサーション FAIL と ADD_FAILURE について学習します。
Google Test のアサーション SUCCEED について学習します。
Google Test のアサーション EXPECT_FLOAT_EQ と EXPECT_DOUBLE_EQ について学習します。
Google Test のアサーション EXPECT_NEAR について学習します。
Google Test のアサーション EXPECT_STREQ について学習します。
Google Test のアサーションでポインタを比較する方法を学習します。
Google Test でテストの名前を取得する方法を学習します。
Google Test の ASSERT 系のアサーションについて学習します。
Google Test の ASSERT 系のアサーションの注意点について学習します。
前回の続き。Google Test の ASSERT 系のアサーションの注意点について学習します。
Google Test のアサーション EXPECT_THROW について学習します。
Google Test のアサーション SCOPED_TRACE について学習します。
セクション終了の挨拶です。
本セクションが全体像のどこに位置するかを確認し、学習する概要を確認することができます。
テストフィクスチャとは何か、使い方について学習します。
Google Test を使ってテストフィクスチャを作成します。
Google Test の関数 SetUp と TearDown の使い方を学習します。
Google Test の関数 SetUpTestSuite と TearDownTestSuite の使い方を学習します。
セクション終了の挨拶です。
本セクションが全体像のどこに位置するかを確認し、学習する概要を確認することができます。
テストダブルとは何か、どんな種類があるかを学習します。
テストダブルの種類、ダミーについて学習します。
テストダブルの種類、スタブについて学習します。
テストダブルの種類、モックについて学習します。
テストダブルの種類、フェイクについて学習します。
テストダブルの種類、スパイについて学習します。
テストダブルの種類について再確認します。
Google Test のモックフレームワーク(gMock)について学習します。
テストプログラムで利用するプログラミング手法、依存性の注入について学習します。
前回の続き。テストプログラムで利用するプログラミング手法、依存性の注入について学習します。
gMock でモック関数の動作設定をする方法を学習します。
EXPECT_CALL で Times を使う方法を学習します。
EXPECT_CALL で WillOnce を使う方法を学習します。
EXPECT_CALL で WillRepeatedly を使う方法を学習します。
gMock のモック関数に引数を付ける方法を学習します。
モック関数の引数の期待値を設定する方法を学習します。
前回の続き。モック関数の引数の期待値を設定する方法を学習します。
前回の続き。モック関数の引数の期待値を設定する方法を学習します。
モック関数の中身を自由に設定する方法を学習します。
モック関数の中身を自由に設定する方法(Invokeの使い方)を学習します。
引数付きのモック関数で期待値を複数設定する方法を学習します。
テストダブルについてのまとめです。
セクション終了の挨拶です。
本セクションが全体像のどこに位置するかを確認し、学習する概要を確認することができます。
今回作成する電卓アプリの仕様を確認することができます。
今回作成する電卓アプリのプロジェクト構成の構成を確認することができます。
電卓アプリを作成するためのVisual Studio のプロジェクトを作成します。
電卓アプリ作成のためのテストケースを確認します。
テストプログラムのベース部分を作成します。
電卓アプリのテストケース1番を作成します。
アプリ開発で抽象クラスを使う理由を学習します。
電卓アプリのテストケース2番、3番を作成します。
テストコードを整理することで、テストプログラムが理解しすくなることを学習します。
テスト成功時の情報表示を無くす方法を学習します。
実践的なプログラミングの中でモック関数を作成する方法を学習します。
電卓アプリのテストケース4番を作成します。
前回の続き。電卓アプリのテストケース4番を作成します。
電卓アプリのテストケース5番を作成します。
前回の続き。電卓アプリのテストケース6番を作成します。
電卓アプリのテストケース7番〜9番を作成します。
電卓アプリのテストケース10番と11番を作成します。
電卓アプリのテストケース12番を作成します。
電卓アプリのテストケース13番〜15番を作成します。
電卓アプリのテストケース16番を作成します。
電卓アプリのテストケース17番を作成します。
電卓アプリのテストケース18番を作成します。
電卓アプリのテストケース19番を作成します。
電卓アプリのテストケース20番を作成します。
前回の続き。電卓アプリのテストケース20番を作成します。間違った修正を繰り返してもプログラムの仕様が崩れないことを確認することができます。
プログラムをきれいに修正しても仕様が崩れないことを確認することができます。
電卓アプリのテストケース21番を作成します。
電卓アプリのテストケース22番を作成します。
電卓アプリのテストケース23番を作成します。
電卓アプリのテストケース24番を作成します。
開発の途中でテストケースを追加しても大丈夫なことを確認します。
テストケースの作成が完了後、動作検証をしながらテストケースを追加しても大丈夫なことを確認します。
プログラム完成後にリファクタリングをしても仕様が崩れないことを確認します。
テスト駆動開発を使うと、分離して作成したプログラムと簡単に結合できることを確認します。
セクション終了の挨拶です。
テスト駆動開発を経験した後だから分かる、テスト駆動開発のデメリットについて学習します。
コース終了の挨拶です。
実戦で役立つプログラミングスキル、身に付けてみませんか?
このコースは
C言語とC++
Google Test を使ったテスト駆動開発
この2つを学習し、即戦力になれるレベルのプログラマーを目指すコースです。
※コース受講の注意点もご確認お願いします。
◆◆◆ 学習内容 ◆◆◆
C言語(プログラミング言語)
C++(プログラミング言語)
テスト駆動開発
Google Test の使い方
C言語、C++の学習でプログラミングの基礎が身に付きます。
テスト駆動開発の学習で仕事でも役立つプログラミングの技術が身に付きます。
(テストフレームワークとして Google Test を利用します)
コース内容の詳しい説明は無料レクチャーでも確認できるので、ぜひ一度ご覧ください。
◆◆◆ 対象者 ◆◆◆
プログラミング未経験者
C言語、またはC++の未経験者
テスト駆動開発の未経験者
※学習は基礎的なことが中心で、応用的な内容には対応していません。
そのため、C言語もC++も使える、テスト確認開発もある程度分かるという方は対象外ですのでご注意ください。
◆◆◆ コース受講の注意点 ◆◆◆
1.開発ツールのインストールについて
コース受講前に開発ツールのインストールをお願いします。
インストール方法は無料レクチャーで確認できます。
※コース内では Visual Studio 2022 しか利用しません。
※コース内では Visual Studio Code のインストールも解説していますが、Google Test のビルドが必要な場合のみ Visual Studio Code もインストールしてください。(学習をするだけであれば Visual Studio Code のインストールは不要です)
2.コースの内容について
セクション2「C / C++ 共通の文法」の内容は、私の別コース「【初心者歓迎!】ゼロからC言語を覚えてWinAPIで画像ビューワーを作成しよう」を再収録したものになります。
(※少し追加項目もあります)
そちらをすでに受講している方は、セクション2は内容が重複しますので予めご了承ください。
◆◆◆ 各セクションで学習する内容 ◆◆◆
1.開発前の準備
コースの内容と開発ツールのインストール方法を学習します。
2.C/C++ 共通の文法
プログラミングの基礎とC言語の文法を学習します。
※ 内容は、私の別コース「【初心者歓迎!】ゼロからC言語を覚えてWinAPIで画像ビューワーを作成しよう」を再収録したものになります。
3.C++の文法
C++の文法を学習します。
オブジェクト指向とクラスを使った文法を中心に学習します。
4.テスト駆動開発の基礎
テスト駆動開発の実践方法を学習します。
Google Test を使って FizzBuzz アプリを作成します。
5.アサーション
Google Test で使うアサーションについて学習をします。
6.テストフィクスチャ
Google Test で使うテストフィクスチャについて学習します。
7.テストダブル
テストダブルの種類について学習し、Google Test で使うテストダブル gMock の使い方を学習します。
8.アプリ作成
Google Test を使って簡単な電卓アプリを作成します。
※UIは作成せず、電卓の中身の部分のみ作成します。
UI部分はリソースとして提供するため、最終的には簡単な電卓アプリが完成します。