모두 감사합니다.
이전에 그 내용을 본 적은 있지만, 업그레이드가 완료될 때까지 Ember 애드온을 추가할 수 없다는 확인을 받아서 다행입니다. 그렇다면 업그레이드가 완료되는 대로 곧 Ember 애드온을 추가할 수 있다는 뜻이네요. 정말 좋은 소식입니다.
흥미로운 질문이라고 생각합니다. 제 생각을 말씀드리겠습니다:
Discourse의 "추상화된 부분"을 사용하는 것과 Ember 애드온을 사용하는 것의 차이점입니다: 제 생각이 틀릴 수도 있지만, 플러그인에서 특정 작업을 수행할 때, Discourse가 이미 하고 있는 것과 다른 것을 시도하는 경우라면 Ember 애드온을 사용하는 것이 유지보수가 더 쉽다고 생각합니다. 제 논리는 다음과 같습니다:
여기서 예시로 든 것은 플러그인에 완전히 새로운 드롭다운을 추가하고 싶은 경우입니다. 이 구분이 아마도 중요할 것입니다–제가 말하는 것은 플러그인에서 Discourse 코드베이스에서 수행되지 않는 새로운 것을 시도하는 것이며, 질문은 Discourse 메서드로 시작할지 아니면 별도의 애드온을 사용할지 여부입니다.
많은 경우 선택의 여지가 정말 없습니다. 예를 들어, 주제(topics)에 사용자 지정 필드를 추가하고 싶다면 항상 Discourse의 사전 구축된 메서드와 코드를 기반으로 커스터마이징할 것입니다.
하지만 특정 기능에 초점을 맞춘 경우–예를 들어 새로운 목적을 위한 드롭다운처럼–이미 Discourse 메서드를 사용한다면, 해당 메서드가 원래 의도된 용도가 아닌 것에 맞게 수정해야 하는 상황에 놓이게 됩니다.
옵션 1: 예를 들어 category-chooser에서 볼 수 있는 select-kit 코드를 가져와 새로운 위치(카테고리와 관련 없는 곳)에 삽입한 후, 카테고리 대신 제가 원하는 드롭다운의 주제가 되도록 커스터마이징을 시도할 수 있습니다. 이것이 제가 이전에 까다로운 작업이라고 설명한 것입니다.
그리고 유지보수가 어려울 수 있습니다–Discourse 팀이 category-chooser의 select-kit 코드 작동 방식을 변경하면, 제 새로운 커스터마이징된 드롭다운도 변경될 수 있지만, 예상치 못한 방식으로 변경될 수 있기 때문입니다(실제 카테고리 선택 드롭다운과 약간 다르게 작동하도록 커스터마이징했기 때문이죠).
옵션 2: Ember에서 강력하면서도 커스터마이징을 위해 만들어진 것을 삽입할 수 있습니다. 이 경우 코드가 실제로 어떻게 작동하는지 비교적 명확하게 볼 수 있습니다. 그러면 Discourse가 드롭다운에 추가할 수 있는 멋진 새로운 기능들을 놓칠 수도 있지만, 제 드롭다운이 어떻게 작동하는지 더 쉽게 파악할 수 있을 것입니다. 따라서 가능하다고 생각하면 이것이 아마도 최선의 옵션일 것입니다.
옵션 3: 처음부터 완전히 코딩합니다. 제가 종종 도달하는 지점입니다. 코딩이 완료되면, 제가 완전히 이해하고 커스터마이징할 수 있는 코드를 갖게 되는 것은 좋습니다. 하지만 물론 더 오래 걸리며, (최소 초기 버전은) Discourse 팀이나 Ember 팀이 구축한 것만큼 강력하고 견고할 가능성이 낮습니다.