Rails의 핵심 아이디어에 대해 확신합니다. 문제 없이 작동하는 코드를 작성할 수 있습니다. 그리고 코드 품질, 리팩토링, 훌륭한 테스트 작성 및 객체 지향 디자인에 대해 더 많이 배우고 있습니다.
이 시점에서 당신은 전문가가 되는 길에 있다는 것을 깨닫고 있다는 느낌을 받기 시작합니다. 뒤를 돌아보면 얼마나 멀리 왔는지 알 수 있으며 진행 상황에 매우 만족합니다.
그래서 왜 그렇게 느리게 느껴지나요? 이제 테스트, 유지 관리 및 디자인에 신경을 쓰므로 배송하는 데 더 많은 시간이 걸리는 것처럼 느껴집니다!
그것도 가능합니까? 고품질 코드를 신속하게 배송하려면?
모든 것이 프로세스의 일부입니다
이 느낌은 무엇을 배우든 매우 일반적입니다.
이제 더 이상 초보자가 아니므로 코드가 가질 수 있는 모든 다양한 모양을 보기 시작했습니다. 한 줄의 코드를 작성할 때마다 생각할 수 있는 대안이 더 있습니다. 이전에는 인식하지 못한 극단적인 경우를 테스트해야 합니다.
유용한 기술을 많이 배웠습니다. 하지만 지금은 여전히 많은 생각을 하고 있습니다. 모든 결정을 저울질해야 하므로 배운 것을 바탕으로 올바른 결정을 내리는 것이 편안합니다.
하지만 더 빨라질 것입니다. 배운 기술이 더 자동으로 바뀝니다. 당신은 직관을 구축할 것입니다. 그리고 더 빨리 더 나은 결정을 내릴 수 있습니다.
알고 있으면 좋지만 지금은 도움이 되지 않습니다. . 그래서 무엇을 할 수 있는지 더 빨리 끝내기 위해 지금 하시겠습니까?
단계별 수행
키보드에 손가락을 댈 때마다 완벽하고 고품질이며 유지 관리가 용이한 코드를 작성하는 데 집착하면 아무 것도 할 수 없습니다.
문제가 생기면 기사를 작성할 때와 같은 방식으로 코드를 작성합니다. 대략적인 초안으로 시작합니다. 일부 테스트, 코드 또는 주석을 스케치할 수 있습니다. 또는 종이에 몇 가지 아이디어를 적어 보십시오. 이 시점에서 구조에 대해서는 걱정하지 않고 머리 속에 있는 막연한 아이디어를 정리하기 위해 코드를 사용하고 있을 뿐입니다.
그런 다음 이러한 아이디어를 간단한 구현으로 전환합니다. "효과가 있을 수 있는 가장 간단한 것"이라고 부를 수 있습니다. 완벽하지도 않고 가깝지도 않습니다. 하지만 걱정하지 마세요. 코드가 작동하면 정리 단계를 수행할 것이기 때문입니다. TDD 엣지 케이스, 분명히 잘못된 코드를 리팩터링하거나 이름을 더 명확하게 만드세요.
이러한 "정제된 초안"은 일반적으로 배송하기에 충분합니다. 하지만 보통 몇 번 더 패스합니다. 많지는 않지만 곧 수익이 줄어들기 시작할 것입니다. 가치보다 코드를 정리하는 데 더 많은 시간을 할애하게 됩니다.
그런 다음 가능한 한 가장 깔끔한 코드로 끝내고 싶다면 잠시 동안 그대로 두십시오. 몇 주 또는 몇 달 후에 다시 돌아와서 한 번 더 통과해 보세요. 그때쯤이면 시스템에 대해 더 많이 알게 될 것이며 유지 관리가 매우 용이한 훌륭하고 코드를 작성하는 방법에 대해 더 많이 알게 될 것입니다. 더 나은 작업을 수행할 수 있습니다.
작성과 마찬가지로 그 과정은 다음과 같습니다.
- 대략적인 개요, 초안 또는 프로토타입을 스케치합니다.
- 간단하고 편집되지 않은 간단한 구현을 작성합니다(종종 TDD에 의해 안내되거나 테스트와 함께 작성됨).
- 해당 구현을 약간 수정, 리팩터링 및 정리합니다.
- 해결하도록 하세요.
- 다시 돌아가서 한 번 더 패스합니다.
훨씬 더 많은 작업처럼 들립니다. 하지만 이런 단계를 거치면 항상 자신을 의심하지 않고 더 빨리 움직일 수 있습니다. 그리고 몇 가지 적절한 옵션 사이에서 지나치게 생각하는 결정을 내리지 않게 될 것입니다.
이 기사는 내 조언 페이지에 있는 Topher의 질문에서 영감을 받았습니다. Ruby 및 Rails에 대해 궁금한 점이 있거나 도움이나 조언이 필요하면 저에게 물어보세요!