日本程序員的腦回路真是奇葩!這段時(shí)間經(jīng)常研究日本程序員寫的上位機(jī)程序,發(fā)現(xiàn)他們寫代碼的思路真是奇葩,有時(shí)候看著他們寫的代碼嘴角都要止不住的上揚(yáng),和同事討論日本程序員寫的某段代碼的意圖,最后一討論,別說,雖然寫法奇葩,但是還真有他們的道理!這里我就簡(jiǎn)單的舉個(gè)例子,大家一起看看怎么個(gè)事!
首先大家肯定很好奇,為什么我能看到日本程序員寫的代碼,其實(shí)事情是這樣的,日本人開發(fā)的上位機(jī)程序在交付時(shí),基本上都會(huì)把源碼放在上位機(jī)PC里面,所以,我是能直接查看上位機(jī)程序的源碼的。
某一天,我們的甲方說他們有臺(tái)設(shè)備需要改個(gè)參數(shù),但是這臺(tái)設(shè)備的上位機(jī)程序是日本人寫的,有源碼,問我們公司能不能派個(gè)人過去幫他們改下,所以,公司就派我過去了。
到了甲方工廠,客戶跟我們說了下需求,然后,我們就順著源碼找到了需要改動(dòng)的地方。改完了代碼,我編譯了程序,然后,發(fā)現(xiàn)上位機(jī)程序怎么也跑不起來了!
搗鼓來?yè)v鼓去,最后發(fā)現(xiàn)了問題點(diǎn),原來,在上位機(jī)程序啟動(dòng)的時(shí)候,它會(huì)啟動(dòng)一個(gè)文件檢查的程序,而這個(gè)文件檢查程序的代碼一時(shí)間讓我摸不著頭腦。
原來,上位機(jī)PC一共有4個(gè)磁盤,分別是C、D、E、F盤,上位機(jī)程序部署在E盤,這個(gè)文件檢查的程序在運(yùn)行以后首先會(huì)獲取E盤上位機(jī)程序根目錄的所有文件信息,然后拿著這些文件信息分別去D盤和F盤的另外兩個(gè)上位機(jī)程序目錄里面去比對(duì)文件,但凡文件有一個(gè)不一樣,上位機(jī)程序都啟動(dòng)不起來。
這么說可能大家不知道是什么意思,簡(jiǎn)單地說,這個(gè)上位機(jī)真正的啟動(dòng)目錄是在E盤,但是還是需要再D盤和F盤另外部署兩個(gè)相同的上位機(jī)程序,只有D、E、F三個(gè)盤里面的所有上位機(jī)程序的文件信息都一樣時(shí),上位機(jī)才能成功啟動(dòng),哪怕有一個(gè)不一樣,上位機(jī)程序都啟動(dòng)不起來!
看懂這段代碼時(shí),我一時(shí)摸不著頭腦,下意識(shí)跟我同事說:“有毛病吧,這是?”,然后我們倆就開始研究起這段代碼的意圖。
好一段研究以后,我們得出一個(gè)結(jié)論:這其實(shí)就是防止上位機(jī)程序被人為改動(dòng)或者被意外篡改的!
因?yàn)檫@個(gè)上位機(jī)程序操縱的是一臺(tái)大型設(shè)備,一旦程序被人為改動(dòng),造成的后果可能都是災(zāi)難性的,所以,基本上除了日志文件以外,其他的文件在編譯后,基本上是不會(huì)發(fā)生改變的。
之所以在三個(gè)磁盤里面都部署一個(gè)上位機(jī)程序用來比對(duì),就是為了阻止上位機(jī)程序里面的文件被改動(dòng)后,上位機(jī)程序可能存在的錯(cuò)誤運(yùn)行的情況!一般來說,多個(gè)地方的文件被同時(shí)人為改動(dòng)的概率不大,且被同時(shí)篡改的概率也不大。雖然,這種邏輯不能百分百保證安全,但相對(duì)來說是安全的。
結(jié)語
最后,我把編譯后的文件每個(gè)磁盤都放了一個(gè),然后上位機(jī)就順利啟動(dòng)了!我和同事相視一笑,別說,做法挺傻,甚至想起來就想笑,但是你說這個(gè)辦法它解決不解決問題呢?當(dāng)然在一定程度上是能解決問題的!但是,這種辦法我想破天,我估計(jì)我都想不到!
特別聲明:以上內(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.