초보자에게 가장 적합한 C ++ 소스 코드는 무엇입니까? [닫은]


25

C ++ 소스 코드를 읽음으로써 C ++ 코딩 기술을 개선하려고합니다. 어떤 오픈 소스 프로젝트를 추천 하시겠습니까? Boost C ++ Libraries 의 코드가 좋은가요?


11
왜 투표를 마감해야합니까? 문제는 명확하고 구체적입니다.
Nemanja Trifunovic

STL 구현
dukeofgaming

12
@dukeofgaming : "ironic"태그를 잊어 버렸습니다.
Doc Brown

1
글쎄, 부스트 소스 코드는 초보자에게는 좋은 아이디어가 아닐 것입니다. 템플릿과 SFNINAE 기술에 익숙하지 않을 것입니다.
Chris는 Reinstate Monica

7
가까운 투표는이 질문이 구체적이기는하지만 건설적이지 않기 때문입니다. 그것은 단지 모든 사람의 프로젝트 목록을 만들어 낼 것이며, 여기서 아무도 대답이 될 수 없습니다. 자세한 내용은 FAQ를 확인하십시오 .
Walter

답변:


27

다음과 같은 Google의 오픈 소스 C ++ 코드를 추천합니다.

Google 코드 사용의 장점 :

  • 높은 표준으로 작성되었으며 공개 소스 코드와 달리 피어 검토됩니다.
  • 좋은 개발자 문서가 있습니다 (쉽게 이해하고 이해하게 해줍니다).
  • 그것은 약간 고급 C ++ 기술을 사용하므로 학습에 좋습니다.
  • 고급 템플릿 메타 프로그래밍 및 전 처리기 메타 프로그래밍에 크게 의존하지 않고 수많은 컴파일러 호환성 해킹 및 특수 사례로 인해 무게가 줄어들지 않기 때문에 Boost보다 이해하기 쉽습니다 .

Google의 C ++ 코드에서 사용 하는 Google C ++ 스타일 가이드 는 일반적으로 좋지만 이름 지정 가이드 라인이나 예외를 허용하지 않는 예외와 같이 다소 특이한 부분이 있으므로 C ++ 코드는 다음과 관련하여 다릅니다. 현장에서 보게 될 것.


9

코드베이스를 읽는 것은 좋지 않습니다. C ++ FAQS를 읽는 것이 좋습니다 . 사이트와 함께 제공되는 훌륭한 책도 있습니다. C ++ 코딩 기술을 향상시키는 가장 좋은 방법입니다.


13
-1 : 나는 매우 동의하지 않습니다. 다른 사람의 코드를 읽는 것은 코딩 기술을 향상시키는 데 매우 중요한 부분입니다. 그러나 해당 코드의 버그를 수정하는 것이 훨씬 좋습니다.
Jan Hudec

6
@Jan 나에게서 완전한 계약. 그러나 대부분의 C ++ 소스 코드는 나쁜 기술을 가르치는 모든 종류의 나쁜 패턴을 빨아들입니다. 기초 독서 역할을 할 수있는 좋은 OSS 프로젝트를 알고 있습니까?
Konrad Rudolph

나는 이것을 언급했다 : amazon.com/FAQs-2nd-Marshall-P-Cline/dp/0201309831/… 그러나 나는 지금 다른 책들도 볼 수있다.
오노 리오 카테 나치

6

기존의 깨끗한 C ++ 코드를 읽는 것이 언어를 배우는 좋은 방법입니다.

예를 들어 OpenFST 툴킷 의 코드 는 매우 깨끗합니다. 읽을 수 있으며 선상으로 가지 않고도 약간의 고급 기능을 사용합니다.

반면 부스트는 이해하기 어려운 C ++ 트릭을 사용하고 종종 다른 컴파일러 버전에 대해 다른 해결 방법으로 코드를 뿌리기 때문에 읽기가 약간 어려울 수 있습니다.


6

Scott Meyers 의 " Effective C ++ "를 읽고 작은 장난감 프로그램에서 제안한 내용을 사용 하는 것이 좋습니다 .


2
당신은 작은 장난감 프로그램에 대해 아무것도 배우지 않을 것입니다. 실제 문제를 해결하는 프로그램을 작성해야합니다. 그것들은 크지 않아도되며, 큰 프로그램을 단독으로 작성할 수는 없지만 단지 장난감이 아니어야합니다.
Jan Hudec

@ JanHudec : 당신이 설명하는 것은 장난감 프로그램 이라고 부르는 것입니다 : 단일 문제를 해결하는 코드 조각. 예를 들어 Runge-Kutta 알고리즘은 "장난감 프로그램"이지만 전체 N- 바디 시뮬레이션은 그렇지 않습니다.
Sardathrion-복원 모니카

2
그것들은 모두 "장난감 프로그램"입니다. 수치 시뮬레이션을하지 않고 대부분의 프로그래머가하지 않는 한, 문제는 문제의 예가 될 수 있기 때문입니다. 실제 문제는 당신이나 당신이 아는 누군가가 실제로 사용할 것입니다. 아마도 GUI 또는 적어도 복잡한 명령 줄 구문 분석 및 파일 조작 또는 네트워크에 연결하고 기존 라이브러리를 사용하며 99 %의 프로그램이 없기 때문에 사소한 알고리즘이 없을 것입니다.
Jan Hudec

1
@ JanHudec 당신은 작은 제약 문제를 먼저 해결함으로써 사람이 아무것도 배우지 않는다고 말하고 있습니까? 프로그래머가 최소한 몇 가지 기본 원칙과 몇 가지 기본 언어 관용구를 배우지 않고 크고 복잡한 문제에 직접 뛰어든다면, 이것이 우리가 이러한 "큰 공의 진흙"앱을 만드는 방법입니다.
Onorio Catenacci

3
이것이 질문에 대한 답인지 확실하지 않지만, 모든 C ++ 프로그래머는 그 책과 그 속편을 읽어야합니다.
로봇 Gort 로봇

2

수년간 존재하고 크기가 큰 것을 읽으십시오. 코드를 이해하고 코드를 작성하는 데 몇 개월이 걸립니다.

Firefox, Thunderbird, OpenOffice.org, LibreOffice가 떠 오릅니다. 더 많은 것들이 있어야합니다. 이 프로젝트는 많은 운영 체제 및 하드웨어 플랫폼에서 실행됩니다. 또한 가독성에 점수를 매겨 야합니다. 이것들은 당신이 찾는 기술이 될 수 있습니다.


0

코드를 읽는 것보다 버그를 수정하고 여기 저기 약간의 개선을 추가하는 형태로 해당 코드로 작업하는 것이 더 좋습니다. 선호하는 프로그램을 골라 메일 링리스트에 등록하고 버그 트래커를 살펴보고 버그를 진단 해보십시오. 합리적이거나 막힐 때 해결책이 있는지 메일 링리스트에 문의하십시오. 코드를 읽을 때 특정 목표를 제공하고 실제로 이해하도록 강요하며 모든 작업에서 대부분의 시간을 할 일입니다.

KDE 응용 프로그램을 볼 수 있습니다. 대부분 C ++로 작성되었으며 더 작은 것부터 시작할 수 있습니다.


-3

그렇습니다. Boost C ++ Libraries의 코드는 지구상에서 최고가 아니라면 배울 수있는 훌륭한 자료입니다. 그러나 초보자의 경우 Boost 코드에서 학습하면 학습 곡선이 매우 가파르게 될 수 있습니다. 실제로 Boost를 읽으려면 Boost.Array 와 같은 작고 간단한 라이브러리로 시작 하십시오 .


2
나는 스키를 배우는 좋은 방법을 제안하는 것이 더블 블랙 다이아몬드 슬로프를 치는 것을 구매하는 것이라고 생각합니다.
로봇 고트

@StevenBurnap 제발 내 대답을 다시 읽고 내가 한 그 우스운 제안을 지적하십시오. 삐걱 거리지 말고, 초보자도 읽을만한 더 포괄적 인 라이브러리를 지적하십시오. 초보자에게 적합한 최상의 예는 초보자를위한 책에서 나온 것입니다.
mloskot

-3

C ++ PDF를 읽어보십시오. 무료이며 다른 프로그래밍 경험이 없었지만 14 살 밖에되지 않았지만 C ++을 배웠습니다.


3
이 프로젝트와 관련된 리소스에 대한 링크를 추가 할 수 있습니까?
조르지오

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