基礎知識

基礎知識

開始前にVSCodeの環境設定を再度確認(筆者がつまずいた為、補足記載)

トピック学習内容
module・packageGo モジュール管理、パッケージの作成と利用
variables変数の宣言、型、スコープ、値の代入
pointer・shadowingポインタの仕組み、値渡しと参照渡し
変数のシャドーイング
slice・mapスライスとマップの基本操作、動的配列、キー・バリューストア
struct・receiver構造体の定義、メソッドレシーバによる操作
function・closure関数の定義、クロージャの仕組みと活用
interfaceインターフェースの定義とポリモーフィズムの活用
if・for・switch制御構造(条件分岐・ループ)
errorsエラーハンドリング、カスタムエラーの作成
genericsジェネリクスの活用、型パラメータの利用
unit test(table driven, coverage)テストの書き方、テーブル駆動テスト、カバレッジ測定
loggerログ出力の方法、標準ライブラリ log の活用

並行処理

トピック学習内容
runtime schedulerGo のランタイムスケジューラの仕組み
goroutine: tracer + syncGroupgoroutine のトレースと sync.WaitGroup による並行処理管理
channel: unbuffer + buffered + goroutine leak (goleak)バッファなし/ありのチャンネルの使い方、ゴルーチンリークの検出
channel: closed, capsel, notificationチャンネルのクローズ、キャパシティ管理、通知の仕組み
select: with timeout contextselect 文を使ったタイムアウト処理
select: default caseselect のデフォルトケースの活用
select: receive continuous dataselect を使った連続データ受信の処理
mutex + atomicsync.Mutexsync/atomic を利用した排他制御
context: cancel + timeout + deadlinecontext パッケージを使ったゴルーチンのキャンセル・タイムアウト処理
errGrouperrgroup を利用した並行処理のエラーハンドリング
pipelineパイプライン処理によるデータのストリーミング
fan-out fan-inワーカーを使った並列処理(ファンアウト・ファンイン)
heartbeat with watchdog timerウォッチドッグタイマーを使ったハートビート監視