소스 코드의 좋은 예를 어디에서 읽습니까? [닫은] 것입니다. 상대적으로 새로운 프로그래머로서 내 질문은

코딩 능력을 향상시키는 가장 좋은 방법 중 하나는 다른 사람의 코드를 읽고 이해하는 것입니다. 상대적으로 새로운 프로그래머로서 내 질문은 머리 위로 너무 멀지 않은 좋은 소스 코드 예제를 어디에서 찾을 수 있습니까?



답변

GitHub , Codeplex , Google Code 또는 BitBucket 과 같은 저장소 사이트에서 오픈 소스 프로젝트를 찾아 볼 수 있습니다 . 복잡성 수준이 다른 프로젝트를 찾을 수 있으므로 관심이 있고 처음에는 머리를 너무 많이 쓰지 않는 것을 찾을 수 있어야합니다.

또 다른 옵션은 Scott Hanselman의 Weekly Source Code 블로그 게시물입니다.

아직 사용되고 사용되지 않은 코드를 읽을 확률을 낮추려면 기존의 활발한 프로젝트부터 시작하는 것이 좋습니다. 이상적으로, 관심이 있고 사용할 수있는 것을 찾으십시오. 앱을 사용하면 소스 코드를 이해하는 데 도움이됩니다. 오픈 소스 프로젝트를 선택할 때 얻을 수있는 또 다른 이점은 일부 수정 사항 또는 기능을 제공하여 코드를보다 재미있게 읽을 수 있다는 것입니다.

다른 사람의 코드를 쳐다 보면 위협적 일 수 있으므로 main기능 (또는 이에 상응 하는 기능)으로 시작하여 거기서부터 작업하십시오.


답변

첫 시도에서 좋은 소스 코드를 작성하는 사람은 거의 없습니다. 좋은 소스 코드는 종종 일련의 개정으로 생성됩니다. 따라서 피어를 여러 번 검토하고 여러 번 수정 한 소스 코드를 찾을 수 있다면 더 나은 위치에있을 것입니다. 일부 오픈 소스 프로젝트 (및 그 일부)는 특히 잘 검토됩니다. 필수 검토주기가있는 회사 (예 : Google이지만 다른 회사가 많음)에서 나온 코드는이 청구서에 적합 할 수 있습니다.

즉, 귀하의 목표가 “위대한 코드”를 찾는 것이 확실하지 않습니다. 다른 스타일의 코드 (예 : 동료가 작성한 코드)를보고 코드의 장점과 단점을 식별하는 방법을 배워야합니다. 더 나쁜 점을 식별할수록 코드를 개선하고 방법을 알기 위해 더 많은 노력을 기울일 것입니다.

특히 좋은 코드를 얻는 매우 좋은 방법은 대화식 디버거를 사용하여 호출 체인에 따라 복잡한 코드를 추적하는 것입니다. 예를 들어, 회사의 주요 파일 중 하나로 이동하여 중단 점을 설정 한 후 파일을 파악하십시오.

몇 번 당신은 글로벌에 10 단계 들여 쓰기와 의존성을 가진 100 줄 함수에 혼란스러워지고, 몇 번이나 잘 분해 된 코드를 통해 바람을 피우면 자신의 프로그래밍을 향상시킬 수 있습니다.


답변

훌륭한 코드를 찾는 대신 일반 프로그래밍 서적을 살펴보십시오.

예 : 코드 완성, 견고한 코드 작성, 디자인 패턴

이 책들은 좋은 코드로 간주되는 철학을 설명하고 있습니다. 가독성, 성능, 유지 보수성, 버그 탐지 등

저자가 달성하려는 것을 파악하려고 시도하는 것보다 더 나은 리소스와 더 효율적인 서비스를 제공합니다.

Ps Good Software 디자인은 당신이 고려해야 할 것입니다. 프로젝트가 충분히 크면 코드를 관찰하는 것만으로는 인식하기가 어렵습니다.


답변

선택한 프로그래밍 언어와 함께 제공되는 라이브러리 코드는 종종 모범 사례와 코딩 스타일로 생각되는 것을 확인하기에 좋은 출발 인 것으로 나타났습니다.

정렬 알고리즘이나 복잡한 컨테이너 클래스와 같은 장소로 시작하고 싶지는 않지만.

코드 작성에 대한 흥미로운 통찰력을 얻을 수있는 또 다른 장소는 Project Euler ( http://projecteuler.net/ )입니다. 약간의 단점 : 다른 사람들이 자신의 솔루션을 게시 한 포럼 (모든 수준의 경험에 대한 흥미로운 과제)에 액세스하려면 먼저 문제를 해결해야합니다. 그러나 일단 완료되면 거의 모든 주요 프로그래밍 언어에 대한 예제를 찾을 수 있습니다. 이미 문제를 해결 했으므로 다른 사람들의 코드를 이해하는 데 도움이 될뿐만 아니라 아직 모르지만 흥미로운 언어 코드를 볼 수 있습니다.


답변

나는 Beautiful Code를 읽는 것을 정말로 즐겼습니다 . 자세한 설명과 함께 짧지 만 아주 좋은 코드 예제가 있습니다.

… 최고의 컴퓨터 과학자들은 유명 프로젝트에 대한 독특하고 신중하게 설계된 솔루션을 발견 한 사례 연구를 제공합니다. 주요 코딩 및 디자인 전문가의 어깨 너머로 눈을 통해 문제를 볼 수 있습니다.

… 저자들은 프로젝트의 아키텍처, 그 구성에서 만들어진 트레이드 오프, 규칙을 어기는 것이 중요 할 때 큰 소리로 생각합니다.

이 책에는 Brian Kernighan, KarlFogel, Jon Bentley, Tim Bray, Elliotte Rusty Harold, Michael Feathers, Alberto Savoia, Charles Petzold, Douglas Crockford, Henry S. Warren, Jr., Ashish Gulhati, Lincoln Stein, Jim Kent가 기고 한 33 개의 장이 포함되어 있습니다. , Jack Dongarra 및 PiotrLuszczek, Adam Kolawa, Greg Kroah-Hartman, Diomidis Spinellis, AndrewKuchling, Travis E. Oliphant, Ronald Mak, Rogerio Atem de Carvalho andRafael Monnerat, Bryan Cantrill, Jeff Dean 및 Sanjay Ghemawat, SimonPeyton Jones, Kent Dybvig, William Otte와 Douglas C. Schmidt, AndrewPatzer, Andreas Zeller, Yukihiro Matsumoto, Arun Mehta, TV Raman, Laura Wingerd와 Christopher Seiwald, Brian Hayes …


답변