開發已經一個星期了,每天都累的不行,明天就是周末了,可以好好休息休息了,幹些想乾的事情了。
到得是一家手機遊戲公司,剛到得時候就接手了一個android手機圍棋項目,是一個連網的圍棋遊戲,用戶端一哥們花了半年的時間,已經做好了,效果還很不錯,伺服器也寫了一些,到了就開始讓我寫伺服器,並且是試用6天,行了再試用一個月,正好趕上過年。
第一天還是比較 壓抑的,6個月的項目從頭理出個頭緒還是比較緊的,不過後來就好多了,因為畢竟是socket寫的伺服器,以前也有過些經驗,所以從第二天就開始上手寫了,到第5天的時候,日本老闆突然說日本總部的伺服器是linux,要用tomcat來部署,讓人匪夷所思的是老闆竟然連什麼是tomcat都不知道,於是就讓轉,那隻能用servlet來寫伺服器了,結果寫著寫著就發現寫不下去了,工作量成倍的增加,因為都知道servle不會主動的給用戶端發資料,只能是當用戶端請求的時候才能響應,向用戶端發資訊,這個遊戲有27個房間,每個房間有100張桌子,還要聊天,請求桌子資訊,房間資訊等,甚至是下棋雙方一人走的是什麼棋都要通知給對方,用socket的話伺服器可以把所有的客戶資訊給儲存下來,但是servlet的話,就只能把這些資料放到資料庫中去,然後讓用戶端不斷的隔一段時間去請求,寫了兩天,兩個測試手機下棋都慢的要死了,經常死機,真希望servlet能夠有主動向用戶端發資料的功能,上網搜尋了一下,說這是一種叫做伺服器端“推”的技術,在tomcat6 ,servlet3規範中實現了,調試了一下,根本行不通,我還在比較鬱悶當中,不過我倒是挺佩服合作的那哥們的,那哥們只是淡淡一笑,說這可不行,我覺得他絲毫不擔心老闆那邊,老闆說月底年前要結束,他還是很樂觀,看來得向他學習這種心態。
後來今天上班,我還在擔心,那哥們和我說,不用servlet做了,也不用socket那種tcp了,用udp,讓兩個下棋的對方來互相儲存對方的資訊,而讓伺服器和用戶端用udp連,以此來減輕伺服器的壓力 。所以又把項目改為udp,本來以為改動會增加很多工作量,而是發現並非如此,抽象的思想還是很重要,因為用戶端和伺服器端只是傳遞資料,來通過接受到得資訊來決定自己的行為,所以要改的就只是發送資訊的函數就可以了,函數也封裝起來了,改一個就可以,這麼寫著寫著,自己都覺得有點“失控”了,覺得改起來有種不錯的感覺,抽象和封裝吧。
最後就是今天是周五了,下午的後兩個小時都不太集中注意力了,發現調試的時候出現了莫名奇妙的問題,比較鬱悶,具體細節就不說了,只想說一句,有時候讓你心煩意亂,對自己產生懷疑的,有可能就是一個“-”小小的符號,這是在解決訊息處理時的一個規範,本來該是"_",當代碼一多,一莫名其妙的時候就考研你的神經了,所以堅定的信念還是做什麼事情都需要的。
路漫漫其修遠兮,吾將上下而求索吧,呵呵,大家多交流。