項(xiàng)目概述
項(xiàng)目背景:工廠表面處理產(chǎn)線項(xiàng)目
b司接了a司一條表面處理產(chǎn)線的項(xiàng)目啼肩,包含硬件及軟件亿笤,由于現(xiàn)在b司做的軟件難用且數(shù)據(jù)難以查找,a司不滿意驗(yàn)收不通過内斯,款項(xiàng)沒有結(jié)清蕴潦。所有b司找到我們,希望我們能幫他搞定這個(gè)軟件系統(tǒng)像啼。
公司關(guān)系:
- 互聯(lián)網(wǎng)軟件公司,A司(我在的公司)
- 工業(yè)服務(wù)集成商潭苞,B司(我們直接接觸的客戶)
- 工廠C司(制造業(yè)的工廠忽冻,B司的客戶)
人員關(guān)系:
- H工,A司的軟件開發(fā)人員(即在下)
- I工此疹,A司的某部門leader(即在下領(lǐng)導(dǎo))
- J工僧诚,B司該項(xiàng)目負(fù)責(zé)人
- K工,B司該項(xiàng)目的駐場(chǎng)協(xié)調(diào)人員(J工的手下)
- L工蝗碎,外包人員湖笨,負(fù)責(zé)電路設(shè)計(jì),plc開發(fā)蹦骑,原有的軟件系統(tǒng)開發(fā)慈省。
系統(tǒng)架構(gòu)(舊):
- 軟件(給工人使用的人機(jī)交互程序,基于組態(tài)王軟件開發(fā)的工業(yè)軟件)
- plc眠菇,工業(yè)中普遍采用的可編程控制器边败,用來控制物理設(shè)備
- 物理設(shè)備,各種傳感器及物理設(shè)備琼锋。(如溫度傳感,水泵設(shè)備祟昭,超聲設(shè)備等)
控制流程缕坎, 軟件 < -----> PLC <--------->物理設(shè)備
階段一 (10月10)
需求
此時(shí)的需求是,需要有生產(chǎn)數(shù)據(jù)導(dǎo)出的Excel.
技術(shù)準(zhǔn)備
通過看組態(tài)王的說明文件篡悟,了解到其有一個(gè)web谜叹,api接口可拿到所有字段的數(shù)據(jù)。
技術(shù)方案
于是此時(shí)考慮的技術(shù)方案搬葬,就是從組態(tài)王里面拿到數(shù)據(jù)進(jìn)行格式化后輸出荷腊。
采用該技術(shù)方案的原因:
- 該方案可以滿足客戶需要數(shù)據(jù)的需求。
- 該方案開發(fā)周期短急凰,不需要接管麻煩的硬件控制女仰。
開發(fā)
我在開發(fā)電腦安裝了一個(gè)演示版組態(tài)王(演示版2小時(shí)會(huì)自動(dòng)關(guān)閉),開發(fā)了一個(gè)腳本不斷請(qǐng)求組態(tài)王web接口的數(shù)據(jù)抡锈,然后格式化生成excel疾忍。
碰到的技術(shù)點(diǎn):通過測(cè)試發(fā)現(xiàn)組態(tài)王程序不允許使用Connection: Keep-Alive,該選項(xiàng)會(huì)使組態(tài)王崩潰。
一兩天的時(shí)間開發(fā)完成床三,就等待安排時(shí)間去現(xiàn)場(chǎng)部署一罩。(因?yàn)椴渴饡r(shí)會(huì)影響生產(chǎn),只能等待安排時(shí)間)
部署
部署時(shí)發(fā)生的問題:
- 現(xiàn)場(chǎng)電腦使用win7系統(tǒng)撇簿,缺少一些重要組件導(dǎo)致python無法直接安裝聂渊。
- 現(xiàn)場(chǎng)的組態(tài)王程序沒有我在公司測(cè)試的api接口
此時(shí)與原先的軟件開發(fā)人員L工溝通這個(gè)問題差购,他解釋說現(xiàn)場(chǎng)使用的加密狗沒有開通這個(gè)功能,這個(gè)功能要單獨(dú)收費(fèi)汉嗽。
因?yàn)榻M態(tài)王使用的是加密狗授權(quán)欲逃。我在公司測(cè)試運(yùn)行的演示版是全功能的。
結(jié)果
所以階段一的開發(fā)工作是無效的诊胞,主要問題是雙方缺少溝通暖夭,這個(gè)技術(shù)方案需要倆套系統(tǒng)的功能上的支持。我對(duì)工業(yè)軟件按模塊收費(fèi)的模式不了解撵孤,我以為花錢了就是所有的功能都有的迈着,和演示版一樣,只是不會(huì)自動(dòng)關(guān)閉邪码。
階段二 (準(zhǔn)備期裕菠,10月10日至11月10日)
需求
每天一個(gè)生產(chǎn)數(shù)據(jù)報(bào)表excel文件。
準(zhǔn)備
下一步方案考慮繞開組態(tài)王和plc通訊闭专。讓plc開發(fā)給我一個(gè)tcp通訊口奴潘。
找了很多關(guān)于plc的資料學(xué)習(xí),使用plc開發(fā)軟件進(jìn)行聯(lián)系影钉。使用仿真軟件模擬測(cè)試画髓。
- plc程序開發(fā)軟件與plc設(shè)備具有很強(qiáng)的關(guān)聯(lián)性。不同設(shè)備要使用不同的軟件開發(fā)平委。
- 沒有官方的仿真軟件奈虾,且仿真軟件模擬不了網(wǎng)絡(luò)通訊。
后來強(qiáng)烈要求leader搞一個(gè)真實(shí)plc設(shè)備廉赔。
plc設(shè)備搞來后肉微,花了兩周了解熟悉了plc程序開發(fā),能寫一些簡單的邏輯程序輯器網(wǎng)絡(luò)通訊(socket)開發(fā)蜡塌。
準(zhǔn)備工作完成后開始正式開發(fā)碉纳,開了一個(gè)專門的工廠項(xiàng)目。原來只是一些單文件腳本馏艾,掛在其他項(xiàng)目里劳曹。
技術(shù)方案一
我在plc中的變量區(qū)定義一個(gè)地址塊,plc程序把我需要的數(shù)據(jù)傳到這個(gè)地址塊琅摩。我會(huì)高頻的讀取這個(gè)地址塊的數(shù)據(jù)厚者,寫入到我定義的數(shù)據(jù)庫里面。然后按需求輸出一個(gè)客戶需要的excel文件迫吐。
開發(fā)一
進(jìn)行demo開發(fā)库菲,確認(rèn)技術(shù)方案可以實(shí)現(xiàn)。
與L工同步這個(gè)技術(shù)方案志膀,L工表示數(shù)據(jù)都有的組態(tài)王已經(jīng)把數(shù)據(jù)存在數(shù)據(jù)庫了熙宇,不需要這么麻煩鳖擒。
調(diào)整技術(shù)方案
技術(shù)方案二
調(diào)整技術(shù)方案, 直接從組態(tài)王的數(shù)據(jù)庫提取數(shù)據(jù)烫止,不做plc通訊蒋荚。
通過溝通發(fā)現(xiàn)L工并不懂?dāng)?shù)據(jù)庫,經(jīng)過自己研究發(fā)現(xiàn)他所謂的數(shù)據(jù)庫是ms access馆蠕。
不斷讀取ms access的數(shù)據(jù)來生成今日?qǐng)?bào)表excel文件期升,每當(dāng)有新的數(shù)據(jù)產(chǎn)生,今日?qǐng)?bào)表文件就會(huì)刷新互躬。
到了第二天播赁,就會(huì)產(chǎn)生一個(gè)不斷更新的excel文件。(為什么不生成昨日的數(shù)據(jù)吼渡?忘了容为,且客戶需要當(dāng)日數(shù)據(jù))
開發(fā)二
通過觀察組態(tài)王的演示程序,其中演示功能有數(shù)據(jù)庫存儲(chǔ)即ms access的模塊寺酪。我可以直接基于這個(gè)演示模塊進(jìn)行開發(fā)坎背, 到現(xiàn)場(chǎng)只要替換掉字段名稱,即ms access 文件即可寄雀。
- 通過統(tǒng)計(jì)行數(shù)來判斷是否有的新的數(shù)據(jù)產(chǎn)生得滤。 有新的數(shù)據(jù)則重新加載數(shù)據(jù)。
- 加載的數(shù)據(jù)放在內(nèi)存盒犹,當(dāng)重新加載時(shí)懂更,把新的數(shù)據(jù)添加內(nèi)存。
- 當(dāng)有新數(shù)據(jù)重寫整個(gè)excel文件阿趁。由于數(shù)據(jù)時(shí)基于每天的膜蛔,所以量不可能很大坛猪。
- 原來是生成2013的excel文件脖阵, 為了適應(yīng)現(xiàn)場(chǎng)改成2007的excel文件。
- python程序打包Windows系統(tǒng)服務(wù)
部署
約時(shí)間到現(xiàn)場(chǎng)部署墅茉, 這次L工也在現(xiàn)場(chǎng)命黔。L工見到我馬上拋出一個(gè)重要問題。
數(shù)據(jù)只有行車是自動(dòng)模式才會(huì)存就斤,手動(dòng)模式不存數(shù)據(jù)悍募。(此時(shí)心里mmp)
感覺又是浪費(fèi)時(shí)間,因?yàn)檫@個(gè)線基本不用自動(dòng)模式洋机,win7系統(tǒng)組件裝上去坠宴,python環(huán)境安裝。部署服務(wù)绷旗。
看了一下歷史數(shù)據(jù)只有少數(shù)的幾次喜鼓,估計(jì)還是測(cè)試的數(shù)據(jù)副砍。所以這個(gè)功能雖然可行,但是源頭上就沒有數(shù)據(jù)庄岖。
結(jié)果
功能可行豁翎,部署也很順利。 但是源頭沒有數(shù)據(jù)隅忿,后來去看確實(shí)沒有數(shù)據(jù)心剥。
階段三 (11月14日至12月22日)
需求
完成對(duì)產(chǎn)線的自動(dòng)化生產(chǎn)的控制,在實(shí)現(xiàn)原來組態(tài)王實(shí)現(xiàn)的所有功能上增加數(shù)據(jù)保存
解除原來程序的一些操作限制方便工人使用背桐。
準(zhǔn)備
和leader即b司leader溝通优烧, 直接把整個(gè)組態(tài)王干掉。我這個(gè)寫一個(gè)界面程序直接與plc通訊牢撼。
leader 出原型圖匙隔,我負(fù)責(zé)系統(tǒng)結(jié)構(gòu)設(shè)計(jì)及開發(fā),另外一個(gè)同事配合我與L工溝通一些問題熏版。
技術(shù)方案
- 使用cs結(jié)構(gòu)socket通訊纷责,因?yàn)楹竺婵赡軙?huì)有前端來配合我完成開發(fā)工作,也可能做成ipad應(yīng)用撼短。
- 目前前臺(tái)使用使用pyqt5 實(shí)現(xiàn)再膳。
- 操作方式盡可能傾向與觸摸操作。
- 與plc的通訊使用S7協(xié)議
- 上位機(jī)與plc的協(xié)作方式曲横。
在plc變量區(qū)中定義一個(gè)上位機(jī)只讀塊喂柒,和上位機(jī)只寫塊。通過這兩個(gè)塊的字段修改進(jìn)行控制反饋禾嫉。
開發(fā)
前臺(tái)開發(fā):基于pyqt5進(jìn)行開發(fā)灾杰,一邊開發(fā)一邊學(xué)。官網(wǎng)文檔主要是c++的熙参,只能看個(gè)大概艳吠,多多谷歌。
有個(gè)pyqt5群孽椰,這幫人閑得很昭娩,可以解答各種問題。
- 數(shù)據(jù)模塊黍匾,利用import實(shí)現(xiàn)單例, 主要銜接了界面和通訊栏渺。對(duì)接口進(jìn)行分發(fā)處理
- 網(wǎng)絡(luò)通訊模塊
- qt designer 生成的界面模型
- 界面程序,繼承界面模型锐涯,定義槽及事件關(guān)聯(lián)磕诊。
- tableview 模塊
- tablemodel模塊
- 對(duì)話框模塊
后臺(tái)開發(fā):基于Python開發(fā)
- 數(shù)據(jù)模塊, 使用Init()實(shí)例引用傳遞的方式實(shí)現(xiàn)單例(缺點(diǎn),pycharm不知道具體結(jié)構(gòu),無法自動(dòng)提示)
- s7 協(xié)議模塊霎终, 用于和西門子plc通信
- plc字段對(duì)象融痛,協(xié)商的地址塊的每個(gè)此段抽象出來的對(duì)象
- socketserver, 與界面程序通信神僵。
- 數(shù)據(jù)庫結(jié)構(gòu)定義模塊雁刷。
- 數(shù)據(jù)庫操作模塊。
寫給plc使用的接口文檔保礼。 即地址斷的定義說明
開發(fā)過程心得沛励,
- 由于采用了這個(gè)分離結(jié)構(gòu),導(dǎo)致工作量翻倍炮障。要時(shí)刻記得這是客戶端盡量不要有邏輯處理目派。
- 如果是一個(gè)人開發(fā)再也不要使用這種結(jié)構(gòu)。
- 用了非常多的動(dòng)態(tài)掛載胁赢,導(dǎo)致到了后面查找一個(gè)功能要用全局搜索企蹭。
- 數(shù)據(jù)滿天亂飛,自己看了都怕智末。
- 輕重緩急要分清楚谅摄,要為最核心的功能做最簡單的實(shí)現(xiàn),再去優(yōu)化系馆。類似于TDD送漠。
花了一些時(shí)間在無關(guān)緊要的細(xì)節(jié)上(細(xì)節(jié)最后還沒用上),最后只能把需求砍了由蘑。 - 日志模塊真的是挺難的闽寡。由于代碼復(fù)雜,出了問題也不好復(fù)現(xiàn)尼酿。一般都需要查日志解決爷狈。
一個(gè)好的日志應(yīng)該能幫助快速且正確的定位問題。現(xiàn)在這個(gè)日志用得太爛了裳擎。
聯(lián)調(diào)
早上到了現(xiàn)場(chǎng)準(zhǔn)備聯(lián)調(diào)涎永, 結(jié)果工廠說線停錯(cuò)了,等到下午才開始聯(lián)調(diào)句惯。
因?yàn)槲覀冞@里開始聯(lián)調(diào)的話現(xiàn)場(chǎng)無法進(jìn)行生產(chǎn)土辩。
碰到了一個(gè)plc浮點(diǎn)數(shù)問題支救,一開始我讓另一個(gè)同事跟L工對(duì)好字段的數(shù)據(jù)類型抢野,
這個(gè)工作沒做到位。因?yàn)槲矣X得出了問題我也還能hold住各墨,也就沒管了指孤。
花了一個(gè)多小時(shí)解決整個(gè)問題。
碰到了一個(gè)位的問題,我代碼里的bit位是按字節(jié)流順序的即高位到低位的順序恃轩,
而PLC代碼里的位是按低位到高位的順序排的结洼。最后把所有位類型的數(shù)據(jù)改成字節(jié)類型。浪費(fèi)了空間叉跛。
然后就是對(duì)天車的控制松忍,整個(gè)中間出了很多問題。
基本就是我這邊出問題改半天筷厘,L工在邊上等著鸣峭。L工那邊PLC出問題改半天,我在邊上等著酥艳。
就這樣搞了一個(gè)通宵摊溶,只對(duì)完了一些基本控制。只好約下次再去搞了充石。讓他們還是先用原來的系統(tǒng)莫换。
結(jié)果
只完成了一部分的聯(lián)調(diào),聯(lián)調(diào)必須在現(xiàn)場(chǎng)才能完成骤铃。
階段四 (12月30日至 1月2日)
聯(lián)調(diào)
元旦工廠放假三天拉岁,給了我們充足的聯(lián)調(diào)時(shí)間。
第一天 12月30日
動(dòng)作聯(lián)調(diào)惰爬,改了很多邏輯膛薛。晚上11點(diǎn)就撤了,第二天早上繼續(xù)搞补鼻。
晚上在酒店看俄羅斯電影哄啄,《夜空飛燕》真的挺好看,俄羅斯妹子真漂亮
第二天 12月31日
聯(lián)調(diào)基本完成风范,優(yōu)化了一下策略及界面咨跌,準(zhǔn)備部署。內(nèi)部聯(lián)合驗(yàn)收時(shí)出了問題硼婿,
因?yàn)槲业某绦蚴菦]有保存過程數(shù)據(jù)锌半。每天開始要手動(dòng)錄入數(shù)據(jù)昨天沒做完的數(shù)據(jù),因?yàn)樵O(shè)備晚上會(huì)斷電寇漫。
為什么不保存過程數(shù)據(jù)刊殉?
- 因?yàn)樵谖业脑O(shè)計(jì)里活每天都要干完的≈莞欤活不可能干到一半的记焊。這錢算誰的。
- 保存數(shù)據(jù)需要進(jìn)行數(shù)據(jù)庫操作栓撞,我的邏輯很多這樣實(shí)現(xiàn)起來很麻煩遍膜。
- 工人可以每天早上來的時(shí)候錄一下數(shù)據(jù)碗硬。
我們幾個(gè)重新溝通了一下,確定了這個(gè)功能必須實(shí)現(xiàn)瓢颅。 然后我就回酒店加班改代碼恩尾。
那天是跨年夜,而我在酒店里加班改代碼挽懦。浙江衛(wèi)視放著《追夢(mèng)》的節(jié)目翰意。我在想我是不是在
追夢(mèng)。我想應(yīng)該不是信柿,那天我在群里和朋友說猎物,這不是我心愛的代碼,這只是讓我我茍且的代碼角塑。
我心愛的代碼平時(shí)不肯多花點(diǎn)時(shí)間去寫蔫磨,現(xiàn)在卻在為這破玩意而竭盡全力。真是想打自己一頓圃伶。
這個(gè)其實(shí)不是一天時(shí)間內(nèi)可以寫完的(以我目前的能力)堤如,但我挑戰(zhàn)一下這個(gè)極限編程,
我不想認(rèn)輸窒朋,想把他做好搀罢。我在工作上總是有一種莫名的責(zé)任感,鞭策我吧侥猩,公瑾榔至!
那天晚上本來想晚上12點(diǎn)睡的,但是壓力太大實(shí)在睡不著欺劳。 在床上失眠了一個(gè)小時(shí)決定起來繼續(xù)寫代碼唧取。
在這個(gè)極限編程的時(shí)候發(fā)現(xiàn)了自己的一些問題,過度依賴ide的提示及自動(dòng)補(bǔ)全划提。自己取得名字自己記不住枫弟,
英文太差了。(最近正好學(xué)詞根詞綴鹏往,感覺這個(gè)非常適合用來寫代碼)淡诗。對(duì)多線程的理解不到位,直到在真正調(diào)試的時(shí)候我才意識(shí)到這個(gè)問題伊履,多線程必須結(jié)合類似于隊(duì)列的東西使用韩容。
我的多線打破了我分模塊解耦的設(shè)計(jì)。由于這個(gè)多線程的錯(cuò)誤使用導(dǎo)致代碼高度耦合唐瀑,
還好python內(nèi)置全局鎖群凶,沒有出現(xiàn)錯(cuò)誤數(shù)據(jù)。代碼正常運(yùn)行介褥。只是我也難以把握代碼代碼運(yùn)行軌跡座掘。
差不到寫到了早上五點(diǎn),終于有了困意就開始睡覺柔滔,定了個(gè)8點(diǎn)半的鬧鐘溢陪,
第三天 1月1日
8點(diǎn)半爬起來去酒店吃早餐,被告知沒有早餐睛廊,只好拿出百度地圖開始找吃的形真。找到了一家快餐店。吃了早飯就回去改代碼超全,從早上9點(diǎn)改代碼咆霜,中午1點(diǎn)的時(shí)候花了半個(gè)小時(shí)去吃飯, 就這樣改到了下午3點(diǎn)半嘶朱,然后我讓K工和L工接我到現(xiàn)場(chǎng)調(diào)試蛾坯。
調(diào)試過程依然不順利,搞到了晚上22點(diǎn)才把聯(lián)調(diào)完成疏遏,動(dòng)作符合預(yù)期行為脉课。開始準(zhǔn)備進(jìn)行部署。
由于我的分離結(jié)構(gòu)财异,設(shè)備部署也很麻煩倘零,服務(wù)端我部署在centos上,使用了多網(wǎng)卡戳寸,網(wǎng)絡(luò)問題也搞了半天才接通呈驶。客戶端部署發(fā)現(xiàn)了由于目標(biāo)設(shè)備分辨率問題疫鹊,導(dǎo)致整個(gè)頁面顯示效果很不理想袖瞻。然后調(diào)整代碼。還出了界面顯示修改拆吆,一開始以為是硬件問題導(dǎo)致虏辫,到了后面才發(fā)現(xiàn)是代碼里有個(gè)路徑問題。這樣差不多折騰到了早上6點(diǎn)锈拨,才把流程跑通砌庄。我教了一下K工如何使用我開發(fā)的這個(gè)軟件,等工人上班由K工教工人如何使用奕枢。
K工把L工和我送回酒店休息娄昆,L工中午要趕火車就先和我回酒店休息。
第四天 1月2日
我睡到了9點(diǎn)多缝彬,有點(diǎn)不放心打車跑現(xiàn)場(chǎng)去看看萌焰,畢竟這個(gè)代碼我自己都沒測(cè)過。K工在現(xiàn)場(chǎng)教工人使用我開發(fā)的軟件谷浅,使用過程中由于代碼出了bug導(dǎo)致自動(dòng)化跑不起來扒俯。在我配合實(shí)際生產(chǎn)使用的時(shí)候奶卓,發(fā)現(xiàn)我這個(gè)軟件不能幫助工人提高生產(chǎn)效率,手自動(dòng)模式銜接的不是很好撼玄。這整個(gè)交互可能需要重新進(jìn)行設(shè)計(jì)夺姑。我在現(xiàn)場(chǎng)留下了我的電話,一再叮囑工人出了問題打我電話掌猛, 因?yàn)檫@個(gè)未經(jīng)過測(cè)試盏浙,我也不清楚會(huì)出現(xiàn)什么問題。我和K工一起去吃飯荔茬,K工送我回酒店废膘,就回去睡覺了畢竟昨晚通宵一直沒睡。然后我就回酒店把那個(gè)bug改掉慕蔚,還有一個(gè)頁面優(yōu)化的問題丐黄。晚上7點(diǎn)的時(shí)候我打電話給K工讓他接我去現(xiàn)場(chǎng),
因?yàn)檫@個(gè)bug不是我預(yù)料的錯(cuò)誤孔飒,必須在現(xiàn)場(chǎng)才能調(diào)試出來孵稽。到了現(xiàn)場(chǎng),工人反饋說十偶,
因?yàn)槲臆浖罎⒁恢贝虿婚_菩鲜,泵關(guān)不掉,水溢出了惦积。這個(gè)是由于前天晚上趕出來的代碼接校,沒有添加限制導(dǎo)致下標(biāo)越位,工人在操作的不知道有這個(gè)要求狮崩。而且因?yàn)閿?shù)據(jù)是持久化的蛛勉,所有每次程序重啟的使用的時(shí)候會(huì)
加載這個(gè)錯(cuò)誤數(shù)據(jù),然后程序報(bào)錯(cuò)退出睦柴。我首先簡單修改了一下程序诽凌,能正常打開程序,先幫工人把泵關(guān)了坦敌÷滤校考慮了一下這其中的風(fēng)險(xiǎn),我程序崩潰會(huì)導(dǎo)致現(xiàn)場(chǎng)無法進(jìn)行生產(chǎn)狱窘,而且現(xiàn)在用我的程序并不能提高生產(chǎn)效率杜顺。我打電話給 leader說明一下現(xiàn)場(chǎng)情況及我的考慮。準(zhǔn)備回滾為原來舊的系統(tǒng)蘸炸。leader和B司的leader溝通后同意我的做法躬络,于是我準(zhǔn)備進(jìn)行系統(tǒng)回滾。打電話給L工搭儒,讓他把原來的PLC代碼發(fā)給我穷当,因?yàn)槲也渴鸬姆绞绞侵苯訐Q硬盤的所有他這個(gè)回滾倒是方便的提茁。這個(gè)時(shí)候發(fā)現(xiàn)了一個(gè)問題,原來系統(tǒng)的加密狗不見了(應(yīng)該是L工拿走了)L工說會(huì)寄一個(gè)新的加密狗過來馁菜。這樣只有明天才能回滾了茴扁。我在代碼把自動(dòng)化相關(guān)的那塊,具有復(fù)雜邏輯的東西給禁用了火邓。減少出問題的概率丹弱。再三叮囑工人出了問題一定要打電話給我德撬。我開發(fā)的電腦先放在現(xiàn)場(chǎng)铲咨,等明天加密狗到了再去現(xiàn)場(chǎng)代碼進(jìn)行回滾。就這樣我們折騰到了晚上11點(diǎn)才走蜓洪。晚上終于可以好好睡覺了纤勒,電視放著百家講壇。
階段五 (1月3日至1月4日)
1月3日
這天睡到10天隆檀,我電話給L工追問加密狗的事摇天,讓他寄快遞加急件,把快遞單號(hào)發(fā)給我恐仑。我看快遞單號(hào)是標(biāo)快泉坐,打電話過去追問情況,他說寄不了加急裳仆,只有標(biāo)快的腕让。這樣的今天就到不了。我打電話給leader說明情況歧斟,leader讓我把操作步驟寫下來纯丸,讓K工找個(gè)現(xiàn)場(chǎng)的人明天配合我進(jìn)行遠(yuǎn)程回滾。我把步驟寫下給leader看静袖,leader認(rèn)為步驟過于復(fù)雜觉鼻,工人搞不定的。說明天帶我去現(xiàn)場(chǎng)回滾队橙。中午時(shí)候K工來酒店接我坠陈。我告訴K工,人不用安排捐康,明天我們會(huì)過來回滾的畅姊。讓他和現(xiàn)場(chǎng)的人交代一下,出了問題一定要打電話給我吹由。我們就一起回杭州了若未,我的東西先扔現(xiàn)場(chǎng),反正明天就過來了倾鲫〈趾希回來高速還堵車了萍嬉。
下午我和leader碰了一下,溝通一下現(xiàn)狀和后續(xù)計(jì)劃隙疚。leader表示工人先這么用著壤追,出了問題開車過去也就一個(gè)小時(shí)。明天和b司leader碰一下供屉。
晚上我在家的時(shí)候用遠(yuǎn)程連了一下行冰,看了下現(xiàn)場(chǎng)服務(wù)端代碼的運(yùn)行情況,正常使用伶丐,我把數(shù)據(jù)庫同步腳本開起來悼做。
1月4日
K工打電話說了現(xiàn)場(chǎng)有了問題,我告訴他正確的操作流程哗魂。晚上遠(yuǎn)程的修改了一下代碼肛走,初始化時(shí)加載持久化數(shù)據(jù)的功能。減少問題發(fā)生的概率
結(jié)語
- 需求搞錯(cuò)了
我是基于leader的ppt進(jìn)行開發(fā)和構(gòu)思的录别,leader和b司的leader也一起對(duì)過了ppt朽色。
然而這倆人壓根不知道現(xiàn)場(chǎng)情況,導(dǎo)致我很多設(shè)計(jì)是錯(cuò)誤的组题。 - 工業(yè)軟件一定到了解真實(shí)的使用場(chǎng)景葫男。挖到客戶的真正需求。
- 代碼一到現(xiàn)場(chǎng)就大改了崔列,所以一開始在公司寫的很多的代碼都是無效的梢褐。