가장 중요한 조언 내가 당신에게 줄 수 : 단지 시작.커다란 프로젝트가 압도적 인 것처럼 보일 수 있습니다. 특히 큰 프로젝트과 같이보고있는 경우 특히 그렇습니다. 대신, 그것을 작은 달성 가능한 작업으로 분해하십시오. 지금 당장 수행 할 수있는 기능, 너무 작지 않은 기능의 하위 집합을 찾아서 수행하십시오. 그런 다음 다음 작업을 수행하십시오. 그리고 다음.
그렇다면 내 개인적인 과정을 알려 드리겠습니다. 새로운 응용 프로그램이나 응용 프로그램에서 시작할 때 먼저 모델을 만들고 싶습니다. 그 방법으로 나는 그들 사이의 상호 작용으로 놀 수 있고, 관계를 살피며, 저압의, 쉽게 처분 할 수있는 방식으로 나의 적용의 필요성에 대해 생각할 수 있습니다. 나는 또한 코드 - 우선을 사용하는 반면에 이미 데이터베이스 테이블을 만들었다. 어떤 사람들은 그렇게하는 것을 선호합니다. 개인적으로, 나는 수업을 시작으로 그보다 훨씬 더 유기적 인 데이터 저장소로 번역하게했다. 어떤 의미에서는 데이터베이스를 거의 존재하지 않는 계층으로 이관합니다. 어떤 데이터 타입이 필요한지, 색인을 생성해야하는 대상과해야할 대상, 쿼리하는 방법, 필요한 저장 프로 시저 종류 등을 생각할 필요가 없습니다. 이러한 질문에는 시간과 장소가 있습니다. 초기 개발 단계는 이 아니며 시간과 장소입니다. 당신은 당신의 두뇌에 아이디어를 가지고 놀 수있는 장소를주고 싶어하고, 수업은 싸고 마찰이 적은 매체입니다. 아이디어가 효과가 없다면, 수업을 치워 버리고 새로운 수업을 만드십시오.
내 모델이 있으면 컨트롤러를 치고 싶습니다. 이렇게하면 내 모델이 실제로 작동하는지 확인할 수 있습니다. 내 응용 프로그램의 실제 흐름을 둘러보고 내 수업이 실제로 어떻게 작동하는지 확인할 수 있습니다. 그런 다음 필요에 따라 모델을 변경하고 추가 기능을 추가 할 수 있습니다. 또한 뷰 모델을 사용하여 재생할 데이터를 뷰에 전달해야하는지 또는 전달하면 안되는지, 어떻게 표시해야 하는지를 알아낼 수 있습니다 (그 목록에 대한 드롭 다운 목록이 필요합니까?) 등. 이것은 자연스럽게 내 견해로 인도합니다. 다시, 나는 내 사고를 시험하고있다. 새로운 레이어가있을 때마다 이전의 레이어가 어떻게 작동하는지 더 잘 볼 수있게되었습니다.
이 과정의 각 단계는 매우 유동적입니다. 컨트롤러에 대한 작업을 시작하면 모델을 변경합니다. 일단 내가보기를 쳤을 때, 컨트롤러는 조정될 필요가있을 것이고 아마도 모델 일 것이다. 너는 망쳐 놓을 자유를 가져야한다. 필연적으로, 당신은 무언가를 잊을 것입니다. 또는 뼈대를 향한 방법으로 디자인하십시오. 깊이 들어가면 볼 수 있습니다. 다시 말하지만 코드의 아름다움입니다. 이 시점까지는 데이터베이스가 없기 때문에 변경 작업도별로 중요하지 않습니다. 내가 가지고있는 모든 것을 완전히 파괴 할 수 있고 완전히 다른 방식으로 갈 수 있으며, 테이블 변경, 데이터 이전 등에 대해 걱정할 필요가 없습니다.
이제이 시점까지 내 모델은 꽤 정적입니다. 내 데이터베이스 생성 및 초기 마이그레이션을 수행하십시오. 비록 실제로 브라우저에서 실제로 이것을 실행하여 내 견해를 볼 수 있기 전에 필요한 것이기 때문에 실제로는 그렇습니다. 나중에 언제든지 마이그레이션을 수행 할 수 있지만 일단 콘크리트로 작업하면 마찰이 증가하기 시작합니다.
컨트롤러를 조정하고 분명히 내 의견을 조정하는 경향이 있습니다. 이제는 내가 볼 수있게되었습니다. 모든 것이 만족 스러우면 최적화 및 리팩터링을 시작합니다. 코드를 어떻게보다 효과적으로 만들 수 있습니까? 좀 더 가독성? 더 효율적입니까? Glimpse과 같은 도구를 사용하여 내 쿼리를보고 시간을 렌더링 한 다음 저장 프로 시저와 같은 항목을 결정합니다.
그런 다음 그것은 단지 많은 헹굼과 반복 일뿐입니다. 그것은 모두 매우 단편적입니다. 나는 응용 프로그램을 만들고 있지 않다. 저는 클래스를 만들고 다른 클래스를 만들고 HTML을 작성하고 있습니다. 그 다음 부분에 초점을 맞 춥니 다. 다음 단계로 넘어 가야 할 작은 덩어리에 초점을 맞 춥니 다. 압도적 인 부분이 아닙니다. 그래서 내가 시작한 것처럼 똑같은 것을 닫을 것입니다 : 단지 은으로 시작합니다. 작가들은 가장 어려운 것이 첫 번째 문장이라는 말을하고 있습니다.첫 번째 문장은 정말 어렵 기 때문에 아닙니다. 그것은 일단 당신이 그것을 얻으면, 당신은 두 번째 문장을 쓰고, 세 번째는, 당신이 그것을 알기도 전에, 당신은 글쓰기 페이지를 가지고 있기 때문입니다. 가장 어려운 부분은 시작에 있습니다. 거기에서 모든 것이 흐릅니다.
다른 답변은 훌륭한 조언과 정보의 중요한 덩어리를 가지고 있지만, 나는 그들이 당신을이 단계에서 실망시키는 것으로 생각합니다. 저는 모범 사례, 응용 프로그램의 적절한 계층화 등을 가장 먼저지지합니다. 그러나 궁극적으로이 모든 것을 따르는 완벽한 응용 프로그램은 모든 응용 프로그램을 통합하는 불완전한 응용 프로그램보다 더 가치가 있습니다. 고맙게도, 우리는 가단성 매체 - 디지털 텍스트 - 그리고 돌로 일하고 있지 않습니다. 당신은 언제나 사물을 바꿀 수 있으며 나중에 사물을 향상시킬 수 있습니다. 돌아가서 앱을 적절한 레이어로 분리하고 저장소와 서비스 및 기타 추상화를 만들고 컨트롤 및 종속성 삽입 등을 추가 할 수 있습니다. 처음에이 작업을 해오 던 우리 분들은 그러나 그것은 잠시 우리가이 일을 수행했기 때문입니다. 우리는 그 일을하는 법을 압니다. 우리는 이미 많은 것들을 위해 클래스와 라이브러리를 가지고 있습니다. 막 시작한 누군가 또는 초기 초기 단계의 앱을 위해, 그것은 불구가 될 수 있습니다. 앱을 개발하는 대신 권장 사항, 사례, 도서관 등을 통해 쏟아 부는 일이 며칠이나 끝날뿐입니다. 결국에는 실제로 보여줄 것이 없습니다. 올바르게 일하는 것에 대해 걱정하지 마십시오. 뭔가. 그런 다음 리팩토링 담당자가 올바르게 될 때까지 리팩터링하십시오.
아주 잘 설명해 주셔서 감사합니다.이 크리스에 넣은 것 같아요! 당신은 내가 아는 한 최선을 다할 아주 좋은 충고를했습니다. – Zac