복제에 대한 Sandi Metz에 대한 대응


Sandi Metz는 최근 다음과 같은 기사를 썼습니다. 잘못된 추상화보다 복제가 더 저렴하다. 이 기사는 추측 일반화의 비용에 대한 중요한 점을 제기하지만 이러한 비용에 대해 자세히 설명하고 비난하는 긴 기사의 일부입니다. 이제 누군가가 추상화를 비판하는 것을 듣는 것은 낡은 모자가 되어야 하는데, 그럼에도 불구하고 밈은 지속됩니다.
이 게시물에서 제가 답변하고 싶은 Sandi Metz의 기사 내용은 다음과 같습니다. 사고 (思考) 그것은 적어도 그것에 가장 많이 반응하는 사고방식을 촉진합니다. 이런 사고방식은 댓글에서 매우 흔하게 볼 수 있습니다. 그 이상은 필요 없고 작업만 완료하면 됩니다. 때로는 그것이 적절하고 취해야 할 올바른 접근 방식이지만 여기서 문제는 추상화의 비용, 특히 그것이 잘못되었을 때의 비용은 명백하고 "단순성 우선" 사고방식의 비용은 그다지 명확하지 않다는 것입니다. 중복된 코드의 구체적인 비용에 대해서는 이미 잘 알려져 있으므로 언급하지 않겠습니다. 나는 다음에 대해 이야기 할 것이다 기회 비용 – 놓친 학습 기회.
좋은 개발자는 끊임없이 배우고, 끊임없이 기술을 연마해야 합니다. 항상 개선할 여지가 있습니다. 개발자가 연습해야 할 가장 중요한 기술은 수익성 있는 추상화를 인식하는 것입니다. 왜냐하면 이를 올바르게 수행하려면 연마된 직관이 필요하기 때문입니다. 장기적으로 비용이 나타나는 것을 확인하고 실수를 해야 합니다. 개발자는 과거의 결정을 지속적으로 평가하고 새로운 결정에 대한 위험을 감수해야 합니다.
기회비용은 기술 부채에서 종종 간과되는 측면입니다. 기술 부채를 축적하는 것이 현재로서는 더 저렴한 선택인 이유는 이미 해결책이 알려진 경로를 택하기 때문입니다. 배울 것이 없습니다. 해킹을 구현하기만 하면 됩니다. 소량으로는 괜찮지만, 코드베이스에 대해 배우고, 누락된 추상화를 발견하고, 문제 해결에 도움이 될 수 있는 개념적 도구를 만들 수 있는 기회를 놓치게 됩니다.
따라서 Sandi Metz의 예에서 개발자가 해야 할 일은 이 특정 추상화가 그들에게 이익이 되는 것보다 더 많은 비용이 든다는 것을 알아차린 것입니다. 이는 알아두면 좋은 일입니다. 이는 귀중한 학습 경험입니다. 추상화의 어떤 구체적인 측면이 개발 속도를 늦추고 있습니까? 어떤 부분이 새로운 개발자를 혼란스럽게 하고 상황을 악화시키게 만들었나요? 이는 개발자가 경험을 통해 배우기 위해 스스로에게 물어봐야 할 질문입니다.
우리 개발팀에서는 개발자가 그 주에 배운 내용, 예상했던 것보다 더 까다로운 코드베이스의 일부 등에 대해 이야기하는 "Tech Talks"라는 매주 연습을 진행합니다. 이 관행은 성장 사고방식과 Mz의 상황을 촉진하는 데 매우 중요합니다. Metz의 기사는 완벽한 예가 될 것입니다.
개발자는 단지 코드를 작성하는 데 집중해서는 안 됩니다. 그러한 방식으로 주의를 제한하는 사람들은 성장하지 못하고 곧 더 나은 도구에 의해 능가하게 될 것입니다. 대신, 개발자의 임무는 어떤 추상화가 코드베이스에 가치가 있는지 이해하는 것임을 인식해야 합니다. 그것을 배울 수 있는 유일한 방법은 경험을 통해서입니다.

저자

  • 애덤 매켄지

    CTO로서 Adam은 HPC 및 고객 성공 팀을 관리하는 책임을 맡고 있습니다. Adam은 Boeing에서 경력을 시작하여 787년 동안 XNUMX을 작업하면서 구조 및 소프트웨어 엔지니어링 프로젝트를 관리하고 날개를 설계, 분석 및 최적화했습니다. Adam은 오레곤 주립대학교에서 우등으로 기계공학 학사학위를 취득했습니다.

비슷한 게시물