Ruby에서 수행한 작업이 필요한 경우 이에 대한 보석이 있을 것입니다. 글쎄, 그것에 대한 수십 개의 보석이 아마도 존재할 것입니다. 그들 중 일부는 우아하고 기능적이며 잘 유지 관리되었으며 다른 일부는 작성자가 한 번 겪었던 한 가지 사용 사례를 해결하기 위해 작성되었습니다. 선택할 수 있는 보석이 많은데 어떻게 올바른 보석을 선택합니까? ? 이 선택은 중요합니다. 프로젝트에 보석을 추가한 것을 후회할 때쯤이면 되돌리는 것은 고통스럽습니다.
통계
문제를 해결하기 위해 라이브러리가 필요할 때 Ruby Toolbox로 시작합니다. Ruby Toolbox는 다음과 함께 범주(예:"구독 관리")의 모든 보석 목록을 얻을 수 있는 좋은 방법입니다.
-
몇 명이 사용합니까?
인기있는 보석은 일반적으로 이유가 있습니다. 그리고 인터넷의 다른 모든 사람들이 같은 보석을 사용하고 있다면 도움을 받기가 훨씬 쉬울 것입니다.
-
최근/자주 업데이트되나요?
gem이 일관된 업데이트를 받습니까? 아니면 Rails 3.2 호환성 업그레이드가 여전히 pull 요청 대기열에 있습니까? 마지막 릴리스가 몇 년 전이라면 건너뛸 수 있습니다. 어쨌든 앱과 호환되지 않을 수 있습니다.
Ruby Toolbox에서 찾은 보석을 처음 두 가지 기준으로 필터링하면 적극적으로 고려 중인 보석 목록이 있어야 합니다. Ruby Toolbox는 소스, 문서, 웹사이트, 다음에 필요한 버그 추적기에 대한 링크도 제공합니다.
코드 및 문서
-
보석이 문서화되어 있습니까?
웹 사이트가 있으면 확인하십시오. 문서가 좋은가요? RDoc이 있습니까? 필요할 때 필요한 답변을 찾을 수 있습니까?
-
테스트가 잘 되어 있습니까?
테스트를 살펴보십시오. 있습니까?
test/
또는spec/
예배 규칙서?test_truth
이외의 테스트가 있습니까? ? 저자는 회귀가 발생하는지 알 수 있습니까? -
문제 및 풀 리퀘스트 살펴보기
버그가 빨리 수정됩니까? 버그 및 pull 요청에 대한 논의가 있으며 수정됩니까? 아니면 그냥 앉아있나요?
-
Google, StackOverflow 및 reddit에서 보석 이름 검색
사람들은 그것에 대해 어떻게 말합니까? 어떤 보석이 추천되고 어떤 보석이 권장되지 않나요?
-
Gem에서 제공하는 몇 가지 클래스에 대한 GitHub 검색
실제 앱에서 어떻게 사용됩니까? 사용하기 쉬워 보입니까? 아니면 다른 개발자가 gem의 문제를 해결해야 합니까?
이 시점에서 몇 가지 남은 후보자로 선택 범위를 좁혀야 합니다.
촉촉한 물건
이 기준은 약간 주관적이므로 프로젝트에 적합한 보석을 찾아야 합니다. . 하지만 이것을 놓치면 나중에 후회하게 될 것입니다.
-
문서의 예에 따르면 라이브러리가 Ruby 같은 느낌이 드나요?
Ruby 관용구를 사용합니까? 아니면 실제로 Java 또는 PHP를 작성하고 있다고 느끼십니까? 이것은 API 래퍼에서 매우 자주 발생합니다.
-
함께 잘 작동하는 작은 부품으로 구성되어 있습니까?
저자가 당신에게 준 물건을 사용하여 저자가 생각하지 못한 것을 만들 수 있습니까? 아마도 당신이 원할 것이기 때문입니다.
-
귀하의 프로젝트에 이미 있는 다른 gem에서 이미 gem을 사용하고 있습니까?
보너스로, 통합 시간을 절약했으며 버전 관리를 위해 Bundler와 싸울 필요가 없다는 것을 알고 있습니다.
-
젬이 앱에 대해 가정합니까? 앱이 이러한 가정에 부합하고 항상 부합합니까?
ActiveResource와 같은 일부 gem은 대화하는 서버의 API에 대해 가정합니다. ResourceController와 같은 다른 것들은 컨트롤러가 무엇을 할 것인지에 대해 가정합니다. 가정을 하는 보석은 이러한 가정이 유지되는 동안 훨씬 더 빠르고 코드를 간단하게 만들 수 있습니다. . 그러나 이러한 가정이 앱과 호환되지 않으면 원숭이 패치, 디버깅 및 결국 보석을 뜯어내는 데 며칠을 소비하게 될 것입니다.
와, 정말 많군요.
예, 프로젝트에 가장 적합한 보석을 선택하는 데 사용할 수 있는 수많은 기준이 있습니다. 그리고 일반적으로 모든 단계를 거칠 필요는 없습니다. 대부분의 경우 Ruby Toolbox에서 가장 인기 있는 보석을 선택할 수 있습니다.
그러나 앱의 핵심 부분이 되는 몇 가지 보석이 있습니다. HTTP 라이브러리, 데이터베이스 라이브러리 또는 컨트롤러를 더 깨끗하게 만들겠다고 약속하는 모든 것과 같은 것입니다. 그리고 이것이 보석은 깨끗하고, 잘 관리되고, 잘 문서화되어 있으며, 해야 일하세요.
이 모든 기준을 Google 스프레드시트에 넣었습니다. , 따라서 겉보기에 비슷한 보석을 압도적으로 많이 골라야 할 때 쉽게 비교할 수 있습니다. 여기에서 잡을 수 있습니다.