 How to start a VC-backed startupHow to start a VC-backed startup Golang Warsaw #59 Jacek Migdal, July 10, 2024Jacek @ CEO and co-founder of Quesma. Database gateway. Seed startup with $2.5Mln funding. Previous, 10 years at Sumo that there are still uncharted frontiers to explore ● Profit: ○ Create value ○ Capture with moatHow VC works? 1. Raise money from rich (called Limited Partners) 2. Invest in promising young companies: Few will produce 10+ times return. 3. Sell them, return profit to LPs.VC track record 1. Almost all new big companies were VC-funded. 2. The biggest driver of innovation. 3. A major source of wealth0 码力 | 32 页 | 7.43 MB | 6 月前3 How to start a VC-backed startupHow to start a VC-backed startup Golang Warsaw #59 Jacek Migdal, July 10, 2024Jacek @ CEO and co-founder of Quesma. Database gateway. Seed startup with $2.5Mln funding. Previous, 10 years at Sumo that there are still uncharted frontiers to explore ● Profit: ○ Create value ○ Capture with moatHow VC works? 1. Raise money from rich (called Limited Partners) 2. Invest in promising young companies: Few will produce 10+ times return. 3. Sell them, return profit to LPs.VC track record 1. Almost all new big companies were VC-funded. 2. The biggest driver of innovation. 3. A major source of wealth0 码力 | 32 页 | 7.43 MB | 6 月前3
 Build web application with GolangValues(values).Encode() } //Invoke the request handler vc := reflect.New(route.controllerType) init := vc.MethodByName("Init") in := make([]reflect.Value, 2) ct 0) Customized routers 283 method := vc.MethodByName("Prepare") method.Call(in) if r.Method == "GET" { method = vc.MethodByName("Get") method.Call(in) Method == "POST" { method = vc.MethodByName("Post") method.Call(in) } else if r.Method == "HEAD" { method = vc.MethodByName("Head") method.Call(in)0 码力 | 327 页 | 1.63 MB | 1 年前3 Build web application with GolangValues(values).Encode() } //Invoke the request handler vc := reflect.New(route.controllerType) init := vc.MethodByName("Init") in := make([]reflect.Value, 2) ct 0) Customized routers 283 method := vc.MethodByName("Prepare") method.Call(in) if r.Method == "GET" { method = vc.MethodByName("Get") method.Call(in) Method == "POST" { method = vc.MethodByName("Post") method.Call(in) } else if r.Method == "HEAD" { method = vc.MethodByName("Head") method.Call(in)0 码力 | 327 页 | 1.63 MB | 1 年前3
 Go 101 (Golang 101)  v1.21.0make(chan string, 2) vc := reflect.ValueOf(c) vc.Send(reflect.ValueOf("C")) succeeded := vc.TrySend(reflect.ValueOf("Go")) fmt.Println(succeeded) // true succeeded = vc.TrySend(reflect.ValueOf("C++")) Println(succeeded) // false fmt.Println(vc.Len(), vc.Cap()) // 2 2 vs, succeeded := vc.TryRecv() fmt.Println(vs.String(), succeeded) // C true vs, sentBeforeClosed := vc.Recv() fmt.Println(vs.String() String(), sentBeforeClosed) // Go true vs, succeeded = vc.TryRecv() fmt.Println(vs.String()) // Go 101 (Golang 101)  v1.21.0make(chan string, 2) vc := reflect.ValueOf(c) vc.Send(reflect.ValueOf("C")) succeeded := vc.TrySend(reflect.ValueOf("Go")) fmt.Println(succeeded) // true succeeded = vc.TrySend(reflect.ValueOf("C++")) Println(succeeded) // false fmt.Println(vc.Len(), vc.Cap()) // 2 2 vs, succeeded := vc.TryRecv() fmt.Println(vs.String(), succeeded) // C true vs, sentBeforeClosed := vc.Recv() fmt.Println(vs.String() String(), sentBeforeClosed) // Go true vs, succeeded = vc.TryRecv() fmt.Println(vs.String()) //- fmt.Println(succeeded) // false } The TrySend and TryRecv methods correspond to one-case-one-default 0 码力 | 610 页 | 945.17 KB | 1 年前3
 Go 101 (Golang 101)  v1.21.02) 8| vc := reflect.ValueOf(c) 9| vc.Send(reflect.ValueOf("C")) 10 | succeeded := vc.TrySend(reflect.ValueOf("Go")) 11 | fmt.Println(succeeded) // true 12 | succeeded = vc.TrySend(reflect 14 | fmt.Println(vc.Len(), vc.Cap()) // 2 2 15 | vs, succeeded := vc.TryRecv() 16 | fmt.Println(vs.String(), succeeded) // C true 17 | vs, sentBeforeClosed := vc.Recv() 18 | fmt fmt.Println(vs.String(), sentBeforeClosed) // Go true 19 | vs, succeeded = vc.TryRecv() 20 | fmt.Println(vs.String()) // Go 101 (Golang 101)  v1.21.02) 8| vc := reflect.ValueOf(c) 9| vc.Send(reflect.ValueOf("C")) 10 | succeeded := vc.TrySend(reflect.ValueOf("Go")) 11 | fmt.Println(succeeded) // true 12 | succeeded = vc.TrySend(reflect 14 | fmt.Println(vc.Len(), vc.Cap()) // 2 2 15 | vs, succeeded := vc.TryRecv() 16 | fmt.Println(vs.String(), succeeded) // C true 17 | vs, sentBeforeClosed := vc.Recv() 18 | fmt fmt.Println(vs.String(), sentBeforeClosed) // Go true 19 | vs, succeeded = vc.TryRecv() 20 | fmt.Println(vs.String()) //- 21 | fmt.Println(succeeded) // false 22 | } The 0 码力 | 880 页 | 833.34 KB | 1 年前3
 Go 101 (Golang 101)  v1.21.02) 8| vc := reflect.ValueOf(c) 9| vc.Send(reflect.ValueOf("C")) 10| succeeded := vc.TrySend(reflect.ValueOf("Go")) 11| fmt.Println(succeeded) // true 12| succeeded = vc.TrySend(reflect false 14| fmt.Println(vc.Len(), vc.Cap()) // 2 2 15| vs, succeeded := vc.TryRecv() 16| fmt.Println(vs.String(), succeeded) // C true 17| vs, sentBeforeClosed := vc.Recv() 18| fmt.Println(vs Println(vs.String(), sentBeforeClosed) // Go true 19| vs, succeeded = vc.TryRecv() 20| fmt.Println(vs.String()) // Go 101 (Golang 101)  v1.21.02) 8| vc := reflect.ValueOf(c) 9| vc.Send(reflect.ValueOf("C")) 10| succeeded := vc.TrySend(reflect.ValueOf("Go")) 11| fmt.Println(succeeded) // true 12| succeeded = vc.TrySend(reflect false 14| fmt.Println(vc.Len(), vc.Cap()) // 2 2 15| vs, succeeded := vc.TryRecv() 16| fmt.Println(vs.String(), succeeded) // C true 17| vs, sentBeforeClosed := vc.Recv() 18| fmt.Println(vs Println(vs.String(), sentBeforeClosed) // Go true 19| vs, succeeded = vc.TryRecv() 20| fmt.Println(vs.String()) //- 21| fmt.Println(succeeded) // false 22| } The TrySend 0 码力 | 630 页 | 3.77 MB | 1 年前3
 Go Web编程Values(values).Encode() } //Invoke the request handler vc := reflect.New(route.controllerType) init := vc.MethodByName("Init") in := make([]reflect.Value, 2) ct in = make([]reflect.Value, 0) method := vc.MethodByName("Prepare") method.Call(in) if r.Method == "GET" { method = vc.MethodByName("Get") method.Call(in) if r.Method == "POST" { method = vc.MethodByName("Post") method.Call(in) } else if r.Method == "HEAD" { method = vc.MethodByName("Head") method.Call(in)0 码力 | 295 页 | 5.91 MB | 1 年前3 Go Web编程Values(values).Encode() } //Invoke the request handler vc := reflect.New(route.controllerType) init := vc.MethodByName("Init") in := make([]reflect.Value, 2) ct in = make([]reflect.Value, 0) method := vc.MethodByName("Prepare") method.Call(in) if r.Method == "GET" { method = vc.MethodByName("Get") method.Call(in) if r.Method == "POST" { method = vc.MethodByName("Post") method.Call(in) } else if r.Method == "HEAD" { method = vc.MethodByName("Head") method.Call(in)0 码力 | 295 页 | 5.91 MB | 1 年前3
 Golang 101(Go语言101 中文版)  v1.21.a2) 8| vc := reflect.ValueOf(c) 9| vc.Send(reflect.ValueOf("C")) 10 | succeeded := vc.TrySend(reflect.ValueOf("Go")) 11 | fmt.Println(succeeded) // true 12 | succeeded = vc.TrySend(reflect 14 | fmt.Println(vc.Len(), vc.Cap()) // 2 2 15 | vs, succeeded := vc.TryRecv() 16 | fmt.Println(vs.String(), succeeded) // C true 17 | vs, sentBeforeClosed := vc.Recv() 18 | fmt fmt.Println(vs.String(), sentBeforeClosed) // Go true 19 | vs, succeeded = vc.TryRecv() 20 | fmt.Println(vs.String()) // <$1> 21 | fmt.Println(succeeded) // false 22 | } reflect.Value0 码力 | 821 页 | 956.82 KB | 1 年前3 Golang 101(Go语言101 中文版)  v1.21.a2) 8| vc := reflect.ValueOf(c) 9| vc.Send(reflect.ValueOf("C")) 10 | succeeded := vc.TrySend(reflect.ValueOf("Go")) 11 | fmt.Println(succeeded) // true 12 | succeeded = vc.TrySend(reflect 14 | fmt.Println(vc.Len(), vc.Cap()) // 2 2 15 | vs, succeeded := vc.TryRecv() 16 | fmt.Println(vs.String(), succeeded) // C true 17 | vs, sentBeforeClosed := vc.Recv() 18 | fmt fmt.Println(vs.String(), sentBeforeClosed) // Go true 19 | vs, succeeded = vc.TryRecv() 20 | fmt.Println(vs.String()) // <$1> 21 | fmt.Println(succeeded) // false 22 | } reflect.Value0 码力 | 821 页 | 956.82 KB | 1 年前3
 Golang 101(Go语言101 中文版)  v1.21.amake(chan string, 2) vc := reflect.ValueOf(c) vc.Send(reflect.ValueOf("C")) succeeded := vc.TrySend(reflect.ValueOf("Go")) fmt.Println(succeeded) // true succeeded = vc.TrySend(reflect.ValueOf("C++")) Println(succeeded) // false fmt.Println(vc.Len(), vc.Cap()) // 2 2 vs, succeeded := vc.TryRecv() fmt.Println(vs.String(), succeeded) // C true vs, sentBeforeClosed := vc.Recv() fmt.Println(vs.String() String(), sentBeforeClosed) // Go true vs, succeeded = vc.TryRecv() fmt.Println(vs.String()) // <$1> fmt.Println(succeeded) // false } reflect.Value类型的TrySend和TryRecv方法对应着只有一个case分支和一个 default0 码力 | 608 页 | 1.08 MB | 1 年前3 Golang 101(Go语言101 中文版)  v1.21.amake(chan string, 2) vc := reflect.ValueOf(c) vc.Send(reflect.ValueOf("C")) succeeded := vc.TrySend(reflect.ValueOf("Go")) fmt.Println(succeeded) // true succeeded = vc.TrySend(reflect.ValueOf("C++")) Println(succeeded) // false fmt.Println(vc.Len(), vc.Cap()) // 2 2 vs, succeeded := vc.TryRecv() fmt.Println(vs.String(), succeeded) // C true vs, sentBeforeClosed := vc.Recv() fmt.Println(vs.String() String(), sentBeforeClosed) // Go true vs, succeeded = vc.TryRecv() fmt.Println(vs.String()) // <$1> fmt.Println(succeeded) // false } reflect.Value类型的TrySend和TryRecv方法对应着只有一个case分支和一个 default0 码力 | 608 页 | 1.08 MB | 1 年前3
 Golang 101(Go语言101 中文版)  v1.21.a2) 8| vc := reflect.ValueOf(c) 9| vc.Send(reflect.ValueOf("C")) 10| succeeded := vc.TrySend(reflect.ValueOf("Go")) 11| fmt.Println(succeeded) // true 12| succeeded = vc.TrySend(reflect false 14| fmt.Println(vc.Len(), vc.Cap()) // 2 2 15| vs, succeeded := vc.TryRecv() 16| fmt.Println(vs.String(), succeeded) // C true 17| vs, sentBeforeClosed := vc.Recv() 18| fmt.Println(vs Println(vs.String(), sentBeforeClosed) // Go true 19| vs, succeeded = vc.TryRecv() 20| fmt.Println(vs.String()) // <$1> 21| fmt.Println(succeeded) // false 22| } reflect.Value类型的TrySe0 码力 | 591 页 | 21.40 MB | 1 年前3 Golang 101(Go语言101 中文版)  v1.21.a2) 8| vc := reflect.ValueOf(c) 9| vc.Send(reflect.ValueOf("C")) 10| succeeded := vc.TrySend(reflect.ValueOf("Go")) 11| fmt.Println(succeeded) // true 12| succeeded = vc.TrySend(reflect false 14| fmt.Println(vc.Len(), vc.Cap()) // 2 2 15| vs, succeeded := vc.TryRecv() 16| fmt.Println(vs.String(), succeeded) // C true 17| vs, sentBeforeClosed := vc.Recv() 18| fmt.Println(vs Println(vs.String(), sentBeforeClosed) // Go true 19| vs, succeeded = vc.TryRecv() 20| fmt.Println(vs.String()) // <$1> 21| fmt.Println(succeeded) // false 22| } reflect.Value类型的TrySe0 码力 | 591 页 | 21.40 MB | 1 年前3
 Go 入门指南(The way to Go)"Belgium"} vc := VCard{"Jan", "Kersschot", []*Address{pa, wa}, "none"} // fmt.Printf("%v: \n", vc) // {Jan Kersschot [0x126d2b80 0x126d2be0] none}: // JSON format: js, _ := json.Marshal(vc) fmt O_CREATE|os.O_WRONLY, 0) defer file.Close() enc := json.NewEncoder(file) err := enc.Encode(vc) if err != nil { log.Println("Error in encoding json") } } json.Marshal() 的函数签名是 "Belgium"} wa := &Address{"work", "Boom", "Belgium"} vc := VCard{"Jan", "Kersschot", []*Address{pa,wa}, "none"} // fmt.Printf("%v: \n", vc) // {Jan Kersschot [0x126d2b80 0x126d2be0] none}: //0 码力 | 380 页 | 2.97 MB | 1 年前3 Go 入门指南(The way to Go)"Belgium"} vc := VCard{"Jan", "Kersschot", []*Address{pa, wa}, "none"} // fmt.Printf("%v: \n", vc) // {Jan Kersschot [0x126d2b80 0x126d2be0] none}: // JSON format: js, _ := json.Marshal(vc) fmt O_CREATE|os.O_WRONLY, 0) defer file.Close() enc := json.NewEncoder(file) err := enc.Encode(vc) if err != nil { log.Println("Error in encoding json") } } json.Marshal() 的函数签名是 "Belgium"} wa := &Address{"work", "Boom", "Belgium"} vc := VCard{"Jan", "Kersschot", []*Address{pa,wa}, "none"} // fmt.Printf("%v: \n", vc) // {Jan Kersschot [0x126d2b80 0x126d2be0] none}: //0 码力 | 380 页 | 2.97 MB | 1 年前3
共 13 条
- 1
- 2














