国产av一二三区|日本不卡动作网站|黄色天天久久影片|99草成人免费在线视频|AV三级片成人电影在线|成年人aV不卡免费播放|日韩无码成人一级片视频|人人看人人玩开心色AV|人妻系列在线观看|亚洲av无码一区二区三区在线播放

網(wǎng)易首頁(yè) > 網(wǎng)易號(hào) > 正文 申請(qǐng)入駐

第一批拿到ClaudeCode全部源碼的狠人解讀來(lái)了!Anthropic有多處代碼都是技術(shù)債!...

0
分享至

來(lái)源:市場(chǎng)資訊

(來(lái)源:51CTO技術(shù)棧)


編輯 | 云昭

// screens/REPL.tsx — lines 96-120 (trimmed for readability)// Dead code elimination: conditional importsconst useVoiceIntegration = feature('VOICE_MODE')? require('../hooks/useVoiceIntegration.js').useVoiceIntegration: () => ({ ... });const useFrustrationDetection = "external" === 'ant'? require('../components/FeedbackSurvey/useFrustrationDetection.js'): () => ({ state: 'closed', handleTranscriptSelect: () => {} });const useAntOrgWarningNotification = "external" === 'ant'? require('../hooks/notifs/useAntOrgWarningNotification.js'): () => {};// ... 200 more lines of imports

ABLATION_BASELINE, AGENT_MEMORY_SNAPSHOT, AGENT_TRIGGERS,AGENT_TRIGGERS_REMOTE, ALLOW_TEST_VERSIONS, ANTI_DISTILLATION_CC,AUTO_THEME, AWAY_SUMMARY, BASH_CLASSIFIER, BG_SESSIONS,BREAK_CACHE_COMMAND, BRIDGE_MODE, BUDDY, BUILDING_CLAUDE_APPS,BUILTIN_EXPLORE_PLAN_AGENTS, BYOC_ENVIRONMENT_RUNNER,CACHED_MICROCOMPACT, CCR_AUTO_CONNECT, CCR_MIRROR, CCR_REMOTE_SETUP,CHICAGO_MCP, COMMIT_ATTRIBUTION, COMPACTION_REMINDERS,CONNECTOR_TEXT, CONTEXT_COLLAPSE, COORDINATOR_MODE,COWORKER_TYPE_TELEMETRY, DAEMON, DIRECT_CONNECT,DOWNLOAD_USER_SETTINGS, DUMP_SYSTEM_PROMPT, ENHANCED_TELEMETRY_BETA,EXPERIMENTAL_SKILL_SEARCH, EXTRACT_MEMORIES, FILE_PERSISTENCE,FORK_SUBAGENT, HARD_FAIL, HISTORY_PICKER, HISTORY_SNIP,HOOK_PROMPTS, IS_LIBC_GLIBC, IS_LIBC_MUSL, KAIROS, KAIROS_BRIEF,KAIROS_CHANNELS, KAIROS_DREAM, KAIROS_GITHUB_WEBHOOKS,KAIROS_PUSH_NOTIFICATION, LODESTONE, MCP_RICH_OUTPUT, MCP_SKILLS,MEMORY_SHAPE_TELEMETRY, MESSAGE_ACTIONS, MONITOR_TOOL,NATIVE_CLIENT_ATTESTATION, NATIVE_CLIPBOARD_IMAGE, NEW_INIT,OVERFLOW_TEST_TOOL, PERFETTO_TRACING, POWERSHELL_AUTO_MODE,PROACTIVE, PROMPT_CACHE_BREAK_DETECTION, QUICK_SEARCH,REACTIVE_COMPACT, REVIEW_ARTIFACT, RUN_SKILL_GENERATOR,SELF_HOSTED_RUNNER, SHOT_STATS, SKILL_IMPROVEMENT,SLOW_OPERATION_LOGGING, SSH_REMOTE, STREAMLINED_OUTPUT, TEAMMEM,TEMPLATES, TERMINAL_PANEL, TOKEN_BUDGET, TORCH,TRANSCRIPT_CLASSIFIER, TREE_SITTER_BASH, TREE_SITTER_BASH_SHADOW,UDS_INBOX, ULTRAPLAN, ULTRATHINK, UNATTENDED_RETRY,UPLOAD_USER_SETTINGS, VERIFICATION_AGENT, VOICE_MODE,WEB_BROWSER_TOOL, WORKFLOW_SCRIPTS

ANTHROPIC_API_KEY, ANTHROPIC_AUTH_TOKEN, ANTHROPIC_BASE_URL,ANTHROPIC_BEDROCK_BASE_URL, ANTHROPIC_BETAS, ANTHROPIC_CUSTOM_HEADERS,ANTHROPIC_CUSTOM_MODEL_OPTION, ANTHROPIC_DEFAULT_HAIKU_MODEL,ANTHROPIC_DEFAULT_OPUS_MODEL, ANTHROPIC_DEFAULT_SONNET_MODEL,ANTHROPIC_FOUNDRY_API_KEY, ANTHROPIC_FOUNDRY_BASE_URL,ANTHROPIC_MODEL, CLAUDE_CODE_COORDINATOR_MODE, ...// 458+ more

// types/permissions.ts// Pure permission type definitions extracted to break import cycles.// to avoid circular dependencies.// schemas/hooks.ts// Hook Zod schemas extracted to break import cycles.// circular dependency between settings/types.ts and plugins/schemas.ts.// tasks.ts// Note: Returns array inline to avoid circular dependency issues// with top-level const// utils/systemPrompt.ts// Use inline env check instead of coordinatorModule to avoid circular// Lazy require to avoid circular dependency at module load time// utils/bash/ast.ts (line 2218)// circular import with bashPermissions.ts.

logEvent('tengu_startup_telemetry', {entrypoint: entrypoint as AnalyticsMetadata_I_VERIFIED_THIS_IS_NOT_CODE_OR_FILEPATHS,action: 'hint_converted' as AnalyticsMetadata_I_VERIFIED_THIS_IS_NOT_CODE_OR_FILEPATHS,variant: idleHintShownRef.current as AnalyticsMetadata_I_VERIFIED_THIS_IS_NOT_CODE_OR_FILEPATHS,

// instead of this (what they do):logEvent('name', {key: value as AnalyticsMetadata_I_VERIFIED_THIS_IS_NOT_CODE_OR_FILEPATHS,// something like this:logSafeEvent('name', {key: SafeMetadata.from(value)  // throws if value looks like a path/code

// buddy/types.ts// One species name collides with a model-codename canary in// excluded-strings.txt. The check greps build output (not source),// so runtime-constructing the value keeps the literal out of the// bundle while the check stays armed for the actual codename.// All species encoded uniformly.const c = String.fromCharCodeexportconst duck = c(0x64,0x75,0x63,0x6b) as'duck'exportconst goose = c(0x67,0x6f,0x6f,0x73,0x65) as'goose'exportconst blob = c(0x62,0x6c,0x6f,0x62) as'blob'exportconst cat = c(0x63,0x61,0x74) as'cat'exportconst dragon = c(0x64,0x72,0x61,0x67,0x6f,0x6e) as'dragon'exportconst octopus = c(0x6f,0x63,0x74,0x6f,0x70,0x75,0x73) as'octopus'exportconst owl = c(0x6f,0x77,0x6c) as'owl'exportconst penguin = c(0x70,0x65,0x6e,0x67,0x75,0x69,0x6e) as'penguin'// ... 10 more species, all hex-encoded

Anthropic 的工程師,居然在一個(gè)終端 AI 編程工具里,花時(shí)間做了一個(gè)“程序生成的寵物系統(tǒng)”,還帶稀有度分級(jí)(從 common 到 legendary)、命名物種、帽子、眼睛樣式、屬性分布……這件事本身還挺迷人的。

6. main.tsx:一個(gè) 4,683 行的入口文件

main.tsx 是 CLI 的入口文件,長(zhǎng)度 4,683 行,里面包含:

  • 所有 CLI 命令定義(claude、init、config、mcp、doctor 等)

  • 使用 Commander.js 做的全部參數(shù)解析

  • 完整的 OAuth 登錄流程

  • session 恢復(fù)邏輯

  • 遠(yuǎn)程 session 管理

  • 啟動(dòng)性能基準(zhǔn)測(cè)試

  • 插件加載

  • MDM(移動(dòng)設(shè)備管理)配置

代碼注釋也解釋了為什么這么設(shè)計(jì):

// main.tsx — lines 1-8// These side-effects must run before all other imports:// 1. profileCheckpoint marks entry before heavy module evaluation begins// 2. startMdmRawRead fires MDM subprocesses in parallel with the//    remaining ~135ms of imports below// 3. startKeychainPrefetch fires both macOS keychain reads in parallel//    (~65ms on every macOS startup)

也就是說(shuō),這是一種“刻意為之”的架構(gòu):把所有東西放在一個(gè)文件里,減少 import 樹(shù)的深度。

因?yàn)?Bun 是 eager 執(zhí)行 import 的。import 層級(jí)越深,啟動(dòng)延遲越高。把邏輯集中在 main.tsx,就可以把導(dǎo)入層級(jí)控制在一層,而不是三四層。

為什么我覺(jué)得這是一個(gè)有問(wèn)題的權(quán)衡:

他們?yōu)榱斯?jié)省大約 135ms 的啟動(dòng)時(shí)間,讓入口文件變得幾乎不可讀。其實(shí)可以用懶加載的命令注冊(cè)機(jī)制達(dá)到類似效果——只有在用戶執(zhí)行 claude init 時(shí),才加載 init 模塊;只有在需要認(rèn)證時(shí),才加載 OAuth。

這也是大多數(shù) CLI 工具的常規(guī)做法(比如 oclif、yargs 的 command modules,甚至 Commander 的子命令拆文件)。

反方觀點(diǎn)(而且是合理的)是:Bun 的模塊加載機(jī)制可能有一些 Node 沒(méi)有的“坑”,懶加載不一定穩(wěn)定。而對(duì)于一個(gè)被頻繁調(diào)用的工具來(lái)說(shuō),135ms 可能確實(shí)很關(guān)鍵。

我個(gè)人對(duì) Bun 的使用還不夠深入,不確定這是不是唯一能保證啟動(dòng)速度的方案,但我懷疑是有替代路徑的。

7. 條件 require 模式

這是第 2 點(diǎn)和第 6 點(diǎn)的自然結(jié)果。在整個(gè)代碼庫(kù)里,尤其是 REPL.tsx 和 query.ts 中,你會(huì)反復(fù)看到類似這樣的代碼:

// query.ts — lines 15-22const reactiveCompact = feature('REACTIVE_COMPACT')? (require('./services/compact/reactiveCompact.js')as typeof import('./services/compact/reactiveCompact.js')): nullconst contextCollapse = feature('CONTEXT_COLLAPSE')? (require('./services/contextCollapse/index.js')as typeof import('./services/contextCollapse/index.js')): null

本質(zhì)上,這是在 ES module 里用 require(),再包一層編譯期的 feature 判斷,然后用 as typeof import(...) 把類型“補(bǔ)回來(lái)”。

之所以這么做,是因?yàn)椋?/p>

  • import

    會(huì)被提升,并且在模塊加載時(shí)一定執(zhí)行

  • feature()

    需要徹底阻止 import,才能讓死代碼消除生效

  • 在模塊體內(nèi),只有 require() 可以做條件加載

  • 但 require() 會(huì)丟失類型信息,所以要用類型斷言補(bǔ)回

為什么這很重要:

這里每一處都是類型系統(tǒng)的“漏洞”。as typeof import(...) 實(shí)際上是在告訴 TypeScript:“相信我,這個(gè)類型是對(duì)的。”一旦 reactiveCompact.js 的導(dǎo)出結(jié)構(gòu)發(fā)生變化,這個(gè)斷言不會(huì)報(bào)編譯錯(cuò)誤,只會(huì)在運(yùn)行時(shí)炸。

有哪些替代方案:

import()(動(dòng)態(tài)導(dǎo)入)可以返回 Promise,并且保留類型信息。雖然寫(xiě)起來(lái)稍微麻煩一點(diǎn)(需要 await),但這是現(xiàn)代 JavaScript 里做條件模塊加載的標(biāo)準(zhǔn)方式。而 Bun 也是支持的。

這些問(wèn)題背后的共同模式

如果把視角拉高一點(diǎn)來(lái)看,這些問(wèn)題大多來(lái)自同一個(gè)根本原因:Claude Code 的演進(jìn)速度,超過(guò)了它架構(gòu)能夠承載的節(jié)奏。

你可以清楚地看到一層層“歷史沉積”。一個(gè)簡(jiǎn)單的終端 REPL,逐漸長(zhǎng)成了一個(gè)多 Agent 協(xié)調(diào)系統(tǒng),疊加了語(yǔ)音模式、寵物系統(tǒng)、Vim 綁定、遠(yuǎn)程會(huì)話等功能。新功能通過(guò) feature flag 不斷加進(jìn)去,但舊的 flag 卻沒(méi)有被及時(shí)清理。模塊之間的依賴關(guān)系擴(kuò)展得越來(lái)越快,卻很少有人真正去重新劃定邊界。

這并不是 Anthropic 獨(dú)有的問(wèn)題。幾乎所有高速發(fā)展的公司,代碼庫(kù)都會(huì)變成這樣。Claude Code 有意思的地方在于它的規(guī)?!@是當(dāng)下最重要的 AI 產(chǎn)品之一,而它的源碼,暴露出的卻是和每一家創(chuàng)業(yè)公司一樣的工程現(xiàn)實(shí):混亂、權(quán)衡、妥協(xié)。

代碼是能跑的,而且跑得很好。每天都有大量開(kāi)發(fā)者依賴它。這一點(diǎn),比“架構(gòu)是否優(yōu)雅”更重要。但這些代價(jià),依然值得被正視。

特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相關(guān)推薦
熱點(diǎn)推薦
杜月笙的手段有多毒辣?得知小妾對(duì)他不忠,他的處理方式讓人害怕

杜月笙的手段有多毒辣?得知小妾對(duì)他不忠,他的處理方式讓人害怕

千秋文化
2026-03-27 20:20:26
國(guó)民黨記者會(huì)現(xiàn)場(chǎng)冷場(chǎng),尹乃菁三句話把全場(chǎng)問(wèn)懵了,沒(méi)人敢再搶話

國(guó)民黨記者會(huì)現(xiàn)場(chǎng)冷場(chǎng),尹乃菁三句話把全場(chǎng)問(wèn)懵了,沒(méi)人敢再搶話

達(dá)文西看世界
2026-04-01 14:44:18
隨著山東贏9分!遼寧贏12分!北控3分絕殺,北京輸15分,排名大變

隨著山東贏9分!遼寧贏12分!北控3分絕殺,北京輸15分,排名大變

老吳說(shuō)體育
2026-04-01 21:51:10
文胸外穿,內(nèi)衣大佬“豁出去”了?

文胸外穿,內(nèi)衣大佬“豁出去”了?

有意思報(bào)告
2026-04-01 14:12:10
特朗普通告全球:取消對(duì)伊朗軍事行動(dòng),5萬(wàn)億費(fèi)用22國(guó)共擔(dān)

特朗普通告全球:取消對(duì)伊朗軍事行動(dòng),5萬(wàn)億費(fèi)用22國(guó)共擔(dān)

顯微鏡下看世界
2026-04-01 13:44:13
46歲海歸要188萬(wàn)彩禮,要求男人雇3個(gè)保姆伺候她,在北上廣有別墅

46歲海歸要188萬(wàn)彩禮,要求男人雇3個(gè)保姆伺候她,在北上廣有別墅

就一點(diǎn)
2026-03-30 22:37:28
德黑蘭傳出巨大爆炸聲

德黑蘭傳出巨大爆炸聲

新華社
2026-04-01 10:58:05
A股,大漲的原因找到了,周四,或?qū)⒂瓉?lái)大變盤(pán)!

A股,大漲的原因找到了,周四,或?qū)⒂瓉?lái)大變盤(pán)!

另子維愛(ài)讀史
2026-04-01 19:05:09
劉大錘曝光張凌赫舊照:沒(méi)紅時(shí)氣質(zhì)很素,身邊卻始終是白鹿

劉大錘曝光張凌赫舊照:沒(méi)紅時(shí)氣質(zhì)很素,身邊卻始終是白鹿

東方不敗然多多
2026-04-01 00:38:08
陶喆再一次證明,娶妻要娶年輕的,即使你老了,她還美得心曠神怡

陶喆再一次證明,娶妻要娶年輕的,即使你老了,她還美得心曠神怡

許三歲
2026-03-16 10:18:04
斯皮:我已為國(guó)家隊(duì)效力九年了,卻至今沒(méi)能參加過(guò)一屆世界杯

斯皮:我已為國(guó)家隊(duì)效力九年了,卻至今沒(méi)能參加過(guò)一屆世界杯

懂球帝
2026-04-01 10:39:40
劉強(qiáng)東震怒!京東副總裁被離職

劉強(qiáng)東震怒!京東副總裁被離職

南財(cái)社V
2026-04-01 12:08:32
澳門(mén)世界杯:男單16強(qiáng)誕生!國(guó)乒2勝3負(fù)遭重創(chuàng),日法德各3人晉級(jí)

澳門(mén)世界杯:男單16強(qiáng)誕生!國(guó)乒2勝3負(fù)遭重創(chuàng),日法德各3人晉級(jí)

全言作品
2026-04-01 22:59:02
催人淚下!張雪峰老師剛走,高中試卷閱讀題上已出現(xiàn)關(guān)于他的試題

催人淚下!張雪峰老師剛走,高中試卷閱讀題上已出現(xiàn)關(guān)于他的試題

火山詩(shī)話
2026-04-01 16:35:39
不打伊朗了?特朗普通告全世界,戰(zhàn)爭(zhēng)費(fèi)由22國(guó)承擔(dān),朝鮮發(fā)出警告

不打伊朗了?特朗普通告全世界,戰(zhàn)爭(zhēng)費(fèi)由22國(guó)承擔(dān),朝鮮發(fā)出警告

聊歷史的阿稼
2026-04-01 09:54:30
39歲張雪一夜成名,資產(chǎn)引關(guān)注,細(xì)看身家和商業(yè)版圖,太猛了

39歲張雪一夜成名,資產(chǎn)引關(guān)注,細(xì)看身家和商業(yè)版圖,太猛了

削桐作琴
2026-04-01 16:20:35
4800萬(wàn)元,淮安一酒店大樓將被拍賣!

4800萬(wàn)元,淮安一酒店大樓將被拍賣!

微淮安
2026-04-01 19:53:59
小米殺入外賣行業(yè),招招是陽(yáng)謀,刀刀要美團(tuán)的命

小米殺入外賣行業(yè),招招是陽(yáng)謀,刀刀要美團(tuán)的命

歪歌社團(tuán)
2026-04-01 04:01:41
央視曝光、首富被查、中辦點(diǎn)名!針對(duì)“虛假政績(jī)”的清算風(fēng)暴來(lái)了

央視曝光、首富被查、中辦點(diǎn)名!針對(duì)“虛假政績(jī)”的清算風(fēng)暴來(lái)了

離離言幾許
2026-04-01 14:53:16
定了!廣東一高速,將停止收費(fèi)!

定了!廣東一高速,將停止收費(fèi)!

珠海發(fā)布
2026-04-01 17:08:16
2026-04-01 23:48:49
新浪財(cái)經(jīng) incentive-icons
新浪財(cái)經(jīng)
新浪財(cái)經(jīng)是一家創(chuàng)建于1999年8月的財(cái)經(jīng)平臺(tái)
2723771文章數(shù) 6326關(guān)注度
往期回顧 全部

科技要聞

甲骨文血洗3萬(wàn)人,47人團(tuán)隊(duì)僅留3人

頭條要聞

小伙掃共享單車上的碼虧一套房首付 一夜白頭自扇巴掌

頭條要聞

小伙掃共享單車上的碼虧一套房首付 一夜白頭自扇巴掌

體育要聞

NBA擴(kuò)軍,和籃球無(wú)關(guān)?

娛樂(lè)要聞

張婉婷已決定離婚 找律師討論婚變事宜

財(cái)經(jīng)要聞

電商售械三水光針 機(jī)構(gòu)倒貨or假貨猖獗?

汽車要聞

三電可靠 用料下本 百萬(wàn)公里的蔚來(lái)ES6 拆開(kāi)看

態(tài)度原創(chuàng)

家居
數(shù)碼
親子
健康
藝術(shù)

家居要聞

經(jīng)典配色 晝色銀河

數(shù)碼要聞

小米推出米家熨燙機(jī)2,509元

親子要聞

文化是有了,但不多……

干細(xì)胞抗衰4大誤區(qū),90%的人都中招

藝術(shù)要聞

Alexandra Manukyan油畫(huà)選刊(二)

無(wú)障礙瀏覽 進(jìn)入關(guān)懷版