作者:CppExplore 網址:http://www.shnenglu.com/CppExplore/
在這個blog上寫了幾篇技術文章,一是記錄下自己對技術的一點淺顯的看法,二是在自己的認知范圍內揭示系統級別的核心技術,希望能對后來人能有一點幫助。從系統角度而言,技術本身只是實現業務的載體,業務才是系統的靈魂。因此除技術外,也準備寫點其它方面的東西,大抵也就是寫下面幾個系列的文章,技術系列、業務系列、系統系列、測試系列、團隊管理系列。以前本blog上起名為系統設計系列的文章,現已全部改名為技術系列了。
技術系列,在本人的認知范圍內,探討系統級別的核心技術,文章描述的都是技術本身,最終目的是建立公用的模塊庫,比如含消息隊列的線程模塊、狀態機模塊、定時器模塊、對象池模塊、log模塊、網絡層模塊、管理接口模塊等等。
從個人的角度考慮,開發公用模塊,可以加深對系統整體的了解,能有更多的時間去了解新的技術、去認識業務的重要性、去考慮系統劃分的合理性,不要陷入技術繁瑣細節的泥潭,技術僅僅是工具而已,它們背后的原理都很簡單。
從團隊的角度考慮,開發公有模塊,可以增加系統的可維護性、減少對新員工的培訓成本、使具有不同業務的系統在技術細節上呈現一致性,形成開發的可持續性,減少對個人技術的依賴,不會因為某個核心人員的離職而造成后續開發的戛然而止。
公有模塊開發導致的后果是減少對個人的依賴,因此有的技術人員可能對開發這些模塊產生抵觸心理。個人認為,技術是沒有邊際的,單個人是永遠也不會掌握所有技術,單純的技術也不是正確的職業規劃,固步自封只能導致自己技術水平的落后。以開放的心態、職業化的心態去做實際的開發、去交流溝通,最終受益的是自己。
業務系列的文章寫點本人接觸過的業務,以公有協議為主線,mgcp、sip、rtsp、rtp、rtcp、加密框架等,協議本身、應用場景等,想想可寫的東西也不多,和技術一樣,都是很少很簡單的東西。
系統系列,則從業務的角度出發,描述一些通用系統,也就是純公有協議業務系統。比如說個媒體負載子系統,該子系統可以獨立于信令協議,一個信令系統下可以掛載n個媒體子系統,可協同信令系統完成nat穿透、負載均衡、媒體流加解密等功能,使用私有協議和信令系統通訊,可定時比如60秒發一次負載個數信令到信令系統,一是作為心跳,二是作為負載均衡的依據。再比如一些頂層協議無關的proxy系統設計等。
從團隊、公司的角度來考慮,開發公用系統的重要性不言而喻。開發公用系統也即開發工作由項目驅動轉化為產品驅動、根據所做一系列項目的固有特點,找出事物的內在規律,合理劃分子系統。
開發公用系統,可以降低開發的成本開銷,便于公司去開發更多的業務,涉足更多的業務市場,從而形成不斷擴大的業務市場,而不是以防守者的姿態,維護自己已有的甚至是逐漸萎縮的業務市場份額。
測試系列。測試團隊的開發還是集中于業務層面的測試,白盒測試、穩定性測試還是要研發自己來做。寫點自己的測試心得。雖然本blog上的技術文章遠多于測試,但個人認為測試的重要性大于技術,不重視測試的研發不是一個好研發,也不會成為一個好研發,頂多是一個夸夸其談的華而不實者。
團隊管理系列,也或許不會寫。但從職業發展的角度看,還是應當總結點,在不同的公司感受不同的管理,看看各個公司的相同點不同點,管理的初衷等。團隊管理部分,個人看呈現下面幾個部分:公司福利/公司制度、項目管理、技術培訓、對員工的人文關懷、個人管理等。