젊은프로그래머, 이번이 첫 직장 경험은 아닙니다. 그러나 그의 첫 번째 프로젝트는 문제가 있는 것으로 판명되었습니다. 당시 그는 기능을 변경할 필요가 없다고 믿었습니다. 하지만 그가 틀렸기 때문에 모든 기능 변경에는 완전한 재구성이 필요했고, 그 결과 버그가 만연하고 엄청난 시간 낭비가 발생했습니다. 그는 심지어 테스트 작성과 같은 몇 가지 온화한 방법도 시도했습니다. 그러나 그의 테스트에는 유지 관리, 작성 시간, 실행 시간이 더 필요합니다.
모든 젊은개발자멤버가 그렇듯이 성장 경로는 동일합니다. "성급한 최적화는 만악의 근원!", "테스트 작성! 테스트! 테스트!"라는 숙련된 개발자의 목소리. 어쩌면 그저 소소하고 실용적인 방법을 리팩토링하고 있었을지도 모르지만, 이때 경험 많은 개발자가 다가와서 "내가 성급하게 최적화하지 말라고 하지 않았냐?", "뭐하는 거야? 테스트를 작성하는 거야?"라고 진지하게 경고했다. "
그러나 종종 젊은 개발자들은 한쪽 귀로 듣고 다른 쪽 귀로 듣는 경우가 많습니다. 왜 성급한 최적화가 악의 근원이 되어야 하는지, 왜 좋은 테스트를 작성해야 하는지 이해하지 못하기 때문입니다. 제한된 과거 경험을 통해 그는 다음과 같은 기술 지표가 시간이 지남에 따라 작동하지 않으며(변하는 경향이 있기 때문에) 테스트 작성은 시간 낭비라고 믿었습니다.
“도대체 왜 매번 코드를 다시 작성해야 하나요? 지금 작성한 코드를 도대체 왜 리팩토링해야 하나요? 많은 시간 쓸데없는 테스트를 작성하는 데 얼마나 많은 시간을 소비하는가?” 젊은 개발자는 마음속으로 중얼거렸습니다.
그래서 어느 날, 젊은 개발자는 마침내 새로운 프로젝트를 시작했습니다. 이번에 그는 숙련된 개발자의 경고를 무시하기로 결정했습니다. 그는 자신이 작성한 모든 코드가 빠르고 구성 가능하며 강력하고 매개 변수 사양의 모든 변경을 견딜 수 있다고 믿었습니다. 프로젝트의 핵심을 파악하기 위해 고군분투한 후, 젊은 개발자는 "하하, 방금 그 '늙은이들'이 틀렸다고 말했어요!"라고 말하며 몸서리를 쳤다. 승리의 빛이 가득했습니다.
그런데 출시하고 얼마 후...
어느 날 갑자기 고객들에게 버그가 발생했다는 통보를 받았습니다. 프로그램에서 발견되었습니다. 숙련된 개발자는 버그를 보고 문제를 발견한 후, 젊은 개발자에게 자신이 만든 버그를 고쳐달라고 요청했습니다.
자신의 코드가 마음에 들지 않는다는 말을 들은 젊은 개발자의 첫 느낌은 분노였습니다. 하지만 프로젝트를 살펴본 후... 그는 자신이 작성한 코드를 이해할 수 없다는 것을 발견했습니다! 그는 이 코드의 의미를 전혀 이해할 수 없었습니다! 오 마이 갓, 당신에게 화가 있습니다!
하지만 방법이 없습니다. 이것이 그의 문제입니다. 그는 총알을 물 수 밖에 없습니다. 알았어, 마침내 이 버그를 고쳤습니다. 하지만 새로운 버그 며칠 만에 등장했습니다. 버그——패치, 버그——패치, 지쳤습니다.
젊은 개발자는 "나는 이런 일에 적합하지 않은 것 같은데, 그렇지 않으면 왜 코드를 잘 작성하지 못하는 걸까?"라고 스스로를 의심하며 무너졌습니다. 젊은 개발자가 머뭇거리며 경험 많은 개발자의 프로젝트를 오픈합니다. 그는 충격을 받았습니다! 코드는 매우 간단하고 이해하기 쉽습니다. 주석과 테스트가 있습니다. 이는 그가 작성한 코드와 완전히 다릅니다. 가장 분명한 차이점은 추가 구성이 없고, 모든 코드 줄이 테스트되고, 모든 메서드에 의미 있는 이름이 있고, 메서드가 매우 짧다는 것입니다(가장 긴 메서드에는 수십 줄의 코드만 있음). 고객이 요청한 대로 수행합니다.
그 순간 젊은 개발자는 매우 당황했지만 경험 많은 개발자가 와서 젊은 개발자 옆으로 걸어가면서 실제로는 이미 어떻게 생각하기 시작했습니다. 잘못된 코드를 리팩터링합니다.
젊은 개발자들이 함께 문제를 해결하는 동안 경험 많은 개발자들이 문제를 해결하는 과정을 단계별로 목격했고, 때로는 경험 많은 개발자가 젊은 개발자의 코드 작성을 감독하기도 했습니다.
며칠 후 또 다른 릴리스에서 버그가 수정되었음을 알렸습니다. 버그를 일으킨 코드 조각이 이제 테스트되었으며 읽기 쉽고 매우 안정적입니다. 숙련된 개발자는 젊은 개발자를 바라보며 "이제 이해해야겠죠?"라고 물었습니다.
젊은 개발자는 고개를 끄덕였습니다. 이제 그는 이해합니다. 완벽함의 핵심은 미래를 예측할 수 있는 것이 아니라 변경하기 쉽고 테스트 가능한 코드를 작성하는 것입니다(그래서 코드를 변경해도 버그가 발생하지 않습니다). 현재 요구 사항을 충족해야 합니다. 그리고 이 사실을 깨달았을 때 그는 '거의' 경험이 풍부한 개발자로 변신해 있었습니다.
"이제 전체 프로젝트를 리팩터링할까요?" 젊은 개발자가 물었습니다.
"당연하지 않습니다. 예산이 없습니다." 경험 많은 개발자가 단호하게 대답했습니다.
"그런데 다른 버그가 나타나면 어쩌지?"라고 젊은 개발자가 물었습니다.
“프리랜서를 사용하면 이러한 문제를 해결할 수 있습니다.”라고 숙련된 개발자가 대답했습니다.
그러면 '거의' 경험이 풍부한 개발자들이 좋은 코드를 작성할 수 있게 되면서 점차 더 높은 수준에 가까워집니다. 물론 그것은 또 다른 이야기입니다.
젊은 개발자를 위한 조언: 이전에 작성한 코드를 다시 살펴보세요. 코드가 이전만큼 아름답지 않다면 진전이 있다는 의미입니다.
숙련된 개발자를 위한 조언: 젊은 개발자가 주변에 나타나면 때때로 그들의 엉망진창을 정리해야 할 수도 있습니다. 이 상황에서 벗어나고 싶다면 가능한 한 빨리 괜찮은 코드를 작성하도록 가르치십시오.
프리랜서를 위한 조언: 보수를 높여야 합니다
무료LAMPBand of Brothers 원본PHP동영상 튜토리얼CD/ 《자세히 보기 PHP》Essential 버전, 자세한 내용은 공식 웹사이트 고객 서비스에 문의하세요: http://www.lampbrother.net
PHPCMS2차 개발http://yun.itxdl.cn/online/phpcms/index.php?u=5
WeChat 개발 http://yun.itxdl.cn/online/weixin/index.php?u=5
모바일 인터넷 서버측 개발 http://yun.itxdl.cn/online/server/index.php?u=5
자바스크립트과정 http: //yun.itxdl.cn/online/js/index.php?u=5
CTO교육 캠프 http: // yun.itxdl.cn/online/cto/index.php?u=5
위의 내용은 젊은 프로그래머들의 슬픔을 포함하여 PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.