JavaRush /Java Blog /Random-KO /개인적인 경험을 통해 테스트된 코드를 개선하는 10가지 방법
Roman Beekeeper
레벨 35

개인적인 경험을 통해 테스트된 코드를 개선하는 10가지 방법

Random-KO 그룹에 게시되었습니다
안녕하세요, JavaRush 커뮤니티 여러분! 개인적인 경험을 통해 테스트된 코드를 개선하는 10가지 방법 - 1 오늘은 코드 품질에 대해 이야기하겠습니다. 그래, 그래, 친애하는 친구여. 그 누구도 완벽하지 않아. 언젠가 모두가 코드가 더 좋아질 수 있다는 것을 이해하게 될 것입니다... 하지만 이 상황에서는 어떻게 해야 할까요? 최소한 이 문제에 대한 조사를 시작하십시오. 당신이 여기 있다는 것은 그 주제가 당신에게 흥미로울 것이라는 뜻이므로, 넘어가겠습니다. 오늘은 코드를 더 좋고 깔끔하게 만드는 방법에 대해 설명하겠습니다. 그래야 미래에 현재 코드가 부끄럽지 않을 것입니다!..)) 이 모든 방법은 프로그래머가 좋은 프로그래머가 되는 데 도움이 될 것입니다.

1. 당신의 코드를 개선하고 싶다면 다른 사람의 코드를 읽어보세요

개인적인 경험을 통해 테스트된 코드를 개선하는 10가지 방법 - 2프로그래밍 기술을 획기적으로 향상하려면... 다른 프로그래머가 작성한 코드를 읽어야 합니다. 당신은 그것을 믿을 수 있지만 믿을 수는 없습니다. 하지만 위험을 감수한다면 시간에 대한 보상이 있을 것이라고 약속합니다. 예를 들어 Habré에서 HashMap, ArrayList, LinkedList 등이 어떻게 작동하는지 읽지 말고 코드를 읽고 스스로 알아내세요. 읽어야 할 수업 목록은 다음과 같습니다.
  1. HashMap은 인터뷰에서 가장 자주 묻는 질문입니다. 일석이조로 여러 마리의 새를 죽일 수 있습니다. 코드를 이해하고 필요한 지식을 얻으세요.

  2. ArrayList는 HashMap과 동일한 경우입니다. 복잡한 내용은 없지만 읽고 이해할 가치가 있습니다.

  3. 문자열이 좋은 예입니다. 왜 불변인지 이해하세요.

  4. AtomicInteger는 멋진 클래스입니다. Integer 객체에 대해 원자적으로 작업을 수행하는 방법을 설명하는 클래스입니다.

  5. 그리고 나서 - 적어도 연속적으로 모든 수업을...)

물론 더 심각한 문제에 관해 이야기한다면 Pivotal의 코드를 읽어 볼 가치가 있습니다. 이 사람들은 Java 세계에서 가장 인기 있는 생태계를 만들었습니다. 그들의 코드는 확실히 읽을 가치가 있습니다. 따라서 Spring Core 로 시작하는 것이 좋습니다 . 익숙하지 않은 소스 코드를 읽는 것은 어렵지만 매우 보람 있는 작업입니다.)

2. 코드 규칙 준수 - 코드 작성 규칙

개인적인 경험을 통해 테스트된 코드를 개선하는 10가지 방법 - 3코딩 규칙은 회사 또는 특정 프로젝트 내에서 작성되는 코드의 모든 측면에 대한 프로그래밍 스타일 및 기술에 대한 지침을 포함하는 개발 팀에서 개발한 일련의 지침입니다. 이러한 규칙은 일반적으로 각 프로그래밍 언어에 따라 다르며 파일 구성, 들여쓰기, 주석, 선언, 연산자, 공백, 명명 규칙, 프로그래밍 기술 및 원칙, 프로그래밍 규칙, 아키텍처 모범 사례 등을 다룹니다. 특정 표준의 주요 이점은 다음과 같습니다. 코드는 동일해 보이고 동일한 스타일로 작성되었습니다. 이렇게 하면 더 읽기 쉽고 프로그래머가 다른 프로그래머가 작성한 코드를 이해하는 데 도움이 됩니다. 코딩 표준을 따르고 개발 프로세스 전반에 걸쳐 일관되게 적용한다면 향후 코드 유지 및 확장, 리팩터링, 통합 충돌 해결이 더 쉬워질 것입니다. 코딩 규칙은 여러 가지 이유로 프로그래머에게 중요합니다.
  • 소프트웨어 비용의 40%-80%가 유지 관리에 사용됩니다.
  • 저자가 평생 동안 유지 관리하는 소프트웨어는 거의 없습니다.
  • 코드 규칙은 소프트웨어 가독성을 향상시켜 프로그래머가 새로운 코드를 더 빨리 이해할 수 있도록 해줍니다.
솔직히 말해서 저는 코딩 표준을 좋아합니다. 나에게는 그것에 대해 토론하고 논쟁하는 데 시간을 보내는 것이 합리적입니다. 왜냐하면 그것은 미래에 시간과 노력을 절약해 줄 귀중한 활동이기 때문입니다. 규정 규칙은 자주 검토되어야 합니다. 규칙은 "필수"에서 "선택"으로 또는 그 반대로 번역될 수 있습니다. 그 중 일부가 제대로 작동하지 않으면 다시 설계하거나 지침에서 제거해야 합니다.

3. 코드 검토 사용 - 다른 사람의 코드 검토

코드 검토는 코드 개선을 위한 가장 강력한 도구 중 하나입니다. 개인적인 경험을 통해 테스트된 코드를 개선하는 10가지 방법 - 4왜? 코드를 작성하지 않은 전문가가 코드를 검토하기 때문입니다. 그리고 신선한 모습은 매우 유용합니다. 그리고 솔직히 끔찍한 코드 작성을 방지하는 데 도움이 되는 것이 바로 코드 검토인 경우가 많습니다. 나는 이것을 하고 싶어하는 다른 사람을 찾아야 하기 때문에 이것이 항상 가능한 것은 아니라는 것을 알고 있습니다. 그러나 이것이 이 도구가 사용할 가치가 없다는 것을 의미하지는 않습니다. 정반대입니다. 이는 코드 품질을 향상시키는 것이 중요한 같은 생각을 가진 사람들을 찾는 이유입니다. 그런데 여기 JavaRush에서 해당 항목을 찾는 것을 누가 금지했습니까? 모두가 프로그래머가 되고 싶어하는 곳.

4. 단위 테스트 작성 - 단위 테스트

개인적인 경험을 통해 테스트된 코드를 개선하는 10가지 방법 - 5코드를 개선하기 위해 제가 가장 좋아하는 방법은 단위 테스트를 작성하는 것입니다. 게다가 많이 쓸수록 좋습니다. 컴퓨터 프로그래밍에서 단위 테스트는 소스 코드에서 테스트 가능한 가장 작은 부분인 단위를 개별적으로 독립적으로 테스트하여 예상대로 작동하는지 확인하는 소프트웨어 개발 프로세스입니다. 이는 코드를 공개하기 전에 알고리즘 및/또는 논리의 오류를 식별하는 데 도움이 됩니다. 단위 테스트에는 적절한 코드 구조가 필요하므로 코드를 더 작고 더 집중된 기능으로 나누어야 함을 의미합니다. 각각은 다양한 작업을 수행하는 큰 함수가 아니라 데이터 집합에 대한 단일 작업을 담당합니다.(단일 책임 원칙 에서 안녕하세요 ...) 잘 테스트된 코드 작성의 두 번째 이점 기존 코드 분리 기능을 조금만 변경해도 향후 오류를 방지할 수 있다는 것입니다. 오류가 발생하면 단위 테스트에서 무언가 잘못 작성되었음을 알려줍니다. 언뜻 보기에 개발 중에 단위 테스트를 작성하는 데 드는 시간은 추가 비용처럼 보입니다. 그러나 이렇게 하면 나중에 디버깅에 소비해야 하는 시간이 절약됩니다. 이는 단계별 프로세스여야 합니다. 그러므로 모든 메소드와 클래스에 대한 테스트를 작성해 보세요. :D

5. 도구를 사용하여 코드 품질 향상

개인적인 경험을 통해 테스트된 코드를 개선하는 10가지 방법 - 6절대 실수하지 않는 개발자는 없습니다. 일반적으로 컴파일러는 구문 및 산술 문제를 포착하고 스택 추적을 출력합니다. 그러나 컴파일러가 포착하지 못하는 몇 가지 문제가 여전히 있을 수 있습니다. 예를 들어, 부적절하게 구현된 요구 사항, 잘못된 알고리즘, 잘못된 코드 구조 또는 경험을 통해 커뮤니티에 알려진 일부 잠재적인 문제 등이 있습니다. 이러한 오류를 잡는 유일한 방법은 선임 개발자에게 코드 검토를 요청하는 것입니다. 이 접근법은 만병통치약이 아니며 거의 변하지 않습니다. 팀에 새로운 개발자가 들어올 때마다 해당 개발자의 코드를 살펴볼 수 있는 추가 눈이 있어야 합니다. 그러나 다행스럽게도 코드 품질을 제어하는 ​​데 도움이 되는 도구가 많이 있습니다. 저는 다양한 프로젝트 작업에 Checkstyle, PMD, FindBugs, SonarQube를 사용했습니다. 다른 사람들도 있습니다. 이들 모두는 일반적으로 품질 분석 및 유용한 보고서 생성에 사용됩니다. 이러한 보고서는 Jenkins와 같은 지속적인 통합 서버에 의해 게시되는 경우가 많습니다.

6. 간단하고 명확한 코드 작성

개인적인 경험을 통해 테스트된 코드를 개선하는 10가지 방법 - 7항상 간단하고 명확하며 논리적인 코드를 작성하세요. 사람들은 자신의 능력을 증명하기 위해 복잡한 코드를 작성하는 경향이 있습니다. 단순하지만 논리적인 코드는 항상 잘 작동하고 문제가 적으며 확장성이 뛰어납니다. 좋은 코드는 더 나은 문서를 의미합니다. 주석을 추가할 생각이라면 다음과 같이 자문해 보십시오. “ 이 주석이 필요하지 않도록 코드를 어떻게 개선할 수 있을까? " ~스티브 맥코넬.

7. 문서를 읽어보세요

개인적인 경험을 통해 테스트된 코드를 개선하는 10가지 방법 - 8좋은 프로그래머의 중요한 습관 중 하나는 문서를 많이 읽는 것입니다. 사양, JSR, API 문서, 튜토리얼 등이 되도록 하세요. 문서를 읽으면 가장 잘 프로그래밍할 수 있는 강력한 기반을 구축하는 데 도움이 됩니다. 마지막으로, 자신을 다른 사람과 비교하지 마십시오. 다른 사람과 자신을 비교하는 것은 부정적인 감정과 건전하지 못한 경쟁으로 이어질 뿐입니다. 모든 사람은 자신만의 강점과 약점을 가지고 있습니다. 그러므로 그들을 알고 함께 일하는 것이 중요합니다. 자신을 분석하고, 자신의 강점을 나열하고, 이를 위해 노력하십시오. 프로그래밍은 정말 재미있습니다. 즐기세요.

"한 사람의 상수는 다른 사람의 변수입니다."

앨런 J. 펄스

8. 흥미로운 블로거를 팔로우하세요

개인적인 경험을 통해 테스트된 코드를 개선하는 10가지 방법 - 9전 세계적으로 수천 명의 열광적인 사람들이 동일한 기술에 대해 작업하고 글을 쓰고 있습니다. 블로그는 프로그래머가 직접 작성하는 경우가 많으며, 대부분 개인적인 의견과 경험을 공유합니다. 블로그에서는 동일한 기술에 대한 다양한 관점을 볼 수 있습니다. 블로그에서는 좋은 기술과 나쁜 기술을 모두 볼 수 있습니다. 최소한 내 기사를 포함하여 Habré JavaRush :D의 기사를 읽어보세요. 좋은 블로그를 팔로우하고 게시물에 댓글을 달고 의견을 공유하세요.

9. 전문 서적을 읽어라

개인적인 경험을 통해 테스트된 코드를 개선하는 10가지 방법 - 10좋은 책을 대체할 수 있는 것은 아무것도 없습니다. 좋은 책은 기본 개념을 훨씬 간단한 방법으로 가르치고 실제 사물에 적용합니다. 그들의 저자는 훌륭한 프로그래머입니다. 책을 읽으면 다른 사람의 경험을 통해 배울 수 있습니다. “Java. Joshua Bloch의 효과적인 프로그래밍. 이 책은 대체할 수 없는 프로그래머의 경험 법칙 78가지, 즉 매일 직면하는 프로그래밍 문제에 대한 최선의 솔루션을 제시합니다. 여기에는 효과적이고 잘 설계된 프로그램을 작성하는 데 사용할 수 있는 가장 실용적이고 권위 있는 지침이 포함되어 있습니다. 이제 막 Java를 시작했고 프로그래밍 경험이 없다면 "Sams Teach Yourself Java 2 in 24 Hours" 책을 읽어보세요. 그리고 깨끗한 코드를 작성하기 위한 훌륭한 책인 “Clean Code by Robert Martin”이 있습니다. 그 후 코드와 관련하여 "아름다움의 느낌"이 나타납니다.

10. 코드! 암호! 암호!

책을 암기하는 것만으로는 좋은 프로그래머가 될 수 없습니다. 개인적인 경험을 통해 테스트된 코드를 개선하는 10가지 방법 - 11이론적 개념을 이야기하는 것은 쉽습니다. 그러나 코드를 작성할 때만 언어 제한 사항을 배우고 모범 사례를 개발할 수 있습니다. 그러므로 좋은 프로그래머가 되려면 많은 코드를 작성해야 합니다. 초보자라면 피보나치 수열, 회문, 파스칼의 삼각형 등과 같은 간단한 문제에 대한 프로그램 작성으로 시작한 다음 이진 검색 트리 등과 같은 더 큰 문제로 넘어가십시오. Java 프로그램 연습을 위한 온라인 플랫폼을 찾고 있다면, 코딩그라운드를 살펴보세요 . 또한 "누가 아는지"가 번역한 CS50 과정을 수강할 수 있습니다. :D

요약하자면

아무것도 하지 않는 사람은 실수도 하지 않습니다. 그러므로 우리는 인내심을 갖고 열심히 일하는 일본인처럼 코딩 기술을 연마해야 합니다. 이를 위해 다음을 잊지 마세요.
  • 다른 사람의 코드를 읽습니다.
  • 코드 검토를 수행하고 요청합니다.
  • 단위 테스트 작성;
  • 코드를 개선하기 위해 도구를 사용합니다.
  • 간단하고 이해하기 쉬운 코드를 작성하세요.
  • 능력이 있는 사람들의 문서를 읽으십시오.
  • 흥미로운 프로그래머를 팔로우하세요.
  • 전문 서적을 읽으십시오.
  • 암호! 암호! 암호!
  • GitHub에서 Roman을 구독하세요 .

유용한 링크

내 기사 더보기

코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION