JavaRush /Java Blog /Random-KO /깔끔한 코드를 작성하는 방법

깔끔한 코드를 작성하는 방법

Random-KO 그룹에 게시되었습니다
코드를 깨끗하고 아름답게 만드는 것은 마감일을 맞추는 좋은 방법입니다. 로버트 마틴(Robert Martin)은 다음과 같은 간결한 진술로 정석을 떨었습니다: "코드 품질을 측정하는 유일한 진정한 척도는 What-The-F**ks/Minute 단위입니다. .” " 원본). 깔끔한 코드를 작성하는 방법 - 1이것이 무엇을 의미하는지 설명하겠습니다. 코드를 검토할 때마다 내 뇌는 세 가지 감정 중 하나를 겪습니다.
  • “뭐야?! 이런 젠장?!" (혐오감을 느끼며) - 이게 아닌데... 모든 게 너무 나빠요....
  • “뭐야?! 이런 젠장?!" (감탄하며) - 흠 똑똑한 놈이 해냈구나!
  • “뭐야?! 이런 젠장?!" (짜증을 내며) - 일종의 혼란이군요. 우리가 무슨 말을 하는 걸까요?!
그렇다면 가장 중요한 것은 무엇이며 일부 코드를 볼 때 정확히 무엇을 평가합니까? 그것이 바로 그것의 순수함과 아름다움입니다. 깔끔하고 아름다운 코드를 작성하는 능력은 고도로 전문적인 개발자의 지표입니다. 이 기술에 대한 교육은 지식과 작업이라는 두 가지 구성 요소를 기반으로 합니다. 지식은 패턴, 원칙, 관행, 경험적 방법을 가르쳐줍니다. 전문적으로 성장하려면 그들이 필요합니다. 오직 당신만이 끊임없는 연습과 노력을 통해 이 지식을 스펀지처럼 흡수해야 합니다. 간단히 말해서, 깨끗한 코드를 작성하는 것은 쉽지 않습니다. 이것은 힘들고 힘든 작업이므로 열심히 노력해야 합니다. 시행착오를 통해 원하는 솔루션을 찾을 때까지 동일한 단계를 계속 반복하여 개선하게 됩니다. 더 간단한 방법은 없습니다. 다음은 깔끔한 코드를 작성하는 방법을 배우는 데 도움이 되는 몇 가지 팁입니다.

이름에는 무엇이 들어있나요?

Kendrick Lamar(미국 힙합 아티스트 - 편집자 주)는 "진짜 이야기를 하려면 내 이름부터 시작해야 한다"고 정확하게 언급한 적이 있습니다. 소프트웨어 개발의 이름은 어디에나 있습니다. 우리는 함수, 클래스, 인수, 패키지, 프로그램 등 모든 것에 이름을 붙입니다. 우리는 원본 파일, 참고 도서 및 이와 관련된 모든 항목의 이름을 지정합니다. 우리는 끝없이 이름을 지정하며 이는 깨끗한 코드를 만드는 데 중요한 부분이 됩니다. 당신이 무엇인가에 부여하는 이름은 의도를 반영해야 합니다. 좋은 이름을 찾는 것은 쉽지 않고 시간이 걸리지만 코드를 처리해야 하고 상황이 복잡해질 때 시간을 많이 절약해 줍니다. 따라서 이 과정에 주의하고 나중에 더 적합한 이름을 찾으면 이름을 변경하는 것을 두려워하지 마십시오. 귀하의 코드를 다루는 모든 사람은 귀하에게 매우 감사할 것입니다.

변수, 클래스, 함수의 이름은 변수(변수, 함수 등)가 존재하는 이유, 기능 및 용도 등 세 가지 주요 질문에 대답해야 한다는 점을 기억하십시오.

이를 위해서는 좋은 설명 기술뿐만 아니라 일반적인 학식과 넓은 시야가 필요합니다. 그리고 누구도 당신보다 이것을 더 잘 가르칠 수 없습니다.

깨끗한 코드

"하나의 기능" - 한 가지

루이스 헨리 설리번(미국의 합리주의자이자 모더니스트 건축가)은 “기능이 형태를 결정한다 ”라는 유명한 말을 남겼습니다 . 그는 주택 건축에 대해 이렇게 말했지만 이것이 본질을 바꾸지는 않습니다. 각 시스템은 프로그래머가 시스템을 정확하게 설명하기 위해 만든 일부 도메인별 언어를 기반으로 구축되었습니다. 함수는 언어의 동사 역할을 하고 클래스는 명사 역할을 합니다. 대부분의 경우 함수는 프로그래밍 언어 구성에서 가장 중요하며 함수를 올바르게 작성하는 것이 좋은 코드를 만드는 핵심입니다. 품질 함수 작성에는 두 가지 황금률이 ​​있습니다.
  1. 크기가 작아야 합니다
  2. 그들은 한 가지 일, 한 가지 일을 잘 해야 합니다.
즉, 함수는 작아야 하며 중첩된 구조를 포함해서는 안 됩니다. 따라서 함수 들여쓰기 수준은 1~2개를 넘지 않아야 합니다. 이 접근 방식을 사용하면 코드를 훨씬 더 쉽게 읽고, 이해하고, 이해할 수 있습니다. 또한 함수 내의 표현식이 동일한 추상화 수준에 있는지 확인해야 합니다. 함수 내에서 추상화 수준을 혼합하면 항상 많은 혼란이 발생하고 결국 관리하기 어려운 코드가 생성됩니다. 최고의 프로그래머는 함수를 단지 작성하기 위한 코드가 아니라 전달해야 할 이야기로 취급합니다. 그들은 선택한 프로그래밍 언어의 도구를 사용하여 본질적으로 훌륭한 스토리텔러 역할을 할 수 있는 풍부하고 표현력이 풍부하며 깔끔한 코드 블록을 만듭니다.

“댓글은 잘못된 코드를 보완하지 않습니다”

미국의 테니스 선수이자 윔블던 5회 우승자인 비너스 윌리엄스(Venus Williams)는 다음과 같이 말했습니다. “모두가 자신의 의견을 남깁니다. 소문이 이렇게 나오네요 . " 댓글은 양날의 검과 같아서, 잘 배치된 댓글은 매우 유용한 것입니다. 반면에, 경솔하고 쓸모없는 댓글만큼 공간을 어수선하게 만드는 것은 없습니다. 하지만 가장 피해가 큰 댓글은 잘못된 정보와 거짓말을 퍼뜨리는 댓글입니다. 한마디로 댓글은 일종의 필요악이다. 항상 그런 것은 아니지만 대부분의 경우. 왜? 간단합니다. 주석이 오래될수록 유지 관리가 더 어려워지고, 아시다시피 대부분의 프로그래머는 코드 변경에 따라 항상 주석을 변경하지는 않습니다. 코드는 움직이고 진화합니다. 코드의 일부가 앞뒤로 이동되지만 주석은 없습니다. 그리고 이것이 문제가 됩니다!

기억하세요: 주석이 거의 없는 깨끗하고 명확한 코드는 복잡하고 어수선한 코드보다 훨씬 낫습니다. 댓글에서 발생한 혼란을 설명하는 데 에너지를 낭비하지 마십시오. 그 혼란을 정리하는 데 그 시간을 보내는 것이 좋습니다.

깨끗한 코드

“코드 형식이 항상 우선순위입니다”

이것은 다름 아닌 로버트 C. 마틴(로버트 세실 마틴), 일명 밥 삼촌, 개발자, 소프트웨어 개발에 관한 많은 책의 저자, ​​컨설턴트, 애자일 선언문의 공동 저자 등이 말한 것입니다. 그리고 그는 “코드 형식을 지정하는 것은 일종의 의사소통이다. 그리고 의사소통은 모든 전문 개발자에게 최우선 순위입니다.” 위의 진술은 훌륭한 개발자의 가장 중요한 특성 중 하나를 말해주기 때문에 과소평가되어서는 안 됩니다. 형식화된 코드를 사용하면 마음을 깊이 들여다볼 수 있습니다. 우리는 깔끔함, 세부 사항에 대한 관심, 생각을 명확하게 정리하고 표현하는 능력으로 사람들에게 깊은 인상을 남기고 싶습니다. 그러나 사람들이 코드를 볼 때 시작도 끝도 없이 비네그레트를 연상시키는 혼란스러운 부분이 보인다면 이는 귀하의 노력을 무효화하고 개발자의 평판을 떨어뜨리는 것입니다. 의심하지 마세요! 이 사업에서 가장 중요한 것은 "코드가 제대로 작동한다"는 것이라고 생각한다면 당신은 진실과는 거리가 멀다. 오늘 작성하는 기능은 다음 릴리스에서 변경될 가능성이 높지만 코드의 가독성은 변경되지 않습니다. 코드 스타일과 좋은 가독성 덕분에 원본 코드가 인식할 수 없을 정도로 변경된 후에도 오랫동안 코드를 더 쉽게 유지 관리할 수 있습니다.
미래에 기억될 가능성이 가장 높은 것은 코드 자체가 아니라 스타일과 일관성이라는 사실을 잊지 마십시오. 따라서 코드의 형식이 올바르고 모든 팀 구성원이 이해할 수 있는 간단한 규칙을 따르는지 확인하세요.

먼저 "try-catch-finally" 블록을 만듭니다.

Georges Canguilhem(과학사가, 철학자)은 다음과 같이 올바르게 지적했습니다. “실수를 하는 것은 사람에게 자연스러운 일이지만, 실수를 고집하는 것은 악마에게서 오는 것입니다 . ” 문제 해결은 모든 프로그래머가 하는 일입니다. 잘못된 데이터가 입력되어 장치가 고장날 수 있습니다. 그리고 개발자로서 우리는 코드가 예상한 대로 작동하는지 확인해야 합니다. 문제는 단순한 오류 처리가 아니라 "깨끗하고 읽기 쉬운" 오류 처리입니다. 많은 프로그램이 오류 처리에 적응합니다. 이렇게 하면 메인 코드의 목적과 논리가 무너질 정도로 모든 것이 혼란에 빠진다. 이것은 잘못된 것입니다. 이렇게 되어서는 안됩니다. 코드는 깨끗하고 신뢰할 수 있어야 하며 오류 처리는 코드에 원활하고 자연스럽게 통합되어야 합니다. 이것은 고급 프로그래머의 지표입니다. 이를 달성하는 방법 중 하나는 try-catch 블록의 모든 오류를 적절하게 중첩하고 적용하는 것입니다. 이러한 블록은 코드의 범위를 정의합니다. try-catch-finally 블록의 try 부분에서 코드를 실행하면 실행이 언제든지 중단되었다가 catch에서 다시 시작될 수 있음을 의미합니다. 따라서 코드를 작성할 때 try-catch-finally로 시작하는 것이 좋습니다. 이는 시도하는 동안 코드에 어떤 문제가 발생했는지에 관계없이 사용자가 코드에서 무엇을 기대할 수 있는지 결정하는 데 도움이 됩니다.
발생하는 모든 예외에는 오류의 위치와 원인을 파악하기에 충분한 컨텍스트가 포함되어야 한다는 점을 항상 기억하세요. 창의적이고 유익한 오류 메시지는 프로그래머가 이미 완전히 다른 작업으로 바쁜 경우에도 코드를 작성한 후에도 오랫동안 기억됩니다.
깨끗한 코드

요약하자면

특이한 문구 하나가 위의 모든 내용을 요약하는 데 도움이 될 것입니다. 이것은 코드 감각, 즉 상식에 해당하는 일종의 프로그래머인 '공통 코드 감각'입니다. 로버트 마틴(Robert Martin)은 다음과 같이 말했습니다. “깨끗한 코드를 작성하려면 세심하고 다소 고통스러운 “깨끗함” 감각의 결과로 적용되는 많은 작은 기술을 체계적으로 사용해야 합니다. 이러한 작은 기술들을 총칭하여 코드센스(code-sense)라고 부른다 . " 우리 중 일부는 처음부터 이러한 "소리 코드 감각"을 갖고 있는 반면, 다른 일부는 지속적인 연습을 통해 이를 개발해야 합니다. 이러한 본능은 나쁜 코드와 좋은 코드의 차이를 인식하는 데 도움이 될 뿐만 아니라 나쁜 코드를 좋은 코드로 변환하는 전략을 형성하는 데도 도움이 됩니다. 잘못된 코드는 모든 것을 망칩니다. 비유적으로 말하자면, 가장 맛있는 케이크에 개똥을 프로스팅하면... 어... 누구도 좋아하지 않을 것입니다. 코드 감각은 프로그래머가 올바른 도구를 사용하여 깔끔한 코드를 작성하려는 목표를 달성하는 데 도움이 됩니다. 코드센스가 무엇인지 이해하는 프로그래머는 오랫동안 기억될 빈 화면 위에 예술 작품을 만들어 낼 수 있는 예술가이다. Mit의 컴퓨터 과학 교수이자 Creative Commons 및 Free Software Foundation의 창립 이사 인 Harold "Hal" Abelson은 다음과 같이 요약했습니다. 실행.” 자동차” . 주제에 대해 읽을 수 있는 내용: "애자일 소프트웨어 장인정신 핸드북" - Robert Martin. "애자일 추정 핸드북" - Mike Cohn 저자 소개: Ravi Shankar Rajan은 인도 뭄바이 출신의 글로벌 IT 프로그램 관리자입니다. 유명한 블로거, 하이쿠 시인, 열렬한 고고학자이자 역사광입니다. Twitter , Medium , LinkedIn 에서 그와 소통할 수 있습니다.
코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION