[Procedural Style]에서 13000+ 라인의 PHP로 프로젝트를 완료했습니다.
그러나 OOP로 변환해야합니까? [ 세계가 OOP로 바쁘기 때문에 ]
내 코드에는 OOP [캡슐화, 상속 기본적으로 ...] 기능이 필요하지 않습니다!
그래서 내가 무엇을해야하니?
그리고 OOP로 변환하면 어떤 도움을받을 수 있습니까?
[Procedural Style]에서 13000+ 라인의 PHP로 프로젝트를 완료했습니다.
그러나 OOP로 변환해야합니까? [ 세계가 OOP로 바쁘기 때문에 ]
내 코드에는 OOP [캡슐화, 상속 기본적으로 ...] 기능이 필요하지 않습니다!
그래서 내가 무엇을해야하니?
그리고 OOP로 변환하면 어떤 도움을받을 수 있습니까?
답변:
내 코드에는 OOP 기능이 필요하지 않습니다.
자신의 질문에 대답 했습니다.이 경우 OOP 가 필요하지 않고 프로젝트가 작동하면 변환하지 마십시오.
그러나 OOP를 사용하여 다음 프로젝트에 하는 것이 좋습니다.
적절한 위치에서 사용되는 한 절차 적 프로그래밍에는 본질적으로 잘못된 것이 없습니다.
아니요. OOP가 필요하지 않기 때문이 아닙니다.
프로그램이 이미 완료되어 만족스럽게 작동한다면 90 % 이상의 시간이 지나면 어떤 이유로 든 완성 된 코드를 다시 작성하는 것이 시간 낭비입니다.
OOP가 모두 강력하지는 않습니다. OOP를 사용해서는 안되는 곳이 많으므로 OOP가 트렌드이므로 사용하지 마십시오.
저의 일반적인 패러다임은 무엇입니까? (그리고 왜 세 가지 주요 패러다임 중 어느 것도 올바른 방법이나 잘못된 프로그래밍 방법이 아닙니다) :
절차 적 프로그래밍은 높은 수준에서 간단한 문제 (낮은 수준에서는 복잡 할 수 있음)가 있고 그에 따라 간단한 선형 코드를 작성하려는 경우에 좋습니다. 문제가 어디서나 강력한 디커플링이 필요하지 않은 경우 OO보다 쓰기 쉽고 이해하기 쉽고 기능적입니다. 예 : OO 또는 기능을 사용하여 문제를 해결하면 숫자 코드, 가장 작은 스크립, 가장 작은 하위 문제가 있습니다.
객체 지향 코드는 우려 사항을 두 개 이상 구현할 수 있으므로 우려 사항을 강력하게 분리해야 할 때 유용합니다. 예 : 대부분의 대기업 소프트웨어. 예를 들어 비즈니스 로직을 독립적으로 변경해야하므로 비즈니스 로직과 프리젠 테이션 로직을 강력하게 분리하려고 할 수 있습니다.
기능적 프로그래밍은 정책에서 메커니즘을 강력하게 분리해야 할 때 유용합니다. 정책 기능을 허용하는 메커니즘 기능을 갖는 것은 좋은 패턴입니다. (D 프로그래밍 언어의 std.algorithm 모듈을 살펴보면서 그것에 대해 배웠습니다 .) 정책과 메커니즘 코드 사이의 경계에서 변경 가능한 상태를 추상화하면 일반적으로 API를 추론하기가 더 쉽습니다. 변경 가능한 상태가 어느 쪽이든 개인적으로 사용되는 경우 구현 세부 사항입니다. 함수형 프로그래밍의 다른 강점은 자명 한 이유 때문에 동시성입니다.
OOP가 필요하다는 명확한 징후가있는 경우에만 프로젝트를 OOP로 변환해야합니다. 이러한 상황이 발생할 수있는 시나리오는 다음과 같습니다.
이러한 시나리오에서도 프로젝트를 OOP로 변환하지 않아도됩니다.
OO가 발명 된 이유를 다시 생각하면 OOP 가 전혀 필요 하지 않지만 때로는 인생을 훨씬 쉽게 만듭니다.
C 코딩 시대로 거슬러 올라가면 매우 큰 프로그램이 지저분 해지고 계속 작업하기가 어려워 질 수 있습니다. 그래서 그들은 그것을 모듈 식 덩어리로 나누는 방법을 발명했습니다. OOP는 이러한 접근 방식을 취해 더욱 모듈화하여 프로그램 논리를 통해 데이터를 나머지 코드와 더욱 분리시킵니다.
이를 통해 더 큰 프로그램을 작성할 수 있으며, 작업의 거대한 코끼리를 대신에 마우스 크기의 작업으로 100 개로 변경했습니다. 추가 된 보너스는 이러한 '마우스'중 일부를 다른 프로그램에서 재사용 할 수 있다는 것입니다.
물론, 실제 세계는 그렇게 다르지 않으며, 객체 재사용이 의도 한 방식에 따라 잡히지 않았지만 그것이 쓸모없는 패러다임을 의미하지는 않습니다.
쓸모없는 것은 코딩 스타일에 지나치게 의존하는 것입니다. 작고 중요하지 않은 수천 개의 클래스로 OO를 수행하는 사람은 실제로 제대로 수행하지 못하고 있습니다. 자신이나 다른 사람을 위해 유지 관리의 악몽을 만들고 있습니다. 3 가지 기능인 절차 적 응용 프로그램을 작성하는 사람은 인생을 어렵게 만듭니다. 가장 좋은 방법은 중대 규모의 대형 객체 (때때로 한 번 가려고했던 구성 요소라고도 함)로 재사용 가능한 훨씬 많은 독립형 코드 및 데이터를 제공 할 수 있습니다 나머지 앱과는 별도로
다음 번에 내 충고 : 일반적인 절차 코드를 작성하지만 기본 데이터 구조의 단일 객체를 만듭니다. 함수에서 데이터로 데이터를 전달하는 것보다 작업이 더 쉬운 방법을 찾으십시오.