>  기사  >  백엔드 개발  >  기술 디렉터가 프로그래머가 코드를 얼마나 잘 작성하는지 이야기합니다.

기술 디렉터가 프로그래머가 코드를 얼마나 잘 작성하는지 이야기합니다.

WBOY
WBOY원래의
2016-07-25 08:51:52788검색
프로그래머가 좋은 프로그래머인지 판단하는 것은 주로 그가 작성하는 코드에 달려 있습니다. 왜냐하면 프로그래머에게 가장 중요한 것은 코드를 작성하는 것이기 때문입니다.
코드의 의도를 이해하지 못하더라도 기본적으로 좋은 프로그래머가 작성한 코드와 가난한 PHP 프로그래머가 작성한 코드를 한눈에 알 수 있습니다. 좋은 프로그래머가 작성한 코드는 깔끔하고 표준화되어 있으며 자연스러운 시각적 아름다움을 갖고 있습니다. 공백의 균형이 잘 잡혀 있고, 주석이 딱 맞으며, 명명 및 조판이 통일된 표준을 따릅니다. 서투른 프로그래머가 작성한 코드에는 지나치게 긴 함수, 일관되지 않은 이름 및 레이아웃, 너무 깊은 중첩 구조, 매우 복잡한 표현식, 곳곳에 숫자가 있는 등의 문제가 있는 경우가 많습니다.
좀 더 간략하게 읽어보시면 자신이 좋은 프로그래머인지, 서투른 프로그래머인지에 대한 확신이 더욱 커질 것입니다. 좋은 프로그래머는 신중하게 만들어진 일관성을 지닌 코드를 작성합니다. 좋은 프로그래머는 항상 camelCase와 같은 통일된 명명 방법을 고수하는 반면, 서투른 프로그래머의 변수 명명은 때때로 통일 표준에서 벗어날 것입니다. 좋은 프로그래머는 코드에서 눈에 띄는 철자 오류가 거의 없는 반면, 서투른 프로그래머는 훨씬 더 많은 철자 오류를 겪습니다. 훌륭한 프로그래머는 이제 이 동사와 추가/삽입과 같은 동일한 유형의 작업에 대한 동의어를 사용하지 않을 것입니다. 좋은 프로그래머는 일관된 약어 규칙을 사용하는 반면, 나쁜 프로그래머는 때로는 축약하지 않고 때로는 축약합니다. 좋은 프로그래머는 이름에서 어떤 형용사나 명사가 먼저오고 마지막에 오는지에 큰 관심을 기울이는 반면, 서투른 프로그래머는 규칙이 없어 때로는 먼저오고 때로는 마지막에 옵니다. 좋은 프로그래머는 반복적인 코드의 큰 부분을 거의 작성하지 않지만, 서투른 프로그래머는 반복적인 코드에서 재사용을 위해 통일된 개념을 추출하는 데 어려움을 겪는 경우가 많습니다. 좋은 프로그래머는 외부 API에 대한 주석과 코드 간의 일관성에 주의를 기울이는 반면, 서투른 프로그래머는 주석에서 매개변수 이름과 함수 정의가 일관되지 않는 경우가 많습니다. 좋은 프로그래머는 주석 처리되거나 #if 0으로 묶인 쓰레기 코드를 거의 남기지 않습니다. 그들은 코드가 유용하면 원하고 그렇지 않으면 원하지 않습니다. 그들은 종종 다릅니다. 코드 조각이 정말로 필요한지 여부에 관계없이 코드를 깨끗하게 유지하는 습관이 부족하여 정크 코드를 그대로 유지합니다.
위와 같이 그가 사용하는 언어를 이해하지 못하더라도 프로그램의 논리에 관심이 없으면 좋은 프로그래머인지 나쁜 프로그래머인지 구분할 수 없습니다. 프로그램의 품질은 거의 항상 그것이 아름다운지에 달려 있습니다. 저는 C STL 소스 코드 외에는 좋은 프로그램을 본 적이 없습니다. 그리고 훌륭하고 아름다운 코드는 Linux Kernel, InnoDB, JDK, JUnit 등 어디에서나 찾을 수 있습니다.
자세히 읽어보시면 더 정확하겠습니다. 좋은 프로그래머가 작성한 코드는 자연스럽고 단순하며 직관적인 것 같습니다. 함수는 일반적으로 더 짧으며 해당 이름은 함수가 수행해야 하는 작업을 정확하게 반영합니다. 논리는 단순하고 자연스럽고, 읽고 나면 진심으로 이렇게 한숨이 나옵니다. 그런데 서투른 프로그래머의 코드는 종종 이런 생각을 하게 만듭니다. 또 뭐하는 거야? 질문. 좋은 프로그래머는 중요한 순간에 마무리 작업을 추가합니다. 불쌍한 프로그래머는 주석이 없거나 주석이 단지 코드의 반복일 뿐이며 더 나쁜 것은 주석이 잘못되고 오해의 소지가 있다는 것입니다.
훌륭한 프로그래머가 반드시 언어 변호사는 아닙니다. 즉, 언어의 모든 세부 사항을 매우 명확하게 이해하고 프로그래밍할 때 어디에서나 사용하는 사람입니다. 좋은 프로그래머는 자신의 기술을 과시하지 않고 코드에서 독창적인 부분을 조심스럽게 구성하지만 대부분의 경우 항상 간단한 언어로 표현합니다.
프로그래머의 팀워크 정신은 코드에서도 나타납니다. 팀워크에 주의를 기울이는 프로그래머는 팀 규범에 따라 엄격하게 코드를 작성하는 반면, 팀 규범에 맞지 않는 스타일을 가진 프로그래머는 팀 정신이 부족할 가능성이 높습니다. 팀워크에 주의를 기울이는 프로그래머는 전제 조건, 사후 조건, 매개변수가 NULL이 될 수 있는지 여부 등과 같은 모듈 외부 인터페이스에 대한 중요한 설명에 주의를 기울일 것입니다. 팀워크에 주의를 기울이지 않는 프로그래머는 이러한 세부 사항을 처리하기에는 너무 게으릅니다. .
좋은 프로그래머와 가난한 프로그래머의 생산성 차이는 엄청납니다. 프로젝트 주기가 길어질수록 프로젝트가 복잡해지고, 프로젝트의 품질 요구사항이 높을수록 좋은 프로그래머의 가치는 커집니다. 좋은 프로그래머와 가난한 프로그래머 사이에는 관리 비용에도 큰 차이가 있습니다. 좋은 프로그래머는 그와 협력하여 디자인을 결정하기만 하면 되며, 가난한 프로그래머의 코드는 종종 여러 번 검토될 필요가 없습니다. 시간이 지나도 여전히 이상적인 품질이 아닐 수 있습니다.
훌륭한 프로그래머가 되려면 먼저 좋은 프로그래머가 되겠다는 야망을 갖고, 더 자주 연습해야 합니다. 이 사람들은 노화를 두려워하지 않습니다. 야망이 없는 사람은 결코 좋은 프로그래머가 될 수 없고, 이런 사람들도 늙기 전에 관리자가 되지 않으면 쓸모없게 될 것입니다.
2시간의 필기 시험과 30분의 인터뷰를 통과하는 것만으로는 프로그래머를 판단하기에 충분하지 않습니다. 필기시험과 인터뷰를 통해 프로그래머가 알고리즘, 자료구조 등 기본적인 지식을 갖추고 있는지, 프로그래밍 언어의 특성을 숙지했는지, 기술에 대한 고민이 있는지 등을 판단할 수 있습니다. 코드를 작성하지 않고 일을 잘하는 것만으로는 충분하지 않습니다.
기술에 대한 열정이 있다고 해서 반드시 좋은 프로그래머는 아닐 수도 있습니다. 이러한 사람들은 혁신적인 작업에 참여하는 것을 매우 좋아할 수 있지만 이후의 코딩, 테스트, 디버깅 및 카피라이팅 작업은 지루할 수 있습니다. 그들은 좋은 아이디어를 생각해낼 수도 있지만 실행에 옮기지 못하는 경우가 많습니다. 회사에는 이런 사람들이 많이 필요하지 않습니다.
그래서 모집 방식을 개선해야 합니다. 채용이 가장 중요한 이유는 한번 들어가면 수습기간이라도 나가기가 어렵기 때문입니다. 정규직이 되기 위한 조건은 흑백으로 명확하게 기재되어 있으며, 해당 요건만 충족하면 정규직 입사 자격을 취득하는 것은 그리 어렵지 않습니다. 올해 부서에 새로운 사람들이 많이 있습니다. 그들 모두가 뛰어난 것은 아니지만 그들은 확실히 자격을 갖추고 있으며 자연스럽게 정규직이 될 것입니다.
채용을 개선하는 방법은 그에게 프로그램 작성을 요청하는 것과 두 가지 질문을 하는 것입니다. 하나는 그에게 프로그램을 작성하도록 요청하는 것이고, 다른 하나는 기존의 긴 프로그램을 재구성하여 완료하도록 요청하는 것입니다. 하루 안에요. 반달 동안 테스트할 수 있다면 리팩토링은 필요하지 않지만 하루는 너무 짧습니다. 리팩토링을 통해 코드를 읽고 이해하는 능력을 테스트할 수 있으며, 리팩토링을 통해 부패를 마법으로 바꿀 수 있습니다. 다른 사람의 코드를 작성하는 것을 꺼리고, 다른 사람의 코드를 받아들이는 것을 꺼리고, 종종 다시 작성해야 하는 사람들은 이상적이지 않습니다.
올해도 두 사람이 비슷한 접근 방식을 취했습니다. 프로그래밍 문제 2개를 보고 탈락한 우수한 이력서를 가진 사람이 있었고, 평범한 이력서와 면접을 갖고 프로그래밍 테스트에 합격한 사람이 있었다. 단순 필기시험이나 면접보다 더 정확하다고 생각합니다.
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교육 캠프                                                                         

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.