
学習時間 | 10時間 |
---|---|
難易度 | 初級 |
質問投稿 | 可 |
手を動かしながら学ぶGo
QRコード生成ツールを作りながらGoの雰囲気を掴む! GoでQRコードを生成するCLIやWeb APIを作りながら、Goの文法について解説。構造体・ポインタ等の初学者が苦戦しがちな概念や、Goの強みや慣習についても丁寧に解説。とりあえず手を動かしながらGoに入門できる。
Goの基本についてQRコード作成ツールを作りながら詳しく解説
本教材では、Goの基本文法・概念からCLI・Webアプリケーションの作り方まで、Goの基本について実践ベースで学習できます。
コードを書いてツールを作りながら、都度手を止めて関連する文法について詳しく学習する形で進めていきます。
他の言語にも共通する基本文法だけでなく、構造体・ポインタなどの初学者が理解に苦しみがちな概念についても詳しく解説しています。
また、Goのコーディングルールや慣習を含め、Goのユニークな特徴については、その背景から解説しています。
Goを全く触ったことのない方でも、他の言語でアプリケーション等を作ったことがあれば取り組むことのできる内容となっています。
ぜひ、Goに興味があるけどまだ触ったことがない(もしくは少しだけ触ったことがある)方に、「Goってどんな言語」なのかを手を動かしながら学んで頂ける内容となっています。
ぜひGoに入門する足がかりとして本教材を利用してもらえればと思います。
学習内容
- Goの基本文法・概念
- 構造体
- ポインタ
- インターフェイス
- 関数・メソッド
- 変数
- モジュール管理
- パッケージ
- 配列/スライス
- エラーハンドリング
- Goでの開発の始め方
- ビルド・起動方法
- Goの基本的な慣習
- Goでのファイルシステムとのやりとり
- Goでのコマンドラインツールの作成
- GoでのHTTPのAPIサーバーの立て方
作成物のイメージ
1. CLI
ターミナルで動かすアプリケーションです。URLをコマンドから受け取って、QRコードをその場でファイルとして吐き出すイメージです。
CLIを作ることで、まずGoのプログラムを動かす方法、コマンドラインフラグやファイルシステムとのやり取りの方法などを体験していきます。
2. HTTP アプリケーション
HTTPのアプリケーションです。URLをリクエストで受け取って、QRコードの画像データを返却します。
APIを操作するHTML/CSS/JavaScriptを用意することで、下記のような挙動になります。
※ HTML/CSS/JavaScriptは用意したものを使用して頂き、解説はしません。Goで作るものは、この画面から呼ばれるHTTPのAPIです。
本教材の対象者
この教材は、他の言語をある程度習得している方で、Goに興味がある(けどまだよくわからない、やったことがない)という方を対象としています。
受講における必要条件
いずれかの言語で基本的なプログラミングの文法やWebアプリケーション・Web APIの仕組みをある程度理解している方。
具体的には以下のような点を理解・経験をしている方を対象としています。
- いずれかの言語での基本的なプログラミングの文法
- 条件分岐、繰り返し
- 変数
- 関数・メソッド
- 数値・文字列・booleanなどの基本データ型 (静的型付け言語を触ったことがなくても、データには型が存在しうることを知っていれば問題ありません)
- 集合型(配列)
- Webアプリケーション・Web APIの作り方
- Ruby on Railsなどのフレームワークを利用した作り方で問題ありません
- 高度な機能開発、DBなどの周辺の仕組み、アーキテクチャなどのアプローチの理解は必要ありません
- Linuxの基本コマンド
- cd, touch等の基本コマンド(知らないコマンドがあっても調べて使えれば問題ありません)
学ばないこと
-
QRコード画像自体の仕組み
- QRコード自体の作成は、外部のパッケージを利用するため、QRコードの仕組みやプログラミング自体を学ぶ教材ではありません。
-
HTML/CSS/JavaScript
- 本教材で作成するAPIの挙動を確認するために、HTMLファイルを用意しておりますが、あくまで結果を確認するためのものであり、HTML/CSS/JavaScriptについては学習しません。
-
プログラミング一般・HTTPについての解説
- プログラミング自体や、Webアプリケーション・HTTP API自体の解説は行いません。
本教材の対応バージョン
Go1.17以上
本教材はGo1.17以上を想定しております。
ただし、1.13以上であれば対応はしていると思います(稼働保証はありません)。
特に理由がなければ、Go1.17以上を利用することを推奨します。
本教材で質問対応可能なOSや環境
macOS Big Sur以上
また、いずれも稼働保証はありませんが、以下の環境でも対応できるとは思われます。
- Big Sur以前のmac OS
- どこまで古いバージョンに対応しているかはわかりません
- Linux
- Windows
- カリキュラム内で利用するコマンドについては、Windows用に読み替える必要があります。