Lolly 项目缺少文档注释的导出标识符检测报告
概述
使用 AST 静态分析扫描 /root/projects/lolly,共发现 180 个导出的函数/类型/常量/变量缺少以标识符名称开头的文档注释(GoDoc)。
一、公共 API(非 internal 包)
| 文件 |
行号 |
类型 |
名称 |
gjson/gjson.go |
35 |
const |
ModuleName |
gjson/gjson.go |
38 |
const |
Version |
说明:gjson 是项目中唯一的非 internal 子包,其导出的 ModuleName 和 Version 常量缺少文档注释。
二、internal 包中的缺失(按文件分组)
internal/benchmark/tools/tools.go
| 行号 |
类型 |
名称 |
| 13 |
const |
Size100B |
| 14 |
const |
Size1KB |
| 15 |
const |
Size10KB |
| 16 |
const |
Size100KB |
| 17 |
const |
Size1MB |
| 36 |
const |
ModeNormalResponse |
| 37 |
const |
ModeRandomResponse |
| 38 |
const |
ModeErrorResponse |
| 39 |
const |
ModeDelayedResponse |
internal/config/config.go
| 行号 |
类型 |
名称 |
| 33 |
const |
DefaultPprofPath |
| 44 |
const |
ServerModeSingle |
| 46 |
const |
ServerModeVHost |
| 48 |
const |
ServerModeMultiServer |
| 50 |
const |
ServerModeAuto |
internal/converter/nginx/converter.go
| 行号 |
类型 |
名称 |
| 28 |
method |
Warning.String |
internal/converter/nginx/parser.go
| 行号 |
类型 |
名称 |
| 31 |
method |
*ParseError.Error |
internal/e2e/testutil/constants.go
| 行号 |
类型 |
名称 |
| 18 |
const |
ContainerStartupTimeout |
| 21 |
const |
HealthCheckWaitTimeout |
| 24 |
const |
HealthCheckDetectionTime |
| 27 |
const |
CacheExpireBuffer |
| 30 |
const |
DefaultTestTimeout |
| 33 |
const |
DefaultClientTimeout |
| 36 |
const |
ConcurrentRequestTimeout |
| 39 |
const |
ShortTestTimeout |
| 42 |
const |
MediumTestTimeout |
| 48 |
const |
DefaultBackendCount |
| 51 |
const |
DefaultConcurrentRequests |
| 54 |
const |
HighConcurrentRequests |
| 57 |
const |
CacheTestMaxAge |
| 60 |
const |
CacheTestShortMaxAge |
| 66 |
const |
TLSVersion12 |
| 69 |
const |
TLSVersion13 |
internal/e2e/testutil/websocket.go
| 行号 |
类型 |
名称 |
| 41 |
func |
WithWSHeaders |
internal/lua/api_log.go
| 行号 |
类型 |
名称 |
| 29 |
const |
LogStderr |
| 30 |
const |
LogEmerg |
| 31 |
const |
LogAlert |
| 32 |
const |
LogCrit |
| 33 |
const |
LogErr |
| 34 |
const |
LogWarn |
| 35 |
const |
LogNotice |
| 36 |
const |
LogInfo |
| 37 |
const |
LogDebug |
| 42 |
const |
HTTPContinue |
| 43 |
const |
HTTPSwitchingProtocols |
| 44 |
const |
HTTPOK |
| 45 |
const |
HTTPCreated |
| 46 |
const |
HTTPAccepted |
| 47 |
const |
HTTPNoContent |
| 48 |
const |
HTTPPartialContent |
| 49 |
const |
HTTPMovedPermanently |
| 50 |
const |
HTTPFound |
| 51 |
const |
HTTPSeeOther |
| 52 |
const |
HTTPNotModified |
| 53 |
const |
HTTPTemporaryRedirect |
| 54 |
const |
HTTPPermanentRedirect |
| 55 |
const |
HTTPBadRequest |
| 56 |
const |
HTTPUnauthorized |
| 57 |
const |
HTTPForbidden |
| 58 |
const |
HTTPNotFound |
| 59 |
const |
HTTPMethodNotAllowed |
| 60 |
const |
HTTPRequestTimeout |
| 61 |
const |
HTTPConflict |
| 62 |
const |
HTTPGone |
| 63 |
const |
HTTPLengthRequired |
| 64 |
const |
HTTPPayloadTooLarge |
| 65 |
const |
HTTPURITooLong |
| 66 |
const |
HTTPUnsupportedMedia |
| 67 |
const |
HTTPRangeNotSatisfiable |
| 68 |
const |
HTTPTooManyRequests |
| 69 |
const |
HTTPInternalServerError |
| 70 |
const |
HTTPNotImplemented |
| 71 |
const |
HTTPBadGateway |
| 72 |
const |
HTTPServiceUnavailable |
| 73 |
const |
HTTPGatewayTimeout |
| 74 |
const |
HTTPHTTPVersionNotSupported |
internal/lua/api_req.go
| 行号 |
类型 |
名称 |
| 36 |
const |
APILayerDirect |
| 40 |
const |
APILayerCompatible |
| 44 |
const |
APILayerPseudoNonBlocking |
| 58 |
method |
ngxReqAPILayer.String |
internal/lua/cache.go
| 行号 |
类型 |
名称 |
| 38 |
const |
CacheKeyInline |
| 41 |
const |
CacheKeyFile |
internal/lua/coroutine.go
| 行号 |
类型 |
名称 |
| 35 |
const |
PhaseInit |
| 37 |
const |
PhaseRewrite |
| 39 |
const |
PhaseAccess |
| 41 |
const |
PhaseContent |
| 43 |
const |
PhaseLog |
| 45 |
const |
PhaseHeaderFilter |
| 47 |
const |
PhaseBodyFilter |
| 50 |
method |
Phase.String |
internal/lua/socket_manager.go
| 行号 |
类型 |
名称 |
| 36 |
const |
SocketStateIdle |
| 38 |
const |
SocketStateConnecting |
| 40 |
const |
SocketStateConnected |
| 42 |
const |
SocketStateSending |
| 44 |
const |
SocketStateReceiving |
| 46 |
const |
SocketStateClosing |
| 48 |
const |
SocketStateClosed |
| 50 |
const |
SocketStateError |
| 83 |
const |
OpConnect |
| 85 |
const |
OpSend |
| 87 |
const |
OpReceive |
| 89 |
const |
OpClose |
internal/matcher/location.go
| 行号 |
类型 |
名称 |
| 257 |
method |
*ConflictError.Error |
internal/matcher/matcher.go
| 行号 |
类型 |
名称 |
| 27 |
const |
LocationTypeExact |
| 28 |
const |
LocationTypePrefix |
| 29 |
const |
LocationTypePrefixPriority |
| 30 |
const |
LocationTypeRegex |
| 31 |
const |
LocationTypeRegexCaseless |
| 32 |
const |
LocationTypeNamed |
internal/middleware/compression/compression.go
| 行号 |
类型 |
名称 |
| 100 |
const |
AlgorithmGzip |
| 102 |
const |
AlgorithmBrotli |
internal/middleware/limitrate/limitrate.go
| 行号 |
类型 |
名称 |
| 15 |
const |
LargeFileStrategySkip |
| 17 |
const |
LargeFileStrategyCoarse |
internal/middleware/rewrite/rewrite.go
| 行号 |
类型 |
名称 |
| 41 |
const |
FlagLast |
| 44 |
const |
FlagRedirect |
| 47 |
const |
FlagPermanent |
| 50 |
const |
FlagBreak |
internal/middleware/security/access.go
| 行号 |
类型 |
名称 |
| 47 |
const |
ActionAllow |
| 49 |
const |
ActionDeny |
internal/middleware/security/auth.go
| 行号 |
类型 |
名称 |
| 52 |
const |
HashBcrypt |
| 54 |
const |
HashArgon2id |
internal/resolver/resolver.go
| 行号 |
类型 |
名称 |
| 446 |
method |
*noopResolver.LookupHost |
| 450 |
method |
*noopResolver.LookupHostWithCache |
| 454 |
method |
*noopResolver.Refresh |
| 458 |
method |
*noopResolver.Start |
| 462 |
method |
*noopResolver.Stop |
| 466 |
method |
*noopResolver.Stats |
internal/ssl/client_verify.go
| 行号 |
类型 |
名称 |
| 33 |
const |
VerifyOff |
| 35 |
const |
VerifyOn |
| 37 |
const |
VerifyOptional |
| 39 |
const |
VerifyOptionalNoCA |
internal/stream/stream.go
| 行号 |
类型 |
名称 |
| 82 |
method |
*roundRobin.Select |
| 171 |
method |
*weightedRoundRobin.Select |
| 244 |
method |
*ipHash.Select |
| 248 |
method |
*ipHash.SelectByIP |
internal/utils/httperror.go
| 行号 |
类型 |
名称 |
| 26 |
var |
ErrNotFound |
| 27 |
var |
ErrForbidden |
| 28 |
var |
ErrUnauthorized |
| 29 |
var |
ErrBadGateway |
| 30 |
var |
ErrGatewayTimeout |
| 31 |
var |
ErrInternalError |
| 32 |
var |
ErrTooManyRequests |
| 33 |
var |
ErrServiceUnavailable |
internal/variable/builtin.go
| 行号 |
类型 |
名称 |
| 19 |
const |
VarHost |
| 20 |
const |
VarRemoteAddr |
| 21 |
const |
VarRemotePort |
| 22 |
const |
VarRequestURI |
| 23 |
const |
VarURI |
| 24 |
const |
VarArgs |
| 25 |
const |
VarRequestMethod |
| 26 |
const |
VarScheme |
| 27 |
const |
VarServerName |
| 28 |
const |
VarServerPort |
| 29 |
const |
VarStatus |
| 30 |
const |
VarBodyBytesSent |
| 31 |
const |
VarRequestTime |
| 32 |
const |
VarTimeLocal |
| 33 |
const |
VarTimeISO8601 |
| 34 |
const |
VarRequestID |
| 36 |
const |
VarUpstreamAddr |
| 37 |
const |
VarUpstreamStatus |
| 38 |
const |
VarUpstreamResponseTime |
| 39 |
const |
VarUpstreamConnectTime |
| 40 |
const |
VarUpstreamHeaderTime |
internal/variable/ssl.go
| 行号 |
类型 |
名称 |
| 24 |
const |
VarSSLClientVerify |
| 25 |
const |
VarSSLClientSerial |
| 26 |
const |
VarSSLClientSubject |
| 27 |
const |
VarSSLClientIssuer |
| 28 |
const |
VarSSLClientFingerprint |
| 29 |
const |
VarSSLClientNotBefore |
| 30 |
const |
VarSSLClientNotAfter |
| 31 |
const |
VarSSLClientDNS |
| 32 |
const |
VarSSLClientEmail |
internal/version/version.go
| 行号 |
类型 |
名称 |
| 9 |
var |
Version |
| 11 |
var |
GitCommit |
| 13 |
var |
GitBranch |
| 15 |
var |
BuildTime |
| 17 |
var |
GoVersion |
| 19 |
var |
BuildPlatform |
统计汇总
| 类别 |
数量 |
| 公共 API(非 internal) |
2 |
| internal 常量 |
134 |
| internal 变量 |
14 |
| internal 方法 |
14 |
| internal 函数 |
1 |
| 总计 |
180 |
检测规则:导出的标识符(首字母大写)必须紧跟以该标识符名称开头的 // 文档注释,才被视为已文档化。_test.go 和 vendor 目录已排除。