Skip to content

Commit a1a885c

Browse files
committed
refactor(项目): 基于Builder模式构建
1 parent b6de18b commit a1a885c

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

45 files changed

+550
-313
lines changed

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -130,4 +130,4 @@ func init() {
130130
## 感谢Jetbrains
131131

132132
本项目通过`Jetbrains开源许可IDE`编写源代码,特此感谢
133-
[![Jetbrains图标](https://resources.jetbrains.com/storage/products/company/brand/logos/jb_beam.png)](https://www.jetbrains.com/?from=pangum/pangu)
133+
[![Jetbrains图标](https://resources.jetbrains.com/storage/products/company/brand/logos/jb_beam.svg)](https://www.jetbrains.com/?from=pangum/pangu)

bootstrap.go

+5-8
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,8 @@
11
package pangu
22

3-
type Bootstrap struct{}
3+
import (
4+
"github.com/pangum/pangu/internal/runtime"
5+
)
46

5-
func (b *Bootstrap) Before() (err error) {
6-
return
7-
}
8-
9-
func (b *Bootstrap) After() (err error) {
10-
return
11-
}
7+
// Bootstrap 启动接口
8+
type Bootstrap = runtime.Bootstrap

bootstrapper.go

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package pangu
2+
3+
// Bootstrapper 基础启动器
4+
type Bootstrapper struct{}
5+
6+
func (b *Bootstrapper) Before() (err error) {
7+
return
8+
}
9+
10+
func (b *Bootstrapper) After() (err error) {
11+
return
12+
}

config.go

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
package pangu
2+
3+
import (
4+
"github.com/pangum/pangu/internal/core"
5+
)
6+
7+
// Config 配置
8+
type Config = core.Config

get.go

+1
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,5 @@ import (
44
"github.com/pangum/pangu/internal/runtime"
55
)
66

7+
// Get 用于向框架获取一系列依赖
78
type Get = runtime.Get

go.mod

+10-9
Original file line numberDiff line numberDiff line change
@@ -24,17 +24,18 @@ require (
2424
)
2525

2626
require (
27-
github.com/cpuguy83/go-md2man/v2 v2.0.2 // indirect
27+
github.com/cpuguy83/go-md2man/v2 v2.0.3 // indirect
2828
github.com/fsnotify/fsnotify v1.6.0 // indirect
29-
github.com/go-playground/locales v0.14.0 // indirect
30-
github.com/go-playground/universal-translator v0.18.0 // indirect
31-
github.com/go-playground/validator/v10 v10.11.1 // indirect
32-
github.com/go-resty/resty/v2 v2.9.1 // indirect
29+
github.com/gabriel-vasile/mimetype v1.4.3 // indirect
30+
github.com/go-playground/locales v0.14.1 // indirect
31+
github.com/go-playground/universal-translator v0.18.1 // indirect
32+
github.com/go-playground/validator/v10 v10.15.5 // indirect
33+
github.com/go-resty/resty/v2 v2.10.0 // indirect
3334
github.com/goexl/baozheng v0.0.1 // indirect
34-
github.com/goexl/http v0.0.5 // indirect
35-
github.com/google/uuid v1.3.0 // indirect
36-
github.com/leodido/go-urn v1.2.1 // indirect
37-
github.com/rs/xid v1.4.0 // indirect
35+
github.com/goexl/http v0.0.6 // indirect
36+
github.com/google/uuid v1.3.1 // indirect
37+
github.com/leodido/go-urn v1.2.4 // indirect
38+
github.com/rs/xid v1.5.0 // indirect
3839
github.com/russross/blackfriday/v2 v2.1.0 // indirect
3940
github.com/sirupsen/logrus v1.9.3 // indirect
4041
github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 // indirect

internal/app/logger.go

+3-1
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,6 @@ import (
44
"github.com/goexl/simaqian"
55
)
66

7-
type Logger simaqian.Logger
7+
type Logger interface {
8+
simaqian.Logger
9+
}

internal/builder/application.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package builder
22

33
import (
4-
"github.com/pangum/pangu/internal/core"
4+
internal2 "github.com/pangum/pangu/internal/core"
55
"github.com/pangum/pangu/internal/internal"
66
"github.com/pangum/pangu/internal/param"
77
)
@@ -63,6 +63,6 @@ func (a *Application) Help() *Help {
6363
return NewHelp(a)
6464
}
6565

66-
func (a *Application) Get() *core.Application {
67-
return core.New(a.params)
66+
func (a *Application) Get() *internal2.Application {
67+
return internal2.New(a.params)
6868
}

internal/builder/banner.go

+6-5
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,12 @@ type Banner struct {
1010
application *Application
1111
}
1212

13-
func NewBanner(application *Application) *Banner {
14-
return &Banner{
15-
params: param.NewBanner(),
16-
application: application,
17-
}
13+
func NewBanner(application *Application) (banner *Banner) {
14+
banner = new(Banner)
15+
banner.params = application.params.Banner
16+
banner.application = application
17+
18+
return
1819
}
1920

2021
func (b *Banner) Ascii(ascii string) (ban *Banner) {

internal/builder/code.go

+46
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
package builder
2+
3+
import (
4+
"github.com/pangum/pangu/internal/param"
5+
)
6+
7+
type Code struct {
8+
params *param.Code
9+
application *Application
10+
}
11+
12+
func NewCode(application *Application) (code *Code) {
13+
code = new(Code)
14+
code.params = application.params.Code
15+
code.application = application
16+
17+
return
18+
}
19+
20+
func (c *Code) Success(success int) (code *Code) {
21+
c.params.Success = success
22+
code = c
23+
24+
return
25+
}
26+
27+
func (c *Code) Failed(failed int) (code *Code) {
28+
c.params.Failed = failed
29+
code = c
30+
31+
return
32+
}
33+
34+
func (c *Code) Panic(panic int) (code *Code) {
35+
c.params.Panic = panic
36+
code = c
37+
38+
return
39+
}
40+
41+
func (c *Code) Build() (application *Application) {
42+
c.application.params.Code = c.params
43+
application = c.application
44+
45+
return
46+
}

internal/builder/config.go

+13-41
Original file line numberDiff line numberDiff line change
@@ -1,58 +1,30 @@
11
package builder
22

33
import (
4-
"github.com/pangum/pangu/internal/internal"
4+
"github.com/pangum/pangu/internal/internal/builder"
55
"github.com/pangum/pangu/internal/param"
66
)
77

88
type Config struct {
9-
param *param.Config
10-
}
11-
12-
func NewConfig(param *param.Config) *Config {
13-
return &Config{
14-
param: param,
15-
}
16-
}
9+
*builder.Config
1710

18-
func (c *Config) Nullable() (config *Config) {
19-
c.param.Nullable = true
20-
config = c
21-
22-
return
23-
}
24-
25-
func (c *Config) Required() (config *Config) {
26-
c.param.Nullable = false
27-
config = c
28-
29-
return
30-
}
31-
32-
func (c *Config) Path(path string) (config *Config) {
33-
c.param.Paths = append(c.param.Paths, path)
34-
config = c
35-
36-
return
37-
}
38-
39-
func (c *Config) Extension(extension string) (config *Config) {
40-
c.param.Extensions = append(c.param.Extensions, extension)
41-
config = c
42-
43-
return
11+
params *param.Config
12+
application *Application
4413
}
4514

46-
func (c *Config) Default() (config *Config) {
47-
c.param.Default = true
48-
config = c
15+
func NewConfig(application *Application) (config *Config) {
16+
params := application.params.Config
17+
config = new(Config)
18+
config.Config = builder.NewConfig(params)
19+
config.params = params
20+
config.application = application
4921

5022
return
5123
}
5224

53-
func (c *Config) Environment(key string, value string) (config *Config) {
54-
c.param.Environments = append(c.param.Environments, internal.NewEnvironment(key, value))
55-
config = c
25+
func (c *Config) Build() (application *Application) {
26+
application.params.Config = c.params
27+
application = c.application
5628

5729
return
5830
}

internal/builder/help.go

+6-5
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,12 @@ type Help struct {
99
application *Application
1010
}
1111

12-
func NewHelp(application *Application) *Help {
13-
return &Help{
14-
params: param.NewHelp(),
15-
application: application,
16-
}
12+
func NewHelp(application *Application) (help *Help) {
13+
help = new(Help)
14+
help.params = application.params.Help
15+
help.application = application
16+
17+
return
1718
}
1819

1920
func (h *Help) App(tooltip string) (help *Help) {

internal/command/all.go

-7
This file was deleted.

internal/command/info.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ type Info struct {
1616
*Base
1717
}
1818

19-
func newInfo() *Info {
19+
func NewInfo() *Info {
2020
return &Info{
2121
Base: New("info").Usage(`打印应用程序信息`).Aliases(`i`, `information`).Build(),
2222
}

internal/command/serve.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ type Serve struct {
2222
logger app.Logger
2323
}
2424

25-
func newServe(logger app.Logger) *Serve {
25+
func NewServe(logger app.Logger) *Serve {
2626
return &Serve{
2727
Base: New("serve").Usage("启动服务").Aliases("s").Build(),
2828

internal/command/version.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ type Version struct {
1616
*Base
1717
}
1818

19-
func newVersion() *Version {
19+
func NewVersion() *Version {
2020
return &Version{
2121
Base: New("version").Usage("打印应用程序版本").Aliases("v", "ver").Build(),
2222
}

internal/constant/application.go

+9-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,11 @@
11
package constant
22

3-
const ApplicationName = "application"
3+
const (
4+
ApplicationName = "application"
5+
ApplicationStacktrace = 10
6+
ApplicationSkip = 1
7+
ApplicationCodeSuccess = 0
8+
ApplicationCodeFailed = 1
9+
ApplicationCodePanic = -1
10+
ApplicationDefaultName = `没有设置,请使用-ldflags "-s -X 'github.com/pangum/pangu.Name=$NAME"来注入值`
11+
)

internal/constant/config.go

+8-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,12 @@
11
package constant
22

33
const (
4-
ConfigDir = "config"
5-
ConfigConfDir = "conf"
6-
ConfigConfigurationDir = "configuration"
4+
ConfigDir = "config"
5+
ConfigConfDir = "conf"
6+
ConfigConfigurationDir = "configuration"
7+
ConfigName = "config"
8+
ConfigAliasC = "c"
9+
ConfigAliasConf = "conf"
10+
ConfigAliasConfiguration = "configuration"
11+
ConfigDefaultFilepath = "./conf/application.yaml"
712
)
File renamed without changes.

internal/constant/default.go

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package constant
22

33
const (
4-
DefaultName = `没有设置,请使用-ldflags "-s -X 'github.com/pangum/pangu.Name=$NAME"来注入值`
5-
DefaultTag = "default"
4+
DefaultTag = "default"
65
)

0 commit comments

Comments
 (0)