2016-09-30 2 views
0

ExtJS 4.1.2로 작성된 기존 응용 프로그램을 얻고 있습니다. 매우 큰 코드 기반입니다. 4.1.2 응용 프로그램은 CMD없이 작성되었습니다. 소스는 index.html에 직접 추가됩니다. 첫째 5.x를 업그레이드 한 후 6.x로하는 5.x를에서 이동4.1.2에서 6.x로 ExtJS 응용 프로그램 업그레이드

1)이 의미가 있는가 :의 ExtJS 배경의 대부분을하지 않고

, 나는 두 가지 질문을 다음습니까? 또는 4.1.2에서 6.x로 직접 이동하는 것이 안전합니까?

2) 새 프로젝트를 만들고 수동으로 복사해야합니까? 아니면 이론적으로 소스를 업데이트하여 새로운 extjs 라이브러리를 가리키고 끊어 지거나 더 이상 호환되지 않는 모든 클라이언트 코드를 수정해야합니까?

필자는 ExtJS의 역사를 많이 따르지 않았으므로이 두 가지 주요 개정판을 업그레이드하는 것이이 프레임 워크에서도 가능할 지 확신 할 수 없습니다.

CMD가 기존 앱에서 사용되지 않는 경우 가장 좋은 방법은 무엇입니까?

답변

1

현재 프로덕션 환경에서 Ext.js를 사용하고 있으며 현재 유사한 업그레이드를 수행 중입니다. 우리는 4.1.1에 있습니다. 여기 우리가 한 일이 있습니다.

1) 우선 5.x로 업그레이드 한 다음 5.x에서 6.x로 변경 하시겠습니까? 또는 4.1.2에서 6.x로 직접 이동하는 것이 안전합니까?

5.x에서 6.x로 업그레이드했습니다. 그 이유는 6.x가 (당시에는) 안정적인 것으로 간주되지 않았기 때문에 처리 할 버그가 적었 기 때문입니다. 가장 큰 점프는 4.1.2에서 5.x로 옮겨 갈 것입니다. 5에서 6으로 이동하는 것은 쉽습니다. 5.x에는 API의 새로운 기능과 변경 사항이 포함되어 있습니다. 6.x는 Sencha Touch와 Desktop을 합친 기술적 빚보다 뒤떨어져 있습니다. 이제는 모바일과 데스크톱을위한 하나의 앱을 가질 수 있기 때문에 중요합니다. 베타 버전보다 훨씬 안정적이기 때문에 아마 6으로 직접 이동할 수 있습니다.

2) 새로운 프로젝트가 생성되어 수동으로 복사하거나, 그냥 새에 extjs lib 디렉토리를 가리 키도록 이론적으로 소스를 업데이트 할 수 있습니다, 그리고 다시 더 이상 파손되거나있어 모든 클라이언트 코드를 수정 행상해야 하는가 호환 가능합니까?

우리는 두 번째 것을 선택했습니다. 우리는 전체 extjs lib를 대체하고 모든 클라이언트 코드를 테스트 한 다음이를 수정했습니다. 그것은 꽤 부드럽게 갔다. 우리는 sencha 아키텍트를 사용하는 이점이있었습니다. Sencha 건축가는 자바 스크립트 코드를 json 메타 데이터 파일로 유지합니다. 업그레이드를 원하면 자동 검사를 할 수 있습니다. 우리는 또한 당신이 가지고있는 것과 비슷한 건축가 프로젝트 이외의 많은 코드를 가지고 있었고 몇 가지 문제가있었습니다. 그것은 50-50으로 나뉘어졌습니다.

업그레이드의 가능성을 평가하는 한 가지 방법은 코드가 Ext.Js와 얼마나 밀접하게 얽혀 있는지입니다. 우리는 개발자에게 핵심 Ext 클래스를 확장하는 미니 프레임 워크를 작성하고 상점 및 뷰를위한 많은 핵심 메소드를 오버로드했습니다. 또한 Ext.Js 내부를 접한 복잡한 플러그인 프레임 워크도있었습니다. 이러한 메소드를 무시하면 업그레이드하는 동안 코드가 매우 약해졌습니다. 아마도 우리의 노력 중 60 %가 그 프레임 워크를 수정하는 데 사용되었습니다. Ext.Js와 밀접하게 얽혀있는 다른 페이지들도 마이그레이션에 많은 노력을 기울였습니다. 훨씬 단순한 코드, 예를 들어 일부 청취자가있는 위젯을 만든 경우에는 많은 변경이 필요하지 않았습니다.

나는 그것을 이해하기 때문에, Sencha CMD는 공식적인 패키지 작성자, minifier 및 프레임 워크에 대한 종속성 관리자입니다.Sencha CMD로 업그레이드 할 때, 메인 라이브러리를 대체하기 만하면 실제 자바 스크립트를 수정하는 데별로 도움이되지 않습니다. Sencha 건축가는 시간 절약이라는 측면에서 많은 돈을 벌 수 있습니다.

관련 문제