필자가 읽은 유일한 개발자 블로그 에서 Joel-On-Software-Founder-of-SO 담당자는 OO가 생산성 향상으로 이어지지 않는다는 것을 오래 전에 읽었습니다. 자동 메모리 관리가 수행합니다. 멋있는. 누가 데이터를 거부 할 수 있습니까?
나는 여전히 OO가 함수가 아닌 프로그래밍이 모든 것을 인라인으로 프로그래밍하는 것이 아닌 비 OO라고 생각합니다.
당신이 사용하는 기능에 코드를 리팩토링 할 때 (내가 GWBASIC 시작으로 나는., 알아야한다)
variable2654
이된다
variable3
당신이하고있는 방법을. 또는 더 나은 아직, 당신이 이해할 수있는 이름을 가지고,
그리고 기능이 짧으면 , 그것은이라고
value
하고 전체 이해하기에 충분합니다.
함수가없는 코드가 메소드가있는 코드가되면 몇 마일의 코드를 삭제하게됩니다.
당신이 할 코드를 리팩토링 할 때 정말 OO, b
, c
, q
, 및 Z
가 this
, this
, this
와 this
. 그리고 this
키워드 사용을 믿지 않기 때문에 수 마일의 코드를 삭제할 수 있습니다. 실제로을 사용하더라도 그렇게 할 수 있습니다 this
.
나는 OO가 자연적인 은유라고 생각하지 않습니다.
나는 언어가 자연적인 은유라고 생각하지 않으며, Fowler의 "냄새"가 "이 코드는 나쁜 맛"이라고 말하는 것보다 낫다고 생각하지 않습니다. 즉, OO는 자연적인 은유에 관한 것이 아니며
개체가 당신에게 튀어 나와 있다고 생각하는 사람들 은 기본적으로 요점을 놓치고 있다고 생각합니다 .
개체 유니버스를 정의하면 더 나은 개체 유니버스를 사용하면 더 짧고 이해하기 쉽고 더 나은 코드를 만들 수 있습니다. 고객 / 도메인의 자연 개체를 프로그래밍 개체로 사용하는 사람들은 우주를 재정의 할 힘이 없다고 생각합니다.
예를 들어, 항공사 예약 시스템을 수행 할 때 예약이라고하는 것은 법적 / 비즈니스 예약과 전혀 일치하지 않을 수 있습니다.
기본 개념 중 일부는 정말 멋진 도구입니다
나는 대부분의 사람들이 "망치가있을 때 모두 손톱"이라는 그 전체를 과장한다고 생각합니다. 나는 동전 / 거울의 다른 면도 마찬가지라고 생각합니다. 다형성 / 상속과 같은 가제트가 있으면 장갑 / 양말 / 콘택트 렌즈와 같은 용도로 사용되기 시작합니다. OO의 도구는 매우 강력합니다. 단일 상속은 사람들이 날아 가지 않기 위해 절대적으로 필요하며 내
다중 상속 소프트웨어는 견딜 수 없다고 생각합니다.
OOP의 요점은 무엇입니까?
나는 그것이 절대적으로 거대한 코드베이스를 처리하는 좋은 방법이라고 생각합니다. 코드를 구성하고 재구성 할 수있게 해주 며 (작업중인 프로그래밍 언어 이외의 언어로) 언어를 자연스럽고 이해하기 쉬운 방식으로 모듈화한다고 생각합니다.
OOP는 대부분의 개발자들에 의해 오해 될 예정입니다
인생과 같은 눈을 뜨는 과정이기 때문입니다. 경험을 통해 OO를 점점 더 이해하고 특정 패턴을 피하고 더 현명 해지면 다른 패턴을 사용하기 시작합니다. 가장 좋은 예 중 하나는 제어하지 않는 클래스에 대한 상속 사용을 중지하고 대신
Facade 패턴을 선호한다는 것입니다.
미니 에세이 / 질문에 대하여
네 말이 옳다고 언급하고 싶었다. 재사용 가능성은 대부분의 꿈입니다. 여기에 (화려한) 그 주제에 대한 앤더스 Hejilsberg에서 인용이다 여기에서는 :
초보 프로그래머에게 달력 컨트롤을 작성하도록 요청하는 경우 종종 자신에게 다음과 같이 생각합니다. "세계 최고의 달력 컨트롤을 작성하겠습니다! 달력의 종류와 관련하여 다형성이 될 것입니다. "분쇄기, 이것, 저것 그리고 다른 것" 그들은 두 달 안에 달력 응용 프로그램을 배송해야합니다. 이들은이 모든 인프라를 제어 시스템에 배치 한 다음 이틀에 달력 일정 응용 프로그램을 작성하는 데 이틀을 보냅니다. "다음 버전의 응용 프로그램에서는 더 많은 작업을 수행 할 것입니다."라고 생각합니다.
그러나 그들이 추상 디자인의 다른 모든 concretization을 실제로 어떻게 구현할 것인지에 대해 생각하기 시작하면, 그들의 디자인은 완전히 틀린 것으로 판명되었습니다. 그리고 그들은 스스로를 모퉁이에 페인트했고 모든 것을 버려야합니다. 나는 그것을 계속해서 보았다. 나는 미니멀리즘에 대한 강한 신자입니다. 실제로 일반적인 문제를 해결하지 않는 한 특정 프레임 워크를 해결하기위한 프레임 워크를 시도하지 마십시오. 프레임 워크의 모양을 모르기 때문입니다.