array(5) { ["chapterid"]=> string(8) "49247951" ["articleid"]=> string(7) "7279460" ["chaptername"]=> string(7) "第4章" ["content"]=> string(13621) "陈序摔进新手编译区的时候,安全感没有来。

先来的,是一片乱喊。

“关门!”

“Null 源跟进来了!”

“别碰他,他身上有污染!”

白光在身后炸开,城门像一扇巨大的网关,轰然合拢。数十只透明利爪撞在门外,发出密密麻麻的闷响,像有人用指甲刮服务器机柜。

陈序趴在地上,后背冷得发紧。

刚才最后那一下,利爪确实碰到他了。

他能感觉到,后背像被扯走了一小片东西。不是肉,不是血,而是一段很细的“自己”。就像你明明记得自己要说什么,可话到嘴边,某个词突然消失了。

他撑着地爬起来。

第一件事,摸胸前源码铭牌。

还在。

Name:ChenXu

Type:Java Adapter

Status:Activated

很好。

至少名字还在。

陈序刚松一口气,周围的人群已经往后退了一圈。

他们看他的眼神很复杂。

有警惕。

有好奇。

还有一点像看故障机器的嫌弃。

这里是一个巨大的广场。地面由一块块发光方格组成,像放大后的电路板。广场边缘竖着半透明屏障,屏障外还能看见刚才那些 Null 源利爪在黑暗里游动。

天空依旧低垂。

深蓝色的编译进度条悬在上方。

Compiling world... 99%

广场中央有一座钟楼。

钟楼没有表盘,只有一圈圈转动的代码环。每转一圈,就有细碎的系统提示音从空中落下。

这里确实像安全区。

但只是“像”。

四周的人都很狼狈。有人衣服上沾着红色异常栈,有人手臂半透明,像还没完全加载出来。还有几个人坐在角落里,身后拖着断断续续的引用线,脸色白得吓人。

他们不是来旅游的。

他们也是被什么东西拖进来的。

“检测到语言适配。”

一道机械声从广场上方响起。

陈序胸前源码铭牌再次亮起。

Type:Java Adapter

短暂的安静之后,人群里有人低声说了一句。

“Java?”

那声音里有惊讶,也有一点毫不掩饰的嫌弃。

“现在还有人觉醒这么重的东西?”

陈序抬头看过去。

说话的人靠在一根断掉的代码柱旁,二十来岁,头发有点乱,眼神很亮,整个人懒洋洋的,像刚睡醒。可他手指间缠着几道银色光流,细得像线,却转得很快。

每转一下,附近的异常碎片就被切成细小的数据点。

那人冲陈序笑了一下。

“不好意思,我不是针对你。”

他顿了顿。

“我是针对 Java。”

周围有人笑出声。

笑声不大。

但陈序听见了。

他低头看了看自己快碎掉的盾牌,又看了看那人手里的银色光流。

如果是在现实公司,他多半会回一句:脚本跑得快,线上背锅的时候也别跑。

但这里不是公司。

他刚被一群 Null 源追着跑进来,盾牌半碎,对象创建次数也快见底。

这时候嘴硬没用。

他先问:“这里是哪?”

那人挑了下眉。

“新手编译区。”

“我是说,具体点。”

“具体点?”

那人看了看他,像是觉得这个问题有点好笑。

“你从哪儿掉进来的?”

“办公室。”

周围笑声停了一下。

陈序补充:“凌晨两点,生产事故。”

这下有几个人的表情变了。

一个戴着黑框眼镜的青年小声嘀咕:“又是现实侧拖进来的?”

另一个人皱眉:“最近同步污染越来越多了。”

陈序捕捉到“同步污染”四个字。

他还想追问,城门外忽然传来一阵重响。

砰!

透明屏障闪了一下。

门外的 Null 源群像闻到血一样同时贴上来。无数利爪在屏障外游动,寻找缝隙。它们没有脸,却让人能感觉到它们在“看”。

广场上刚放松一点的人群立刻紧张起来。

“又来了!”

“屏障还能撑多久?”

“别慌,小怪而已。”

说话的是那个银色光流青年。

他从代码柱旁直起身,懒洋洋地打了个哈欠。

“能三行解决,别写三十行。”

他抬手。

三行银色字符在他指尖一闪而过。

陈序只看清一个开头。

for x in...

下一秒,银色脚本流像数百根细针,从他身边飞出,穿过屏障缝隙,精准刺向外面的 Null 源群。

噗噗噗噗噗。

一连串极轻的爆裂声响起。

十几只刚贴上来的透明利爪被银光切碎,化成红色异常点,散落在屏障外。

广场上有人吹了声口哨。

“裴森,还是你快。”

银色光流青年摆摆手。

“别夸,样本太少,对强一点的没用。”

陈序记住了这个名字。

裴森。

Python。

速度很快,出手很轻。

和 Java 完全不是一个路子。

裴森收回手指,冲陈序扬了扬下巴。

“看见没?这种低级异常,快处理就行。你们 Java 那套先定义类、再 new 对象、再搞一堆结构,等你写完,怪都进城了。”

陈序还没说话,旁边又有人接了一句。

“Java 也不是不能用。”

声音从另一侧传来。

陈序转头。

那是一个扎着低马尾的女生,身边漂浮着几片彩色的视图碎片。碎片像透明屏幕,一会儿映出城门,一会儿映出屏障外的 Null 源,一会儿又变成整个广场的俯视图。

她的眼睛很亮,像随时在观察界面变化。

“就是太重。”

她说得很认真。

“启动慢,动作慢,前摇长,不适合新手区这种快节奏异常潮。”

裴森笑了。

“余未,你这叫补刀。”

“我这是客观描述。”

余未抬手,几片视图碎片同时展开。

城门外的画面被切成三个视角:正面、侧面、俯视。那些藏在屏障阴影里的透明利爪被标成淡红色轮廓。

“别只看正面,侧面还有三个。”

裴森一愣。

“哪儿?”

余未屈指一点。

三个淡红轮廓瞬间放大。

裴森“啧”了一声。

“行,前端有时候还是有点用。”

“是视图层。”

余未纠正。

“不是有时候。”

她指尖轻轻一滑。

广场上方的画面突然变化。原本空荡荡的城门口,多出数十个奔跑的人影。那些影子叫喊、摔倒、四散奔逃,连衣角抖动都像真的。

城门外,剩下的 Null 源果然被吸引,利爪纷纷转向虚影。

陈序看着这一幕,眼神动了一下。

原来不是把怪物藏起来。

是让怪物看见它以为该看的东西。

裴森趁机再次抬手。

银色脚本流第二次飞出,把被诱开的 Null 源切成碎片。

广场上响起一阵短促的欢呼。

“漂亮!”

“这波稳了。”

“Python 快,前端骗,绝配。”

裴森冲余未打了个响指。

余未没理他。

陈序站在人群边缘,看着屏障外渐渐散去的异常点,没有说话。

这两个人确实很强。

至少在这种小规模、快节奏、目标明确的场景里,很强。

一个快。

一个会骗视图。

而他呢?

半碎的盾牌。

几把死得很快的椅子。

还有一个被人嫌弃“太重”的 Java Adapter。

裴森走过来,绕着陈序看了一圈。

“你刚才从外面跑进来的?”

“嗯。”

“一个人?”

“嗯。”

“外面那片 Null 源群没把你撕了?”

“差一点。”

裴森看向他手里的金色盾牌。

盾牌已经裂得很明显,边缘不断掉下金色光屑。

“你靠这个挡进来的?”

“还有椅子。”

裴森愣了一下。

“什么?”

陈序面无表情。

“办公椅。”

短暂安静。

然后裴森笑出了声。

“你用办公椅从 Null 源群里跑出来?”

余未也看了过来。

陈序不太想解释这个战术。

因为听起来确实很蠢。

但它有效。

他说:“椅子有结构,有引用,能短暂搭接断裂路由。”

裴森的笑声停住了。

“等等。”

他看着陈序,眼神第一次认真了一点。

“你说你用一个临时对象,搭了路由?”

陈序点头。

“只维持了一秒。”

“那也不是普通新手能干的事。”

裴森脸上的笑意慢慢收了。

他刚才嫌 Java 重,是因为见过太多人一上来就摆架子、搭大结构,怪还没打完,自己先过载。

但陈序刚才不是摆架子。

他是在现场读路由,用一个最破的对象补了一秒断点。

慢。

但不是笨。

余未身边的视图碎片轻轻闪了一下。

她调出一段模糊画面。

那似乎是城门外的记录。画面里,金色办公椅横在断裂接口线中间,四个轮子伸出短暂引用线,像一座极其简陋但有效的小桥。

余未看了几秒。

“他的对象很弱。”

裴森接话:“但用途不固定。”

余未点头。

“不是模板技能,像现场构造。”

这句话落下,周围那些笑声少了很多。

陈序听着他们的对话,没插嘴。

他注意到一个细节。

他们不是单纯看不起 Java。

他们是见过某种“普通 Java”。

而自己和他们印象里的普通 Java,不太一样。

这时,广场上方忽然响起新的广播。

警告

外层世界不稳定。

RealityService 重试失败。

污染等级上升。

欢呼声戛然而止。

所有人都抬头看向天空。

深蓝色天幕上,那条编译进度条依旧卡在 99%。

但这一次,进度条右侧多了一小块红色。

像伤口。

陈序胸前源码铭牌发烫。

Missing dependency:ChenXu

裴森看见了那行字。

“你到底是什么情况?”

陈序看着铭牌。

“我也想知道。”

话音刚落,城门外已经散去的异常点忽然重新聚合。

不是普通聚合。

那些碎掉的红色异常点像被什么东西强行拽回去,一点点拼成新的形状。

更大。

更黑。

更稳定。

余未脸色微变。

“视图诱导失效。”

裴森抬手,银色脚本流再次飞出。

这一次,脚本流刚碰到那团黑影,就被吞掉了一半。

裴森骂了一声。

“不对,这不是刚才那种小怪。”

黑影贴上屏障。

屏障上浮出一行错误。

NullPointerException

source: unknown

level: rising

陈序握紧半碎的盾牌。

他认出来了。

不是刚才那只空指针幽灵。

但气息很像。

像同一种异常的子实例。

广场上的新人开始后退。

有人喊:“屏障要裂了!”

裴森皱眉。

“余未,能骗开吗?”

余未身边的视图碎片快速闪动。

“不行,它不看视图层。”

“那我扫核心。”

“你找得到核心?”

“找不到也得扫。”

两人说话很快。

但陈序听懂了。

视图诱导无效。

脚本清扫效果有限。

敌人开始升级。

他低头看向自己半碎的盾牌。

现在轮到他了吗?

不。

还不够。

他很清楚,自己现在的 new Shield() 太弱。强行上去,大概率就是再碎一块盾。

但这不是必须靠他硬挡的问题。

他看向屏障上的错误。

source: unknown

源头未知。

这才是问题。

陈序忽然开口。

“别急着打。”

裴森回头。

“都贴脸了,你让我别急?”

陈序盯着屏障上的错误。

“先看它从哪儿来的。”

裴森愣了一下。

余未也看向他。

陈序走到屏障前,抬手按在那行错误旁边。

金色字符从他指尖渗出。

不是攻击。

更像是沿着异常栈往回摸。

屏障上的错误被一点点拉长,露出后面半截被隐藏的调用路径。

NullPointerException

source: unknown

trace: /compile/gate/null-source/...

路径到这里断了。

但陈序看见了一点东西。

那不是普通 Null 源群。

它是从城门网关附近被重新唤起的。

有人或者某个服务,正在把碎掉的异常重新拼回去。

“它不是自然刷新的。”

陈序说。

裴森脸上的懒散消失了。

“什么意思?”

陈序看着那团黑影。

“有人在重试。”

话音刚落,屏障外的黑影猛地撞了上来。

咔。

透明屏障裂开一道细缝。

冷风灌进来。

裂缝后面,那团黑影像闻到了陈序的味道,所有利爪同时转向他。

源码铭牌滚烫。

RealityService 重试失败。

Missing dependency located.

广场上所有人都看见了这行字。

裴森看着陈序,低声说:“兄弟,你好像不是误入新手区。”

余未接了一句。

“他是被定位进来的。”

陈序没有回答。

因为屏障已经裂开第二道缝。

那团黑影伸出第一只透明利爪,越过新手编译区的防线,直接指向他的胸口。

周围有人后退。

有人喊他躲开。

也有人小声骂了一句:

“我就说 Java 太重,会把大东西引进来。”

陈序听见了。

这次,他抬起头。

没有反驳。

也没有解释。

他只是看着那只即将刺进来的利爪,抬起了那面快要碎掉的金色盾牌。

盾面浮出最后一行提示。

capacity:1%

城门广播变成刺耳红色警报。

Java Adapter locked as primary target.

Gate shield breaking.

裴森脸色变了。

余未身边的所有视图碎片同时红屏。

陈序往前站了一步。

“重不重,等它砸下来再说。”

利爪刺入屏障。

广场警报骤然变红。

这一次,所有人的目光都落在了他身上。" ["create_time"]=> string(10) "1785508762" }