From 6c4a4be5d21207030a106bbf82e95e599804c33c Mon Sep 17 00:00:00 2001 From: kevin Date: Sat, 29 Aug 2020 20:27:52 +0800 Subject: [PATCH] update shorturl doc --- doc/images/shorturl-benchmark.png | Bin 0 -> 113569 bytes doc/shorturl.md | 381 ++++++++++++++++-- readme.md | 2 + tools/goctl/api/gogen/genhandlers.go | 4 +- .../gogen/{genservicecontext.go => gensvc.go} | 5 +- tools/goctl/model/sql/template/delete.go | 2 +- tools/goctl/model/sql/template/import.go | 1 - tools/goctl/model/sql/template/insert.go | 2 +- tools/goctl/rpc/ctx/ctx.go | 38 +- tools/goctl/rpc/gen/gen.go | 17 +- .../rpc/gen/{genshared.go => gencall.go} | 130 +++--- tools/goctl/rpc/gen/gendir.go | 3 +- tools/goctl/rpc/gen/genetc.go | 2 +- tools/goctl/rpc/gen/genlogic.go | 4 +- tools/goctl/rpc/gen/genmain.go | 4 +- .../rpc/gen/{genhandler.go => genserver.go} | 14 +- 16 files changed, 465 insertions(+), 144 deletions(-) create mode 100644 doc/images/shorturl-benchmark.png rename tools/goctl/api/gogen/{genservicecontext.go => gensvc.go} (92%) rename tools/goctl/rpc/gen/{genshared.go => gencall.go} (56%) rename tools/goctl/rpc/gen/{genhandler.go => genserver.go} (87%) diff --git a/doc/images/shorturl-benchmark.png b/doc/images/shorturl-benchmark.png new file mode 100644 index 0000000000000000000000000000000000000000..1e6d5d6dbe9267fb70d449a316a2bac16b69b9a0 GIT binary patch literal 113569 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πsHA^5!;}E~pIo0U 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�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%0D$D&ZZ=v;K30Pb9@_Vb*(`1x%MPvZ90N8 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 1 { + return fmt.Errorf("we recommend only one service in a proto, currently %d", len(file.Service)) + } + typeCode, err := file.GenTypesCode() if err != nil { return err } + service := file.Service[0] + callPath, err := filepath.Abs(service.Name.Lower()) + if err != nil { + return err + } + + if err = util.MkdirIfNotExist(callPath); err != nil { + return err + } + pbPkg := file.Package remotePackage := fmt.Sprintf(`%v "%v"`, pbPkg, g.mustGetPackage(dirPb)) - filename := filepath.Join(g.Ctx.SharedDir, "types.go") + filename := filepath.Join(callPath, "types.go") head := util.GetHead(g.Ctx.ProtoSource) - err = util.With("types").GoFmt(true).Parse(sharedTemplateTypes).SaveTo(map[string]interface{}{ + err = util.With("types").GoFmt(true).Parse(callTemplateTypes).SaveTo(map[string]interface{}{ "head": head, - "filePackage": sharePackage, + "filePackage": service.Name.Lower(), "pbPkg": pbPkg, "serviceName": g.Ctx.ServiceName.Title(), "lowerStartServiceName": g.Ctx.ServiceName.UnTitle(), "types": typeCode, }, filename, true) + if err != nil { + return err + } _, err = exec.LookPath("mockgen") mockGenInstalled := err == nil - for _, service := range file.Service { - filename := filepath.Join(g.Ctx.SharedDir, fmt.Sprintf("%smodel.go", service.Name.Lower())) - functions, err := g.getFuncs(service) - if err != nil { - return err - } - iFunctions, err := g.getInterfaceFuncs(service) - if err != nil { - return err - } - mockFile := filepath.Join(g.Ctx.SharedDir, fmt.Sprintf("%smodel_mock.go", service.Name.Lower())) - os.Remove(mockFile) - err = util.With("shared").GoFmt(true).Parse(sharedTemplateText).SaveTo(map[string]interface{}{ - "name": service.Name.Lower(), - "head": head, - "filePackage": sharePackage, - "pbPkg": pbPkg, - "package": remotePackage, - "serviceName": service.Name.Title(), - "functions": strings.Join(functions, "\n"), - "interface": strings.Join(iFunctions, "\n"), - }, filename, true) - if err != nil { - return err - } - // if mockgen is already installed, it will generate code of gomock for shared files - _, err = exec.LookPath("mockgen") - if mockGenInstalled { - execx.Run(fmt.Sprintf("go generate %s", filename)) - } + filename = filepath.Join(callPath, fmt.Sprintf("%s.go", service.Name.Lower())) + functions, err := g.getFuncs(service) + if err != nil { + return err + } + + iFunctions, err := g.getInterfaceFuncs(service) + if err != nil { + return err + } + + mockFile := filepath.Join(callPath, fmt.Sprintf("%s_mock.go", service.Name.Lower())) + os.Remove(mockFile) + err = util.With("shared").GoFmt(true).Parse(callTemplateText).SaveTo(map[string]interface{}{ + "name": service.Name.Lower(), + "head": head, + "filePackage": service.Name.Lower(), + "pbPkg": pbPkg, + "package": remotePackage, + "serviceName": service.Name.Title(), + "functions": strings.Join(functions, "\n"), + "interface": strings.Join(iFunctions, "\n"), + }, filename, true) + if err != nil { + return err + } + // if mockgen is already installed, it will generate code of gomock for shared files + _, err = exec.LookPath("mockgen") + if mockGenInstalled { + execx.Run(fmt.Sprintf("go generate %s", filename)) } return nil @@ -169,7 +188,7 @@ func (g *defaultRpcGenerator) getFuncs(service *parser.RpcService) ([]string, er if len(method.Document) > 0 { comment = method.Document[0] } - buffer, err := util.With("sharedFn").Parse(sharedFunctionTemplate).Execute(map[string]interface{}{ + buffer, err := util.With("sharedFn").Parse(callFunctionTemplate).Execute(map[string]interface{}{ "rpcServiceName": service.Name.Title(), "method": method.Name.Title(), "package": pkgName, @@ -191,6 +210,7 @@ func (g *defaultRpcGenerator) getFuncs(service *parser.RpcService) ([]string, er func (g *defaultRpcGenerator) getInterfaceFuncs(service *parser.RpcService) ([]string, error) { file := g.ast functions := make([]string, 0) + for _, method := range service.Funcs { data, found := file.Strcuts[strings.ToLower(method.OutType)] if found { @@ -200,19 +220,21 @@ func (g *defaultRpcGenerator) getInterfaceFuncs(service *parser.RpcService) ([]s if len(method.Document) > 0 { comment = method.Document[0] } - buffer, err := util.With("interfaceFn").Parse(sharedInterfaceFunctionTemplate).Execute(map[string]interface{}{ - "hasComment": len(method.Document) > 0, - "comment": comment, - "method": method.Name.Title(), - "pbRequest": method.InType, - "pbResponse": method.OutType, - "hasResponse": found, - }) + buffer, err := util.With("interfaceFn").Parse(callInterfaceFunctionTemplate).Execute( + map[string]interface{}{ + "hasComment": len(method.Document) > 0, + "comment": comment, + "method": method.Name.Title(), + "pbRequest": method.InType, + "pbResponse": method.OutType, + "hasResponse": found, + }) if err != nil { return nil, err } functions = append(functions, buffer.String()) } + return functions, nil } diff --git a/tools/goctl/rpc/gen/gendir.go b/tools/goctl/rpc/gen/gendir.go index 62aadbc22811..307e3989c789 100644 --- a/tools/goctl/rpc/gen/gendir.go +++ b/tools/goctl/rpc/gen/gendir.go @@ -23,11 +23,10 @@ func (g *defaultRpcGenerator) createDir() error { m[dirEtc] = filepath.Join(ctx.TargetDir, dirEtc) m[dirInternal] = filepath.Join(ctx.TargetDir, dirInternal) m[dirConfig] = filepath.Join(ctx.TargetDir, dirInternal, dirConfig) - m[dirHandler] = filepath.Join(ctx.TargetDir, dirInternal, dirHandler) + m[dirServer] = filepath.Join(ctx.TargetDir, dirInternal, dirServer) m[dirLogic] = filepath.Join(ctx.TargetDir, dirInternal, dirLogic) m[dirPb] = filepath.Join(ctx.TargetDir, dirPb) m[dirSvc] = filepath.Join(ctx.TargetDir, dirInternal, dirSvc) - m[dirShared] = g.Ctx.SharedDir for _, d := range m { err := util.MkdirIfNotExist(d) if err != nil { diff --git a/tools/goctl/rpc/gen/genetc.go b/tools/goctl/rpc/gen/genetc.go index 85089219e130..514dd15d2442 100644 --- a/tools/goctl/rpc/gen/genetc.go +++ b/tools/goctl/rpc/gen/genetc.go @@ -13,7 +13,7 @@ Log: ListenOn: 127.0.0.1:8080 Etcd: Hosts: - - 127.0.0.1:6379 + - 127.0.0.1:2379 Key: {{.serviceName}}.rpc ` diff --git a/tools/goctl/rpc/gen/genlogic.go b/tools/goctl/rpc/gen/genlogic.go index 4b34bb2c0432..4c2de0ed290d 100644 --- a/tools/goctl/rpc/gen/genlogic.go +++ b/tools/goctl/rpc/gen/genlogic.go @@ -36,11 +36,9 @@ func New{{.logicName}}(ctx context.Context,svcCtx *svc.ServiceContext) *{{.logic ` logicFunctionTemplate = `{{if .hasComment}}{{.comment}}{{end}} func (l *{{.logicName}}) {{.method}} (in *{{.package}}.{{.request}}) (*{{.package}}.{{.response}}, error) { - var resp {{.package}}.{{.response}} - // todo: add your logic here and delete this line - return &resp,nil + return &{{.package}}.{{.response}}{}, nil } ` ) diff --git a/tools/goctl/rpc/gen/genmain.go b/tools/goctl/rpc/gen/genmain.go index 73138abca10c..5512c4de6910 100644 --- a/tools/goctl/rpc/gen/genmain.go +++ b/tools/goctl/rpc/gen/genmain.go @@ -56,7 +56,7 @@ func (g *defaultRpcGenerator) genMain() error { imports := make([]string, 0) pbImport := fmt.Sprintf(`%v "%v"`, pkg, g.mustGetPackage(dirPb)) svcImport := fmt.Sprintf(`"%v"`, g.mustGetPackage(dirSvc)) - remoteImport := fmt.Sprintf(`"%v"`, g.mustGetPackage(dirHandler)) + remoteImport := fmt.Sprintf(`"%v"`, g.mustGetPackage(dirServer)) configImport := fmt.Sprintf(`"%v"`, g.mustGetPackage(dirConfig)) imports = append(imports, configImport, pbImport, remoteImport, svcImport) srv, registers := g.genServer(pkg, file.Service) @@ -76,7 +76,7 @@ func (g *defaultRpcGenerator) genServer(pkg string, list []*parser.RpcService) ( list2 := make([]string, 0) for _, item := range list { name := item.Name.UnTitle() - list1 = append(list1, fmt.Sprintf("%sSrv := handler.New%sServer(ctx)", name, item.Name.Title())) + list1 = append(list1, fmt.Sprintf("%sSrv := server.New%sServer(ctx)", name, item.Name.Title())) list2 = append(list2, fmt.Sprintf("%s.Register%sServer(grpcServer, %sSrv)", pkg, item.Name.Title(), name)) } return strings.Join(list1, "\n"), strings.Join(list2, "\n") diff --git a/tools/goctl/rpc/gen/genhandler.go b/tools/goctl/rpc/gen/genserver.go similarity index 87% rename from tools/goctl/rpc/gen/genhandler.go rename to tools/goctl/rpc/gen/genserver.go index e411f7f7eca4..470c41a3233c 100644 --- a/tools/goctl/rpc/gen/genhandler.go +++ b/tools/goctl/rpc/gen/genserver.go @@ -10,9 +10,9 @@ import ( ) const ( - handlerTemplate = `{{.head}} + serverTemplate = `{{.head}} -package handler +package server import ( "context" @@ -43,7 +43,7 @@ func (s *{{.server}}Server) {{.method}} (ctx context.Context, in *{{.package}}.{ ) func (g *defaultRpcGenerator) genHandler() error { - handlerPath := g.dirM[dirHandler] + serverPath := g.dirM[dirServer] file := g.ast pkg := file.Package pbImport := fmt.Sprintf(`%v "%v"`, pkg, g.mustGetPackage(dirPb)) @@ -56,19 +56,19 @@ func (g *defaultRpcGenerator) genHandler() error { } head := util.GetHead(g.Ctx.ProtoSource) for _, service := range file.Service { - filename := fmt.Sprintf("%vhandler.go", service.Name.Lower()) - handlerFile := filepath.Join(handlerPath, filename) + filename := fmt.Sprintf("%vserver.go", service.Name.Lower()) + serverFile := filepath.Join(serverPath, filename) funcList, err := g.genFunctions(service) if err != nil { return err } - err = util.With("server").GoFmt(true).Parse(handlerTemplate).SaveTo(map[string]interface{}{ + err = util.With("server").GoFmt(true).Parse(serverTemplate).SaveTo(map[string]interface{}{ "head": head, "types": fmt.Sprintf(typeFmt, service.Name.Title()), "server": service.Name.Title(), "imports": strings.Join(imports, "\n\t"), "funcs": strings.Join(funcList, "\n"), - }, handlerFile, true) + }, serverFile, true) if err != nil { return err }