Event is FINISHED

【G's Premiere】 スタートダッシュGo!講座

Description

※申し込み締切 10月12日(木)23:59!


概要


GoはGoogleによって開発されたプログラミング言語です。2013年のバージョン1.0のリリース後からDockerやKubernetesを始めとする多くのプロダクト開発の現場で使われてきました。実際にgolang.tokyoやGo Conferenceで実例がみられるように、日本でも多くの企業で採用され始めています。

また、Goは文法や言語設計がシンプルで学びやすいため、スピード感を持ってプロダクトを開発する必要のあるスタートアップにも向いている言語であるといえます。Goは開発効率・実行速度の両面で、十分なパフォーマンスを発揮する言語であるため、サービスをスケールする際にも有利に働くでしょう。

この講義では、Goの基本的な文法や概念などから、コマンドラインツールの作成、並行処理、Webアプリなど、すぐに実践で使える技術を一気に学ぶことができます。扱う内容は多岐に渡りますが、前述のとおり、Goは覚えることが少なく、学びやすい言語であるため無理なく学習することができます。

講師プロフィール

上田 拓也 (@tenntenn)
メルカリ/ソウゾウ所属。 サーバサイドエンジニアとして日々Goを書いている。 Go Conference主催者。golang.tokyo、Goビギナーズ、GCPUG Tokyo運営。 大学時代にGoに出会い、それ以来のめり込む。 社内外で自ら勉強会を開催し、Goの普及に取り組んでいる。 マスコットのGopherの絵を描くのも好き。


講座概要


合計で全3教程:9時間の授業です。(開場時間:19:00~)
  • 10/19(木)19:30-22:30:1.コマンドラインツールを作ってみよう
  • 10/26(木)19:30-22:30:2.ゴールーチンとチャネルを使った並行処理を書いてみよう
  • 11/2 (木)19:30-22:30:3.Webアプリを書いてみよう


【受講条件】

何かしらのプログラミング言語による開発経験


【課題】
講義中には、いくつか課題が設けてあります。基本的には講義内容を理解していれば解ける問題となっています。しかしながら、講義の時間は限られていますので、講義時間中にすべてが終わらないかもしれません。その場合には事前に用意してある回答例と解説をお配りしますので、ご自身で講義終了後にゆっくり回答していただき、答え合わせをしてみてください。


【宿題】
その日の講義が終わる際に、宿題をお出しします。宿題は次の講義にて解説をする予定です。なお、最終日の宿題については別途回答例と解説をお配りします。


事前準備


本講義を受講するにあたって、以下の準備をお願いします。
なお、本講義ではGoglandを利用することを想定していますが、VimやEmacsなど別のエディタやIDEを利用して頂いても構いません。その場合、講師が普段使っているVimについてはサポートができますが、その他のエディタやIDEの場合は十分なサポートができない場合がありますので予めご了承ください。

【Goのインストール】
Goのダウンロードページからインストーラをダウンロードしてインストールしてください。

【Goglandのインストール】
Goglandをインストールします。ダウンロードページから、お使いの環境にあったファイルをダウンロードしてインストールしてください。

また、Goglandの使い方については、こちらのブログが参考になりますので、合わせてご覧ください。


カリキュラム概要


1. コマンドラインツールを作ってみよう


1.1. Hello, World

  • Go PlaygroundでHello, Worldの実行
  • Goglandで新しいプロジェクトの作成
  • GoglandでHello, Worldの実行
  • mainパッケージとmain関数
  • 標準パッケージの利用
  • ドキュメントを読もう


1.2. 基本構文

  • 演算子
  • 関数定義
  • 変数定義
  • 条件分岐:if
  • 条件分岐:switch
  • 繰り返し:for
  • 課題


1.3. 型・メソッド・インタフェース
  • 組込み型
  • コンポジット型と型リテラル
  • 構造体
  • 構造体の初期化
  • 配列
  • 配列の操作
  • スライス
  • スライスの操作
  • マップ
  • マップの操作
  • ユーザ定義型
  • メソッド
  • ポインタとレシーバ
  • インタフェース
  • emptyインタフェース
  • 型アサーション
  • 型スイッチ
  • エラーとエラー処理
  • 課題


1.4. コマンドライン引数
  • コマンドライン引数を扱う
  • コマンドライン引数の取得
  • flagパッケージとは
  • フラグの取得
  • フラグとコマンドライン引数の併用
  • 課題


1.5. 入力と出力
  • 入出力の抽象化
  • 標準入力と標準出力
  • 標準エラー出力
  • 1行ずつ読み込む
  • ファイルを扱う
  • ファイルパスを扱う
  • ディレクトリーをウォークする
  • 入出力の便利パッケージ
  • 宿題


2. ゴールーチンとチャネルを使った並行処理を書いてみよう


2.0. 宿題の解説


2.1. サードパーティ製のパッケージの利用

  • GOPATHについて
  • go getでライブラリの取得
  • ベンダリング
  • depによるパッケージ管理
  • 課題


2.2. goqueryでスクレイピングを行おう
  • goqueryとは?
  • ドキュメントを読もう
  • HTTPクライアント
  • goqueryでHTMLのパース
  • imgタグから画像を取得する
  • aタグからリンクを辿る
  • ボトルネックについて考える
  • 課題


2.3. 並行処理を行う

  • 並列と並行の違い
  • ゴールーチンとは
  • 無名関数
  • 無名関数を別のゴールーチンで呼び出す
  • コンテキストによるタイムアウト
  • 課題


2.4. チャネルでデータ競合を避ける
  • データ競合
  • データ競合の検出
  • チャネルとは
  • チャネルの初期化
  • チャネルへのデータの送信
  • チャネルからのデータの受信
  • 送受信のブロック
  • チャネルのクローズ
  • クローズによるブロードキャスト
  • バッファ付きチャネル
  • 単方向チャネル
  • ファーストクラスオブジェクト
  • 課題


2.5. チャネル以外でデータ競合を避ける
  • ロック
  • 書き込み/読み込みロック
  • 複数ゴールーチンの待機
  • エラーを返すゴールーチンの待機
  • 一度だけ実行される関数
  • アトミックな値の扱い
  • 宿題


3. Webアプリを書いてみよう


3.0. 宿題の解説

3.1. HTTPサーバを作る

  • Hello, HTTPサーバ
  • ハンドラの登録
  • HTTPレスポンス
  • HTTPリクエスト
  • エラーを返す
  • JSONを返す
  • http.Handlerインタフェース
  • http.HandlerFunc型
  • コンテキストに値を入れる
  • 課題
3.2. HTTPハンドラのテストを書く
  • 単体テストを書く
  • go testコマンド
  • net/http/httptestパッケージについて
  • HTTPハンドラのテストを書く
  • テーブル駆動テスト
  • サブテスト
  • テストカバレッジ
  • 課題


3.3. テンプレートエンジンでHTMLを書き出す
  • Goのテンプレートエンジン
  • テンプレートエンジンの文法
  • テンプレートのパース
  • レスポンスにテンプレートを用いる
  • 複数のテンプレートを用いる
  • 課題


3.4. Websocketでチャットを作る
  • Websocketとは?
  • golang.org/x/net/websocketの利用
  • Websocketのハンドラを登録する
  • コネクションからの読み込み
  • コネクションへの書き込み
  • コーデックにJSONを用いる
  • コネクションを複数のゴルーチンで利用する
  • メッセージのブロードキャスト
  • JavaScriptから接続する
  • 宿題



開催場所


東京都港区北青山3-5-6 (青朋ビル2F)

受講料

  • 一般参加者 30,000円
  • G's Lab(1期・2期卒業生・3期在籍生のみ) 0円
  • G's Dev卒業生 15,000円


主催

エンジニア養成学校 G's ACADEMY TOKYO

http://gsacademy.tokyo/

注意事項

  • イベント内容は一部変更になる可能性がございます。
  • イベント当日の様子は後日何らかの媒体にて公開させていただくことがございます。
  • お申込後運営都合によりご参加をキャンセルさせて頂く場合がございます。予めご了承頂けますようお願いいたします。
  • 最少催行人数10名(締切までに10名のお申込みが無い場合は中止とし、ご返金いたします)
Updates
  • イベント詳細情報を更新しました。 Diff#282338 2017-09-29 06:10:09
More updates
Thu Oct 19, 2017
7:30 PM - 10:30 PM JST
Add to Calendar
Venue
G's ACADEMY TOKYO BASE(表参道)
Tickets
一般参加枠 SOLD OUT ¥30,000
G's ACADEMY LAB在・卒 FULL
G's Premiere(DEV卒業生) SOLD OUT ¥15,000
Venue Address
東京都港区北青山3-5-6 (青朋ビル2F G's ACADEMY TOKYO BASE) Japan
Organizer
gsacademy_tokyo
1,683 Followers