cpp-review

tarafından clickhouse

C++ kodunu Google C++ Stil Kılavuzu'na göre inceleyin. C++ kodunu, pull request'leri gözden geçirirken veya kod stili uyumluluğunu kontrol etmesi istendiğinde kullanın.

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

C++ Code Review (Google Style)

Review C++ code for compliance with the Google C++ Style Guide.

Review Checklist

Naming

  • Types use PascalCase
  • Functions use PascalCase (accessors use snake_case)
  • Variables use snake_case
  • Class members have trailing underscore: member_
  • Constants use kPascalCase
  • Macros use UPPER_CASE with project prefix

Headers

  • Has #define guard: PROJECT_PATH_FILE_H_
  • Self-contained (includes all dependencies)
  • Includes ordered: related header, C system, C++ stdlib, other libs, project
  • No forward declarations unless necessary

Classes

  • Single-argument constructors are explicit
  • Data members are private
  • Copy/move semantics explicit (= default, = delete)
  • No virtual calls in constructors
  • Uses composition over inheritance when appropriate

Functions

  • Returns values instead of output parameters when possible
  • Parameters ordered: inputs before outputs
  • Functions are ≤40 lines (prefer smaller)
  • Uses override/final for virtual overrides

Modern C++

  • Uses nullptr (not NULL or 0)
  • Uses C++ casts (not C-style)
  • Uses range-based for loops where appropriate
  • Uses auto appropriately (not excessively)
  • Smart pointers for ownership (unique_ptr, shared_ptr)

Formatting

  • 80 character line limit
  • 2-space indent
  • Braces on same line as control structures
  • Spaces around binary operators

Feedback Format

Use severity levels:

  • 🔴 MUST FIX: Style violations or bugs that must be fixed
  • 🟡 SHOULD FIX: Strong recommendations for improvement
  • 🟢 CONSIDER: Optional enhancements or suggestions

Example Review Comment

🔴 **MUST FIX**: Missing `explicit` on single-argument constructor
Line 45: `Foo(int value)` should be `explicit Foo(int value)` to prevent
implicit conversions.

🟡 **SHOULD FIX**: Function too long
Lines 78-145: `ProcessData()` is 67 lines. Consider breaking into smaller
functions for readability and testability.

🟢 **CONSIDER**: Use structured bindings
Line 23: `auto [iter, success] = map.insert({key, value});` would be clearer
than separate `.first` and `.second` access.

clickhouse tarafından daha fazla skill

clickhouse-best-practices
clickhouse
ClickHouse en iyi uygulamalarına ilişkin 28 kural; şema tasarımı, sorgu optimizasyonu ve veri alım stratejisine göre düzenlenmiştir. Üç kritik alanı kapsar: birincil anahtar ve veri türü seçimi (değişmez tasarım kararları), JOIN ve sorgu optimizasyonu ile toplu ekleme ve mutasyon önleme. Etkiye göre önceliklendirilmiş 28 kural içerir; şema tasarımı ve sorgu optimizasyonu kuralları, ClickHouse'un sütun bazlı depolama ve seyrek indeks mekaniği nedeniyle KRİTİK olarak işaretlenmiştir. Yapılandırılmış inceleme prosedürleri sağlar...
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
Bir kullanıcının ClickHouse'u buluta dağıtmak, üretime geçirmek, ClickHouse Cloud'u kullanmak, yönetilen bir ClickHouse hizmeti barındırmak veya yerel bir ortamdan geçiş yapmak istediğinde kullanılır.
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 şemalarını, sorgularını veya yapılandırmalarını incelerken KULLANILMALIDIR. Öneriler sunmadan önce kontrol edilmesi GEREKEN 31 kural içerir. Her zaman okuyun…
official
setup
clickhouse
Kullanıcılara bu eklentiyle birlikte gelen ClickHouse MCP sunucu bağlantısını kurma konusunda rehberlik eder. Kullanıcı eklentiyi ilk kez yüklediğinde veya sorun yaşadığında kullanılır…
official