Sample
int-14bb88a7c4ec-I02
Shorten method, parameter, and local names without collisions
Scores
| Method | Score | Scale |
|---|---|---|
| Posnett | 1 | 0–1; higher is more readable |
| Scalabrino | 0.872 | 0–1; higher is more readable |
| Dorn | 0.898 | 0–1; higher is more readable |
| Mi | 0.765 | 0–1; higher is more readable |
| LLOC | 2 | Logical lines; fewer is more readable |
| DeepSeek V4 Pro | 14.67 | 0–20; mean of three runs |
| GPT-6.1 Sol | 16.33 | 0–20; mean of three runs |
| BTTF | 0.789 | 0–1; higher is more readable |
Views
Loading feature diagnosis…
Source regions
Feature contributions
Feature contributions
| Feature | Value | Contribution (log-odds) |
|---|---|---|
| Source linesThe number of non-empty source lines. | 27 | +10.8 |
| 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.726 | −7.09 |
| Halstead volumeHow much symbolic information the code contains. It combines the total number of operators and values with the number of distinct ones. | 118.593 | −3.914 |
Intercept 8.87 + feature contributions = 8.667 (log-odds).
Score = sigmoid(8.667) = 1.
| Score | 0.872 |
|---|
Feature contributions
| Feature | Value | Contribution (log-odds) |
|---|---|---|
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.022 | +0.727 |
| Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code. | 16 | +0.47 |
| 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. | 76 | +0.446 |
| Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right. | 76 | +0.422 |
| Number layout frequencyHow rapidly the number of numeric values per line changes through the code. | 1 | +0.398 |
| Indentation frequencyHow rapidly indentation changes from line to line. | 12 | −0.322 |
| Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom. | 26.922 | −0.034 |
Intercept 0.07 + feature contributions = 2.177 (log-odds).
Score = sigmoid(2.177) = 0.898.
| Score | 0.765 |
|---|
| Score | 2 |
|---|
Run 1
The code is highly readable due to its clear interface structure, concise methods, and comprehensive Javadoc. Each method performs a single logical action, maintains flat nesting (none required), and clearly communicates intent through descriptive naming and documentation. Minor deduction for the slightly ambiguous method name 'get2', which suggests a temporary placeholder rather than a meaningful abstraction.
Run 2
The code is highly readable with a clear, logical structure and minimal nesting. It defines a small, focused interface with two methods, each accompanied by concise Javadoc. The naming conventions are standard Java, and the intent is unambiguous. The method names 'get' and 'get2' are slightly less descriptive than ideal, which slightly impacts clarity, but the Javadoc compensates. The code is concise, with one action per line, and the reading flow is natural, moving from class-level documentation to method declarations. Overall, it is an excellent example of clean, maintainable interface code.
Run 3
The code demonstrates clear package structure and standard Javadoc conventions, which aids in understanding the interface's purpose. However, readability is severely undermined by the vague method names 'get()' and 'get2()'. These names violate the clarity of intent criterion, as they do not describe what is being retrieved or why one is numbered '2'. The Javadoc does explain the return types, but this is not a substitute for self-documenting method names. The interface is extremely short and flat (good for nesting and code length), but the action granularity and natural reading flow are disrupted by the artificial 'get2()' name. The code appears to be a fragmented or poorly refactored version of a real Spring interface (likely `getTestClass()` and `getContextLoaderDelegate()`), which makes it read as incomplete or ambiguous rather than intentionally concise.
Run 1
Code Structure: The interface is logically organized, with two clearly separated method declarations. Nesting: There is no unnecessary nesting. Clarity of intent: Class-level and method-level documentation explain the purpose and return values, but the generic names get() and get2() obscure intent and require readers to consult the comments. Code length: The interface is concise, and its documentation is proportionate. Action granularity: Each declaration occupies its own line, with no combined actions. Reading flow: The package, interface documentation, and documented methods follow a natural order. Descriptive method names would substantially improve readability.
Run 2
Code Structure: The interface is logically organized, with two clearly separated, documented declarations. Nesting: There is no unnecessary nesting. Clarity of intent: The interface name and Javadoc explain its purpose and return values, but get() and get2() are vague method names; getTestClass() and getCacheAwareContextLoaderDelegate() would communicate intent better. Code length: The code is concise, and its documentation is useful rather than excessive. Action granularity: Each method declaration occupies its own line, with no combined actions. Reading flow: The package, interface documentation, and method declarations follow a natural Java layout, although the generic method names force readers to consult documentation.
Run 3
Code Structure: A small, logically organized interface with clear separation between its two methods. Nesting: No nested logic, making it easy to scan. Clarity of intent: Interface naming and Javadoc clearly explain its purpose and return values, but generic method names get() and get2() obscure their distinct roles; getTestClass() and getCacheAwareContextLoaderDelegate() would be clearer. Code length: Concise, with proportionate documentation and no unnecessary implementation. Action granularity: Each method declaration occupies its own line, with no combined actions. Reading flow: Natural top-to-bottom progression from interface documentation to documented method declarations, although the method names force readers to consult comments.