cpp-naming-check

作成者: clickhouse

Check C++ naming conventions against Google Style Guide. Use when checking if names follow conventions or when renaming identifiers.

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
ClickHouseのベストプラクティス28ルールを、スキーマ設計、クエリ最適化、データ取り込み戦略に分類。プライマリキーとデータ型の選択(不変の設計判断)、JOINとクエリの最適化、挿入のバッチ処理とミューテーション回避の3つの重要領域をカバー。影響度で優先順位付けされた28ルールを含み、ClickHouseのカラムナストレージとスパースインデックスの仕組みにより、スキーマ設計とクエリ最適化のルールはCRITICALとマーク。構造化されたレビュー手順を提供...
official
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…
official
clickhousectl-cloud-deploy
clickhouse
ユーザーがClickHouseをクラウドにデプロイしたい、本番環境に移行したい、ClickHouse Cloudを使用したい、マネージドClickHouseサービスをホストしたい、またはローカルから移行したい場合に使用します。
official
clickstack-otel-collector
clickhouse
Use when a user wants to wire an OpenTelemetry collector into a Managed ClickStack service on ClickHouse Cloud, either by deploying a new local collector…
official
infra-clickhouse
clickhouse
Sets up and manages ClickHouse using the clickhousectl CLI — installs and runs a local ClickHouse server for development, and creates managed ClickHouse Cloud…
official
infra-postgres
clickhouse
Sets up and manages Postgres using the clickhousectl CLI — runs a local Docker-backed Postgres for development, and creates and operates managed ClickHouse…
official
clickhouse-best-practices
clickhouse
ClickHouseのスキーマ、クエリ、または設定をレビューする際に必ず使用すること。推奨事項を提供する前に必ず確認すべき31のルールが含まれています。常に読んでください…
official
setup
clickhouse
このプラグインにバンドルされているClickHouse MCPサーバー接続のセットアップをユーザーに案内します。ユーザーが初めてプラグインをインストールしたときや、問題が発生したときに使用します…
official