저는 루비 문자열로 몇 가지 작업을 계획하고있는 루비 프로젝트에 참여하고 있습니다. 어떤 연산은 (단어의 수를 세는 것과 같이) 간단하고 (주어진 문자열이 올바른 언어인지 검사하는 것과 같이) 더 복잡한 연산도 있습니다.기본 루비 클래스를 원숭이에게 패치하는 것은 나쁜 습관입니까?
이를 구현하기위한 가능한 방법은 기존의 방법을 수정하지 않고 별도의 방법과 String
클래스, 패치 및 "some string".word_count
및 "some string".cjk?
같은 행동을 추가하는 것입니다.
FileUtils
을 기반으로 한 또 다른 접근법은 메서드가 가득한 클래스 또는 모듈을 만들고 OddClassName.word_count("some string")
및 OddClassName.cjk?("some string")
과 같이 항상 문자열을 매개 변수로 사용하는 것입니다. 우리는 가독성 때문에 처음부터 더 좋아합니다.
첫 번째 대안에서 설명한대로 기본 클래스에 패치하는 원숭이가 이름 충돌을 가질 수 있음을 이해합니다. 그러나이 라이브러리가 라이브러리가 아닌 기본 응용 프로그램이라면 전혀 걱정하지 않아도됩니까?
그래서, 질문은 다음과 같습니다
- 는 기본 클래스 나쁜 관행을 루비 방법을 추가? 그렇다면 모든 경우 또는 일부 경우에만 있습니까?
- 이 작업을 수행하는 가장 좋은 방법은 무엇입니까?
- 'OddClassName'의 이름은 무엇이 될 수 있습니까?
대안을 제안하십시오.
사용중인 Ruby 버전은 무엇입니까? 나는 2에있는 몇몇 다른 원숭이 헝겊 조각 선택권이다는 것을 믿는다.0 –
@CharlesCaldwell 1.9를 사용하고 있지만 맞는다면 대답에 2.0을 자유롭게 추가하십시오. – fotanus
질문에서 섹션을 표시 할 때 헤더를 사용할 필요가 없습니다. StackOverflow 룩앤필은 좀 더 대화적이고 덜 공식적입니다. 헤더를 제거하면 질문이 매우 잘 전달됩니다. "Ruby"와 같은 것들에 대해 적절한 이름을 대문자로 써야합니다. –