C# coding Conventions - TeamCrazyPerformance/Game_study GitHub Wiki
๋ณ์ ์ด๋ฆ ์ง๊ธฐ์ ์ข ๋ฅ
๋ณ์ ์ด๋ฆ์ ์ง๋ ๋ฐฉ๋ฒ์ ๋ค์ํ๋ ๋ํ์ ์ผ๋ก ์๋์ ๊ฐ์ ํ๊ธฐ๋ฒ์ด ์กด์ฌํ๋ค. ์ฌ๊ธฐ์ C#์ ์ฃผ๋ก ์นด๋ฉ ํ๊ธฐ๋ฒ๊ณผ ํ์ค์นผ ํ๊ธฐ๋ฒ์ ์ฌ์ฉํ๋ค.
- ์นด๋ฉ ํ๊ธฐ๋ฒ(Camel Case): ๊ฐ ๋จ์ด์ ์ฒซ ๊ธ์๋ฅผ ๋๋ฌธ์๋ก ํ๊ธฐํ๋ ์ฒซ ๋จ์ด์ ์ฒซ ๊ธ์๋ ์๋ฌธ์๋ก ํ๊ธฐํ๋ ๋ฐฉ์์ด๋ค. Java, C#, JS์์ ๋ง์ด ์ฌ์ฉ๋๋ค. ex) camelCase, southKorea, numberOfProjectiles,...
- ํ์ค์นผ ํ๊ธฐ๋ฒ(Pascal Case): ๊ฐ ๋จ์ด์ ์ฒซ ๊ธ์๋ฅผ ๋๋ฌธ์๋ก ํ๊ธฐํ๋ค. ์์ฆ์์ ๊ทธ๋ฅ ์ด๊ฒ๋ ์นด๋ฉ ํ๊ธฐ๋ฒ์ด๋ผ๊ณ ๋ถ๋ฅธ๋ค. ๋ณ์๋ ํจ์ ์ด๋ฆ์ผ๋ก๋ ์นด๋ฉ๋ฐฑ ํ๊ธฐ๋ฒ์ ์ฌ์ฉํ๋ ์ธ์ด๋ผ๊ณ ํด๋ ์ ์ด๋ ํด๋์ค ์ด๋ฆ์ ํ์ค์นผ ํ๊ธฐ๋ฒ์ ์ฌ์ฉํ๋ ๊ฒ ๋ณดํต์ด๋ค. ex) PascalCase, NationalBasketballAssociation, TotalCalculator,...
- ์ค๋ค์ดํฌ ํ๊ธฐ๋ฒ(Snake Case): ๋ชจ๋ ์๋ฌธ์(ํน์ ๋ชจ๋ ๋๋ฌธ์)๋ก ์ฐ๋, ๋์ด์ฐ๊ธฐ๋ฅผ ๋ฐ์ค(_) ๊ธฐํธ๋ก ๋์ฒดํ๋ ๋ฐฉ์์ด๋ค. C, C++์์ ๋ง์ด ์ฌ์ฉ๋๋ค. ๋ณ์๋ ํจ์, ์ ํ, ํด๋์ค ์ด๋ฆ์ ์๋ฌธ์๋ฅผ, ์์ ๋ฐ ๋งคํฌ๋ก ์ด๋ฆ์ ๋๋ฌธ์๋ฅผ ์ฌ์ฉํ๋ ๊ฒ ๊ด๋ก. ex) snake_case, united_states_of_america, input_key,...
์ฌ์ฉ์ฒ
ํ์ค์นผ ์ผ์ด์ค(PascalCase)
- class, record, sturct, namespace๋ ํ์ค์นผ ํ๊ธฐ๋ฒ์ ๋ฐ๋ฅธ๋ค. record์ ํ๋กํผํฐ๋ public์ด๋ฏ๋ก ํ์ค์นผ ์ผ์ด์ค๋ก ์์ฑ๋๋ค.
- interface ๋ํ ํ์ค์นผ ์ผ์ด์ค๋ก ์์ฑํ๋ ์ด๋ฆ ์์ "I"๋ฅผ ๋ถ์ด๊ณ , ์ด๊ฑฐํ(enum)์ ์ ์ธํ ๋๋ ์์ "E"๋ฅผ ๋ถ์ธ๋ค. enum์ ์์ ๋ํ ํ์ค์นผ ํ์์ ๋ฐ๋ฅธ๋ค.
- public ํ๋, ์์ฑ, ์ด๋ฒคํธ, ๋ฉ์๋ ๋ฐ ๋ก์ปฌ ํจ์๋ ํ์ค์นผ์ผ์ด์ค๋ฅผ ์ฌ์ฉํ๋ค.
์นด๋ฉ ์ผ์ด์ค(camelCase)
- private ํน์ internal์ ๊ฐ์ ์ก์ธ์ค ํ์ ์๋ ์นด๋ฉ ํ๊ธฐ๋ฒ์ ๋ฐ๋ฅด๊ณ , ํ๋กํผํฐ์ ๊ฒฝ์ฐ ์ด๋ฆ ์์ "_"์ ๋ถ์ธ๋ค.
- static ํ๋๋ก ์์ ํ ๋ ์ค๋ ๋ ์ ์ ์ฌ์ฉ์ ์ํด ์ ๋์ฌ๋ฅผ ์ฌ์ฉํ๋ค.
- ๋ฉ์๋ ๋งค๊ฐ๋ณ์๋ฅผ ์์ฑํ ๋ ์นด๋ฉ ํ๊ธฐ๋ฒ์ ๋ฐ๋ฅธ๋ค.
์ค๋ค์ดํฌ ์ผ์ด์ค(SNAKE_CASE)
- const๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ๋๋ฌธ์ ์ค๋ค์ดํฌ ํ๊ธฐ๋ฒ(UPPER_SNAKE_CASE)์ ๋ฐ๋ฅธ๋ค.
๋ ์ด์์
์ข์ ๋ ์ด์์์ ์์์ ์ฌ์ฉํ์ฌ ์ฝ๋ ๊ตฌ์กฐ๋ฅผ ๊ฐ์กฐํ๊ณ ์ฝ๋๋ฅผ ์ฝ๊ธฐ ์ฝ๊ฒ ๋ง๋ ๋ค. Microsoft ์์ ๋ฐ ์ํ์ ๋ค์ ๊ท์น์ ๋ฐ๋ฅธ๋ค.
- ํ ์ค์ ํ๋์ ๋ฌธ์ฅ๋ง ์์ฑํ ๊ฒ.
- ํ ์ค์ ํ๋์ ์ ์ธ๋ง ์์ฑํ ๊ฒ.
- ์ฐ์ ์ค์ด ์๋์ผ๋ก ๋ค์ฌ์ฐ๊ธฐ๋์ง ์์ผ๋ฉด ํ ํญ ๊ฐ๊ฒฉ(๊ณต๋ฐฑ 4๊ฐ)์ ๋ค์ฌ์ธ ๊ฒ.
- ๋ฉ์๋ ์ ์์ ํ๋กํผํฐ ์ ์ ์ฌ์ด์ ํ๋ ์ด์์ ๋น ์ค์ ์ถ๊ฐํ ๊ฒ.
- ์ค๊ดํธ("{}")๋ ๋ค์ ์ค์ ์ฌ์ฉํ์ฌ ํํ์์ ์ ์ ๋ช ํํ๊ฒ ํ ๊ฒ.
- ํด๋์ค ์์์ ๋ฉค๋ฒ ๋ณ์์ ๋ฉ์๋์ ๋ฑ์ฅ ์์๋ ๋ค์์ ๋ฐ๋ฅธ๋ค.
- public ๋ฉค๋ฒ๋ณ์/ํ๋กํผํฐ
- internal ๋ฉค๋ฒ๋ณ์/ํ๋กํผํฐ
- protected ๋ฉค๋ฒ๋ณ์/ํ๋กํผํฐ
- private ๋ฉค๋ฒ๋ณ์
- ์์ฑ์
- public ๋ฉ์๋
- Internal ๋ฉ์๋
- protected ๋ฉ์๋
- private ๋ฉ์๋