이 사이트에는 이전에 우리가 배우고 배양해야 할 "훌륭한 프로그래머의 10가지 습관"과 "프로그래머가 갖춰야 할 기본 기술"이 게시되어 있습니다. 여기서는 나쁜 PHP 프로그래머의 10가지 특징, 주로 피하고 조심해야 할 특징에 대해 논의합니다.
1) 감정적 사고
다른 색깔의 눈으로 세상을 보기 시작하면 아주 나쁜 프로그래머가 될 수도 있습니다. 감정적인 사고나 태도가 당신을 괴물로 만들 수도 있다. 나는 다음과 같은 진술을 사용하여 매우 나쁜 프로그램을 많이 볼 수 있다고 믿습니다.
내 프로그램에는 이 문제가 있을 수 없습니다.
자바는 똥이에요.
제가 가장 싫어하는 것은 디자인에 UML을 사용하는 것입니다.
요구사항은 왜 항상 변하는 걸까요?
나는 이 사람들을 참을 수 없습니다. 그들은 이해합니까?
…… ...
이러한 감정적인 생각과 태도는 당신을 아주 나쁜 프로그래머로 만들 수 있을 뿐만 아니라 당신의 미래에도 영향을 미칠 수 있습니다. 감정은 대개 악마이기 때문에 잘못된 판단과 결정이 당신의 삶을 직접 결정하게 만듭니다.
2) 타인의 의심
나쁜 프로그램은 항상 "내 코드는 정확해야 한다. 컴파일러에 문제가 있는 것 같다", "나에게는 문제가 없어야 한다, STL"이라고 말한다. 도서관 이용이 왜 이렇게 어려운가요?" 프로그래머가 STL 클래스를 다음과 같이 사용하는 것을 본 적이 있습니다: map
때때로 성급하게 결론을 내리는 것은 매우 나쁜 습관입니다. 모든 것에는 이유가 있습니다. 원인을 알아야만 그것이 누구의 문제인지 알 수 있습니다. 일반적으로 말해서, 그것은 항상 당신 자신의 잘못입니다.
3) 구현에 너무 많은 관심을 기울이고 문제의 세부 사항에 얽매이는 경우
때때로 문제나 요구 사항에 직면하면 나쁜 프로그래머가 항상 즉시 해결책을 찾을 것입니다. 또는 구현에 있어 이는 매우 나쁜 습관입니다. 디자인 패턴은 "구현이 아닌 인터페이스를 선호한다"는 것은 문제를 어떻게 구현하는가보다 문제의 성격과 특성을 인식하는 것이 더 중요하다는 것을 의미합니다.
고객의 문제에 대해 먼저 생각해야 할 것은 사용자가 정상적으로 작동할 수 있도록 하는 것입니다. 시스템이 복원되기 위해 "피"가 나는 경우 사용자를 따로 방치하여 원인을 분석하고 문제 계획의 해결.
버그를 해결하려면 코드를 즉시 수정하는 것보다 버그를 재현하고 원본 프로그램의 의도를 이해하는 것이 먼저 중요합니다. 그렇지 않으면 필연적으로 더 많은 버그가 발생하게 됩니다.
요구사항의 경우 구현 방법을 논의하기보다는 비즈니스 배경, 사용 사례 및 요구사항 이면의 진정한 의도를 이해해야 합니다. 사용자의 진정한 의도를 이해하고 그 용도를 실현해야만 진정한 디자인을 할 수 있습니다.
나쁜 프로그램은 구현 방법이나 문제의 근본 원인을 놓고 논쟁을 벌이고 더 중요한 것을 무시하는 등 세부적인 부분에 얽매이는 경향이 있습니다. 전체 지도를 이해해야만 가는 방법을 알 수 있습니다.
4) 익숙하지 않은 코드를 사용하세요
나쁜 프로그래머의 가장 친한 친구는 Ctrl-C와 Ctrl-V입니다. 때로는 코드의 정확한 의미를 모르기 때문에 일단 사용하기 시작하면 즉, 복사하여 붙여넣기가 대부분의 버그를 유발한다는 증거가 있습니다. 코드는 특정 환경에서만 정상적으로 작동할 수 있기 때문에 코드의 컨텍스트가 변경되면 코드를 제어할 수도 없을 때 코드가 알지 못하는 동작이 많이 발생할 가능성이 매우 높습니다. 아직도 어떤 좋은 프로그램을 프로그래밍할 수 있나요?
5) 현명하게 일하기보다 열심히 일하기
나쁜 프로그래머의 경우 필사적으로 버그를 고치고, 항상 많은 시간을 들여 특정 작업을 반복적으로 완료하는 모습을 자주 볼 수 있습니다. 좋은 프로그램은 효과적인 개발 환경과 도구를 준비하는 데 두 배의 시간을 소비하고, 개발 중 일부 오류를 방지하는 데 두 배 또는 심지어 10배의 시간을 소비할 수 있습니다. 좋은 프로그래머는 작업을 보다 효율적으로 만들기 위해 항상 모든 도구나 수단을 사용하며, 개발 중에 가능한 한 실수를 최소화하기 위해 항상 노력합니다. 나중에 잘못하면 비용이 엄청날 것이고, 그때 수정해야 한다는 압력도 엄청날 것입니다. 따라서 부실한 프로그램은 대개 악순환에 빠지게 되는데, 항상 피곤해 보이고 열심히 일하기 때문에 개선할 시간이 부족할수록 문제가 더 많이 발생합니다. 따라서 열심히 일하는 것은 때때로 당신이 좋은 프로그래머가 아니라는 것을 나타낼 수 있습니다.
6) 늘 기다리며 변명하고 불평한다
요구 사항이 명확하지 않을 때, 환경이 그다지 만족스럽지 않을 때 그들은 항상 다른 사람들이 개선되기를 기다리고 있습니다. 문제가 생기면 항상 이게 좋지 않다, 저것이 좋지 않다고 핑계를 대거나 불평을 하기 때문에 당연히 일을 잘 하고 있지 않습니다. 나쁜 프로그래머는 항상 명확한 요구 사항, 매우 좋은 개발 환경, 충분한 시간, 좋은 QA, 충분한 교육, 좋은 토론 및 강력한 지원을 갖춘 사려 깊은 강력한 팀 리더가 있는 최고의 환경을 희망합니다. 다른 사람들로부터... 이것은 "음식이 오면 입을 벌리고, 옷이 오면 손을 뻗는다"는 태도입니다. 세상은 완벽하지 않으며, 팀에는 모든 것이 필요합니다. 모든 것이 완벽해진다면 당신의 가치는 무엇인가? 기다리지 않고 운전하고, 따라가기보다는 선도한다.
7) 사내정치 키우기
"못생긴 여자는 장난을 많이 친다"는 말이 있는데, 사람이 실체가 없으면 그렇다면 그는 확실히 다른 측면에서 소란을 피울 것입니다. 나쁜 프로그래머도 마찬가지입니다. 프로그래밍을 잘하지 못하고 남과 비교할 수 없으면 대개 남을 비난하거나 책임을 회피하거나 유능한 사람을 배제하는 등 자신을 보호하기 위한 비정상적인 수단을 사용합니다. 따라서 열악한 절차에는 종종 사내 정치가 동반됩니다.
8) 말은 많이 하고 일은 적게 하세요
나쁜 프로그래머는 항상 자신이 모든 것을 알고 있다고 생각합니다. 그들은 자신의 이해와 지식이 제한되어 있다고 느끼지 않습니다. 이것이 수사학(rhetoric)이라고 불리는 것입니다. 그렇습니다. 아무것도 잘 못하는 프로그래머가 무엇을 할 수 있겠습니까? 그냥 불어서 불어보세요.
또 다른 표현은 다른 사람의 프로그램이나 디자인에 대해 댓글을 달면 항상 많은 결점을 발견할 수 있지만, 자신의 프로그램도 형편없게 작성되었다는 것입니다. 건설적인 제안이나 실현 가능한 해결책 없이 항상 비판하고 불평합니다.
이 나쁜 프로그래머는 자신의 우수성을 보여주기 위해 항상 다른 사람의 프로그램을 비판하는 것을 좋아합니다.
9) 고집
더 나은 해결책, 더 나은 방향이 있다는 증거를 열두 개 제시하면 그들은 항상 고집을 부리며 자신이 접근하는 것이 최고라고 생각합니다. 제가 개인적으로 경험한 예는 새로운 프로그램이 문제를 해결할 때 잘못된 방향으로 가는 것을 보면 잘못된 방향으로 갔을 수도 있고 반대여야 한다는 점을 상기시켜 주고 증명하는 것입니다. 그에게 보여줄 수 있는 더 간단한 방법이 있습니다. 그렇습니다. 그런데 이 프로그래머는 "그게 내 방법이고 꼭 따라야 한다. 그렇지 않으면 매우 불편할 것이다"라고 말했고, 그래서 3일 후의 코드 리뷰에서 고집스러운 설명과 많은 의심 끝에 그는 소리 속에서 내가 처음 그에게 말한 방법을 채택해야 했다.
이 프로그래머들은 더 나은 방법이 있는지 누구에게도 의논하지 않고, 막다른 골목에 이르더라도 자신의 생각을 고수하며 앞으로 나아갑니다. 벽은 결코 뒤돌아보지 않는다.
10) "스마트한" 코드를 작성하려면 다른 동료가 프로그래밍 언어 참조 매뉴얼을 참조해야 하거나 프로그램의 논리나 스타일이 꽤 멋져 보이지만 읽기가 매우 어렵습니다. 코드는 간결하고 읽기 쉬워야 하며, 그들은 코드로 자신을 표현하고 자신의 재능을 보여주기 위해 다른 것을 시도하는 것을 좋아합니다. 그렇습니다. 능력이 의심스러운 프로그래머만이 그러한 디스플레이에 의존해야 합니다.
이전 경험이 생각납니다. 영어를 아주 잘하는 프로그래머가 입사했습니다. 원래 우리 영어를 잘하는 사람들에게는 간단하고 읽기 쉬운 영어가 좋은 것 같습니다. 그리고 그 사람은 자신의 영어 실력을 보여주기 위해 GRE에서 흔하지 않은 문구와 어휘를 많이 사용했습니다. 모든 사람이 읽기 어렵게 만드세요. 가장 아이러니한 점은 나중에 한 아메리카 원주민이 그에게 이메일에 있는 특정 단어의 의미를 물었다는 것입니다. 헤헤.
당신은 나쁜 프로그래머인가요?
LAMP Brothers의 원본 PHP 튜토리얼 CD/"Essential PHP in Details"를 무료로 받아보세요. 자세한 내용은 공식 웹사이트 고객 서비스에 문의하세요: 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교육 캠프 5
|