naming rule(convention) - cchamchi/cansat GitHub Wiki
μ€λ₯Έμͺ½ λΈλ‘κ·Έμ μ 리λ κ²μ μ°Έκ³ λ‘ λ§λ€μμ΅λλ€. μ°Έκ³ λΈλ‘κ·Έ
μΌκ΄μ±μ μν κ°μ₯ μ€μν κ·μΉμ μ΄λ¦ κ·μΉμ μ νλ κ²μ΄λ€. μ΄λ¦ μ€νμΌμ ν΅ν΄ μμμ μ μΈμ μ°Ύμ§ μκ³ λ ν΄λΉ μμκ° νμ μΈμ§, λ³μμΈμ§, ν¨μμΈμ§, μμμΈμ§, νΉμ λ§€ν¬λ‘μΈμ§ λ°λ‘ μ μ μλ€. μ°λ¦¬ 머리 μμ ν¨ν΄-λ§€μΉ μμ§μ μ΄λ¬ν μ΄λ¦ κ·μΉμ μλΉν μμ‘΄νλ€.
μ΄λ¦ κ·μΉμ μλΉν λͺ¨νΈνμ§λ§ μ΄ μμμμ κ°μΈμ μ νΈλλ³΄λ€ μΌκ΄μ± μ΄ λ μ€μνλ€. ν©λ¦¬μ μ΄λΌκ³ μκ°νλ μλλ κ·μΉμ μ§μΌμΌ νλ€.
μΌλ°μ μΈ μ΄λ¦ κ·μΉ
μ΄λ¦λ€(ν¨μ, λ³μ, νμΌ λ±)μ μ½μ΄λ₯Ό νΌνκ³ μμ μ μΌλ‘ μ§μ΄μΌ νλ€.
κ°λ₯ν μ΄λ¦μ μμ μ μΌλ‘ μ¬μ©νλΌ. μλ‘ μ½λ μ¬λμ΄ μ¦μ μ΄ν΄ν μ μλ κ²μ΄ κΈμ κΈΈμ΄λ₯Ό μ€μ΄λ κ²λ³΄λ€ ν¨μ¬ μ€μνλ€. νλ‘μ νΈμ κ΄κ³μλ μ¬λμκ² μ΅μνμ§ μκ±°λ λͺ¨νΈν μ½μ΄λ₯Ό μ¬μ©νμ§ λ§κ³ , μ€κ° κΈμλ₯Ό μ§μμ μ½μ΄λ‘ λ§λ€μ§ λ§λΌ.
int price_count_reader; // μΆμ½μμ.
int num_errors; // "num"μ λꡬλ μ΄ν΄κ°λ₯.
int num_dns_connections; // "DNS"λ λꡬλ μ΄ν΄κ°λ₯.
int n; // μλ―Έμμ.
int nerr; // λͺ¨νΈν μΆμ½.
int n_comp_conns; // λͺ¨νΈν μΆμ½.
int wgc_connections; // ν λ΄λΆμ¬λλ€λ§ μλ μ½μ΄.
int pc_reader; // "pc"λ λ€μν μλ―Έκ° μλ€.
int cstmr_id; // μ€κ° λ¨μ΄λ₯Ό μ§μ μ.
νμΌ μ΄λ¦
νμΌ μ΄λ¦μ λͺ¨λ μλ¬Έμμ΄μ΄μΌ νκ³ μΈλμ€μ½μ΄(_) νΉμ λμ¬ (-)λ₯Ό ν¬ν¨ν μ μλ€. λ°λμ μΈλμ€μ½μ΄λ₯Ό μ¬μ©ν νμλ μκ³ νλ‘μ νΈμ μ¬μ©νλ κ΄λ‘λ₯Ό λ°λ₯Έλ€.
μ¬μ© κ°λ₯ν νμΌ μ΄λ¦ μμ:
my_useful_class.cc
my-useful-class.cc
myusefulclass.cc
myusefulclass_test.cc // \_unittestμ \_regtestλ deprecateλμλ€.
C++ νμΌμ .ccμΌλ‘ λλκ³ ν€λ νμΌμ .hλ‘ λλλ€.
db.hμ κ°μ΄ /usr/includeμ μ΄λ―Έ μ‘΄μ¬νλ νμΌ μ΄λ¦μ μ¬μ©νμ§ λ§μ.
μΌλ°μ μΌλ‘ μμΈνκ² νμΌ μ΄λ¦μ μ§μ΄λΌ. μλ₯Ό λ€λ©΄, http_server_logs.hκ° logs.hλ³΄λ€ μ’λ€. FooBar ν΄λμ€λ₯Ό μ μν λ μΌλ°μ μΌλ‘ ν μμ νμΌμ κ°λλ€. μλ₯Ό λ€μ΄, foo_bar.h, foo_bar.cc μ²λΌ λ§μ΄λ€.
μΈλΌμΈ ν¨μλ .hμ μμ΄μΌ νλ€. μΈλΌμΈ ν¨μμ μ½λκ° μ§§μΌλ©΄ .h μμ λ€μ΄κ°κ³ , κΈΈλ€λ©΄ -inl.hλ‘ κ°μΌ νλ€. ν΄λμ€ μμ λ§μ μΈλΌμΈ μ½λκ° μλ€λ©΄ 3κ°μ νμΌλ‘ λΆλ¦¬νλ€.
url_table.h // ν΄λμ€ μ μΈ
url_table.cc // ν΄λμ€ μ μ
url_table-inl.h // λ§μ μ½λλ₯Ό ν¬ν¨ν μΈλΌμΈ ν¨μ
νμ μ΄λ¦
νμ μ΄λ¦μ λλ¬Έμλ‘ μμνκ³ μΈλμ€μ½μ΄ μμ΄ λ¨μ΄λ§λ€ 첫 κΈμλ‘ λλ¬Έμλ₯Ό μ¬μ©νλ€. μλ₯Ό λ€λ©΄, MyExcitingClass, MyExcitingEnum.
ν΄λμ€, ꡬ쑰체, typedef, μ΄κ±°ν κ°μ νμ μ μ΄λ¦μλ κ°μ κ·μΉμ΄ μ μ©λλ€. λ€μ μμμ²λΌ νμ μ΄λ¦μ λ¨μ΄λ§λ€ λλ¬Έμλ‘ μμνλ©° μΈλμ€μ½μ΄λ₯Ό μ¬μ©νμ§ μλλ€.
// classes, structs
class UrlTable { ...
class UrlTableTester { ...
struct UrlTableProperties { ...
// typedefs
typedef hash_map<UrlTableProperties \*, string> PropertiesMap;
// aliases
using PropertiesMap = hash_map<UrlTableProperties \*, string>;
// enums
enum UrlTableErrors { ...
λ³μ μ΄λ¦
λ³μ μ΄λ¦μ λͺ¨λ μλ¬Έμλ‘ μμ±νλ©° λ¨μ΄ μ¬μ΄μ μΈλμ€μ½μ΄λ₯Ό μ¬μ©νλ€. ν΄λμ€ λ©€λ² λ³μλ μ΄λ¦μ λμ μΈλμ€μ½μ΄λ₯Ό μ¬μ©νλ€. μλ₯Ό λ€λ©΄, a_local_variable, a_struct_data_member, a_class_data_member_ μ²λΌ λ§μ΄λ€.
κ³΅ν΅ μ¬ν
μμ:
string table_name; // μ’μ - μΈλμ€μ½μ΄λ₯Ό μ¬μ©νλ€.
string tablename; // μ’μ - λͺ¨λ μλ¬Έμμ΄λ€.
string tableName; // λμ¨ - λλ¬Έμ μ¬μ©
ν΄λμ€ λ°μ΄ν° λ©€λ²
λ°μ΄ν° λ©€λ²(μΈμ€ν΄μ€ λ³μ λλ λ©€λ² λ³μ)μ μ΄λ¦μ λ³΄ν΅ λ³μμ²λΌ μλ¬Έμμ μ νμ μΈ μΈλμ€μ½μ΄λ‘ μμ±νμ§λ§, νμ λμ μΈλμ€μ½μ΄λ₯Ό λΆμΈλ€.
string table_name_; // μ’μ - λμ μΈλμ€μ½μ΄κ° μλ€.
string tablename_; // μ’μ
ꡬ쑰체 λ³μ
ꡬ쑰체μ μμ μλ λ°μ΄ν° λ©€λ²λ ν΄λμ€μ μλ λ°μ΄ν° λ©€λ²μ λ€λ₯΄κ² λμ μΈλμ€μ½μ΄λ₯Ό λΆμ΄μ§ μκ³ λ³΄ν΅ λ³μμ²λΌ μ΄λ¦ μ§λλ€.
struct UrlTableProperties {
string name;
int num_entries;
}
μ΄λ€ κ²½μ°μ ν΄λμ€μ ꡬ쑰체λ₯Ό μ¨μΌ ν μ§μ λν΄μλ ꡬ쑰체 λ ν΄λμ€λ₯Ό μ°Έκ³ νλΌ.
μ μ λ³μ
μ νμ μΌλ‘ μ¬μ©λμ΄μΌ νλ μ μ λ³μμ μ΄λ¦μ λν νΉλ³ν κ·μΉμ μλ€. νμ§λ§ μ μ λ³μλ₯Ό μ¬μ©ν λμλ g_μ κ°μ΄ λ‘컬 λ³μμ μ½κ² ꡬλΆν μ μλ μ λμ΄λ₯Ό μ¬μ©νλ κ²μ΄ μ’λ€.
μμ μ΄λ¦
kλ‘ μμνλ λμλ¬Έμκ° μμΈ μ΄λ¦μ μ¬μ©νλ€. const int kDaysInAWeek = 7;
μ§μλ³μμΈμ§, μ μλ³μμΈμ§, ν΄λμ€μ μΌλΆμΈμ§μ μκ΄ μμ΄ λͺ¨λ μ»΄νμΌ μμ μμλ€μ λ€λ₯Έ λ³μλ€κ³Ό μ‘°κΈ λ€λ₯Έ μ΄λ¦ κ·μΉμ μ¬μ©νλ€. kλ‘ μμνμ¬ λ§€ λ¨μ΄μ 첫 κΈμλ₯Ό λλ¬Έμλ‘ μ΄λ€.
ν¨μ μ΄λ¦
μΌλ°μ μΈ ν¨μλ€μ λμλ¬Έμκ° μμ¬ μλ€. 보ν΅, ν¨μλ€μ λλ¬Έμλ‘ μμνκ³ κ° μλ‘μ΄ λ¨μ΄λ 'upper camelcase'λ 'Pascal case'λ‘ νννλ€. μ΄λ¬ν μ΄λ¦λ€μ μλ¬Έμλ‘ μμ±νλ©΄ μλλ€. μλ₯Ό λ€μ΄, 'StartRPC()'κ° μλ 'StartRpc()'μ²λΌ λ¨μ΄λ§λ€ λλ¬Έμμ΄λ₯Ό λλ¬Έμλ‘ μ°κΈ°λ₯Ό μ νΈν΄λΌ.
AddTableEntry()
DeleteUrl()
OpenFileOrDie()
μ κ·Όμμ λ³κ²½μλ ν΄λΉνλ λ³μμ μ΄λ¦κ³Ό κ°μ κ²μ μ΄λ€. MyExcitingFunction(), MyExcitingMethod(), my_exciting_member_variable(), set_my_exciting_member_variable().
μΌλ° ν¨μ
class MyClass {
public:
...
bool is_empty() const { return num_entries_ == 0; }
private:
int num_entries_;
};
ν¨μ μ΄λ¦μ λλ¬Έμλ‘ μμνμ¬ κ° λ¨μ΄μ 첫 κΈμλ₯Ό λλ¬Έμλ‘ μ°κ³ , μΈλμ€μ½μ΄λ μ¬μ©νμ§ μλλ€.
ν¨μμ μ€ν μ€ ν¬λμκ° λ°μν μ μλ€λ©΄ ν¨μμ μ΄λ¦ λ€μ OrDie λ₯Ό λΆμΈλ€. μ΄ κ·μΉμ νλ‘λμ μ½λμμλ μλ¬κ° λ°μν κ°λ₯μ±μ΄ μ΄λ μ λ μλ ν¨μμ νν΄ μ μ©νλ€.
AddTableEntry()
DeleteUrl()
OpenFileOrDie()