国产欧美日韩在线一区,性xxxx动漫,欧美成人高清,久久免费国产精品,www.黄色片视频,国产亚洲欧美日韩日本,日韩免费视频一区二区

第5章

重生之程序員的逆襲之路

第一臺(tái)Mac------------------------------------------,張偉正在打魔獸世界。,是在排隊(duì)。2008年的魔獸世界服務(wù)器一如既往地爛,黃金時(shí)段排隊(duì)動(dòng)不動(dòng)兩小時(shí)起步。張偉盯著屏幕上“位置:2458”的數(shù)字發(fā)呆,聽(tīng)見(jiàn)門(mén)響,扭頭看見(jiàn)陳燃抱著一個(gè)紙箱,滿(mǎn)頭大汗?!斑@什么東西?這么大一個(gè)箱子。Mac mini?!标惾及严渥臃旁谧郎希_(kāi)始拆膠帶?!胞湣褪悄阏f(shuō)的那個(gè)蘋(píng)果電腦?對(duì)?!?,看著陳燃從箱子里拿出那臺(tái)銀白色的小主機(jī)。在2008年,蘋(píng)果產(chǎn)品的設(shè)計(jì)領(lǐng)先同行至少一個(gè)時(shí)代。這臺(tái)Mac mini雖然是一年前的舊款,但那簡(jiǎn)潔的鋁合金外殼、那顆會(huì)亮的白色電源燈、背面整齊排列的接口,放在任何一臺(tái)PC旁邊都像是來(lái)自未來(lái)的產(chǎn)品?!?*,”張偉伸手摸了摸機(jī)身,“這玩意兒是金屬的?鋁合金。得不少錢(qián)吧?三千二?!薄!叭Ф??你花三千二買(mǎi)了這么個(gè)小盒子?這玩意能干啥?打游戲?能讓你賺錢(qián)?!标惾及阎鳈C(jī)放到桌面上,接上電源線和網(wǎng)線,然后犯了難。。,是劉洋的——他用來(lái)接筆記本電腦打游戲。王浩倒是有一臺(tái),但他那臺(tái)是CRT的,又大又笨重,而且接口不匹配。
“張偉,你顯示器借我用用?!?br>“我的?”張偉指了指自己桌上那臺(tái)17寸的AOC,“我那臺(tái)是VGA接口的,你這Mac能用嗎?”
陳燃看了一下Mac mini的接口——DVI和Mini-DVI。他沒(méi)有轉(zhuǎn)接頭。
2008年,一個(gè)DVI轉(zhuǎn)VGA的轉(zhuǎn)接頭要賣(mài)三十多塊錢(qián)。他不是買(mǎi)不起,但跑一趟電腦城又要花半天時(shí)間。
“算了,”陳燃說(shuō),“我先用遠(yuǎn)程桌面?!?br>他從書(shū)包里掏出自己的聯(lián)想筆記本——一臺(tái)大一入學(xué)時(shí)家里給買(mǎi)的神舟電腦,塑料殼子,自重快三公斤,散熱口在底部,放腿上能燙出水泡。他開(kāi)機(jī),下載了一個(gè)VNC客戶(hù)端,用網(wǎng)線把Mac mini和筆記本連到同一個(gè)路由器上,然后通過(guò)遠(yuǎn)程桌面連接Mac。
屏幕亮了。
Mac OS X 10.5 Leopard的歡迎動(dòng)畫(huà)出現(xiàn)在筆記本的屏幕上。一只Finder的笑臉圖標(biāo),一條進(jìn)度條,下面寫(xiě)著“正在啟動(dòng)您的Mac”。
張偉湊過(guò)來(lái)看?!斑@系統(tǒng)長(zhǎng)得挺好看的?!?br>“嗯?!?br>“比Windows XP好看?!?br>“嗯。”
“你就能不能說(shuō)個(gè)別的字?”
陳燃沒(méi)理他。進(jìn)度條走完了,進(jìn)入桌面——藍(lán)色的星空壁紙,底部的Dock欄上排著一排圖標(biāo):Finder、Safari、Mail、iTunes、垃圾桶。
他深吸了一口氣。
上輩子,他的第一臺(tái)Mac也是二手的。2010年,他剛畢業(yè),工資三千五,省吃?xún)€用三個(gè)月在京東方買(mǎi)了一臺(tái)二手Mac*ook Air。那臺(tái)機(jī)子的屏幕有壓痕,鍵盤(pán)有幾個(gè)鍵不靈,但那是他第一次擁有屬于自己的Mac。
他記得那一天。他把Mac*ook Air抱回出租屋,從晚上八點(diǎn)一直折騰到凌晨三點(diǎn)——裝Xcode、配環(huán)境、寫(xiě)第一行iOS代碼。
那時(shí)候他不知道,那臺(tái)破電腦會(huì)陪伴他走過(guò)創(chuàng)業(yè)最初的日子,會(huì)在一次深夜加班時(shí)從桌上摔下來(lái),屏幕碎了,但還能外接顯示器用。它一直撐到公司A輪融資,陳燃才舍得換了一臺(tái)新的。
現(xiàn)在,他捧著這臺(tái)更舊、更慢、屏幕都沒(méi)有的Mac mini,心里的感覺(jué)和上輩子一模一樣。
——值了。
開(kāi)機(jī)設(shè)置花了他快一個(gè)小時(shí)。系統(tǒng)是10.5.8,需要升級(jí)到10.5.8的最新補(bǔ)丁。Xcode 3.1.3的安裝包有1.2個(gè)G,以2008年的網(wǎng)速,下載需要三個(gè)小時(shí)。
他點(diǎn)開(kāi)了下載按鈕,然后去食堂吃飯。
晚上八點(diǎn),Xcode安裝完成。
陳燃打開(kāi)Xcode,看著那個(gè)經(jīng)典的藍(lán)**標(biāo)和初始界面,覺(jué)得親切得有些陌生。Xcode 3.1的界面和后來(lái)的Xcode 4、Xcode 5完全不同——沒(méi)有story*oard,沒(méi)有自動(dòng)布局,沒(méi)有ARC。Interface *uilder是獨(dú)立的應(yīng)用程序,和Xcode分開(kāi)運(yùn)行。
你要先寫(xiě)代碼,然后在I*里拖控件,再通過(guò)Outlet把兩者連接起來(lái)。
別說(shuō)Swift了,連ARC都沒(méi)有,內(nèi)存管理全靠手動(dòng)retain/release。
陳燃閉著眼睛都能寫(xiě)。
他新建了一個(gè)項(xiàng)目:基于View的應(yīng)用程序,語(yǔ)言是O*jective-C。在2008年,還沒(méi)有Swift,沒(méi)有SwiftUI,每一個(gè)界面都要手寫(xiě)或者用I*拖。
他開(kāi)始寫(xiě)FlamePop的iOS版本。
代碼框架他早就想好了——一個(gè)主視圖***,管理游戲網(wǎng)格、得分、計(jì)時(shí)器;一個(gè)自定義UIView,負(fù)責(zé)繪制火焰精靈和處理觸摸事件;一個(gè)GameEngine類(lèi),封裝消除邏輯、下落算法、連鎖反應(yīng)。
他把頭一天晚上在筆記本上寫(xiě)的架構(gòu)圖展開(kāi),按圖索驥,一行一行地翻譯成代碼。
敲鍵盤(pán)的聲音在宿舍里響起來(lái)。
噼、噼、啪、啪、噼、噼、啪、啪。
不是打字,是彈奏。
陳燃的十個(gè)手指在鍵盤(pán)上飛,速度比宿舍里任何人都快。他不需要看鍵盤(pán),不需要查文檔,不需要考慮語(yǔ)法——O*jective-C的語(yǔ)法在他腦子里像肌肉記憶,一個(gè)類(lèi)怎么寫(xiě),一個(gè)方法怎么定義,內(nèi)存管理怎么寫(xiě),他閉著眼睛都能寫(xiě)對(duì)。
張偉在旁邊看了一會(huì)兒,終于忍不住說(shuō)話。
“你打字速度怎么這么快?”
“練的?!?br>“練了多久?”
“十四年?!?br>張偉以為他在開(kāi)玩笑。
寫(xiě)到快十點(diǎn)的時(shí)候,陳燃遇到了第一個(gè)問(wèn)題。
Mac mini的硬盤(pán)速度太慢了。
編譯一次需要將近一分鐘,運(yùn)行模擬器需要再等三十秒。這對(duì)習(xí)慣了SSD和M1芯片的陳燃來(lái)說(shuō),簡(jiǎn)直是一種折磨。
上輩子,他的開(kāi)發(fā)機(jī)是16寸Mac*ook Pro,M1 Max芯片,64G內(nèi)存,2T SSD,編譯一個(gè)中型項(xiàng)目只需要五秒鐘。
現(xiàn)在,他坐在一把吱吱響的木頭椅子上,面對(duì)一臺(tái)轉(zhuǎn)速5400轉(zhuǎn)的機(jī)械硬盤(pán),等著一行一行地編譯。
但這也不全是壞事。
慢有慢的好處。編譯跑不起來(lái)的時(shí)候,他會(huì)想得更仔細(xì),寫(xiě)得更謹(jǐn)慎,盡量減少試錯(cuò)。
這讓他想起上輩子剛?cè)胄袝r(shí)帶他的老工程師說(shuō)過(guò)的話:“代碼不是跑出來(lái)的,是想出來(lái)的。跑得越快,想得越慢?!?br>那時(shí)候他不信?,F(xiàn)在他信了。
寫(xiě)到凌晨一點(diǎn),F(xiàn)lamePop的核心界面搭好了。
一個(gè)主游戲網(wǎng)格,4x4,每個(gè)格子是一個(gè)UI*utton。這是最簡(jiǎn)單粗暴的做法,性能不好,但夠快。上輩子他做第一款游戲時(shí)也是這樣干的,后來(lái)用戶(hù)量大了才優(yōu)化成了自定義繪制。
現(xiàn)在不用著急。先把產(chǎn)品做出來(lái),再考慮優(yōu)化。
陳燃把筆記本合上,揉了揉酸痛的眼睛。Xcode還在編譯,進(jìn)度條走到一半就不動(dòng)了。他看了一下系統(tǒng)活動(dòng)監(jiān)視器——內(nèi)存占用已經(jīng)滿(mǎn)了,CPU風(fēng)扇在狂轉(zhuǎn),整臺(tái)Mac mini燙得能煎雞蛋。
這配置,放在2022年,連瀏覽器都開(kāi)不動(dòng)。
但在2008年,它就是他的超級(jí)計(jì)算機(jī)。
他站起來(lái),伸了個(gè)懶腰。宿舍里的燈已經(jīng)滅了,只有他的屏幕亮著,白色的光映在屋頂上。張偉已經(jīng)睡了,劉洋和王浩也睡了,鼾聲此起彼伏,像一首沒(méi)有節(jié)奏的交響樂(lè)。
他爬**,躺下,閉上眼睛。
腦子里的代碼還在跑。一個(gè)視圖***的生命周期,viewDidLoad、viewWillAppear、dealloc。內(nèi)存管理要小心,誰(shuí)alloc誰(shuí)release,不要造成循環(huán)引用。觸摸事件怎么處理,touches*egan和touchesMoved的配合。
迷迷糊糊快要睡著的時(shí)候,手機(jī)震了。
他伸手摸過(guò)來(lái),屏幕的白光照得他瞇起眼睛。
是蘇晚發(fā)來(lái)的短信。
"你今天怎么沒(méi)來(lái)上大課?老師點(diǎn)名了。"
陳燃愣了一下。大課。*****基本原理。
他完全忘了。
不是因?yàn)橹厣笥洃浟p退,而是因?yàn)樗X子里裝的App Store、Mac mini、FlamePop太多了,根本裝不下***。
他回復(fù):"有事。老師說(shuō)了什么?"
"說(shuō)你曠課一次,扣平時(shí)分。你最好找老師解釋一下。"
陳燃想了想。上輩子他從來(lái)不會(huì)曠課。他是不敢,他是太老實(shí),他以為考勤分關(guān)系到績(jī)點(diǎn),績(jī)點(diǎn)關(guān)系到獎(jiǎng)學(xué)金,獎(jiǎng)學(xué)金關(guān)系到簡(jiǎn)歷,簡(jiǎn)歷關(guān)系到前途。
現(xiàn)在他知道,這些都不重要。
但他還是回了:"知道了。謝謝。"
"沒(méi)事。"蘇晚的回復(fù)很快,"你的ACM選拔賽報(bào)名了嗎?"
"報(bào)了。"
"那就好。晚安。"
"晚安。"
陳燃把手機(jī)放在枕頭邊,看著屋頂上那些被屏幕光照亮的裂縫。
蘇晚在提醒他上課。
蘇晚在督促他報(bào)名。
蘇晚在關(guān)心他。
上輩子,這些事情也發(fā)生過(guò)。但那個(gè)陳燃沒(méi)有注意到,或者說(shuō),他注意到了但沒(méi)有勇氣回應(yīng)。
他覺(jué)得蘇晚是天上的月亮,他是地上的泥巴。
現(xiàn)在他知道,月亮和泥巴之間,差的不是距離,是勇氣。
他翻了個(gè)身,閉上眼睛。
這一夜,他做了一個(gè)夢(mèng)。夢(mèng)見(jiàn)自己站在納斯達(dá)克的敲鐘臺(tái)上,手里拿著錘子,錘子下面是一個(gè)金色的按鈕。他用力敲下去,鐘聲響起來(lái),禮堂里所有人都站起來(lái)鼓掌。
他看見(jiàn)了張偉,穿著西裝,笑得很開(kāi)心。
他看見(jiàn)了林默,還是那副沉默寡言的樣子,但眼角有淚光。
他看見(jiàn)了蘇晚,穿著一條白色連衣裙,站在第一排,笑著看他。
然后他醒了。
屏幕還亮著,編譯早就完成了,Xcode停留在“*uild Succeeded”的界面。
外面天已經(jīng)快亮了,鳥(niǎo)在叫,食堂的煙囪冒著白煙。
新的一天開(kāi)始了。
周五傍晚,陳燃終于把FlamePop的第一個(gè)可玩版本跑起來(lái)了。
不是模擬器,是真實(shí)設(shè)備——他借了張偉的iPod touch。
2008年的iPod touch是第二代,3.5寸屏幕,320x480分辨率,200萬(wàn)像素?cái)z像頭,沒(méi)有GPS,沒(méi)有陀螺儀,只有重力感應(yīng)器。
但在2008年,這就是神機(jī)。
陳燃把游戲裝進(jìn)iPod touch的那一刻,手都在抖。
圖標(biāo)出現(xiàn)在屏幕上——他用Photoshop隨手畫(huà)的一個(gè)火焰圖標(biāo),紅黃漸變,中間一個(gè)白色的“F”字。圖標(biāo)的像素邊緣有點(diǎn)鋸齒,顏色飽和度太高,放在2022年會(huì)被設(shè)計(jì)師噴成篩子。
但那是他花了兩個(gè)小時(shí)做出來(lái)的。
雙擊。
加載。
網(wǎng)格出現(xiàn)了。
四個(gè)顏色,十六個(gè)格子,動(dòng)畫(huà)流暢得不像是在2008年的設(shè)備上運(yùn)行的。他用手指拖動(dòng)一個(gè)紅色火焰和旁邊的**火焰交換,三個(gè)紅色火焰連成一線,消除——嘭——一個(gè)小型的動(dòng)畫(huà)效果在屏幕上炸開(kāi),得分加了一百分。
張偉湊過(guò)來(lái),眼睛都直了。
“這個(gè)動(dòng)畫(huà)效果怎么做的?”
“Core Ani**tion?!?br>“什么山?”
“蘋(píng)果的動(dòng)畫(huà)框架?!?br>“你是說(shuō),蘋(píng)果公司專(zhuān)門(mén)做了一個(gè)做動(dòng)畫(huà)的東西,讓你們開(kāi)發(fā)者用?”
“對(duì)?!?br>“免費(fèi)?”
“對(duì)?!?br>張偉沉默了。他在魔獸世界里為了買(mǎi)一個(gè)飛行坐騎,攢了兩個(gè)月的金幣?,F(xiàn)在有人告訴他,蘋(píng)果公司免費(fèi)提供了一套做動(dòng)畫(huà)的工具,讓開(kāi)發(fā)者做出這種效果,然后拿去賣(mài)錢(qián)。
“這東西……”張偉指著屏幕上的火焰,“我有點(diǎn)明白你為什么要借錢(qián)了?!?br>陳燃把iPod touch遞給他?!澳阃嬉痪??!?br>張偉接過(guò)去,手指在屏幕上劃來(lái)劃去,三消、四消、五消,連擊、加時(shí)、火焰風(fēng)暴。他玩了一局又一局,每一局結(jié)束都會(huì)說(shuō)“再來(lái)一局”。
六局之后,他抬頭看陳燃。
“這游戲要是賣(mài)0.99美元,我會(huì)買(mǎi)?!?br>“真的?”
“真的。”張偉說(shuō),“比我玩過(guò)的所有****都好玩。不,比我玩過(guò)的所有小游戲都好玩的?!?br>陳燃笑了。
不是因?yàn)閺垈サ目隙?。是因?yàn)樗?,張偉說(shuō)的是實(shí)話。
但還有一句話他沒(méi)有說(shuō)出來(lái):
——這還不是最好的版本。
等他把圖形優(yōu)化、加入音效、加入關(guān)卡、加**網(wǎng)排行榜,那才是真正的FlamePop。
現(xiàn)在這個(gè)版本,只是嬰兒的第一步。
那天晚上,陳燃把那臺(tái)Mac mini放在桌上,拍了張照片。
照片是模糊的,光線不好,構(gòu)圖也不專(zhuān)業(yè)。但他在照片下面寫(xiě)了一行字:
"我的第一臺(tái)Mac。陪我打下江山。"
他把照片存在了一個(gè)叫“逆襲之路”的文件夾里。
然后關(guān)機(jī),睡覺(jué)。
明天的任務(wù)更重:*ug修復(fù)、性能優(yōu)化、圖標(biāo)重繪、應(yīng)用截圖、***分析、描述文案。
App Store不會(huì)自己上架。
錢(qián)不會(huì)自己飛進(jìn)口袋。
他能做的,就是一行一行地寫(xiě)代碼,一個(gè)*ug一個(gè)*ug地修,一步一個(gè)腳印地走下去。
就像他上輩子做的那樣。
但這一次,他不會(huì)在中途倒下。