2017-11-22 17 views
4

우리는 다시 프레임 응용 프로그램 DB는 다음과 같이 구성이 있습니다다시 프레임 DB 조직

{:meta {:page/search {:page/component #'...} :page/details {:page/component #'...}} 
:widget/base {:cur-page-id :page/search} 
:page/search {:page/route {:query-params {:q "1"}, ...}, 
:page/details {:page/route {:query-params {:q "2"}}, ...} 

는 불변 :meta에서 모든 것을 고려한다.

base 위젯은 [:widget/base :cur-page-id]에 가입 한 다음 [:meta cur-page-id :page/component]을 선택하여 현재 선택된 페이지를 렌더링합니다. 또한 페이지 자체에 필요한 현재 페이지의 :page/route이 필요합니다. (fn [db] (get-in db [cur-page-id :page/route]))에 가입하면이 URL을 받게됩니다. 우리는 이제 전체 DB에 가입했기 때문에 이것은 안티 패턴 일 수 있습니다.

우리는 이것을 리펙토링 할 수 있지만 성능면에서 무엇이 가장 중요한지 먼저 아는 것이 좋습니다. 이것을 올바르게 측정 할 수있는 방법이 있습니까?

예 : :widget/base 항목 아래에 경로를 저장합니다. 여기서 페이지는 :widget/base :routes만을 선택하는 가입을 통해 자체 경로를 조회하여 전체 db에 대한 가입을 방지합니다.

답변