Computer >> 컴퓨터 >  >> 프로그래밍 >> Ruby

문서만으로 부족할 때, GitHub 코드 검색으로 새 라이브러리 배우는 방법

새로운 라이브러리나 기능을 다루다 보면 문서를 봐도 이해가 잘 안 될 때가 있습니다. 환경 설정이 어려워서 여러 RDoc 문서 사이를 오가며 전체 구조를 파악해야 할 수도 있고, 아예 문서 자체가 존재하지 않는 경우도 있습니다. 아니면 그냥 실제 예시를 많이 봐야 이해가 빠른 학습 스타일일 수도 있죠.

이럴 때 도움이 필요합니다. 하지만 문서 외에 기능 사용법을 어디에서 배울 수 있을까요?

GitHub의 숨은 강력한 기능

문서를 넘어 라이브러리나 기능의 실제 활용 사례를 확인하고 싶다면 GitHub 코드 검색을 활용하세요.

예를 들어 Rails 가이드에서 Conditional GET Support(조건부 GET 지원) 문서를 읽었다고 가정해 봅시다. 개념은 이해한 것 같지만, 실전에 적용하기 전에 더 많은 예시를 보고 싶습니다.

GitHub 검색으로 이동해 "if stale?"를 검색하고, 사이드바에서 유형은 code, 언어는 Ruby로 필터를 걸면 됩니다:

그러면 stale?을 어떻게 활용할 수 있는지 훌륭한 실제 예시들을 대량으로 확인할 수 있습니다.

모든 예시가 흥미로운 것은 아닙니다. 하지만 결과 목록 중 하나에서 작성자가 Post.maximum을 사용하는 코드를 발견했습니다:

app/controllers/archives_controller.rb
class ArchivesController < ApplicationController
  def index
    if stale?(last_modified: (Post.maximum(:updated_at) || EPOCH).utc, public: true)
      @months = Post.find_all_grouped_by_month
    end
  end
end

stale?을 활용하는 정말 좋은 방법으로 보입니다. 이 예시를 보지 못했다면 시도조차 생각하지 못했을지도 모릅니다.

찾은 코드를 어떻게 활용해야 할까?

오픈소스 코드를 검색하면 거의 모든 기능에 대해 수백 개의 실제 예시를 얻을 수 있습니다. 문서에서 설명이 적절한 부분과 지나치게 단순화된 부분을 스스로 구분할 수 있게 되고, 실제 코드 속에서 객체들이 서로 협력하는 모습도 눈으로 확인할 수 있습니다. 클래스 간의 연결 관계는 어떤 RDoc보다 실제 코드에서 훨씬 더 잘 배울 수 있습니다.

다만 찾은 예시는 새로운 것을 배우기 위한 자료로 활용해야지, 무작정 내 프로젝트에 복사해서는 안 됩니다. 코드를 이해하지 못한 채 사용하는 것은 잘못 설계된 시스템을 만드는 가장 빠른 지름길입니다.

앞선 예시에서 maximum이 제 프로젝트에 꼭 맞는 선택이 아닐 수도 있습니다. 더 깊이 학습하고 언제 사용하는 것이 적절한지 이해하기 전까지는 그대로 가져와서는 안 됩니다. 하지만 예시는 이전에 몰랐던 것들을 가르쳐 주고, 다음에 무엇을 공부할지 방향을 잡는 데 큰 도움이 됩니다.

다른 검색과 마찬가지로 좋은 결과를 얻으려면 약간의 연습이 필요합니다. 하지만 저는 검색으로 찾은 코드에서 정말 많은 것을 배웠고, 여러분도 분명 그렇게 되실 겁니다.