새로운 프레임 워크를 구축하기위한 일반적인 규칙이나 모범 사례가 있습니까?

오픈 소스 ECM과 상호 작용할 새 프레임 워크의 설계 및 개발을 시작해야합니다. 여기에는 웹 사이트 개발자가이 ECM과 상호 작용할 수 있도록 사용자 정의 된 데이터 모델이 포함되어 있으므로 “노드 조작 및 기타 낮은 수준의 세부 사항에 대한 세부 사항에 신경을 쓸 필요가 없습니다. 이는 개발할 클래스와 메서드의 집합 일뿐입니다.

프로젝트의 조직 및 관리를 처리하는 방법에 대해 약간의 의심이 있습니다. 이러한 종류의 프로젝트를 개발하기 위해 따라야 할 일반적인 규칙, 팁, 모범 사례 또는 염두에 두어야 할 사항이 있습니까?

프레임 워크 또는 라이브러리 개발과 애플리케이션 개발에는 약간의 차이가 있습니다.

댓글

  • ECM이 엔터프라이즈 콘텐츠 관리 [시스템]을 의미한다고 가정합니까?
  • 예, ' Alfresco와 협력하고 있습니다.

답변

첫 번째는 프레임 워크 낭비 증후군을 방지하기위한 두 가지 규칙입니다.

  • 내 요구 사항과 최근 20 %에 맞게 확장 가능
  • 근거리 다른 응용 프로그램에서 다시 사용할 것이라는 확신

통과 한 후 다음을 확인하십시오.

의견

  • ' 80/20 규칙을 충족하는 프레임 워크를 찾을 수 없다면 작업 중이거나 매우 고유 한 도메인에 있거나 ' 도메인을 충분히 이해하지 못합니다.

답변

1) 기능은 작업 코드에서 추출 된 경우에만 프레임 워크에 추가해야합니다. 즉, 멋진 새 프레임 워크에 멋진 새 아이디어를 추가하기 전에 실제로 작동하는 실제 응용 프로그램에 가치를 더하고 반복을 줄여야합니다.

2) 문서, 문서, 문서.

3) 문서, 문서, 문서.

답변

고통스러운 경험과 많은 낭비 이 조언으로 이어집니다. 작동하는 소프트웨어에서 프레임 워크를 추출하거나 리팩터링하십시오. 향후 프레임 워크를 추출 할 것이라고 생각하는 것을 염두에두고 해당 소프트웨어를 빌드하십시오. 그러나 먼저 프레임 워크를 빌드하지 마십시오.

답변

프레임 워크 디자인 가이드 라인 을 제안합니다.이 책은 몇 년 전이지만 원칙은 그대로 유지됩니다. 수많은 패턴이 있으며 프레임 워크를 구축 할 때 내릴 결정의 이유를 설명합니다.

답변

1) 처음부터 좋은 규칙을 고수하고 “매우 구체적인 규칙을 문서화했는지 확인하십시오. 최상의 프레임 워크는 내부적으로 일관성이있는 것입니다.

2) 모든 것이 좋은 것부터 고도로 문서화되었는지 확인하십시오. 코드 주석은 가장 중요한 함수가 필요로하고 생성하는 것을 설명하기 위해 끝까지 설명합니다. 비록 매우 간단 해 보이지만 14 시간 연속으로 누군가 사용하게되며 그 중 하나만 필요 합니다. 바로 그때.

3) 프레임 워크가 달성하고자하는 목표, 현실적인 목표 및 전반적인 우선 순위가 포함 된 프로젝트 개요를 작성하십시오.

4) 사람들이 사용할 수있게된다면 어떤 형태의 지원 프로세스 / 버그 추적이 준비되어 있는지 확인하십시오. 버그가있을 수 있지만 우리 모두에게 발생합니다.하지만 외부에서 버그를 관리 할 수 있다면 “삶이 더 쉬워 질 것입니다.

모든 애플리케이션을 구축하는 것과 유사한 접근 방식으로, 하지만 개발자는 사용자보다 까다 롭고 최고의 프레임 워크는 우리가 선택하고 이해할 수 있고 싸울 필요가없는 프레임 워크입니다.

답변

많은 말에 동의하지 않으며 더 많은 내용이 언급되지 않은 것 같아서 처음부터 시작하겠습니다.

애자일 방법론

프레임 워크 개발 중에 애자일 방법론을 채택하여 변화에 적응하고 장애물에 빠르게 대응하며 기능적이고 품질이 좋은 최종 제품을 보장 할 수 있습니다. 애자일 방법론은 “Agile Manifesto”에 따라 다음과 같은 우선 순위를 지정하는 방법입니다.

프로세스 및 도구보다 개인 및 상호 작용
포괄적 인 문서를 통해 작동하는 소프트웨어
계약 협상을 통한 고객 협력
계획에 따라 이상 변경에 대응

맞습니다. 문서보다 기능이 더 중요하다고 말했습니다. “Agile Manifesto”는 오른손 우선 순위가 여전히 중요하다고 언급합니다. 왼쪽에있는 것보다.

커뮤니케이션

프레임 워크를 만드는 사람은 다음을 알아야합니다.

  1. 사용 방법 : 대상 애플리케이션
  2. 해결하려는 문제 : 대상 문제
  3. 사용 대상 : 타겟층

예를 들어 회사가 ASP .NET을 사용하여 최종 응용 프로그램을 개발하려는 경우 프로그래머에게 위의 내용을 말하지 않고 “이 프레임 워크를 만듭니다”라고 말하는 것은 어리석은 일입니다. 프로그래머가 대상 응용 프로그램을 알지 못하면 웹 지향적으로 만들지 못할 수 있습니다. 문제를 알지 못하면 다른 목적을위한 프레임 워크를 만들 수 있습니다. 청중을 모르면 C ++로 프레임 워크를 프로그래밍 할 수 있습니다. 이러한 상황은 결과 프레임 워크를 쓸모 없게 만듭니다.

스타일

물론, 프로그래밍 스타일을 설정합니다. / format 및 그대로 유지하십시오.

E s

  1. 모듈성 : 코드를 문자 그대로가 아니라 프로그래밍 방식으로 재사용합니다.
  2. 효율성 : 코드는 재사용을위한 것입니다. . 속도 저하가 증가합니다.
  3. 유지 보수 가능성 : 프레임 워크를 다음과 같이 편집 할 수 있기를 원합니다. 해당 프로그램을 수정할 필요없이 여러 프로그램을 업데이트합니다.
  4. 유용성 : 애플리케이션이 실제로 프레임 워크를 사용할 수 있습니까? 험난하지 않습니까?
  5. 실무 성 :없는 경우 바퀴를 재발 명하지 마십시오. 그렇게하려면. 프레임 워크는 다른 프레임 워크에 의존 할 수 있습니다.
  6. 중복성 : 예외 / 오류를 포착합니다. 어디에나. 그들을 처리하십시오. 어디에나. 오류를 처리하기 위해 로컬 범위에있는 코드 외에는 신뢰하지 마십시오.

댓글

  • 환영합니다. P.SE! 저는 ' 프레임 워크에서 예외를 포착하는 데 # 6에 동의하지 않습니다. 저는 ' 프레임 워크가 절대적인 녀석이어야하고 예외를 던지고 프레임 워크를 사용하는 프로그래머에게 맡기거나 (더 나은) 코드 방향을 변경해야한다고 믿습니다. 예외를 피하기 위해-규칙 준수를 권장합니다.

답변

프레임 워크 또는 라이브러리와 애플리케이션의 개발에는 약간의 차이가 있습니다.

개발 프로세스는 본질적으로 동일합니다. 차이점은 마케팅 및 배포 문제로 귀결 될 수 있지만 가장 큰 차이점은 일반적으로 프로젝트 범위 및 정의 측면에서 찾을 수 있습니다. 애플리케이션은 프레임 워크 또는 라이브러리를 포함하거나 사용할 수 있으며 프레임 워크는 라이브러리 모음 일 수 있습니다.

해당 프로젝트의 조직 및 관리를 처리하는 방법에 대해 약간 의문이 있습니다. 이런 종류의 프로젝트를 개발할 때 염두에 두어야 할 사항, 팁, 모범 사례 또는 무엇인가?

프로젝트 조직 및 관리는 모든 개발 프로젝트에서 동일합니다. . 다시 범위로 내려갑니다. 그러나 프레임 워크를 작성할 때 달성하려는 목표에 대해 매우 명확한 비전을 갖고 API 측면에서 일관성을 보장하기 위해 프레임 워크에 대한 공용 인터페이스에 엄격한 디자인 규칙을 적용하는 것이 좋습니다. 모든 개발자가 자신의 작업을 수행하도록 허용하면 “복잡한 혼란과 매우 비정상적인 API 설계로 끝날 것입니다.

I “ll second Ryan Hayes” 권장 사항 에서 프레임 워크 디자인 가이드 라인 책 자체가 .NET 기반 프레임 워크 개발을 목표로하고 있지만, 일반적인 조언은 사용하기로 선택한 특정 구현 기술에 관계없이 적용 할 수 있기 때문입니다.

경험을 통해 가장 단순한 공용 인터페이스를 먼저 구현 한 다음 확장하여 나중에 더 큰 제어와 깊이를 제공하는 고전적인 YAGNI 원칙을 따르지만, 유용한 이름을 사용하여 메서드 나 클래스가 확장되는 이유를 보여줄 수 있습니다. 저는 “Ex”또는 기타 유사한 접미사를 메서드 이름에 추가하거나 확장 된 인터페이스 정의에 숫자를 추가하는 것을 좋아하지 않았습니다. 기능을 차별화하면 인터페이스 / 메서드 이름이 더 명확 해지면서 혼란스럽지 않게 될 것입니다.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다