golang.tokyo #18

2018/09/28(金)19:00 〜 21:50 開催
ブックマーク

イベント内容

イベントについて

第18回目の開催となりました!

  • 前回から年齢確認のできる身分証の提示と未成年者は保護者の同意書が必要です
  • 行動指針についても追加されていますので予めご確認ください
  • LT登壇者も募集中です

golang.tokyo って?

プログラミング言語のGoの導入企業のメンバーが集まり、Goの普及を推進するコミュニティです トークイベント、ハンズオン、etcのイベントを開催していく予定です!

LT登壇者募集(09/21 13:00まで)

LT登壇者を募集しています。 発表時間は10分で最大3名募集しています。 希望者は以下のフォームから応募してください。 なお、フォームに記載してある注意事項をご確認のうえ、ご応募ください。

タイムテーブル

時間 内容
19:00 ~ 開場・受付
19:30 ~ 19:40 オープニング
19:40 ~ 20:10 Talk1 by kaneshin
20:10 ~ 20:40 Talk2 by Yusuke Usui
20:40 ~ 21:10 休憩
21:10 ~ 21:20 LT1
21:20 ~ 21:30 LT2
21:30 ~ 21:40 LT3
21:40 ~ 21:50 終了・撤収

セッションには質疑応答時間を含みます

登壇者

@kaneshin0120

2010年、東京理科大学理学部を卒業後、組込系企業に入社し品質保証に従事。2011年、カナダ留学。帰国後、東京理科大学の研究室OBとして最適化理論の研究に携わる。2012年、株式会社エウレカに入社。「Pairs」および「Couples」の立ち上げメンバーとして開発に参画。2016年10月、執行役員CTOに就任。2017年10月、取締役CTOに就任。 数学、マネジメント、エンジニアリングの話題が中心。最近は、どのような状況下でも活躍できるようなエンジニア組織の組成に注力している。

Yusuke Usui

京都大学理学部/大学院理学研究科で生体高分子物理学を研究。システム計画研究所に新卒入社後のWindowsネイティブフロントエンド開発、東急ハンズ/ハンズラボでの、自社ECとアプリのサーバサイド開発を経て、エウレカでPairsのサーバサイド及び機械学習を担当。

参加枠について

一般参加枠(抽選)

抽選で決まる参加枠です。

Devquiz枠(抽選)

抽選で決まりますが、申込み時のDevquizに正解した方のみ当選する可能性がある枠です。 未回答や回答が間違っている場合は当選しません。

問題

以下のテスト関数Testが成功するように、Set関数を修正してください。 なお、Set関数以外は変更しないでください。 回答は申込時のアンケートにGo PlaygroundのシェアURLを貼って下さい。

コメント中の TODO を行うとテストが通るようになっています。 コメント中のヒントを参考にチャレンジしてみましょう!

package main

import (
    "fmt"
    "reflect"
    "testing"
)

// ポインタpの指す先にvの値を入れる関数。
// 不適切な値があったらエラーを返す。
// 変更するのはSetの内部だけ。
func Set(p, v interface{}) error {
    pv := reflect.ValueOf(p)
    // TODO: pがポインタかどうかKindをチェック

    vv := reflect.ValueOf(v)
    // TODO: pに値がセットできるかつ、pの先にvが代入できるかチェック
    // ヒント1: https://golang.org/pkg/reflect/#Type のAssignableTo
    // ヒント2: https://golang.org/pkg/reflect/#Value.CanSet

    // Elemでポインタの指してる先を取得して代入
    pv.Elem().Set(vv)
    return nil

}

type myint int

func (n myint) String() string {
    return fmt.Sprint(int(n))
}

func TestSet(t *testing.T) {
    var (
        v1 int
        v2 fmt.Stringer
    )

    cases := map[string]struct {
        p, v      interface{}
        expectErr bool
    }{
        "ok":       {&v1, 100, false},
        "stringer": {&v2, myint(100), false},
        "myint":    {&v1, myint(100), true},
        "nil":      {nil, 100, true},
        "string":   {&v1, "hoge", true},
        "float64":  {&v1, 1.11, true},
        "func":     {&v1, func() {}, true},
    }

    for tn, tc := range cases {
        tc := tc
        t.Run(tn, func(t *testing.T) {
            defer func() {
                if r := recover(); r != nil {
                    t.Fatal("panicが起きた:", r)
                }
            }()

            err := Set(tc.p, tc.v)
            switch {
            case tc.expectErr && err == nil:
                t.Fatal("期待したエラーが発生しませんでした")
            case !tc.expectErr && err != nil:
                t.Fatal("予想外のエラー:", err)
            case err == nil:
                v := reflect.ValueOf(tc.p).Elem().Interface()
                if !reflect.DeepEqual(v, tc.v) {
                    t.Errorf("want %v but got %v", tc.v, v)
                }
            }
        })
    }
}

ブログ枠(先着)

イベントに関するブログを書いて頂ける方にご応募頂く参加枠です。

LT(10分)枠(抽選)

抽選で決まるLT枠です。 発表順は当日心の準備が整った順でお願いします。

キャンセルにつきまして

参加は抽選になりますが、より多くの方へご参加いただきたいと考えています。今回当日都合が悪くなって来れないことが分かった方は、お手数ですが速やかにキャンセル処理をお願いします。

参加の状態のまま当日お越しいただけなかった方は、次回以降の参加の優先順位を下げさせて頂く可能性があります。

撮影につきまして

当日はブログ枠を用意している関係で、会場内で写真撮影をする場合がございます。 参加の際にはご了承ください。

動画撮影につきまして

かねてより申し込み希望者多数のため、残念ながら参加して頂けない方も多数いらっしゃいましたので、ビデオ録画を行う予定です。

なお、ライブ配信を行うわけではございません。撮影されたビデオは、編集後ホームページ等に公開する予定です。 主に登壇者とスライドを撮影する予定ですので、参加者の皆様は写っても後ろ姿になるかと思いますが、撮影されては困る方は当日はカメラより後ろの席に座って頂くようお願い致します。

また、LT枠についても撮影させていただこうと考えていますが、LT枠の方で撮影NGの場合や顔出しNGの場合はお知らせください。

会場

今回は株式会社エウレカ様に会場をスポンサー提供いただいております(ありがとうございます!)

「麻布十番駅」または「赤羽橋」が最寄り駅となります。 また都営バスでは「中ノ橋」を降りて目の前になります。

受付終了後の入館方法

受付終了後の入館は基本的に対応しておりません。 予め受付時間をご確認のうえ、お越し下さい。

喫煙について

会場内は禁煙です。喫煙スペースも設けておりませんので、喫煙はお控え下さい。

電源とWifiについて

  • Wifiはご用意しております
  • 電源については十分な数のご用意はありません

行動指針

本イベントに参加するすべての人は下記の行動規範を守ることを求められます。

注意事項

  • 懇親会ではアルコールの提供がありますので、年齢の確認ができる身分証をお持ち頂き受付でご提示ください。
  • 車を運転される予定のある方は飲酒をお控えいただくようお願いします。
  • 未成年の参加には保護者の同意書が必要になります。当日ご提出お願いします。準備が難しい場合は開催1週間前までに運営にご相談ください。

Gopherの画像ついて

GoのマスコットのGopherの原作者はRenee Frenchさんです。

注意事項

※ こちらのイベント情報は、外部サイトから取得した情報を掲載しています。
※ 掲載タイミングや更新頻度によっては、情報提供元ページの内容と差異が発生しますので予めご了承ください。
※ 最新情報の確認や参加申込手続き、イベントに関するお問い合わせ等は情報提供元ページにてお願いします。

関連するイベント