2009-09-12 5 views
3

EiffelBuild는 Eiffel 전용 ISE GUI 구축 그래픽 도구입니다.대규모 프로젝트에 EiffelBuild를 사용할 수 있습니까? 아니면 프로토 타이핑 용도로 제한해야합니까?

나는 그것을 매우 사용자 친화적 인 것으로 생각하지만, 나는 큰 프로젝트를 위해 그런 도구를 사용하는 것에 대해 약간 걱정하고있다. GUI 작성 도구의 사용은 제한적일 수 있습니다.

에펠 상속을 사용하면 장기적으로 구성 요소를 만드는 것이 쉬워 지므로 표준 이미지를 사용하는 그래픽 객체의 특수 버전을 사용하는 것이 좋습니다.

대형 프로젝트에서의 사용을 피하는 것이 타당한 EiffelBuild의 한계를 알고 계십니까?

+0

와우 - 나는 에펠이 완전히 죽었다고 생각했다. 그것은 그것의 전성기에있을 때 간신히 맥박이 있었다. – duffymo

답변

3

EiffelBuild 사용을 프로토 타이핑으로 제한합니다. 그것은 좋은 도구이지만, 장기적으로는 점점 EiffelBuild 프로젝트를 관리하는 복잡 얻을 것이다 (이것은 대부분의 디자이너 마찬가지입니다)의 eStudio의

  • 새로운 버전은 매 6 개월마다 출시, 그것에 부담 만들기 EiffelBuild 프로젝트가 한 버전에서 다른 버전으로 예상대로 작동하도록 유지해야하며 매번 마이그레이션을 처리해야합니다. 이제 모든 에펠 코드는 동일한 도전 과제를 겪게 될 것입니다. 그러나 EiffelBuild의 프로젝트를 사용하면 언어와 EiffelBuild에 대한 두 가지 변경 사항을 처리해야합니다 (때로는 동시에 둘 다 ...)
  • 버전 N + 1 및 N은, 두 버전을 모두 지원하도록 EiffelBuild 프로젝트의 지점을해야 여러 EiffelBuild는
  • 일부 그래픽 구성 요소를 프로젝트에 통합하기가 어려울 수 있습니다 만 전환 기간
  • 중에있을 거 야, 호환되지 않는 수 특수 차트 컴포넌트 (예 : 클래스 세트 ...)와 같이 EiffelBuild에서 재사용하기가 어려울 수 있습니다 (특히 해당 컴포넌트가 EiffelBuild 프로젝트 자체가 아닌 경우)
  • diffic 그것은 희망이 도움이

문제의 더 적은이다 매우 잘 설계된 구성 요소 반면 ULT는 다른에 하나 EiffelBuild 응용 프로그램에서 만든 부품을 재사용합니다.

1

나는 그것을 아주 사용하기 쉽다고 생각하지만, 나는 큰 프로젝트를 위해 그런 도구를 사용하는 것에 대해 약간 걱정하고있다. GUI 작성 도구의 사용은 제한적일 수 있습니다.

어떻게 "제한적"입니까? 그리고 프로젝트의 규모는 어떻게 작용합니까?

코드 생성기이므로 완전히 벗어나는 코드를 이해할 수 없다면 완전히 동의합니다. 코드 생성은 추운 곳에서 코드를 작성한 경우에만 작동하며 생성기는 과장된 작업을 저장하여 리프트를 제공합니다. 이 경우 생성 된 코드를 수정하고 유지 관리하는 데 자신감이 생깁니다.

에펠 상속을 사용하면 장기적으로 표준 구성 요소를 사용하는 그래픽 객체의 특수 버전을 사용하는 것이 더 쉽습니다.

추가하려는 전문 분야는 무엇입니까? 나는이 일을주의 깊게 생각할 것입니다. 왜냐하면 그것은 영속적 인 클래스 계층 구조를 작성하고, 디버깅하고, 유지하는 것을 의미하기 때문입니다. 이 단계를 수행하기 전에 특성화가 필요하고 비용이들 수 있으며 다른 수단으로는 얻을 수없는 것이 절대적으로 중요합니다. 결정하기 전에 비용을 정량화하기위한 정직한 노력을하십시오.

라이브러리 GUI 클래스를 사용하여 손으로 코드를 작성하면 코드 생성기를 작성하는 데 투표 할 것입니다. 그것은 지속 가능한 해결책 인 IMO입니다.

UPDATE :

나는 그것이 최선의 객체 지향 언어가 사용할 수 있었던 중간 90 년대에 결정 대학원 프로그램에 에펠 배웠습니다. 당시 C++은 탁월했지만 복잡한 것으로 간주되었지만 Java는 Sun의 실험실에서 만들지 않았으며 C#은 Anders의 눈에서조차도 희미하지 않았습니다. 이 시설의 교수진은 계약에 의한 디자인과 그것이 함축 한 학문적 엄격함의 심령술에 매혹되어있었습니다.

나는 Meyers의 "Object Oriented Software Contruction"을 읽었습니다. 초판에서는 DbC를 소개하고 객체 지향 세계에서 Meyers를 별의 소재로 만들었습니다. 내 의견으로는, 두번째 판은 그의 등반을 끝내는 비 대한 것이었다.

솔직히, 고용주를 위해이 대형 시스템을 작성하는 경우 에펠을 떨어 뜨리고 자신의 이익을 위해 더 많은 주류 언어로 바꾸라고 조언합니다. C#은 Windows 플랫폼을 사용하는 경우 좋은 선택 일 수 있습니다. 이기종 환경이 있거나 Microsoft 스택을 구입할 여유가없는 경우 Java를 사용하십시오.

SO에는 에펠에 대한 네 가지 질문이 있습니다. 나는 그 볼륨이 뭔가를 말하고 있다고 생각한다. 인기가 항상 품질에 대한 최상의 지표는 아니라고 생각할 수도 있습니다. 나는 베타가 VHS보다 우수한 기술 솔루션이라고 말했지만 사실은 시장에서 사라지고 오늘날에는 발견 될 곳이 없다는 것이다. 에펠과 동일합니다. 내가 너라면 그걸 버릴거야.

UPDATE 2 :

아주 좋은 - 나는 다른 언어에 대한 사용자의 경험이 무엇인지 원래의 게시물에서 말할 수 없습니다.

"높은 기대 효과"는 에펠이 다른 언어로 복제 할 수없는 방식으로 언어 수준의 품질을 지원한다고 믿는 것을 의미합니다. 나는 그것에 동의하지 않을 것이다. 코드의 품질은 언어 자체보다 개발자의 기술 및 관행과 관련이 있습니다.

계약에 의한 디자인은 완전히 과매 해, IMO. 성능 저하를 나타 내기 때문에 프로덕션 환경에서는 꺼져있는 경우가 많습니다. 그것이 사실이라면 에펠의 품질 향상에 어떤 도움이 될 것으로 기대하십니까?

나는이 응용 프로그램을 작성중인 클라이언트가 Eiffel과 관련하여 결정한 모든 결과를 이해할 수 있도록합니다. 제한된 개발자 풀, 유지 관리 직원, 죽은 사람의 사용으로 소외된 직원 언어 등. 주관적인 소원 때문에 지나치게 지나치지 않도록하십시오.

+0

필자는 Java에서 7 년 이상의 경험을 갖고 있으며 최근 C#을 파헤쳐 Window 응용 프로그램을 개발할 수있는 가능성을 평가했습니다. 나는 여전히 품질에 대한 기대가 매우 높은 내 영역에서 에펠은 여전히 ​​선택의 여지가 있음을 확신합니다. 그러나 나는 주류가 아니라는 것은 몇 가지 단점이 있다는 것을 완전히 이해합니다. –

+0

"품질에 대한 기대가 매우 높은 내 도메인"- 품질에 신경 쓰지 않는 도메인을 지적하십시오. 모두해라, IMO. 의료 기기, 항공 전자 공학, 발전소 제어 등을위한 실시간 시스템 및 시스템다른 사람들보다 특별한 표준을 가지고 있지만, 보통 에펠을 사용하지 않습니다. – duffymo

+0

저는 의료 기기에서 일하고 있습니다. 당신은 그들이 에펠을 사용하지 않는다는 것이 맞습니다 ...하지만 아마도 그것으로부터 이익을 얻을 수 있습니다. 내가 평가하는 것만 큼 과장하지 않습니다. 또한 ISE는 고객에게 매우 도움이되는 것 같아서 에펠은 죽었다고 말하지 않을 것입니다 ... 나는 그것을 강력한 틈새 솔루션으로 간주하는 것을 선호합니다. –

관련 문제