程序員難道真的只是寫代碼
摘要:作為一個技術人員,而且還是做程序開發的,我們該專注什么,怎樣去專注?看作者給我們作一個講述
工作也這么久了,到現在才靜下心來想一件事:作為一個技術人員,而且還是做程序開發的,我們該專注什么,怎樣去專注。昨天公司發生的一件事讓我徹悟了,也讓我明白了很多事。
公司是做WebGame的,現在這個行業被炒得熱火朝天,為什么,因為這個行業有利可圖。之前我一直埋怨公司做事都是那樣的沒有條理性,反反復復的事情做了一遍又一遍,對于一個開發人員來說,或者一個熱愛技術的人來說,新鮮對于我們每個人來說都是如此的重要,就好像人體的機能一樣,要不斷的更新體內的血液,這樣才能煥發出青春的光彩。我也是這樣的一個人,內向不愛說話的性格,整天埋頭于code當中,它就是自己的知己,那一行行的英文字母,千變萬化的組合,讓我的心潮洶涌澎湃或是低暗陰沉,在彼此的對視中讓我感受一份寧靜的快樂。
公司掛了十幾個Web服務站,雖然不是很多,但是對于有限的人員維護來說這是比較多的任務了。昨天下午,公司準備換WebGame游戲服務器其中四臺機器的IP,本來是一件很容易處理的一件事,域名重新解析一次,游戲鏈接訪問地址改改就萬事OK了的。但是偏偏在這個時候就出現了一個麻煩事,公司的充值平臺光榮了,這對于一個公司來說這簡直就是致命的。問題煩就煩在怎樣去解決這個問題。
公司技術部的人員基本上都請假回家了,五一節么,都回家看看了。我是不幸者,他們都提前請假了,我理所當然的留下了照看好我們的服務器。沒有想到的是會發生這種事情,平臺不能使用了。我是一個專職的編程人員,一心只想在編程方面尋找自己的樂趣,好像外界的其他東西都與我無關。事情發生了,我不能推遲說我不去干這種網絡方面的問題,之前一直都沒有搞過網絡維護,有也只是馬馬虎虎很膚淺的東西。
于是我硬著頭皮去做這些事情,在對于解決這個問題我習慣性的思維,那就是程序有問題。發現這個問題的時候,只有一個web站發生了這種情況,那就是在用戶訪問我們的網站的時候,不能正確顯示頁面信息,每次點擊鏈接訪問都會彈出一個下載頁面。我習慣性的認為是程序問題,因為當時我沒有想到過還會有其他的問題,我被程序的思維給束縛住了,讓我的思維定向在了一個局部。這是我犯下的第一個錯誤,這個問題讓我久久不能擺脫這個困境,我花費了大量時間去尋找代碼的問題,代碼看了一遍又一遍,總感覺沒啥問題,但自己又沒想法去尋找其他的解決方案,或者去判斷根本不是程序的問題。
后來經過別人的提醒,我們公司是使用的tomcat+nginx,可能問題就出現在nginx 這個鬼東西上面。問題是發現了,但是新的問題又來了,對于Linux下面配置tomcat,nginx 這些東西我都是略懂皮毛,或者說連一次實際操作經驗都沒有,每次都是自己上傳啥東西都不用管。但是還自詡自己是如何的懂Linux,遇到問題了啥都漏底了。當時自認為自己會一些Linux命令,怎樣上傳文件就認為自己學會了Linux,而且還是那種非常不錯的。我再一次反省我真的錯了,我學的啥也不是,連皮毛都沒有學到。自己學東西自我滿足,學而不精。后來自己邊學習邊解決問題,下載的問題終于得到解決,而且還是最笨的那種方法,我卸載了nginx,直接使用tomcat來單獨支撐我們的充值平臺。
問題是一個接著一個,當我卸掉nginx之后,頁面時沒有彈出下載框了,但是頁面文件都出現了亂碼。這個時候我感覺自己都要崩潰,這不是生成服務器啊,這是公司的運行服務器,出現這種問題真的很為難,在對Linux不熟的情況下,隨隨便便的操作,那無疑是背著一塊石頭去爬山啊。這個時候游戲這邊的IP都全部換過來了,但是這個時候平臺出現這種問題,即使換過來又能怎樣,破屋更遭連夜雨,苦難是一重接著一重。而這個時候不斷的去修改服務器上的內容,導致了用戶罵聲一片,如諜影重重。我再次犯下了嚴重的錯誤,為什么。我只是一味的去考慮怎么去解決問題,我沒有想到現在是在運營一個網站,我沒有去考慮用戶的想法,不斷的去修改不斷的將用戶從平臺擠下去,導致的用戶的反應極為惡劣。
千絲萬縷的聯系,我將問題一個個羅列出來,查找問題出現的可能性。最終判定服務器受到了攻擊被掛馬了,有人惡意攻擊我們的平臺于是導致了這種狀況。當時我發現這個問題的時候還只是少數幾個頁面出現了這種被感染的問題,我一味的去查找服務器上網站源碼是否被修改。我一個個的去查找,確定沒有文件被修改。無論我怎樣替換文件,同樣的問題還是會出現,每個頁面都加了惡意的代碼。當我沒有確定問題的時候,我還是執著的去尋找問題的根源,當然這是好事。但是我忘記了,我們不只是這樣一個平臺,有十幾個web站,還有公司的賬務系統。它們都處于用一個防火墻下面,都是通過同一個交換機出去的,我萬萬沒有想到,我只顧了細節,沒有顧全大局。我沒有去檢查其他服務器的安全性問題,最終導致了不可收拾的結果。公司的十幾個web站都被掛馬了。偶的天啊,我當時簡直快瘋掉了,我感覺自己的汗一滴滴的往下流,這是多么嚴重的事,我真的犯錯了。我沒有考慮到顧全大局,導致了如此慘敗的局面。
問題查出來不是服務器受攻擊了,是在數據傳輸出來的過程中被修改的。也就是在防火墻 或 交換機這個地方被篡改了。問題又把我難住了,我不懂網絡,我不知道如何去修改,我不知道怎樣去檢查攻擊源。后來我聯系IDC機房那邊的工作人員,問題再次出現我發現自己的交流能力是如此的差,跟別人說明一個問題是如此的費心,沒有別人那樣得心應手。程序員啊,這就是程序員,懂得了和計算機交流,卻忘記了怎樣和人交流了。
昨天晚上加班到兩點解決這個問題,最終沒有能夠得到解決。今天本來很多公司單位都放假了,終于還是找到了IDC的技術人員解決了這件事。到這里事情算是告一段落了,我也累趴下了!!這個時候想到這件事,心里有太多的感觸。
自己總結一下吧:
(1).自己總是去抱怨程序員自己做重復無聊的事情,但是想想自己有幾件事情事做好了的。做重復的事情,說明這件事之前也是你做的,為什么重做,因為你沒有做好(當然公司業務的改變可能會導致這樣的問題,但是我感覺這不是主要的).現在很多程序員都是這樣,天天抱怨自己做的事情沒有技術含量,天天做重復的事情,無聊沒有樂趣。其實有沒有樂趣關鍵是自己怎么去看待這件事,就好像java,C# 那個更好一樣,這是仁者見仁智者見智的事情。保持好自己的心態,做好每件事。
(2).判斷事情的正確與否,不能根據自己的常性思維去判斷,要有理智的思考。我這次犯下的錯誤就是總是以程序的角度去看待這些問題,因為自己是習慣性的看待程序問題,或許問題根本不是這樣的,而自己把這種習慣性的思維強加在這個上面了。判斷問題要去理智的思考,而不是一廂情愿。
(3).感覺自己有些好高騖遠吧,這可能是程序員的通病,不僅僅是我自己。程序員的值得炫耀的地方本來就不多,這學習一門新的技術恰恰是我們這群人炫耀的資本,這個高帽子讓我們蒙蔽了雙眼不正確的去看待一個問題。學習不能不求甚解,學習應該精益求精。
(4).做程序不能只做程序,我們的平臺還有那些網站都是做好測試通過了的。但是部署之后還出現了這樣的問題,問題雖然不在程序本身,但是作為一個技術人員的我卻是束手無策,或者說不能及時的去解決。有些程序員說自己是做程序開發的,其余的一律不管。開始我也是這種心態,其實這樣是錯的。做技術的,不僅要能寫代碼,還要懂網絡安全維護等問題。你程序做的再好,但是安全不能保證,再好的程序有什么用。
(5).上次參加博客園的一次活動,有人說程序員給人的感覺就是不善交流,給人很嚴肅的感覺。那是的,人和計算機交流久了,人和人之間的交流變得陌生了。我們是生活在一個人和人的環境中,而不是一臺機器。交流能力還是非常重要的。
(6).做事情要考慮大局,不能從著眼于小處。如果你是一個掌控全局的人,你應該關心的是這片林子能夠產生多少木材,怎樣讓這片林子不受一顆垂死的樹的影響,而不是這棵樹快死了我該怎樣去拯救。
全站熱搜