문제

D4 시리즈 이후 Drupal을 사용하고 있지만 D6과 함께 전문적으로 개발하기 시작했습니다. 내 자신의 코드를 포트해야합니다 새 버전으로.

Drupal 커뮤니티가 변경된 API 및 건축 변경에 대한 많은 기술 지원이 나올 것임을 알고 있습니다 ( 데드 우드 모듈 D5-D6 또는 D6-D7 How-to의 이러한 스터브의 경우 모듈 용 그리고 테마).

그러나 내 질문으로 내가 찾고있는 것은 전략 사고, 즉, 즉 나는 내 자신의 코드를 포팅하는 프로세스를 계획 / 구현 / 검토하는 방법에 대한 입력 및 조언을 찾고 있습니다., 동료 개발자가 이전 경험으로 배운 것에 비추어 볼 때. Some example:

  1. 할 시간이있는 즉시 모듈을 포팅하고 동시 D7을 얼마 동안 유지하도록 조언 하시겠습니까 (그래서 D-Day를 위해 준비되어 있음) 항구가 실제로 될 날 임박 그런 다음 모듈을 D7로 업그레이드하고 D6 버전을 떨어 뜨 렸습니까?
  2. 내 모듈 중 일부만 전체 테스트 범위가 있습니다. D7 포트를 확인하기 위해 모든 테스트가 작업하도록 D6 버전의 테스트 범위를 완료하도록 조언을 하시겠습니까? 아니면 포팅 시간에 테스트를 작성하여 D7 버전을 테스트하도록 조언 하시겠습니까?
  3. 얼리 어답터가되는 것이 새로운 기능과 더 나은 API 측면에서 우위를 점할 수 있다는 것을 알았습니까?
  4. 자신에게 품질 표준 / 평가 기준을 설정 했습니까? 아니면 바를 "작동한다면 행복하다"는 바를 방금 설정 했습니까? 왜요? 특정 표준이나 목표를 설정하면 어디서 / 무엇이 되었습니까? 그들은 당신을 어떻게 도와 주었습니까?
  5. 과거에 경험 한 일반적인 함정이 있고 D6-D7 포팅 프로세스에 적용 할 수 있다고 생각하십니까?
  6. 리팩토링을 수행하기에 좋은 순간을 포팅합니까, 아니면 모든 것을 더 복잡하게 만들어 줄 것입니까?
  7. ...

이러한 질문은 철저한 목록이 아니지만, 내가 원하는 정보를 찾고 있는지에 대한 아이디어를 제공하기를 바랍니다. 나는 차라리 말할 것입니다 : 당신이 생각하는 것은 무엇이든 관련이 있으며 위에 나열되지 않은 "플러스"를 얻지 못했습니다! :)

내가 자신을 충분히 명확하게 표현하지 못했다면, 질문에 추가해야 할 정보와 함께 의견을 게시하십시오. 시간을 보내 주셔서 감사합니다!

PS : 예를 알고 있습니다 ... D7은 아직 출시되지 않았으며 중요한 Contrib 모듈이 업그레이드되기까지 몇 달이 걸릴 것입니다 ... 그러나 생각을 시작하기에는 너무 이른 일이 아닙니다! :)

도움이 되었습니까?

해결책

좋은 질문이 있으므로 보자 :

  1. (포팅을 시작할 때)
    이것은 확실히 포트에 대한 모듈의 복잡성에 달려 있습니다. 실제로 복잡하거나 큰 것이 있다면 압력을받지 않고 까다로운 지점을 찾기 위해 일찍 시작하는 것이 유용 할 수 있습니다. 더 작고 표준적인 것의 경우, 나중에 나중에 일상적인 물건을 빠르게 암기하기 위해 많은 시간을 연속으로 포팅 할 수있는 곳에서 더 큰 시간 슬롯을 찾으려고 노력하고 있습니다 (아마도 개선 된 문서의 혜택).

  2. (테스트 범위)
    일반적으로 리팩토링/포팅을 시작하기 전에 좋은 테스트 범위를 갖는 것이 확실히 권장 될 것입니다. 그러나 Drupal-7이 테스트 프레임 워크를 핵심으로 옮겨서 테스트 프레임 워크와 관련하여 주요 변화를 도입한다는 점을 감안할 때, 어쨌든 상당한 양의 테스트를 다시 작성해야 할 필요성을 기대합니다. 따라서 마이그레이션 후 Drupal-6 버전을 유지할 필요가 없다면 시간/문제를 절약하고 포팅 후 커버리지가 증가하는 것을 목표로합니다.

  3. (얼리 어답터 대 기다리고 참조)
    4.7 버전 이후 Drupal을 사용하여 포팅에 대해 생각하기 전에 최소한 새로운 주요 버전의 첫 공식 릴리스를 기다렸습니다. Drupal 6을 사용하면 첫 번째 사이트를 포팅하기 전에 Views 모듈을 기다렸으며 Drupal-5에 대한 작은 프로젝트가 여전히 잘 작동하기 때문에 여전히 고객을위한 추가 청구서를 정당화하기가 어렵습니다. 여전히 유지 관리/보안 수정이 있습니다. 하루에 너무 많은 시간이 있고 항상 수정해야 할 버그의 백 로그, 추가 기능 등이 있으므로 미완성 된 기술을 사용하여 사용하지 않지만 더 많은 임박한 일이있어 고객에게 즉시 도움이 될 수 있습니다. 초기 포트를 제공하는 것이 좋은 일이기 때문에 하나 이상의 '공식'기여 모듈을 유지해야한다면 이것은 확실히 다를 것입니다.
    나는 여기에 약간의 바인딩이 있습니다. 얼리 어답터가되는 것은 누군가가 고정하기 전에 버그를 찾아야하지만 반면에 버그와 함께 시간 후에 싸우는 것은 거의 의미가 없습니다. 당신이 조금 더 기다렸다면 다른 사람들은 발견/고정되었을 수도 있습니다. 생계를 위해이 작업을 수행 해야하는 한, 나는 자원을 지켜보고 지역 사회에 봉사하는 것과 그로부터 혜택을받는 것 사이의 수용 가능한 균형을 맞추려고 노력해야합니다.-/

  4. (품질 표준)
    "그것이 효과가 있다면, 나는 행복하다"는 순간적으로 만 행복하고 싶지 않지만 내일도 자르지 않는다. 따라서 내 품질 표준 중 하나는 일이 효과가있을뿐만 아니라 그들이해야 할 것처럼 작동하게하기 위해 새로운 개념을 충분히 '정교한'새로운 개념을 잘 알고 있다고 확신해야한다는 것입니다. 이제 이것은 더 정확하게 정의하기가 어렵다. , 그것은 옳게 보입니다.
    즉, 내가 찾고있는 한 가지 특정 요점은 '가능한 한 빨리 개입'하는 것입니다. 초보자로서, 나는 종종 테마 단계에서 '사실 이후에 물건을 조정했지만, 프로세싱 체인의 초기에 한 후크 또는 다른 후크를 통해'수정 '을 적용하는 것이 훨씬 쉬웠을 것입니다. 그래서 지금 당장 테마 레이어에서 무언가를 '조정'하려고 할 때마다, 나는 고의적으로 작은 시간을 보냈다. Drupal-7이 더 많은 훅킹 옵션을 추가 할 것으로 기대하는 것처럼, 이것은 새로운 모듈을 추가 할 때 일반적으로 갈등과 갑작스런 '물건의 깨기기'를 줄이기 때문에 추가주의를 기울일 것입니다.

  5. (일반적인 함정)
    글쎄 - 주로 일찍 포팅하여, 나중에 찾아 내고, 새로운 버전에 필요한 하나 이상의 필요한 모듈을 사용할 수 없거나 Dev/Alpha/Early Beta State에서만 사용할 수 없었습니다. 그래서 나는 a를 컴파일해야합니다 완벽한 중고/필요한 모듈 목록 먼저,이 문제 큐의 빠른 검사와 함께 포팅 상태를 나열합니다.
    그 외에, 나는 지금까지 항상 그랬습니다 매우 새로운 버전과 개선 사항에 만족하며 Drupal-7을 다시 기대하고 있습니다.

  6. (포팅 중 리팩토링)
    포팅은 그 자체로 다소 큰 리팩토링이라고 말할 수 있으므로 비 포팅 관련 사항을 재구성하여 복잡성을 추가 할 필요가 없습니다. 반면에, 어쨌든 모듈을 이미 조각으로 파쇄해야한다면, 기회를 사용하여 주요 점검으로 만들지 않겠습니까? 나는 복잡성을 기반으로 한 선을 그려 보려고 노력하고있다 - 큰/복잡한 모듈의 경우, 가능한 한 똑바로 포트를하고 나중에 필요하다면 더 많은 리팩토링을 할 것이다. 작은 모듈의 경우 미묘한 버그를 도입 할 가능성이 다소 작아야하므로 실제로 중요하지 않습니다.

  7. (기타 물건)
    ... 그것에 대해 생각해야합니다 ...


좋아, 다른 것들 :

  • 자원 요구 - Drupal -7 스레드 중 일부가 주어지면 상승 할 가능성이 높아서 공유/제한된 호스팅 계정에 앉아있는 작은 사이트를 포팅하기 전에 평가해야합니다.

  • 최신 버전 첫 번째 버전 -이 버전은 업그레이드 가이드에서 다소 명백하고 항상 스트레스를받을 수는 있지만 그럼에도 불구하고 언급 할 가치가 있습니다. 업그레이드 코드가 최신 테이블/데이터 구조가 올바르게 작동합니다. Drupals 'Specemeal'을 고려할 때 시간 업데이트 전략을 한 단계마다 다른 업그레이드 상태를 감지하고 그에 따라 작동하는 업그레이드 코드를 구현하기가 매우 어려울 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top