未验证 提交 c07cf794 编写于 作者: P Phodal Huang

feat: extract some common method

上级 2f95bf14
......@@ -15,8 +15,9 @@ Todo:
- [x] Show all todos and history
- [ ] Suggest API for Design Patterns
- [x] factory pattern
- [ ] strategy
- [ ] builder
- [x] strategy
- [x] builder
- [ ] cycle-deps -> adapter / agency
- [ ] Docs
- [ ] Lifecycle for new projects: evaluate (cloc, bad smell, api, git, todo) -> design -> patterns (suggest) -> refactoring ()
- Evaluate API
......@@ -27,11 +28,11 @@ Todo:
- [ ] microservice
- [ ] big data
- Badsmell
- [ ] sort method size
- [x] sort method size
- Tests
- [ ] Testable?
- [ ] Test badsmell
- [ ] Test bad smell list [https://testsmells.github.io/pages/testsmells.html]
- [ ] Test badsmell
- [ ] Test bad smell list [https://testsmells.github.io/pages/testsmells.html]
## Usage
......
......@@ -7,12 +7,10 @@ import (
"github.com/phodal/coca/core/adapter"
. "github.com/phodal/coca/core/adapter/api"
"github.com/phodal/coca/core/domain/call_graph"
"github.com/phodal/coca/core/models"
. "github.com/phodal/coca/core/support"
"github.com/spf13/cobra"
"log"
"os"
"os/exec"
"regexp"
"sort"
"strconv"
......@@ -67,12 +65,7 @@ var apiCmd = &cobra.Command{
_ = json.Unmarshal(apiContent, &restApis)
}
var parsedDeps []models.JClassNode
file := ReadFile(depPath)
if file == nil {
log.Fatal("lost file:" + depPath)
}
_ = json.Unmarshal(file, &parsedDeps)
parsedDeps := GetDepsFromJson(depPath)
restFieldsApi := filterApi(apiPrefix, restApis)
......@@ -101,12 +94,7 @@ var apiCmd = &cobra.Command{
}
WriteToCocaFile("api.dot", dotContent)
cmd := exec.Command("dot", []string{"-Tsvg", config.CocaConfig.ReporterPath + "/api.dot", "-o", config.CocaConfig.ReporterPath + "/api.svg"}...)
_, err := cmd.CombinedOutput()
if err != nil {
log.Fatalf("cmd.Run() failed with %s\n", err)
}
ConvertToSvg("api")
}
},
}
......
package cmd
import (
"fmt"
"github.com/phodal/coca/config"
"github.com/phodal/coca/core/domain/arch"
"github.com/spf13/cobra"
)
type ArchCmdConfig struct {
DependencePath string
}
var (
archCmdConfig ArchCmdConfig
)
var archCmd = &cobra.Command{
Use: "arch",
Short: "generate arch",
Long: ``,
Run: func(cmd *cobra.Command, args []string) {
parsedDeps := GetDepsFromJson(archCmdConfig.DependencePath)
archApp := arch.NewArchApp()
dotContent := archApp.Analysis(parsedDeps)
fmt.Println(dotContent)
//ConvertToSvg(dotContent)
},
}
func init() {
rootCmd.AddCommand(archCmd)
archCmd.PersistentFlags().StringVarP(&archCmdConfig.DependencePath, "dependence", "d", config.CocaConfig.ReporterPath+"/deps.json", "get dependence file")
}
package cmd
import (
"encoding/json"
"github.com/phodal/coca/config"
"github.com/phodal/coca/core/models"
"github.com/phodal/coca/core/support"
"log"
"os/exec"
)
func GetDepsFromJson(depPath string) []models.JClassNode {
var parsedDeps []models.JClassNode
file := support.ReadFile(depPath)
if file == nil {
log.Fatal("lost file:" + depPath)
}
_ = json.Unmarshal(file, &parsedDeps)
return parsedDeps
}
func ConvertToSvg(name string) {
cmd := exec.Command("dot", []string{"-Tsvg", config.CocaConfig.ReporterPath + "/" + name + ".dot", "-o", config.CocaConfig.ReporterPath + "/" + name + ".svg"}...)
_, err := cmd.CombinedOutput()
if err != nil {
log.Fatalf("cmd.Run() failed with %s\n", err)
}
}
package arch
import "github.com/phodal/coca/core/models"
type ArchApp struct {
}
func NewArchApp() ArchApp {
return *&ArchApp{}
}
func (a ArchApp) Analysis(deps []models.JClassNode) string {
return ""
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册