차례:
- 하나의 일을 잘 수행하십시오.
- Ruby에서 객체의 데이터와 동작을
- 두 기법 모두 외부 세계와 객체의 코드 및 데이터 사이의 계층을 제공합니다.그런 다음 변경해야 할 경우 인터페이스를 유지하면서 객체의 구현을 변경하여 코드를 사용하는 다른 프로그래머가 자신의 인터페이스를 변경하지 않아도됩니다.
- 상수는 대개 모두 UPPER_SNAKE_CASE이며, 메소드 이름은 물론 로컬 변수와 인스턴스 변수가 모두 @lower_snake_case (@는 로컬 변수 및 메소드 이름에 @가 없음)입니다.
비디오: 여러분은 진짜 감당할 수 있겠어요?? 이 미친 게임을...-헬로 샤를로테 에피소드1 [플레임] 2024
Ruby는 객체 지향 프로그래밍 (OOP) 언어입니다. 루비의 모든 것은 객체 동작을 제공하는 일부 데이터와 코드를 포함하는 객체입니다. 문장을 명사로 생각할 수 있습니다. 메소드, 를 객체의 동사로 부르는 동작을 생각해보십시오. 자신 만의 객체를 만들 때 염두에 두어야 할 좋은 일반 관행이 있습니다.
하나의 일을 잘 수행하십시오.
프로그램을 계획 할 때 필요한 모든 객체와 어떻게 상호 작용할 수 있는지 생각해보십시오. 예를 들어, 카드 게임을하는 경우 개별적인 카드, 카드를 보유한 데크, 게임의 규칙을 아는 게임 자체 및 게임을하는 플레이어가있을 수 있습니다.
대신 하나의 작업을 수행하는 데 집중하십시오.간단하게 유지
Ruby에서 객체의 데이터와 동작을
클래스 로 정의합니다. 클래스는 하나 이상의 객체를 만들 수있는 템플릿과 비슷합니다. 이 클래스에는 메서드 라는 동작을 만든 코드가 들어 있습니다. 클래스는 또한 게임 카드의 액면 (face value)과 같이, 객체가 동작하는데 필요한 데이터를 포함 할 수있다.
코드를 간단하게 유지하는 또 다른 방법은 내장 된 Ruby 객체와 그 메소드를 잘 사용하는 것입니다. Ruby에는 매우 풍부한 내장 기능 세트가 있습니다. 이 방법을 사용하면 시간을 절약 할 수 있습니다.
객체가 재사용하거나 디버그하기가 어려워지는 한 가지 방법은 객체가 너무 많은 정보를 공유하는 경우입니다. "개체에 많은 양의 데이터가 있지만 외부에 모두 노출되어있는 경우 해당 개체에 종속 된 다른 개체를 손상시키지 않고 해당 데이터로 작업하는 방식을 변경하기가 어렵습니다.
Ruby는 객체의 데이터를 숨기는 여러 가지 방법을 제공합니다. 데이터를 조작하기 위해 "게터"및 "설정"을 제공하는 고유 한 메서드를 작성할 수 있습니다. getter와 setter 코드를 생성하는 Ruby의 attr_accessor 메소드를 사용할 수도 있습니다.두 기법 모두 외부 세계와 객체의 코드 및 데이터 사이의 계층을 제공합니다.그런 다음 변경해야 할 경우 인터페이스를 유지하면서 객체의 구현을 변경하여 코드를 사용하는 다른 프로그래머가 자신의 인터페이스를 변경하지 않아도됩니다.
Ruby 규칙 따르기
Ruby에는 Ruby 코드를 작성할 때 예상되는 많은 이름 지정 규칙이 있습니다. 이러한 표준 기술을 따르면 다른 프로그래머가 코드를 훨씬 쉽게 이해할 수 있습니다.
항상 하나의 클래스 만 파일에 넣고 대문자로 시작하는 클래스 이름을 지정하고 여러 작업 이름 사이에 대문자를 사용해야합니다 (CardGame). 클래스를 보유하는 파일의 이름은 모두 "snake case"(card_game.rb)를 사용하여 소문자로 표시됩니다. Ruby는 그 자체로 이것을 기대합니다.
상수는 대개 모두 UPPER_SNAKE_CASE이며, 메소드 이름은 물론 로컬 변수와 인스턴스 변수가 모두 @lower_snake_case (@는 로컬 변수 및 메소드 이름에 @가 없음)입니다.
Ruby는 다른 언어에서 사용되는 모든 추가 기호를 필요로하지 않으므로 다른 종류의 괄호, 세미콜론 및 기타 불필요한 구두점이 없음을 알 수 있습니다. 원하는 경우 사용할 수 있지만 코드의 이해 가능성에 추가하지 않으면 사용하지 마십시오.
그러나 이것이 큰 것이기 때문에, 다른 사람의 코드에서 일하게된다면, 가장 먼저 그의 규칙을 따르십시오.
Ruby의 접근 방식은 권장 사항이며 반드시 요구되는 것은 아닙니다. 자신이 편안하고 코드 작성을 즐기십시오!