Sample

Dorn/java/101

Human rating uses the original dataset scale.

DatasetDorn
Human3.54
Lines50

Scores

MethodScoreScaleDataset rank
(0–100)
Posnett00–1; higher is more readable
48.7Δ 18.1
Scalabrino0.6870–1; higher is more readable
73.3Δ 6.4
Dorn0.540–1; higher is more readable
46.0Δ 20.9
Mi0.6890–1; higher is more readable
80.8Δ 13.9
LLOC23Logical lines; fewer is more readable
24.8Δ 42.1
DeepSeek V4 Pro14.670–20; mean of three runs
74.1Δ 7.2
GPT-6.1 Sol150–20; mean of three runs
52.8Δ 14.1
BTTF0.3990–1; higher is more readable
23.4Δ 43.5
Human3.541–5; original rating
66.9

Views

Download official ZIP ↗

Select the downloaded ZIP or its extracted folder. Files stay in your browser.

Loading feature diagnosis…

Source regions

Feature contributions

Feature contributions

FeatureValueContribution
(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.993.804−32.796
Source linesThe number of non-empty source lines.50+20
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.718−7.077

Intercept 8.87 + feature contributions = -11.002 (log-odds).
Score = sigmoid(-11.002) = 0.

Score0.687

Feature contributions

FeatureValueContribution
(log-odds)
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.52.941+1.423
Indentation frequencyHow rapidly indentation changes from line to line.47+0.889
Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right.0−0.804
Number layout frequencyHow rapidly the number of numeric values per line changes through the code.50−0.727
Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code.49−0.699
Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom.49.648+0.284
Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *.0.125−0.276

Intercept 0.07 + feature contributions = 0.161 (log-odds).
Score = sigmoid(0.161) = 0.54.

Score0.689
Score23
Run 1

The code demonstrates generally readable structure with clear intent and acceptable nesting. It uses early returns to avoid deep nesting in the first method, which improves flow. Variable names are descriptive, and actions are mostly one per line. However, the catch block silently swallows exceptions and returns a default value, which obscures error handling. The first method has moderately flat control flow but could be more concise by combining the layout set retrieval. The second method is straightforward, though the if-else could be simplified with a ternary. Overall, the code is maintainable but lacks polish in exception handling and minor verbosity.

Run 2

The code is generally readable with clear variable names and purpose. The first method has a straightforward flow: initialize defaults, fetch a group with error handling, validate staging status, then retrieve a logo ID from a layout set. However, the blanket exception catch returning a default value obscures the intent and may hide errors. The nested if-else blocks are shallow and manageable, but the method could be simplified with early returns and a helper to avoid duplication. The second method's if-else is flat and clear. Action granularity is mostly one action per line, though some lines combine checks and returns. The code snippet is incomplete at the end, affecting overall structure assessment. Minor improvements include replacing the catch-all exception with specific exceptions and using a ternary for the private/public layout set selection to reduce length.

Run 3

The code demonstrates moderate readability with a clear logical structure and flat nesting. The intent of retrieving a logo ID based on group and layout type is understandable, and actions are generally granular with one operation per line. However, readability is hindered by several factors: redundant initialization and multiple early returns for the same default value, repeated null checks across related methods, and a somewhat fragmented reading flow. The use of try-catch to return a default value on any exception is blunt and obscures potential error handling. The getSettings and getSettingsProperties methods show inconsistent null-checking patterns, adding slight confusion. Overall, the code is maintainable but could benefit from consolidating default returns and clarifying error handling.

Run 1

Code Structure: Methods and responsibilities are logically separated, but the snippet starts and ends mid-method, limiting context. Nesting: Mostly shallow, with modest nesting in lazy initialization and exception handling. Clarity of intent: Descriptive names make staging-group logo retrieval and settings access understandable; returning zero on any exception obscures failure semantics. Code length: Generally concise, though redundant null initialization, unnecessary else after return, and frequent blank lines add overhead. Action granularity: Each statement performs a single clear action. Reading flow: Early returns and conventional formatting support sequential reading, but incomplete method boundaries and silent exception handling interrupt understanding.

Run 2

Code Structure: Methods separate logo retrieval from settings handling, but the excerpt begins and ends mid-method, limiting structural clarity. Nesting: Mostly shallow, with early returns keeping the main flow flat; lazy initialization adds modest nesting. Clarity of intent: Descriptive method and variable names explain the staging-group and layout selection logic, though the broad exception catch silently returning zero obscures failure handling. Code length: Reasonably concise, but redundant initializations and an else after a return add minor verbosity. Action granularity: Each statement performs one clear action, making individual steps easy to follow. Reading flow: Consistent formatting and spacing support a natural progression, although incomplete method boundaries interrupt comprehension.

Run 3

Code Structure: Methods and responsibilities are logically separated, but the snippet starts and ends mid-method, limiting context. Nesting: Shallow conditionals and early returns keep nesting manageable. Clarity of intent: Descriptive names make staging-group logo selection and settings initialization understandable, although silently catching a broad Exception obscures failure behavior. Code length: Mostly concise, with some unnecessary null initialization and an else after a return. Action granularity: Each statement generally performs one action per line. Reading flow: Consistent formatting and sequential operations support natural reading, but frequent blank lines and incomplete method boundaries interrupt continuity.