레거시는 '잘 작성되지 않은'의견에 근거한 것 외에는 아무 의미가 없으며 레거시는 '나쁜'또는 최소한 '오래된'기술과 패턴을 의미한다고 가정하겠습니다. 레거시 코드가 양호하면 모든 코드를 학습하지 마십시오.
나는 당신의 경력을 바꾸고 현재 까지이 스레드에서 가치없는 싱크 구멍에 갇히게하는 종류의 직업과 프로젝트에 대해 충분한 경고가 있다고 생각하지 않습니다.
스포츠 유추 경고 : NFL의 라인 배 커가 최악의 기록 또는 최고를 가진 팀에서 플레이함으로써 더 많은 것을 배우고 더 가치가 있다고 생각하십니까? 나의 대답 : 그들은 최고의 팀에서 활약 한 것보다 더 가치가있을뿐만 아니라, 모범 사례와 지식을 습득하고 경력 결말 관행과 태도를 피하는 것을 피했습니다.
실제로 비즈니스에 효과적이며 많은 개발자 급여를 지불하는 끔찍한 안티 패턴 코드가 많이 있습니다. 나는 '올바른'방법으로 코드를 충분히 보지 못한 개발자는 안티 패턴 코드를 합법적 인 해결책으로 잘못 생각할 수 있다고 제안합니다. 비즈니스에서는 솔루션이 효과가 있다고 말할 수도 있지만 이력서에서 원하는 것은 아니며 다른 개발자에게 자랑하는 것이 아닙니다. 이는 개인적 성장 경로에 엔지니어 동료의 존중을 얻는 것과 회사의 수입을 일시적으로 늘리는 것만이 포함되는 경우에만 관련이 있습니다 (사운드가 나쁘지만 결국 엔 최고의 엔지니어링이 절대적으로 가장 많은 돈을 벌게됩니다) .
불행히도 기술 부채가 드러나기 전에 지나칠 수있는 많은 코드와 시간이 있습니다. 그리고 기술 부채는 보통 너무 늦었을 때 정확하게 인식됩니다. 이전에 기술 부채 나 반 패턴을 막으려 고했던 사람은 추가 비용이나 확장성에 대한 이해 부족으로 인해 소외 될 수있었습니다. 기술 부채를 즉시 폭로하는 것이 엔지니어로서 우리의 의무입니다. 숙련 된 엔지니어가없는 프로젝트는 특정 시점에서 벽돌 벽에 부딪 칠 위험이 있으며 실제로는 재능있는 개발자가있는 모든 프로젝트에도 영향을줍니다. 대부분의 비즈니스는 '일부 시점'을 나중에 수정하기에 충분한 시간으로 간주합니다. 이것은 신입 개발자를위한 직업 선택을 매우 복잡한 문제로 만듭니다. 또한 개발자와 비즈니스 간의 완전히 다른 목표와 사고 방식과 그 차이를 극복하는 것이 얼마나 복잡한지를 지적합니다.
엔지니어는 실제 과학 작업과 설계 고려 사항을 '포함'하는 것이 목표이며, 불필요한 비용과 시간을 '제외'하는 것이 비즈니스 목표입니다. 엔지니어는 최종 상태가 실제로 완료 될 때까지 얼마나 많은 노력과 시간이 필요한지 알지 못하기 때문에 소프트웨어 개발은 애자일, 스크럼 및 칸반과 같은 주요 역할을하는 훌륭한 드라마처럼 보입니다.
좋은 코드가 '손상'되지 않을 때까지 잘못된 코드를 피하는 것이 좋습니다. 나는 선임 개발자가 복잡한 문제에 대한 간단한 해결책을 만든다는 말을 좋아합니다. 마찬가지로 중급 개발자는 간단하고 복잡한 문제에 대한 복잡한 솔루션을 만듭니다.
이해를 돕기 위해 다른 지점에서 좋은 코드와 나쁜 코드를 작업해야 할 수도 있습니다. 어느 쪽도 수행하지 않았다면 더 나은 시스템을 접할 때 그것을 배우고 모두 배울 준비를하십시오. 나는 이것이 아마도 대부분의 개발자들에게 더 일반적인 궤도라고 생각합니다.
나는 매우 복잡한 '비밀 소스'산을 등반하는 것처럼 느끼고 있기 때문에 올해 편견입니다. 내가 본 것 중 최악의 패턴을 해독 할 수있는 능력을 키울 것이지만 너무나 '맞춤형'과 '일회성'으로 인해 내 투쟁이 내 시장성 또는 미래에 사용할 수있는 기술을 향상시킬 것이라고는 믿지 않습니다.
제 정신을 유지하기 위해, 나는 꾸준한 속도로 따라 가면서 코스의 파대로 모든 도로 블록을 수용하고 있습니다. 이 레거시 홀에서 발굴하는 것을 포함하여 상사와 함께 매년 목표를 검토 한 결과, 그것이 희생적인 등반이 될 것이라고 생각합니다. 나는 나쁜 리뷰와 지각 된 느림으로 그 과정에서 살아남을 수있었습니다. 이것은 어떤 일을해야하는지 궁금해하는 사람들에게 현실적이고 예리한 경고입니다.
면책 조항 :이 게시물은 내 의견보다 훨씬 오래 살 것이므로 소금 한 덩어리로 가져 가십시오. 내일 나는 레거시 코드를 좋아할지도 모른다! (이봐 요)