面向指令-例如input指令
加入多執行緒或多程序技術--使用池技術
指令可排隊緩衝
可除錯可中斷
資料全域性化,行為和資料剝離。
去掉房間的概念
地圖邏輯和座標從邏輯伺服器拆分出去。
介面的標準化
互動資料精簡
伺服器的產數化配置化
防禦性程式設計的例子
任何指令都有必要條件和非必要條件,各個條件在任何時間段內的測試點滿足。
當對物件執行任何指令時如果物件銷毀在程式層面是軟體組織方式的錯誤。
在乙個多執行緒遊戲服務上物件的銷毀是乙個正常狀態,這時物件的概念已經不是程式
組織層面的問題而是遊戲架構層面的問題。
當系統開發人員越多系統本身日趨複雜時,因為沒有任何人可以完全掌控所有系統流程,各個功能間的耦合錯誤將不可避免。
通常只有兩種方式來解決,增加人手和使用專案經理分解需求部門的任務壓力。專案的壓力落到開發人員身上帶來的效率提公升
遠遠小於人為錯誤帶來的新的工作量。使用專案經理就好比乙個閥門,保證開發的質量和進度。缺點是耦合錯誤並沒有徹底消失
並且會伴隨系統複雜度的增加成爆發趨勢的增加。當大於某個臨界值時任何新加的功能帶來的工作量可能遠遠小於因為新加功能產生
耦合錯誤解決的工作時間。解決耦合錯誤的工作時間會可能無限的增加直到系統開發停止。
第二是進行更完善的系統規劃和設計,好的設計會大大減少功能間的耦合錯誤。也會帶來乙個問題就是設計的工作需要極高的智慧型和
經驗對複雜系統的掌控和反覆的探索。好的設計的代價遠遠大於簡單的使用專案經理的代價,甚至是遠期的規劃和容易不被察覺的工作。
極容易被管理層或普通的開發人員忽略認為其沒有價值。
資料庫的結構
map的特性是多執行緒讀安全多執行緒寫是不安全的,set和query的使用還是最方便。即便是多資料的聯合查詢也要比sql語句來的更清晰。實際上sql的基本結構還是map結構。遊戲資料是以程式架構意義上的物件為單位組織和操作每個物件的操作是天然排隊,乙個物件不能同時進行多個動作所以資料是按物件進行互斥操作,表結構是把多個邏輯意義關聯的資料放在乙個表內和按物件查詢零散的資料並不一致。進一步把物件的資料翻譯成表結構哪是存檔動作去做的事情了。在記憶體當中按作用的物件天然排隊操作物件的資料互斥鎖最為接近現實情況。表已經是一種進過整理和邏輯分類的資料,不能一張表內只有乙個物件的資料,而是按資料型別形成多個表,資料的表結構沒有天然意義的物件概念。
工作筆記(雜亂無章的東西)
2014.01.101 linux下查詢檔案的比較常用的命令find 舉例 查詢某個目錄下的某個檔案 查詢 work目錄下的envsetup.sh檔案的方法 find work name envsetup.shwhich 用於查詢可執行檔案 命令 的位置 which ls bin ls還有乙個查詢某...
Android布局中一些瑣碎的東西整理記錄
1.android layout weight 1 這裡的值可以根據情況進行修改,不一定非得是1 這個屬性很關鍵,預設情況下,如果你沒有設定它,它的值為0.舉個例子 比如說我們在水平方向上有兩個文字編輯元素,如果將它們每乙個的layout weight值都設定為1,則兩者平分父檢視布局的寬度 因為我...
雜亂的定義
什麼是固定ip位址 固定ip位址是長期分配給一台計算機或網路裝置使用的ip位址。一般來說,採用專線上網的計算機才擁有固定的internetip位址。什麼是動態ip位址 通過modem isdn adsl 有線寬頻 小區寬頻等方式上網的計算機,每次上網所分配到的ip位址都不相同,這就是動態ip位址。因...