Skip to content

Instantly share code, notes, and snippets.

View fight_legacy.md

レガシーと戦う開発組織の作り方

レガシー業界・システムに奮闘!プロダクト改善事例LT【開発PM勉強会vol.9】 - connpass https://peer-quest.connpass.com/event/239171/

自己紹介

  • 株式会社PR TIMES執行役員CTO 金子達哉
  • @catatsuyというアカウントで各種SNS登録しています
  • ピクシブ・メルカリを経て2021/04にPR TIMESに入社しました
View goroutine_channel.md

Goで並行処理初級編(goroutineとchannel)

  • Goで並行処理する時の初級編です
  • 今回の話はGoを書いている人には簡単すぎますが、並行処理やGoの経験がない人には難しすぎると思います
  • 少しでも考え方に慣れると並行処理が楽しくなってきます
  • 実はgoroutineが分からないという人は見たことがないですが、channelは多くの人がつまずくポイントです

goroutine

Goで並行処理をしたい場合はgoroutineを使う。使い方は簡単で関数の前にgoと書くだけ。

View infra-training.md

AWSにインスタンスを立ててみよう

  • 質問:AWSにEC2インスタンスを立てたことがある人?
  • Ubuntu 20.04のインスタンスを起動してあるのでsshでログインしてみよう
    • ubuntuユーザーでログインしてみよう
.ssh/config
View slack.md
View isucon9q_bench.md
View mercari_go_isucon.md

GoでISUCONを戦う話

mercari.go #4 https://mercari.connpass.com/event/105640/

自己紹介

  • catatsuyというIDで各種SNS活動しています
    • かたついって呼ばれています
  • メルカリのSREチームで主にGoを書いています
  • 前職はピクシブでpixivのHTTPS化・PHP7.1化・HTTP/2化や、広告サーバーの新機能追加など色々やっていました
View hatebu_pocket.go
package main
import (
"bytes"
"encoding/json"
"encoding/xml"
"fmt"
"io/ioutil"
"log"
"net/http"
View test.go
var programBinary string
func setup(dir string) {
program := `package main
....
}`
goFileName := dir + "/main.go"
err := ioutil.WriteFile(goFileName, []byte(program), 0644)
View stub.go
package main
import (
"flag"
"os"
"os/signal"
"syscall"
"time"
)
View test_main.go
func TestMain(m *testing.M) {
d, err := ioutil.TempDir("", "fortest")
if err != nil {
log.Fatal(err)
}
setup(d)
code := m.Run()
clean(d)
os.Exit(code)
}