소스 코드의 좋은 예를 어디에서 읽습니까? [닫은]


53

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


이것은 StackOverflow에서 요청되었습니다 : stackoverflow.com/questions/3083525/…
nikie

3
방금 이전 코드를 되돌아 봅니다.
Paul

폴, 그것은 OP가 도움이되지 않습니까? 분명히 그들은 과거에 이미 작성된 좋은 코드를 가지고 있지 않습니다. esh.
마약 밀매 자

2
@junky 잘만되면 그들은 유머 감각이 있지만 :)
Konrad Morawski

이것은 내가 물어 보려고했던 질문이지만 내가 찾은 행운은. 나는 이것이 어디에서 코드를 찾을 수 있는지 모른다는 내 문제라고 생각했다
Dhananjay

답변:


30

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

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

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

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


3
-1 : 초보자는 좋은 코드와 나쁜 코드를 구분할 수 없으므로 '브라우징'프로젝트는 도움이되지 않습니다. 당신은 '성립 된'프로젝트를 추천함으로써 이것을 다루었지만, 우리 모두가 들었던 프로젝트에서 끔찍한 코드를 보았습니다. 그래도 더 나은 대답은 없습니다. 실제로 어려운 질문이며, 개인의 기술 수준, 관심사에 맞는 답변이 필요하며 멘토의 지식을 통해 필터링됩니다.
Cris

1
@Cris 나는 동의하지 않지만 나쁜 코드를 읽는 것에서 배워야 할 것이 많다는 것을 알게 될 것입니다. 아마도 잘못된 코드를 읽고 따르는 것은 제대로 구성된 프로젝트에 뛰어 드는 것보다 훨씬 어렵습니다. (그리고 이것은 우리가 "좋은"코드가 무엇인지 알아 내려고하기 전에입니다. :)
Adam Lear

1
충분합니다. 그러나 천재가 아닌 대부분의 사람들에게 자기 교육에는 한계가 있습니다. 대부분의 초보자 (모든 분야에서) 좋은 것을 느끼기 위해 "좋은 것"에 노출되어야합니다 . 그리고 "인터넷"은 도움이되지 않는 "I 'm good!"의 세계적 음모입니다.
Cris

10

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

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

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

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


4

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

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

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

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

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


1
"Clean Code"를 좋은 자료로 언급하고 싶습니다.
mhr

3

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

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

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


3

나는 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 ...

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.