Skip to content

Instantly share code, notes, and snippets.

今日の内容

  • データベースの概念
  • MySQLの仕組み
  • MySQLの基本的な操作
  • INDEXで高速にレコードを検索する
  • InnoDBのINDEX
  • explain
  • テーブル設計(正規化)
  • replication

なぜランダム値を使うのか

csvなどで固定環境を再現することで生産性をあげられるのはプロジェクト初期のみだから。

詳細理由

テスト結果がcsvに依存する

  • 事前に3人のuserをcsvで作成している場合、userを追加するテストで合計4人になったら成功というテストが書かれるとcsvに4人目のuserを定義するとテストが落ちる

csvの拡張と管理に限界がくる

@tokubass
tokubass / quick_sample.go
Created December 23, 2018 19:00
quick sample
package main
import (
"fmt"
"math/rand"
"reflect"
"testing/quick"
"time"
)
@tokubass
tokubass / maptostruct.go
Created December 6, 2018 17:14
map to struct
package main
import (
"fmt"
"github.com/mitchellh/mapstructure"
r "reflect"
)
type S struct {
Name string
@tokubass
tokubass / json_unmarshal.go
Created November 22, 2018 03:08
marshal_template
package main
import (
"encoding/json"
"fmt"
)
type Foo struct {
ID uint64 `json:"ID"`
@tokubass
tokubass / main.go
Last active November 11, 2018 16:31
golangのエラー型
package main
import (
"fmt"
)
type MyErr struct {}
func (e MyErr) Error() string {
return fmt.Sprint("error")
@tokubass
tokubass / main.go
Created November 11, 2018 13:59
レシーバーがポインタかそうでないかの挙動
package main
import (
"fmt"
)
type FooIface interface {
Run()
RunPointer()
}
package main
import (
"fmt"
)
type Hoge struct {
Id int
}
@tokubass
tokubass / main.go
Created October 8, 2018 09:57
任意個のオプションを渡す
package main
import "fmt"
func main() {
Connect(Url("http://hoge.com"))
}
func Connect(options ...Option) error {
opts := GetDefaultOptions()
@tokubass
tokubass / my_assertion_gist1.ex
Last active November 21, 2017 09:07
map、structの一部の要素だけをテストしたい
## todo
## error messageの変数名がtest caseのほうではない
## leftはrightのsubsetだがrightにマージしているので値が変わっているのでわかりにくい?ここは仕様の問題でもあると思うが、、
defmodule AssertionMatch do
import ExUnit.Assertions
def assert_match?(left, right) do
right_map = case right do
%_{} -> Map.from_struct(right)