나는 밥 마틴 아저씨의 '깨끗한 건축 원리'비디오의 개념을 정말 좋아했습니다. 그러나 저는이 패턴이 추상 팩토리와 빌더 패턴의 핵심 인 것처럼 느껴집니다.
근처에도 안.
당신이 이것을 볼 때 :
개체 그래프의 디자인을보고 있습니다. 이것은 무엇에 대해 아는 것을 지시합니다. 이 이야기에서 빠진 것은 그 객체 그래프가 어떻게 만들어 졌는가입니다. 죄송하지만 여기서 찾을 수 없습니다. 건축에 대한 언급은 없습니다.
추상 팩토리 및 빌더없이이 모든 것을 구성 할 수 있습니다. 내가했기 때문에 알고 있습니다 . 나는 그들을 피하기 위해 출발하지 않았다. 나는 그들을 사랑합니다. 난 그냥 그들을 필요로하지 않았다. 방금 참조 전달을 사용했습니다. 의존성 주입 은 멋진 용어입니다.
사실, 그 다이어그램에 보이는 모든 것을 기본으로 만들 수 있습니다. 그런 다음 하나의 객체에서 하나의 메소드를 호출하여 모든 항목을 시작하십시오.
이제 물건을 다른 물건에 밀어 넣으려면 먼저 물건이 있어야합니다. 나는 그것을 여기에서 탐구 하고이 귀여운 작은 다이어그램을주었습니다.
그리고 떠나지 않고도 모든 것을 만들 수 있습니다 main()
.
절차 적 구성 코드 더미를 적당한 크기의 개념적 덩어리로 나누고 싶을 때 빌더와 팩토리를 사용하는 것이 좋습니다. 그러나 깨끗한 아키텍처 나 다른 전문 용어는 없습니다. 따라서 고집하고 싶다면 main()
괜찮습니다. 다만, 제발 자비를 베푸소서 .
Bob Martin의“Clean Architecture”는 모든 아키텍처의 경험 법칙입니까 아니면 옵션 중 하나입니까?
나는 Clean Architecture를 사람들을 블로그와 책으로 몰아 넣는 데 사용되는 용어로 간주합니다. 이 블로그와 책은 사람들을 오래된 블로그와 오래된 책으로 몰아 넣는 데 사용되는 오래된 이름을 가진 매우 유사한 오래된 아키텍처에 대해 잘 설명되어 있습니다. 포트 및 어댑터뿐만 아니라 특히 양파. 유일한 건축 옵션은 없습니다.
밥 삼촌은 훌륭한 대중 연설자이자 저자이기 때문에 좋아합니다. 그는 내가 달리 가질 수없는 것들을 생각하게한다. 그러나 당신이 그것을 당신이 종교적인 열의로 바꾸게하면 모든 것이 그의 방식으로 이루어져야한다고 주장하면 문서를 업데이트하는 것이 가장 가까운 코드라는 것을 빨리 알게 될 것입니다.
버즈 워드 아키텍처는 세상이 바뀌면서 오래 지속되어야하는 코드를 오래 살았을 때 유용합니다. 그때가 빛납니다. 코드와 비교하여 세상이 안정적이라면 아무런 이유없이 멋진 것을 만들고 있습니다.
아무리 멋진 일이 있어도 터무니없는 상황을 만들 수 있습니다. 죄송합니다, 이것은 은색 총알도 아닙니다.
그러나 비디오에서 그는 깨끗한 아키텍처가 비즈니스 로직과 프레임 워크 사이에 명확한 경계를 가져야한다고 제안합니다. 프레임 워크 (웹, 안드로이드 등)는 비즈니스 로직에 플러그인되는 플러그인이어야합니다. 그는 비디오에서 레일을 미묘하게 조롱했습니다.
네가 옳아. 그는 그렇습니다. Bob 아저씨는 프레임 워크를 라이브러리처럼 취급 할 수 있다고 생각합니다. 그리고 그들은 할 수 있습니다. 그러나 그 결정조차도 비용이 든다.
Martin 씨가 보존하려고하는 것은 범용 언어가 여전히 일반적인 공간입니다. 프레임 워크를 어디에나 퍼뜨릴 때 포기합니다. 그렇게하면 언어를 도메인 특정 언어라고 부르는 경로로 향하게됩니다. HTML은 도메인 특정 언어입니다. 그것은 잘 작동하지만 전혀 할 수없는 다른 일이 있습니다.
프레임 워크에서 요구 사항을 예상하는 한 매우 원활하게 진행됩니다. 당신의 요구를 예상하는 것이 좋습니다. 물건을 간단하게 보관하는 상자에 넣습니다. 이것을 얻기 위해 무엇을 포기하는지 이해하십시오. Spring을 어디에나 퍼 뜨리면 더 이상 Java 작업으로 광고 할 수 없습니다. Java / Spring 작업입니다. Ruby와 Rails에 대해 같은 것을 말할 수 있지만 Rails는 오래 전에 Ruby의 점심을 먹었습니다.