저는 프로그래머의 텍스트 에디터 (예 : 또 하나)를 Kephra이라는 Perl로 작성하고 있습니다.이 에디터는 당연히 CPAN 모듈이며 Module::Install 번들로 제공됩니다. 최근에 나는 Module::Build이 코어에 들어간 것을 보았습니다. 따라서 전환하면 의존성을 줄일 수 있습니다. 전환해야 할 다른 이유가 있습니까?Module :: Install 또는 Module :: Build를 사용해야합니까?
답변
씹는 담배의 한 조각은 이미 내가 Module::Build와 함께 가기로 결정하지만 분명히 다른 대답이 가능 씹는 담배의 한 조각을 뱉어 후 "Which framework should I use to write modules?"
년 전에이에 조금 씹어되었다! (비록 나는 M : B에 지금까지 만족해 왔지만).
글쎄, Module::Build
은 꽤 좋은 모듈입니다. ExtUtils::MakeMaker
을 대신 할 수 있습니다. Makefile.PL을 Makefile 대신 Build.PL로 바꾸면됩니다. 그것은 또한 "단순한 것이 단순해야하고, 어려운 것이 가능해야합니다"라는 의미이기도합니다.
Module::Install
은 다른 접근 방식을 취해 Makefile을 생성합니다. 모두가 내가 그 모듈의 비교를 기억하지
:-) 모두의 최신 버전을 실행하도록 또한
은, 잊지 마세요,하지만 난 당신이Module::Build
및
Module::Install
에서 몇 가지를 찾을 수 있다고 생각 해당 cpanratings 페이지.
감사합니다. MB가 제게 못을 박는다고 생각합니다. –
우리는 여기서 Module::Build을 사용합니다.
주된 이유는 쉬운 확장 성입니다.
Module :: Build를 사용하면 서브 클래 싱을 통해 순수한 Perl로 빌드 프로세스를 더 많이 수행 할 수 있습니다. Module::Install을 사용하여 더 많은 작업을 수행하려면 Makefile이 작동하는 방식에 대한 지식이 필요합니다. AFAIK. 아마도 Perl을 이미 알고 있기 때문에 이점이 될 수 있습니다.
앞에서 말씀 드린대로 Module :: Build를 사용하면 외부 프로그램 인 make
에 대한 종속성이 제거됩니다. 이는 좋은 것으로 간주 될 수 있습니다.
그러나 내가 생각할 수있는 주요 단점은 다음과 같습니다
- 모듈 : : 빌드가 코어를 공격했지만, 모두가 펄의 최신 버전을 사용하는 것입니다. 이전 버전의 코어를 사용하는 사용자는 새로운 종속성을 생성하게됩니다.
perl Makemaker.PL; make; make install
패러다임에는 많은 베테랑 (반드시 Perl 사람들이 아님)이 사용되며Build.PL
대신에 던져 질 수 있습니다. 바라기를 이것은 큰 문제가 아닙니다.- Module :: Build는 문서가 우리가 사용하고있는 엣지 케이스를 다루지 않았기 때문에 때때로 기능이 변경되었을 때 빌드를 망가 뜨 렸습니다. 그런 다음 가장자리 케이스가 변경되고 문서화되었지만 빌드가 다시 작동하도록 서브 클래스를 다시 코딩해야했습니다 (최근 0.2808에서 0.3으로 업그레이드 됨).
그래도 나는 확장성에 대해 Module :: Build를 권장합니다. 그게 문제가 아니라면, Module :: Install을 사용하는 것이 더 낫습니다.
- 1. import module == from module import *?
- 2. llvm :: module :: setDataLayout 및 llvm :: module :: setHostTriple
- 3. Module :: Build를 X와 X :: Y를 모두 설치하려면 어떻게해야합니까?
- 4. _functools module
- 5. Mosso Python Module
- 6. "module scope"에 접근합니다.
- 7. Class.superclass = Module, Module.class = Class?
- 8. csv module python3.1
- 9. 스칼라 객체 MODULE $
- 10. python module dlls
- 11. Theming/building own module
- 12. carrier module for node.js
- 13. Microsoft Jscript Email Module?
- 14. gps module 구성 ssf1513
- 15. Erlang : module 속성
- 16. Perl Net :: Telnet Module
- 17. Drupal Audio with audio module 또는 기타
- 18. Isapi filter to apache module
- 19. isinstance (x, module)하는 방법?
- 20. .module 파일의 내용을 검색하려면 어떻게해야합니까?
- 21. Django - no module named app
- 22. 드루팔 (Drupal - Core User Module)
- 23. Python pty module 사용 예제
- 24. 레일 경로 : "scope : module"문제
- 25. joomla 's hwdvideoshare module help
- 26. Sharepoint comments module best approach
- 27. Drupal Module Themes - 기본 CSS?
- 28. Dotnet Module, 동적 키워드 란 무엇입니까
- 29. Haskell module-0.6.3을 windows에 설치하는 방법은 무엇입니까?
- 30. argparse module 인수없이 옵션을 추가하는 방법은 무엇입니까?
고마워요, –
가장 큰 대답은 아니지만 정확하게 내가 원하는 부분에 연결됩니다. –