cpp-naming-check

작성자: clickhouse

C++ 명명 규칙이 Google 스타일 가이드를 따르는지 확인합니다. 이름이 규칙을 따르는지 확인하거나 식별자를 변경할 때 사용합니다.

npx skills add https://github.com/clickhouse/pg_stat_ch --skill cpp-naming-check

C++ Naming Convention Checker

Verify names follow Google C++ Style Guide conventions.

Naming Rules Quick Check

EntityConventionPatternExamples
Fileslowercase + _ or -snake_case.ccmy_class.cc, http-parser.h
ClassesPascalCase[A-Z][a-zA-Z0-9]*MyClass, UrlParser
StructsPascalCase[A-Z][a-zA-Z0-9]*Point, HttpRequest
Type aliasesPascalCase[A-Z][a-zA-Z0-9]*DataMap, StringList
EnumsPascalCase[A-Z][a-zA-Z0-9]*ErrorCode, State
EnumeratorskPascalCasek[A-Z][a-zA-Z0-9]*kOk, kNotFound
FunctionsPascalCase[A-Z][a-zA-Z0-9]*ProcessData(), GetValue()
Accessorssnake_case[a-z][a-z0-9_]*count(), set_count()
Variablessnake_case[a-z][a-z0-9_]*table_name, num_items
Class memberssnake_case_[a-z][a-z0-9_]*_value_, data_map_
Struct memberssnake_case[a-z][a-z0-9_]*width, height
ConstantskPascalCasek[A-Z][a-zA-Z0-9]*kMaxSize, kPi
MacrosUPPER_CASE[A-Z][A-Z0-9_]*MY_MACRO, DEBUG_LOG
Namespacessnake_case[a-z][a-z0-9_]*my_project, internal
Template paramsVariesType=T, value=nT, InputIterator, N

Common Mistakes

❌ Wrong → ✅ Correct

// Classes
class myClass;        → class MyClass;
class HTTPParser;     → class HttpParser;  // Treat acronyms as words

// Variables
int TableName;        → int table_name;
int tablename;        → int table_name;    // Use underscores

// Class members
int value;            → int value_;        // Trailing underscore
int m_value;          → int value_;        // No Hungarian notation

// Functions
void process_data();  → void ProcessData();
void getValue();      → void GetValue();   // Or get_value() if accessor

// Constants
const int MAX_SIZE;   → const int kMaxSize;
const int maxSize;    → const int kMaxSize;

// Enumerators
enum { ERROR_OK };    → enum { kErrorOk };
enum { Ok };          → enum { kOk };

// Macros (must be UPPER_CASE with prefix)
#define DEBUG         → #define MYPROJECT_DEBUG

Abbreviations

  • OK: Listed in Wikipedia or universally known (i, n, id, url)
  • Capitalize as word: StartRpc() not StartRPC()
  • Don't delete letters: customer not cstmr

Check Process

  1. Identify the entity type (class, function, variable, etc.)
  2. Apply the corresponding naming rule
  3. Check for consistency with surrounding code
  4. Flag any Hungarian notation or other outdated styles

clickhouse의 다른 스킬

clickhouse-best-practices
clickhouse
28개의 ClickHouse 모범 사례 규칙으로, 스키마 설계, 쿼리 최적화, 데이터 수집 전략별로 구성되어 있습니다. 기본 키 및 데이터 유형 선택(변경 불가능한 설계 결정), JOIN 및 쿼리 최적화, 삽입 배치 및 변형 회피 등 세 가지 핵심 영역을 다룹니다. 영향도에 따라 우선순위가 매겨진 28개의 규칙을 포함하며, ClickHouse의 컬럼 기반 스토리지 및 희소 인덱스 메커니즘으로 인해 스키마 설계 및 쿼리 최적화 규칙은 CRITICAL로 표시됩니다. 구조화된 검토 절차를 제공합니다...
clickhouse-js-node-coding
clickhouse
참조: https://clickhouse.com/docs/integrations/javascript
clickhouse-js-node-coding
clickhouse
Write idiomatic application code with the ClickHouse Node.js client (`@clickhouse/client`). Use this skill whenever a user is *building* against the Node.js…
clickhousectl-cloud-deploy
clickhouse
사용자가 ClickHouse를 클라우드에 배포하거나, 프로덕션 환경으로 전환하거나, ClickHouse Cloud를 사용하거나, 관리형 ClickHouse 서비스를 호스팅하거나, 로컬에서 마이그레이션하려는 경우 사용합니다.
clickstack-otel-collector
clickhouse
사용자가 ClickHouse Cloud의 Managed ClickStack 서비스에 OpenTelemetry collector를 연결하려는 경우 사용합니다. 새 로컬 collector를 배포하거나…
infra-clickhouse
clickhouse
clickhousectl CLI를 사용하여 ClickHouse를 설정하고 관리합니다 — 개발용 로컬 ClickHouse 서버를 설치 및 실행하고, 관리형 ClickHouse Cloud를 생성합니다…
infra-postgres
clickhouse
clickhousectl CLI를 사용하여 Postgres를 설정하고 관리합니다 — 개발용 로컬 Docker 기반 Postgres를 실행하고, 관리형 ClickHouse를 생성 및 운영합니다…
clickhouse-best-practices
clickhouse
ClickHouse 스키마, 쿼리 또는 구성을 검토할 때 반드시 사용해야 합니다. 권장 사항을 제공하기 전에 반드시 확인해야 하는 31개의 규칙이 포함되어 있습니다. 항상 읽어보세요…