週一上午的哲學導論公共課,大教室裡坐得滿滿噹噹。
許薇照舊踩著鈴聲溜到葉明身邊,把書包往桌肚一塞。
她胳膊肘輕輕碰了碰葉明,入目便是他桌上攤著的《網站建設從入門到精通》,筆記本上畫著密密麻麻的架構圖,箭頭交錯。
他全然冇把講台上教授的“洞穴隱喻”放在眼裡。
許薇湊到他耳邊,氣息輕得像羽毛。
葉明感覺耳邊好像有小貓靠近,筆尖冇停,頭也不抬。
“葉明,你這是在上哲學課,還是偷偷開程式設計小灶呢?”
“哲學課。”
許薇戳了戳那本厚書,語氣裡滿是調侃:“那你看這個?”
葉明翻了一頁,在架構圖上補了個節點:“老師講的我都會了。”
他語氣平淡得理直氣壯。
許薇噎了一下,瞪著他的側臉:“你知不知道你這樣真的很欠揍?全班都在記筆記,就你特立獨行。”
葉明終於抬眼,目光帶著笑意掃過她:“再說不是還有你這個真大好人嘛,筆記你會不給我看?”
許薇看著他篤定的模樣,耳尖微紅,那點小彆扭忽然煙消雲散。
她撇撇嘴嘟囔:“行行行,你是扒皮你有理。天天研究這個,到底鼓搗出什麼名堂了?”
葉明頓了頓筆尖,看著她亮晶晶的眼睛,認真道:“還在學,等做出來了,第一個給你看。”
畫餅誰不會。
一句平淡的承諾,讓許薇的心跳莫名漏了半拍,這傢夥怎麼老說這種話。
她慌忙別過臉,故意清了清嗓,小聲嘀咕:“這還差不多……”
過了一會,葉明放在桌上的手機又亮了一下。
許薇又湊過來,眼底閃著狡黠的光:“哎,你手機亮了吧?看你的表情,我猜是蘇晴發的資訊吧?”
葉明的筆尖猛地一頓。
這個蘇晴,自己都不理她了,怎麼還時不時發資訊?真當自己是樹洞了?
許薇追著問:“回了嗎?”
葉明淡淡道:“冇回。”
“為什麼不回?”
回什麼回,回她不如畫架構圖。
葉明放下筆,無奈地看她一眼:“你問題真多。”
許薇“噗”地笑出聲:“行行行,班長大人嫌我煩了。”
她擺了擺手坐直身子,嘴角卻抑製不住地上揚,小聲嘟囔:“不過你這樣挺好的。”
後半句她冇說出來——不理那些亂七八糟的人,挺好的。
葉明冇接話,低頭繼續畫圖思考,眼底的笑意卻悄悄漫開了一點。
下午的英語課則是另一番光景。
阮星像隻小麻雀,坐在葉明旁邊嘰嘰喳喳說個不停。
她從六級聽力的焦慮聊到國慶的聚會計劃,眼睛亮晶晶的。
“葉明你昨天又泡機房了吧?黑眼圈都快掛到下巴了!國慶七天你總不能還泡在機房吧?”
葉明翻著英語書,言簡意賅:“泡機房。”
阮星瞪大了眼睛:“你瘋啦!七天全泡機房?”
頓了頓,她又小聲嘀咕:“不過你這種勁頭,要做什麼肯定能成。”
她剛要繼續吐槽,葉明的手機忽然亮了起來。
螢幕上彈出一條資訊,發件人裡有“蘇”字。
阮星眼睛一亮,湊過來壓低聲音:“喲!有人給你發資訊哎!女的吧?不回嗎?”
葉明隨手按滅螢幕,連看都冇看一眼。
阮星吐了吐舌頭,眨眨眼:“行行行,學生乾部都高冷,我懂。不過你這樣……還挺酷的。”
她轉回去看書,過了幾秒又忍不住想開口。
葉明忽然想起前世那個電話,轉頭看向她,語氣認真:“你平時出去玩,多留個心眼。如果有人叫你出去喝酒、應酬,覺得不對勁就立刻給我打電話。”
阮星整個人都愣了,眨著眼睛看他,眼底慢慢漾開暖意:“你這是在關心我?”
關心什麼關心,老同桌了,不想你出事。
葉明冇迴應,隻是重新轉回頭看書。
阮星盯著他的側臉,心裡一暖,乖乖點頭:“知道啦!大班長說得對,我記住了!”
週四下午,計算機學院機房。
螢幕上的錯誤提示,已經對著葉明嘲笑了半個多小時。
他反覆檢查了語法,對照了筆記,甚至重啟了環境。
程式碼依然固執地報錯,像一堵透明的牆,把他和執行成功的世界隔開。
有時候,最讓人無力的不是龐然大物,而是近在咫尺卻看不見的塵埃。
他揉了揉發脹的眉心。
機房空曠,隻有機器低鳴。
這種獨自麵對未知的沉寂,比前世領導在會議室裡的咆哮更磨人。
那時你知道問題在別人,現在你知道,問題隻在自己。
就在他幾乎要放棄,準備從頭再敲一遍時,一隻手從旁邊伸過來,食指關節在螢幕某處輕輕叩了叩。
“這裡,多了一個下劃線。”
葉明一愣,順著那手指看去,use_rname。
那個該死的、隱形的下劃線,正靜靜躺在那裡。
他猛地回頭。
一個戴黑框眼鏡的老師站在他身側,微微傾身看著螢幕。
他穿著灰藍色的襯衫,袖口挽到小臂,身上有種常年待在實驗室裡的人特有的乾淨與沉靜。
不是嚴肅,而是一種見慣了各種錯誤的平靜。
葉明連忙改正,執行。
那個困擾他許久的錯誤提示,消失了。
“謝謝老師!”他趕緊站起身。
老師擺了擺手,示意他坐下,自己也從旁邊拉了把椅子過來。
“找了很久?”
“嗯……快一個小時了。”葉明有些窘迫。
為一個下劃線,真是出息。
“正常。”
老師語氣平淡,聽不出是安慰還是陳述。
“剛開始學,眼裡隻有自己想寫的邏輯,看不見實際寫出來的字元。
眼到,手不到,心也冇到。
所謂的『結硬寨,打呆仗』,在程式設計裡,就是和每一個字母、每一個符號死磕。
磕贏了,路就通了。”
葉明心頭一震,“眼到,手不到,心也冇到”這十個字,精準地戳中了他剛纔那種焦躁又盲目的狀態。
“叫什麼名字?”老師推了推眼鏡,問道。
“我叫葉明。是人文學院的,大一。”
老師點了點頭,目光落回螢幕上他那段雖然跑通但依然稚嫩的程式碼。
“文科生,肯沉下心鑽這個,是好事。邏輯和耐心,這兩樣你看起來不缺。”
他話鋒一轉,語氣依舊平和,卻多了些分量。
“不過,程式設計不光是讓機器聽話,更是讓自己和別人看得懂。你這個變數名,即便拚對了username,也不是個好名字。”
葉明怔住。名字不對?
“username太模糊。”
老師用筆在他筆記本空處隨手寫下幾個詞。
“是登入的使用者名稱?顯示的名稱?還是全名?
在資料庫裡,它可能叫login_name;在個人資料頁,它該叫display_name;在表單裡,它可能隻是input_name。
一個模糊的名字,會在你程式碼變多時,變成一百個互相打架的模糊概念。
命名的藝術,就是消除歧義的藝術。這是比語法更早的『正確』。”
葉明看著那幾個詞,彷彿又有一層薄霧被撥開。
他之前隻關心“能不能跑”,老師卻已經在說“怎麼才跑得明白、跑得長遠”。
“我姓張,張秉文,計協的指導老師。”
老師放下筆,像是隨口一提。
“以後有問題,可以來問我。每週六上午我一般都在係裡。”
葉明壓下心中的驚喜,連忙道謝。
他想起李悅學姐的提醒,猶豫著問:“張老師,關於網站前後端怎麼更……更清晰地配合,我有點亂。”
張秉文似乎就等他問這個,冇有直接回答,而是問:“你想像中那個網站,最後想做成什麼樣?”
葉明深吸一口氣,把“重生模擬器”的粗略想法說了出來,包括簡單的隨機事件、屬性分配和不同人生路徑。
張秉文安靜聽完,點了點頭。
“想法有點意思。那你就不能隻想著『登入』、『顯示』這幾個散點了。你得先有個地圖。”
他又拿起筆,在剛纔的紙麵上畫了三個方框,用箭頭連線。
“前端,負責展示和互動,就是瀏覽器裡玩家看到、點到的東西。
後端,負責處理和判斷,就是你設的那些規則、概率計算。
資料庫,負責記住一切,玩家的選擇、結果、狀態。”
他點了點連線前後端的箭頭。
“這裡,要定義清晰的語言。前端發『請求』,要什麼資料,做什麼操作。
後端回『響應』,給你結果,或者告訴你成功失敗。
別把前後端的邏輯攪在一起,那是亂燉,以後冇法加新菜。”
寥寥數語,一張極簡的藍圖。
葉明之前腦子裡糾纏的“html怎麼接php”、“資料怎麼來回傳”的毛線團,被這幾個方框和箭頭理出了清晰的線頭。
“當然,這是最理想的地圖。”張秉文笑了笑,“實際走起來,會踩坑,會繞路。但心裡有這張圖,迷路了也知道自己在哪。這比學一百個函式呼叫更重要。”
他站起身,看了看錶。
“今天先到這兒。記住兩件事:一是名字要取得清楚,二是腦子要分得清楚。回去可以把你那個模擬器的流程,用這種分塊的思路畫一畫,不用寫程式碼,先畫明白。”