エンジニア

2018.09.20

Go言語 初心者向けハンズオンに行って来た

Go言語 初心者向けハンズオンに行って来た

はじめに

こんにちはハンズラボの清水です。
株式会社メディアドゥさんのGo言語 初心者向けハンズオンに参加させていただきました。

清水の最近の経験言語

  • Python: 大学からの付き合い(軽く機械学習の真似事ができるくらい)
  • javascript : Node, jQuery 研修でやりました
  • PHP : 業務で使ってます

Go言語の知識

  • 関数を使ったら戻り値とerror値が返ってくる
  • if err != nil をとりあえず沢山書くらしい
  • メルカリさんが使っている

会場に到着


サイバー感すごい!

手塚治虫作品が沢山!

勉強会開始

資料


事前にスライドが公開されているので手元のPCでも見ながら確認できるのでとてもよかったです。

練習問題がある

私も勉強会には月2~3回ほど参加していますが練習問題がある勉強会は初めてでした。
ハンズオン形式の勉強会は多くありますが、練習問題があることによって、自分で考えて実装するのでより意欲が湧いて来ます。(スライドの後半に課題があります)
資料:Go言語でシンプルなWebAPIサーバーを実装する
練習問題は全部6問あり、資料を参考に解いていきました。時間制限もあったので全部解くぐらいの意気込みで挑戦したら、思いの他1問目で手こずってしまい3問目までしか解くことができました。(相当ググりまくっていました)
そして、想像通り if err != nil を結構描きました。

一部を紹介

これは1問目のコードの一部ですが、strconv.Atoiを使用して文字列を数値に変換するのですが数値だけでなくerror値も帰ってくるのでGoではこのようにエラーハンドリングを行うようです。

func FizzBuzz(w http.ResponseWriter, r *http.Request, p httprouter.Params) {
    strNum := p.ByName("num")
    num, err := strconv.Atoi(strNum)
    if err != nil {
        fmt.Fprintf(w, "数字ではありません")
    }
   ・・・
   以下FizzBuzzのコード
   ・・・
}

勉強会を終えてGo言語に私が思った感想は

  • ところどころC言語的なものを感じる(変数宣言、ポインタとか)
  • go get便利
  • 色々と覚えることが多いが学ぶのが楽しそう
  • 並列処理やってみたい(goroutine, channel)

最後に

今回の株式会社メディアドゥさんの勉強会はとても楽しく、練習問題で自分がどこまで実装できるのかといった挑戦もあるので次の学習のきっかけになる勉強会でした。
機会があるのであれば次回も参加したいと思っています。
ハンズラボはエンジニアを募集中です。 https://www.wantedly.com/companies/hands-lab

一覧に戻る