Sample
int-21f6ff5d2aca-I02
Shorten method, parameter, and local names without collisions
Scores
| Method | Score | Scale |
|---|---|---|
| Posnett | 0 | 0–1; higher is more readable |
| Scalabrino | 0.679 | 0–1; higher is more readable |
| Dorn | 0.169 | 0–1; higher is more readable |
| Mi | 0.291 | 0–1; higher is more readable |
| LLOC | 29 | Logical lines; fewer is more readable |
| DeepSeek V4 Pro | 10.67 | 0–20; mean of three runs |
| GPT-6.1 Sol | 13 | 0–20; mean of three runs |
| BTTF | 0.572 | 0–1; higher is more readable |
Views
Loading feature diagnosis…
Source regions
Feature contributions
Feature contributions
| Feature | Value | Contribution (log-odds) |
|---|---|---|
| Halstead volumeHow much symbolic information the code contains. It combines the total number of operators and values with the number of distinct ones. | 5686.82 | −187.665 |
| Source linesThe number of non-empty source lines. | 178 | +71.2 |
| Byte entropyHow varied the bytes in the source text are. Repeated bytes give a lower value; a more even mixture gives a higher value. | 4.642 | −6.963 |
Intercept 8.87 + feature contributions = -114.558 (log-odds).
Score = sigmoid(-114.558) = 0.
| Score | 0.679 |
|---|
Feature contributions
| Feature | Value | Contribution (log-odds) |
|---|---|---|
| Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code. | 178 | −5.266 |
| Indentation frequencyHow rapidly indentation changes from line to line. | 139 | +4.071 |
| Number layout frequencyHow rapidly the number of numeric values per line changes through the code. | 139 | −2.769 |
| Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom. | 177.949 | +2.078 |
| Identifier layout (horizontal)How rapidly the visual pattern of identifier characters changes from left to right. It measures spatial frequency, not the meaning of the names. | 115.989 | −1.248 |
| Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right. | 113.402 | +1.025 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.051 | +0.446 |
Intercept 0.07 + feature contributions = -1.593 (log-odds).
Score = sigmoid(-1.593) = 0.169.
| Score | 0.291 |
|---|
| Score | 29 |
|---|
Run 1
The code is logically organized as a deprecated extension with multiple constructors delegating to a superclass, and its intent is mostly clear. However, readability suffers from highly repetitive constructor overloads with cryptic variable names (n, exe, selector, task, etc.) and long parameter lists. While nesting is relatively flat and reading flow is natural, the action granularity is inconsistent: some constructors spread parameters across multiple lines while others pack them tightly. The constructor delegation chain is ambiguous without reading all overloads and Javadocs. Overall the code is understandable to a Netty developer, but the excessive overloading and poor naming make it harder to scan and maintain than necessary.
Run 2
The code follows standard Java class structure with clear imports and Javadoc on most public constructors, but readability suffers from several issues. Constructor overloading creates a tedious chain with non-descriptive parameter names (n, n2... n11, exe, exe2... exe7, selector, selector2... selector8), obscuring intent. Methods like `new2` and parameters like `io3`, `rejected4`, `task3`, `tail2`, `arg` are cryptically named. The deprecated `set(int io2)` method adds noise. While nesting is minimal and actions are mostly one per line, the overall reading flow is disrupted by the repetitive constructor patterns and inconsistent naming conventions. Removing Javadoc from many constructors breaks documentation consistency. The class is functionally concise but lacks the clarity expected from production Netty code.
Run 3
The code suffers from severe readability issues. Constructor overloads use cryptic parameter names (n, n2, n3... selector, selector2, selector3...) making the intent unclear. The constructors form a tangled web of delegation with no clear primary constructor. The 'new2' method uses an Object varargs array with magic indices for parameters, which is extremely opaque. Import statements are numerous and occupy significant space. While the deprecated methods and javadoc are somewhat helpful, the parameter naming and overload complexity make the reading flow poor. Code structure is logical in terms of class inheritance but the constructor explosion is hard to follow. Nesting is relatively flat, but action granularity is okay. Overall, the code is difficult to understand and maintain due primarily to ambiguous naming and complex constructor overloading.
Run 1
Code Structure: Constructors are grouped logically and delegate consistently, followed by operational methods. Nesting: Very shallow; only a simple loop and independent conditionals. Clarity of intent: Types and some Javadocs explain the purpose, but numbered parameters such as n11 and exe7, vague methods such as set and new2, and positional Object varargs obscure meaning. Javadoc parameter names do not match the actual signature, further reducing clarity. Code length: Individual bodies are concise, but numerous similar overloads and repetitive documentation make the class lengthy to scan. Action granularity: Generally one statement per line, with straightforward constructor delegation and assignments. Reading flow: Mostly natural top-to-bottom organization, weakened by inconsistent indentation, cryptic naming, and the need to trace overloads and interpret casts.
Run 2
Code Structure: Constructors are logically grouped and delegate consistently, followed by operational methods. Nesting: Very shallow; only a loop and simple conditionals, making control flow easy to follow. Clarity of intent: Types and some Javadocs explain the purpose, but numbered names such as n11, exe7, and task3, plus vague methods set and new2, obscure meaning. Several Javadoc parameter names do not match the signatures. Code length: Individual methods are concise, but numerous similar overloads and repetitive documentation make the class lengthy to scan. Action granularity: Statements generally perform one action each; constructor calls combine factory creation with delegation but remain manageable. Reading flow: The progression from simpler to more configurable constructors is natural, though inconsistent indentation, long signatures, and positional Object varargs with casts interrupt readability.
Run 3
Code Structure: Constructors are logically grouped and delegate consistently, followed by operational methods. Nesting: Very shallow; only a simple loop and independent conditionals. Clarity of intent: Types and some Javadocs clarify purpose, but generic, numbered names such as n11, exe7, set, and new2 obscure meaning. Several @param names do not match actual parameters, weakening documentation. Code length: Individual methods are concise, but numerous repetitive constructor overloads and comments make the class lengthy to scan. Action granularity: Statements generally perform one action each, although factory calls embedded in superclass calls require some parsing. Reading flow: Constructor progression and straightforward method bodies support natural reading, but inconsistent indentation, parameter naming, and positional Object varargs with casts interrupt comprehension.