23 个仓库
Utilities for calculating cyclomatic complexity and other structural indicators to assess maintainability.
Distinct from Aggregate Complexity Calculations: Distinct from computational complexity: focuses on software maintainability metrics rather than algorithmic performance.
Explore 23 awesome GitHub repositories matching software engineering & architecture · Code Complexity Metrics. Refine with filters or upvote what's useful.
Agent-skills is a collection of structured instructions and behavioral personas designed to standardize how AI coding agents perform engineering tasks. It functions as a workflow orchestrator that maps natural language intent to repeatable technical sequences and verification checklists. The project distinguishes itself through the use of specialized markdown-defined roles, such as security auditors or test engineers, to apply targeted domain expertise. It employs an evidence-based verification model that requires runtime data or passing tests as mandatory exit criteria to ensure AI-generated
Provides capabilities to reduce structural complexity and improve codebase readability while preserving existing behavior.
Ponytail is an LLM code simplification framework and AI agent guardrail system. It provides rules and constraints designed to stop coding agents from producing unnecessary or overly complex logic, ensuring that AI-generated code remains minimal and maintainable. The project features a codebase complexity auditor that scans repositories and code diffs to identify over-engineered patterns and suggest deletions. It also includes a technical debt ledger to track and log deferred shortcuts and cleanup tasks. The framework supports an AI code review workflow and automated code simplification. Thes
Scans source trees for patterns of over-engineering to generate candidate lists for deletions and simplifications.
xi-editor is a high-performance text editor core written in Rust. It employs a client-server architecture that separates the backend editor logic from the user interface, allowing diverse frontends to communicate with the core via a standardized protocol. The project is distinguished by its use of rope-based text buffers for efficient manipulation of large documents and a collaborative engine powered by conflict-free replicated data types to synchronize concurrent edits. It further features an extensible plugin system that integrates external binaries and third-party tools through JSON-based
Locates specific line numbers or calculates total line counts in logarithmic time regardless of document length.
diff-so-fancy makes your diffs human readable instead of machine readable. This helps improve code quality and helps you spot defects faster.
Colorizes the first block of blank lines in a diff to make them visually distinct.
This project is a comprehensive educational resource and programming course covering C++ language semantics and features from C++03 through C++26. It provides structured tutorials and technical guides focused on modern C++ development. The material offers specialized instruction on template metaprogramming, including the use of type traits and compile-time computations. It features detailed guides on concurrency and parallelism for multi-core execution, as well as a reference for software design applying SOLID principles and RAII. Additionally, it covers build performance optimization to redu
Teaches how to calculate and interpret cyclomatic and cognitive complexity metrics to assess code maintainability.
This project is a comprehensive, curated directory of static analysis, linting, and security scanning utilities. It serves as a central resource for developers to discover, compare, and select tools based on specific programming languages, licensing models, and integration requirements. The directory distinguishes itself by providing deep metadata for each listed utility, including community-driven popularity rankings, maintenance status, and deployment methods. By aggregating these tools into a single searchable index, it enables teams to identify solutions for enforcing coding standards, ma
Calculates metrics to quantify maintainability and identify overly complex logic within source code.
RuboCop is a static code analyzer, linter, and formatter for the Ruby language. It identifies style violations, smells, and errors in source code to ensure consistency and maintainability based on community guidelines. The project provides automatic source code formatting to rewrite files according to defined stylistic standards. It also functions as a language server protocol implementation, surfacing violations and suggested fixes directly within code editors. The tool covers code complexity monitoring to track the size of classes and methods and employs non-inclusive language detection to
Monitors the length of blocks, classes, and modules to prevent the creation of overly complex code structures.
Checkstyle is a Java static analysis tool and linter designed to identify and enforce coding standards and best practices. It functions as a code quality auditor and Javadoc validation tool, checking source code against configurable rulesets to ensure structural and stylistic consistency. The project allows for the creation of custom linting rules by extending a core API to inspect the abstract syntax tree. It further enables specialized validation through the use of XPath expressions to query the syntax tree for specific code patterns and violations. Capability areas include the enforcement
Calculates cyclomatic complexity and class coupling metrics to identify logic that requires refactoring.
Scc is a codebase analysis tool written in Go that calculates source lines of code, blank lines, and comments across hundreds of programming and markup languages. It functions as a source code metric engine, software complexity analyzer, and cost estimator. The project differentiates itself by providing a COCOMO cost estimator to predict development effort and financial costs, alongside tools to estimate the cost of regenerating a codebase using large language models. It also includes a Git repository metrics tool that correlates commit history with codebase metrics to identify hotspots, trac
Calculates source lines of code, blank lines, and comments across hundreds of programming and markup languages.
Detekt is a static analysis tool, code quality linter, and complexity analyzer for Kotlin source code. It functions as a code smell detector and static scanner designed to identify potential bugs, design flaws, and violations of coding standards without executing the program. The tool differentiates itself through the use of issue baselining, which allows users to create a snapshot of existing legacy code issues to filter out old violations and focus on preventing new regressions. It further supports extensibility via a plugin-based system that allows for the integration of custom rule sets a
Calculates cyclomatic complexity and structural metrics to identify overly complex Kotlin logic.
Prek is a Git hook manager written in Rust that runs configured hooks as a single binary without requiring Python or other external runtimes. It executes hooks faster than standard tools through parallel processing and bundled Rust implementations, and includes a built-in hook repository that enables fully offline operation without network access or environment setup. The tool supports both TOML and YAML configuration formats with identical semantics, and can run hooks from existing pre-commit configuration files without modification. Prek distinguishes itself through workspace-aware monorepo
Splits matching files across multiple hook invocations when the count exceeds a configured limit.
Pylint is a static code analyzer for Python that scans source code for errors, coding standard violations, code smells, and type-related issues without executing the program. It functions as a plugin-based linter framework, allowing users to extend its analysis capabilities with custom or third-party checks for project-specific rules and framework support. The tool also includes a duplicate code detector that identifies identical or near-identical code blocks across a project to help reduce redundancy. Beyond its core linting functionality, Pylint can generate UML class and package diagrams f
Identifies code smells and patterns that could be improved for better readability, maintainability, or performance.
PhpInsights is a static analysis tool and code quality analyzer for PHP. It evaluates source code to identify bugs, style violations, and technical debt without executing the application. The tool functions as a complexity metric utility, calculating architectural and cyclomatic complexity to locate overly complicated logic. It measures overall software health and maintainability by comparing code against industry standards. The system manages technical debt through rule-based validation and metric-driven scoring. It uses a static analysis engine to parse source code, delivering the results
Calculates cyclomatic and cognitive complexity scores to identify overly intricate logic and assess maintainability.
Credo 是一个用于 Elixir 的静态分析工具和 Linter。它作为一个代码质量分析器,扫描源代码以识别风格不一致、常见错误和潜在的安全漏洞。 该工具提供了一个可定制的框架,用于定义和测试专门的规则,以强制执行项目特定的编码标准。它识别复杂的代码片段和重复代码,以突出重构和简化的机会。 其功能涵盖自动化代码审查、Elixir 编码标准的强制执行,以及通过编辑器集成提供的实时开发者反馈。
Calculates structural indicators and complexity metrics to flag overly complex code fragments for refactoring.
This project is a comprehensive guide and set of engineering standards for writing readable, maintainable, and scalable JavaScript code. It provides a framework for software architecture, refactoring patterns, and clean coding practices designed to improve codebase health and longevity. The guide emphasizes the application of SOLID principles and architectural strategies such as dependency inversion and the separation of concerns. It focuses on transforming complex conditional logic through polymorphism and refactoring, while promoting a transition from imperative loops to declarative functio
Provides specific refactoring patterns to simplify complex logic and improve the readability of JavaScript codebases.
JaCoCo 是一个 Java 代码覆盖率工具和字节码插桩工具,用于衡量测试过程中执行了源代码的哪些部分。它既可以作为运行时代理来实时监控应用执行,也可以作为离线字节码插桩库,从而在受限的运行时环境中捕获执行数据。 该项目的特点是提供动态和静态两种插桩路径来跟踪执行情况。它包含一个用于实时监控的运行时代理,并具备在执行前修改已编译类文件的能力。此外,它还支持在不中断活动应用的情况下,通过远程网络连接从运行中的进程检索执行指标。 该系统可计算指令、分支、行、方法和类级别的定量覆盖率指标,以及圈复杂度。它提供了合并多次测试运行数据、在 CI/CD 质量门禁中强制执行覆盖率阈值,以及生成将执行的字节码映射回源代码的报告等功能。此外,它还支持将结果直接显示在代码编辑器中的可视化集成。 该工具与构建自动化系统和命令行接口集成,以实现数据收集和报告生成的自动化。
Tracks whether at least one instruction in a method or one method in a class has been executed.
Plato 是一个 JavaScript 静态分析工具和代码复杂度可视化工具。它计算复杂度指标并对 JavaScript 源代码运行 Lint 检查以评估代码库质量,通过静态分析仪表板呈现结果。 该系统将 Lint 数据和技术指标聚合到带时间戳的报告中。它专门计算圈复杂度(cyclomatic complexity)和 Halstead 指标,以识别过于复杂的文件并评估项目的可维护性。 该工具提供了源代码可视化、自动化质量报告和可维护性评估的功能。它包括一个静态分析流水线,支持通过正则表达式进行指标聚合和文件过滤。
Computes cyclomatic and Halstead metrics to assess the maintainability and structural complexity of source code.
该工具包提供了一套工具、模板和指南,用于准备中国监管机构要求的软件著作权登记文件。它自动化了必要法律申报材料和技术文档的创建,以促进中国监管体系内的软件著作权登记。 该系统包括一个代码度量计算器,用于从源文件中提取定量数据和行数以用于申请表。它还具有法律合规性检查清单和验证工具,以确保提交材料符合官方的格式、分页和页眉要求。 该项目通过用户手册和设计规范模板涵盖了文档自动化,以及根据申请人类型识别特定文档要求的材料映射。
Calculates total lines of code and other quantitative metrics required for software copyright application forms.
This project is a curated library of Python code examples, educational resources, and programming tutorials. It functions as an educational repository designed to teach Python language fundamentals through practical implementation tasks, real-world exercises, and functional code snippets. The collection covers a diverse range of implementation examples, including the development of interactive websites and message boards using web frameworks. It also features scripts for audio speech processing, automated media processing for images, and the extraction of data from web content. Additional ca
Scans source files and reports total, blank, and comment line counts.
Compodoc 是一个 TypeScript API 文档生成器、静态站点生成器和项目架构可视化工具。它解析源代码和 JSDoc 注释,以创建可搜索的技术参考站点、API 目录和独立 HTML 页面。 该项目通过分析 import 语句来生成依赖图和模块映射,从而展示代码库内的结构关系,这使其脱颖而出。它包括对可视化 Angular 项目、NestJS 工作流和 Stencil Web 组件的专门支持,并可将实时工作演示直接嵌入到文档页面中。 该系统还充当文档覆盖率分析器,提供报告并在持续集成流水线中强制执行最低覆盖率阈值,如果文档水平不足则导致构建失败。其他功能包括 Markdown 集成、多格式数据导出(JSON 或 Markdown),以及带有文件系统监控以实现自动重建的本地开发服务器。 用户可以通过配置文件、自定义 CSS 样式和元素可见性过滤来自定义输出,以从最终站点中排除特定符号或内部标签。
Calculates the ratio of documentation comments to source code statements to identify gaps.