# README

### go home! [:house\_with\_garden:](https://github.com/wnsgml972/midas_log)

#### [Stop thinking, Just Do](https://www.youtube.com/watch?v=Xz2zvDug2jM)

#### [Stay Hungry. Stay Foolish.](https://www.youtube.com/watch?v=7aA17H-3Vig)

### Basic Education

#### 마음가짐

**다른 사람이 내 코드를 봤을 때 깨끗하다고 감탄했으면 좋겠다.**

문학적인 코드를 작성해라. 마치 소설처럼 위에서 아래로 **읽혀야 한다.**

**리팩토링을 해라(절대 미루지 말고), 테스트 코드를 짜라**

개발의 시간은 돌아가는데 까지의 시간이 아니라, 리팩토링하는 시간을 포함해야 한다.

**함수를 짜는 방법**

**논문을 쓰는 것과 같다.** 먼저 생각을 하고 기록한 후 읽기 좋게 다듬는다. 함수도 마찬가지다. 처음에는 길고 복잡하다. 이름은 즉흥적이고 중복된다. 하지만 그 서투른 코드를 빠짐없이 테스트 코드를 작성한다. 그런 다음 코드를 다듬고, 함수를 만들고, 이름을 바꾸고, 중복을 제거한다. \
&#x20;메소드를 줄이고 순서를 바꾼다. 때로는 전체 클래스를 쪼개기도 한다. 이 와중에도 코드는 계속 테스트 케이스를 통과한다. 최종적으로 함수가 만들어진다. \
&#x20;**처음부터 딱 짜내지 않는다. 그게 가능한 사람은 없으니까.**

## 업무 전문 지식

### Basic knowledge

#### Basic

* C++, MFC 개인 프로젝트 진행
* 디버깅
* [Note (VS, OS, C, etc..)](basiceducation/note)
* [빌드 속도 개선](basiceducation/build)
* [Windows 응용 프로그램 파일 관리](https://github.com/wnsgml972/midas_log/tree/1b90b7a1d4bbb41758c5cc983df18c8981115724/contents/BasicEducation/application_manage.md)
* [Book](basiceducation/book)
* [Archive](basiceducation/archive)

#### Programming Math

* [Programming Math](basiceducation/math)
* [UI Engine](basiceducation/mathhigh)

#### Design

* [Design](basiceducation/design)

#### Design Pattern

* [Design Pattern](basiceducation/designpattern)
* [Clean Code](basiceducation/cleancode)

#### Naming

* [Naming](basiceducation/naming)

#### Commit Message Rule

* [Commit Message Rule](basiceducation/commit)c

#### QA

* [QA](basiceducation/qa)

#### Code Quality

* [Code Quality](basiceducation/codequality)

#### Code Review

* [Code Review](basiceducation/codereview)

#### Memory / Storage

* [Memory Debug](basiceducation/highmemorydebug)

#### 응용프로그램 관리

* [Application Manage](basiceducation/applicationmanage)

### DevOps

#### DevOps Overview

* [DevOps Overview](https://wnsgml972.github.io/devops/devops.html)
* [DevOps Log](basiceducation/devops)

#### Project Management

| Work                     | Name                                                                               |
| ------------------------ | ---------------------------------------------------------------------------------- |
| Version Control          | [Git](basiceducation/git)                                                          |
| Communication Tool       | [Slack](https://slack.com/), [Mattermost](https://mattermost.com/) : Linked GitLab |
| CI/CD                    | GitLab                                                                             |
| Issue Tracking, Planning | [Jira](basiceducation/jira)                                                        |
| Docs Cooperation         | [Confluence](basiceducation/confluence)                                            |
| Static Analysis          | Cpp Check, [Log](basiceducation/codequality)                                       |
| Unit Test                | [Google Test](https://github.com/google/googletest)                                |
| Code Review              | Gerrit, [Log](basiceducation/codereview)                                           |

#### 비개발자를 위한 기본적인 소스 관리 툴 사용하기

* [Markdown](https://wnsgml972.github.io/test/markdown-example/)
* [VS Code](https://wnsgml972.github.io/setting/2018/11/09/setting_vscodeset/)
* [Source Tree](https://www.sourcetreeapp.com/)
* [Git](https://git-scm.com/downloads)

### Setting

#### Visual Basic Setting

* [Visual Basic Set](basiceducation/visualbasicset)

#### Visual Code Basic Setting

* [Visual Code Basic Set](basiceducation/visualcodebasicset)

#### Etc Setting

* [Etc Set](basiceducation/etcset)

### Modern C++

#### C++ Basic

* [C++ Basic](basiceducation/cppbasic)

#### C++ 17

* [C++ 17](basiceducation/cpp17)

#### Modern C++ Framework 구현 분석

* [Modern C++ Framework 구현 분석](basiceducation/framework)

#### C++ 50 계명!!

* [C++ 50 계명](basiceducation/cpp50)

### MIDAS : 기반 개발 및 응용

#### Role

* [Role](basiceducation/role)

#### MIDAS DB

* Confluence 참고 (내가 정리)

#### Phase

* Confluence 참고 (내가 정리)
* CIM 기반 FrameWork

#### Alice UI

* Confluence 참고 (기존 자료 참고)
* CIM 기반 UI 엔진

#### CAD

* [CAD Note](basiceducation/cad)
* `Parasolid` : 다른 회사 3D CAD 엔진
