10단계 더 훌륭한 프로그래머가 되도록

6183 단어 프로그래머
이 글은 내가 전문 프로그래머로서 최근 몇 년 동안 배운 코드의 질과 전체적인 업무 효율을 진정으로 향상시킬 수 있는 10가지 일을 소개하고자 한다.
1.영원히 싫어
어떤 대가를 치르더라도 중복된 코드를 피하다.만약 자주 사용하는 코드 세션이 프로그램의 몇 가지 다른 곳에 나타난다면, 그것을 재구성하고, 그것을 자신의 함수에 넣어라.반복되는 코드는 당신의 동료가 당신의 코드를 읽을 때 곤혹스러움을 일으킬 수 있다.중복된 코드가 한 곳에서 수정되고 다른 곳에서 수정을 잊어버리면 곳곳에 버그가 발생하고 코드의 부피가 비대해진다.현대의 프로그래밍 언어는 이런 문제들을 해결하는 좋은 방법을 제공했다. 예를 들어 아래의 이 문제는 이전에는 해결하기 어려웠지만 지금은 lambdas를 사용하면 잘 실현된다.
/// ///              /// void OriginalA() { DoThingsA(); // unique code DoThingsB(); }/// ///                 /// void OriginalB() { DoThingsA(); //        DoThingsB(); }

이제 같은 코드의 일부를 포함하는 함수를 재구성하여 delegate 모드로 다시 작성합니다.
/// /// Encapsulate shared functionality /// /// User defined action void UniqueWrapper(Action action) { DoThingsA(); action(); DoThingsB(); } /// /// New implmentation of A /// void NewA() {UniqueWrapper(() => { // unique code }); } /// /// New implementation of B /// void NewB() {UniqueWrapper(() => { // unique code }); }

2. 마음을 분산시키기 시작할 때
문제를 해결하는 것이 아니라 페이스북이나 웨이보를 보는 것을 발견하면, 이것은 보통 짧은 휴식이 필요하다는 신호이다.책상을 떠나 커피 한 잔을 마시거나 동료와 5분 동안 이야기를 나눈다.비록 이렇게 하는 것은 약간 반직감적으로 보이지만, 오랫동안 보면, 그것은 너의 업무 효율을 높일 것이다.
3. 서둘러 임무를 수행하고 원칙을 포기하지 마라
스트레스를 받아서 문제를 해결하거나 버그를 수정하면 자제력을 잃기 쉽고 바쁘게 지내는 것을 발견하며 항상 견지해 온 중요한 테스트 과정을 완전히 잊어버리기 쉽다.이것은 통상적으로 더 많은 문제를 초래하여 사장이나 동료의 눈에 매우 프로답지 않게 보일 수 있다.
4. 완성된 코드 테스트
너는 너의 코드가 무엇을 할 수 있는지 알고, 시험해 보았는데, 그것은 확실히 쓰기 좋지만, 너는 실제로 그것을 충분히 검증해야 한다.모든 가능한 경계 상황을 분석하고, 테스트는 모든 가능한 조건에서 기한대로 작동할 수 있다.매개 변수가 있으면 예상 범위 밖의 값을 전달합니다.null 값을 전달합니다.가능하다면, 동료에게 당신의 코드를 보고 그것을 망가뜨릴 수 있는지 물어보세요.단원 테스트는 이런 목적에 도달하는 일반적인 방법이다.
5. 코드 검토
코드를 제출하기 전에 동료를 찾아 함께 앉아서 어떤 수정을 했는지 설명해 보세요.보통, 이렇게 하는 과정에서 코드의 오류를 발견할 수 있으며, 동료가 한마디 할 필요가 없다.이것은 자신이 자신의 코드를 심사하는 것보다 훨씬 효과적이다.
6. 코드 감소
만약 네가 간단한 문제를 해결하기 위해 대량의 코드를 썼다는 것을 발견한다면, 너는 아마 잘못했을 것이다.다음 boolean 사용법은 좋은 예입니다.
if (numMines > 0) { enabled=true; } else { enabled=false; }

이때 너는 반드시 이렇게 써야 한다.
enabled = numMines > 0;


코드가 적을수록 좋습니다.이것은 버그를 더욱 적게 하고, 재구성 가능성을 더욱 작게 하며, 오류가 발생할 확률을 더욱 적게 할 것이다.적당히 해.가독성은 동등하게 중요하다. 너는 이렇게 해서 코드의 가독성을 상실해서는 안 된다.
7. 우아한 코드를 위해 노력
우아한 코드는 매우 읽기 쉬워서 손 옆에 있는 아주 적은 코드만 사용하고 기계로 하여금 아주 적은 연산을 하게 하면 문제를 해결할 수 있다.각종 환경에서 코드를 우아하게 만드는 것은 매우 어렵지만, 한동안의 프로그래밍을 통해 우아한 코드가 어떤 모양인지 초보적인 느낌을 갖게 될 것이다.우아한 코드는 재구성을 통해 얻을 수 없다.우아한 코드를 보면 기뻐할 거예요.너는 그것을 자랑스러워할 것이다.예를 들어 다음은 다각형 면적을 우아하게 계산하는 방법이라고 생각합니다.
static public double GetConvexPolygonArea(Vector2[] vertices) { double area = 0; for (int i =0; i <</span> vertices.Length; i++) { Vector2 P0 = vertices[i]; Vector2 P1 = vertices[(+ 1) %vertices.Length]; area += P0.Wedge(P1); } return area / 2; }

8. 자명한 코드 작성
주석은 프로그래밍의 중요한 부분이지만, 코드를 볼 때 이해할 수 있기 때문에, 의심할 여지가 없다.함수명 변수명은 신중하게 선택해야 한다. 좋은 변수/방법 이름을 언어의 의미 환경에 넣을 때 프로그래밍을 모르는 사람은 모두 이해할 수 있다.예를 들면 다음과 같습니다.
void DamagePlayer(Player player, int damageAmount) { if (!player.m_IsInvincible &&!player.m_IsDead) { player.InflictDamage( damageAmount ); } }

자기 설명을 할 수 있는 코드는 주석을 대체할 수 없다.주석은'왜'를 설명하는 데 쓰이고, 자기설명 코드는'무엇인가'를 설명하는 데 쓰인다.
9. 순수한 숫자를 사용하지 마라
코드에 숫자를 직접 끼워 넣는 것은 악습이다. 왜냐하면 그것이 무엇을 대표하는지 설명할 수 없기 때문이다.반복될 때 더 나쁘다. 같은 숫자가 코드의 여러 곳에서 나타난다.하나만 수정하고 다른 것은 잊어버리면이로 인해 버그가 발생했습니다.코드에 한 번만 나타나더라도, 당신이 표현하고자 하는 숫자를 명명 상수로 표시해야 한다.
10. 수공 노동을 하지 마라
일련의 동작으로 간주할 때, 인류는 항상 실수를 범하는 것을 좋아한다.만약 당신이 배치 업무를 하고 있고 한 걸음에 완성할 수 있는 것이 아니라면, 당신은 잘못을 하고 있는 것이다.가능한 한 일을 자동화하여 인위적인 실수를 줄일 수 있도록 하다.업무량이 매우 많은 임무를 맡을 때, 이것은 특히 중요하다.
11. 조기 최적화 피하기
네가 이미 사용하기 좋은 기능 코드를 최적화하려고 할 때, 너는 그것을 고칠 가능성이 매우 높다.최적화는 성능 분석 보고서가 최적화를 지시할 때만 발생할 수 있으며 보통 한 프로젝트 개발의 마지막 단계이다.성능 분석 전의 최적화 활동은 순전히 시간을 낭비하고 버그를 초래할 수 있다.
좋아, 내가 10개라고 했는데, 너는 추가로 하나를 얻었어!

좋은 웹페이지 즐겨찾기