중규모용 MVC 모델을 고려

2490 단어 mvcAngular

전치



좀 더 개발이 한 구간 끊어질 것 같기 때문에,
고전한 MVC 모델의 취급 방법에 대해 정리합니다.

담당은 IoT 기기 조작용의 웹 앱을 만드는 것.
내가 팀에 가입하기 전에,
어느 정도 앱이 만들어졌고 AngularJS가 사용되었습니다.

전 담당으로부터 업무를 계승했을 때는, 대체로 기본적인 모델과 같은 느낌이었습니다.


여기에 건간 기능을 추가하고 싶다는 것이었기 때문에
MVC 모델의 분할을하고 싶다고 생각했지만
MVC의 지식이 거의 0으로 꽤 잘 가지 않고. .

본 기사에서는, 시도와 집착한 점, 최종적으로 침착한 모델을 기재합니다.
급한 경우 요약을 참조하십시오.

시도 1 - 컨트롤러 분할





내가 한 일



MVC의 분할을 구그하면, 우선 1번에 컨트롤러의 분할이 나왔기 때문에
뷰의 기능에 맞추어 우직하게 컨트롤러를 분할했다.

곤란한 일



컨트롤러만 분할하면
기능에 따라 사용하지 않는 모델을 사용할 수 있습니다.
각 컨트롤러에서 불필요한 모델을 로드하게 되었다.
이른바 모델의 비대화를 했다.

시도 2 - 모델 분할





했던 일



모델이 커졌기 때문에, 기능에 맞추어 모델도 분할했다.
+ 각 기능에서 사용하고 싶은 공통 모델 프레임도 준비했다. (MMVC를 신고 다르다.)

곤란한 일



이번에는 공통 모델을 만지기 위한 처리를 각 컨트롤러에 쓰게 되었다.
변경이 있을 때 각 컨트롤러에 손을 넣지 않으면 안 됐다. .

시도 3 - 서비스 만들기





내가 한 일



공통 모델을 만지는 컨트롤러를 만들었다.
각 기능의 컨트롤러에서 공통 모델을 변경할 때,
공통 컨트롤러를 사용하도록 했다.
공통 모델에 변경이 있었을 때는, 브로캐스 해 각 기능의 모델에 반영하는 push형으로 했다.
뷰에서 모델을 볼 때는 공통 모델을 직접 참조하지 않고 끝내도록 했다. 이 push형이 깨끗이 하는 포인트가 되었다고 생각한다. 좋아요.

제목에 "서비스 만들기"라고 적었지만,
공통 모델과 공통 컨트롤러를 정리하여 서비스로서 기능을 제공했다.

요약



↓ 최종적으로 차분한 모델


하고 효과적이었던 것
  • 기능에 맞게 모델/뷰/컨트롤러 전부 분할.
  • 공통으로 사용하는 모델/컨트롤러는, 서비스 or 팩토리로 한다.
  • 공통 모델은 뷰에서 직접 참조하지 않습니다. 각 기능의 모델에 떨어뜨린다.
    (브로캐스 push형 추천.)
  • 좋은 웹페이지 즐겨찾기