Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feature. refactoring model pattern #8

Merged
merged 1 commit into from
Apr 3, 2023
Merged

feature. refactoring model pattern #8

merged 1 commit into from
Apr 3, 2023

Conversation

ktkfree
Copy link
Contributor

@ktkfree ktkfree commented Mar 30, 2023

model 정의 pattern 을 변경합니다.

  • 모든 http request, response 의 모델을 정의해야합니다.
    • domain::~~~Request, ~~~Response
  • delivery <> usecase <> data layer 간의 interface 는 Resource 하나로 통입니다.
  • 각 Request, Response 를 위한 model 을 정의하고, From() 함수를 implementation 합니다.

var out struct {
CloudSetting domain.CloudSetting `json:"cloudSetting"`
out := domain.GetCloudSettingResponse{
CloudSetting: domain.NewCloudSettingResponse(cloudSetting),
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@cho4036 님.
객체 레벨의 static function 을 정의해서 사용하면 좋을 것 같은데, golang 은 static function 이 없는것 같군요. 좋은 구현 방안이 있을지 의견 부탁 드립니다.

Copy link
Contributor

@cho4036 cho4036 Mar 30, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@ktkfree 님, 이런 방식으로 reflection을 쓰는건 어떠신가요?
우려점은 1. compile time 에러를 찾아내는 방법이 있는지 모르는것 2. 속도저하 이긴 한데 의견 부탁드립니다.
7c25532

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

아주 좋습니다.
말씀하신 1,2번은� 애초에 고려 대상이 아닙니다.
구조체내에 필드가 다른 값일 경우는 추가 작업을 해주어야 하긴 하겠지만, 일반적으로 사용하기 좋을 것 같습니다.
위 방향으로 하시죠

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

아! 한가지.
객체내의 type 이 다른 경우도 고려해야겠습니다. dest 쪽에 맞추어 converting 해주어야 할 것 같아요.
예를들어 src 는 string 인데, dest 가 uuid 일 경우는 빈번하게 일어날 수 있을것 같습니다.

@ktkfree ktkfree merged commit c6c530b into develop Apr 3, 2023
@ktkfree ktkfree deleted the react_model branch April 3, 2023 02:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants