이 프로젝트는 몇 가지 일반적인 코딩 문제, 실험 코드, 설정 스크립트, 알고리즘 및 데이터 구조로 구성되며 C ++에서 주로 개발 된 설계 패턴으로 구성됩니다.
이전에는 사적 이었지만 두 가지 이유로 공개하기로 결정했습니다.
에이. 사람들은 일반적인 문제, 알고리즘 및 디자인 패턴에 대한 코드의 혜택을 누릴 수 있습니다.
비. 내 코드에 신선하고 여러 눈을 가질 수 있습니다. 품질을 향상시키는 데 도움이됩니다.
더 나은 탐색을 위해 디렉토리 내용은 아래에 설명되어 있습니다. 빌드 지침은이 readme의 다음 섹션을 참조하십시오.
이 섹션/디렉토리에는 1994 년에 Gang of Four 에 의해 맹세 된 23 개의 디자인 패턴에 대한 코드 예제가 포함되어 있습니다.
구조, 창조 및 행동의 3 가지 표준 하위 섹션이 있습니다
각 하위 섹션 디렉토리에는 위에서 언급 한 3 가지 범주에 따라 각 설계 패턴에 대한 소스 파일이 포함됩니다.
이 섹션 디렉토리 (DSA_Exercises)에는 소스 코드 형태의 다양한 DSA 문제 문과 해당 솔루션이 포함되어 있습니다.
각 카테고리에 대한 문제 설명 문서는 해당 디렉토리 아래에 있습니다. 동일한 디렉토리에 솔루션이 포함 된 소스 파일은 모든 문제의 끝에 언급됩니다.
main() 기능을 사용하여 솔루션을 확인하십시오. 이 섹션 디렉토리 ExperimentalCode 에는 내가 배운 새로운 C ++ 개념을 기반으로 한 순전히 exprimental 코드가 포함되어 있습니다. C ++를 배우거나 새로운 프로그래머 인 사람에게도 혜택을받을 경우를 대비하여 여기에 남겨 두었습니다.
C ++ 전문가는이 섹션을 안전하게 무시할 수 있습니다
이 디렉토리에는이 프로젝트의 대부분의 소스가 일반적으로 요구하는 헤더 또는 공유 라이브러리 형태의 공통 유틸리티가 포함되어 있습니다. 이는 방법이 소스 코드 대신 공유 라이브러리에 정의 된 경우 중복 및 이진 크기를 줄이는 데 도움이 될 수 있습니다.
이 디렉토리에는 프로젝트 환경을 설정하는 데 사용되거나 개념을 평가하기 위해 개발 된 일부 기타 스크립트 및 코드가 포함되어 있습니다.
실험 코드 섹션이 아닌 여기에서 끝나는 이유는 그 특성 때문입니다. 예를 들어, DL_API_shell.c 는 libdl.so 공유 라이브러리의 동적 로더 API를 포함하는 소스 파일이며 실험 코드의 다른 소스 파일과 다른 소스 파일과 다르게 컴파일되어야합니다.
gcc -rdynamic -o DL_API_shell DL_API_shell.c -ldl
쉘 스크립트는 프로젝트 ENT 설정에 적용되지 않을 수 있지만 그렇다면 sudo 사용하여 루트로 실행하십시오.
이 프로젝트는 CMAKE 빌드 도구가 다른 섹션의 모든 레벨에서 구축 중에 더 많은 fexibility를 제공 할 수 있도록 설정되었습니다.
둘째,이 프로젝트에는 다른 재배치 가능한 객체 파일과 연결된 통합 바이너리/라이브러리가 없으며 각 소스 파일에는 독립형 앱입니다.
각 레벨에서 Cmake는 다운 스트림 디렉토리의 하위 디렉토리를 추가합니다. 기본적으로 최상위 CMAKE는 모든 섹션 디렉토리에 상주하는 모든 소스를 구축합니다. 예를 들어 DesignPatterns 과 같은 한 섹션에서 작업하려는 경우 시간 낭비가 될 수 있습니다.
이러한 시나리오에서 댓글을 댓글을 달아야합니다 (CMAKE 댓글은 # 로 시작합니다 add_subdirectory() . 이 예에서는 최상위 CMake가 다음과 같이 보입니다.
add_subdirectory(DesignPatterns)
#add_subdirectory(DSA_Exercises)
#add_subdirectory(ExperimentalCode)
이것은 bin 아래에 DesignPatterns 소스 코드 바이너리 만 생성됩니다.
이 규칙은 건축 시간을 절약하기 위해 유사한 방식으로 다운 스트림 디렉토리에 재귀 적으로 적용될 수 있습니다.
CMAKE에 필요한 하위 디렉토리가 설정되면 Clean Reconfigure All 실행 한 다음 Clean Rebuild All All을 실행하여 VSCODE에서 프로젝트를 열었을 때 소스를 구축하십시오.
다른 경우에는 프로젝트의 루트 레벨에서 명령 프롬프트에서 다음 명령을 실행합니다.
mkdir build
cd build
cmake ..
make
관련 소스에 대한 출력은 각 섹션 디렉토리 아래 프로젝트의 bin 디렉토리에서 생성됩니다.
여기의 코드는 완벽하지 않습니다! 일부 작업을 구현하는 더 좋고 최적화 된 방법이있을 수 있으며 이는이 저장소를 대중에게 노출시키는 의도입니다.
위의 섹션에서 코드에 대한 제안과 수정을 초대하고 있습니다.
귀하는 이메일 ([email protected])에게 제안/수정을하거나 새 지점을 만들고 마스터 지점에 대한 풀 요청을 제기 할 수 있습니다.
발견하면 Github에서 문제를 제기 할 수도 있습니다.
행복한 코딩과 학습!