1. 程式人生 > >兩個月C++實習總結篇

兩個月C++實習總結篇

實習時間:2012-08-27 到2012-10-24 將近兩個月的實習時間。 工作背景介紹:    首先看一下專案的整體架構。通過圖來介紹一下專案負責的部分:           專案的需求任務是工作流引擎,因為使用Java工作流比較方便,因此,公司選擇使用普元平臺做了基於普元平臺的工作流引擎。通過圖,可以觀察到客戶乃是C++系統,我們做的工作流引擎是相當於客戶C++系統的一個外掛而已。並且客戶的C++系統已經投入使用中了。        為了使公司中的Java引擎能夠相容嵌入到客戶的C++系統中,基於這個需求下,我的工作任務誕生了——中間部分的C++通訊客戶端。 專案技術分析       整體的架構有了,通過圖,大概能夠知道我負責的C++通訊客戶端這塊的大概技術要求了。中間部分就相當於協調者,協調的主要任務就是通訊。       通過這個小內容技術分析,目的不是吹噓技術,更不是炫耀自己的技術或公司或客戶。而是真實的表達出目前市場技術形勢以及技術需求,需求有了,才會有明確的學習目標。 首先:C++通訊客戶端<——>Java工作流引擎
      通訊方式共有三種:
  1. webserivce,與語言無關的介面。並且是個基於w3c標準。其中,在專案中,我就是通過webserivce來實現C++與Java通訊的。其中,C++客戶端使用的soap或gsoap。
  2. JNI方式統稱為Java Native Interface,Java本地呼叫方式。JNI標準已經是Java平臺的一部分,允許Java與其他的語言進行通訊,一般情況下,主要是為了C或C++設計的。只要他們約定好介面就行。  在JNI方式中,因為本地呼叫,所以在Java宣告方法時,是使用native關鍵字,說明是非Java語言實現。具體的方法實現則是在C++或C中。
  3. socket通訊
    socket通訊,這部分內容,確實很重要,做過Java客戶端的,基本都接觸過這socket部分,而我從未接觸過java客戶端,而是直接上手的java web,所以當時對socket通訊,確實有點點難理解。所以沒有選擇socket通訊方式。但是socket通訊,在專案中也是重大的部分。
其次:B/S工作流——>C/S客戶端       基於普元的Java工作流是B/S網頁形式,而客戶C++系統,則是純純的C/S模式,如何把後臺的B/S工作流轉化成C/S客戶端哩?       因為是初次接觸MFC,對於陌生的東東,是需要時間來熟悉的。由於初次接觸,所以組長好心提示,做成類似網銀載入提示的Active控制元件。自己手動開發Active控制元件,對於C++開發者,也許還有難度,更何況對於我呢?呼呼,經過自己上網查資料,嘻嘻,發現B/S轉C/S很簡單,一個自帶的IE控制元件即可。OK,載入IE控制元件,URL地址設定成後臺引擎的首頁,一切搞定。YES,一個IE控制元件,搞定B/S轉C/S。       哈哈,有網的地方,就會有天使。 然後:JSP<——>C++
        根據業務的需求,通過後臺Java返回的結果,呼叫本地的業務視窗。通過webserivce,每次都是在伺服器端彈出,而不是客戶端,所以webserivce這種方式失敗。為了實現這個業務功能,所以直接讓C++客戶端呼叫,就可以實現客戶端彈出相應的業務視窗。因此,JSP需要與C++打交道。所以,通過寫js事件,呼叫C++方法,即可實現。 這部分通訊,需要JS與C++通訊。主要實現的是Iimdispatch介面。主要是根據名稱,迴圈查詢相應的id,然後通過id,查詢相應的方法。 還有,C++通訊客戶端<——>客戶C++系統       C++之間的通訊,主要是通過函式依賴完成。函式依賴,也就是通過靜態連結庫或動態連結庫方式載入。只要從事C++的,這部分也算是常識了。      這部分重點不是函式依賴,而是socket通訊。      因此socket通訊,這部分內容,也是我們需要掌握的。      無論是windows底層的socket32 api,還是mfc封裝的Csocket,原理都是一樣的,只不過,mfc封裝的Csocket或java封裝的socket,相對於socket32簡單些。      在通訊的過程中,使用udp方式,因為udp相對於tcp簡單,不需連線,不許監聽,但是有優點,就會有缺點。udp不如tcp安全。      但是,udp依然可以做到tcp的三次握手。由於業務的需要,在udp之上,又添加了tcp連線。只要udp用的合適,用的好,與tcp無差別。      其中,內部還涉及到了解析xml,建立xml,這部分的內容也是為通訊做準備。      在技術分析這塊,只要總體介紹了工作專案中應用到的技術,而沒有具體介紹,在後期部落格中會有相應的詳細介紹,目的:記錄工作經驗,同樣方便別人。 生活篇         雖然在公司天天加班,但是公司的氛圍還是挺好的,嘻嘻,都是一幫剛畢業的”北京青年“。餐桌上有說有笑,有搶有奪,飯後有打有鬧。呵呵,所以心情還是挺愉悅滴。         自我感覺,自己還是挺重感情的,喜歡結交朋友,喜歡水滸中的英雄好漢,喜歡桃園三結義,喜歡古惑仔情義。感覺自己就像個男孩子,但是喜歡情義的我,其實,內心也並不寬廣。但是吧,生氣一會,就沒事了。         這次實習的公司,認識了新的朋友,無論是搞安卓的小李子(李衝),還是搞java web的小楚子(楚福偉),還是實習生喜洋洋(陳陽羊),還有最後實習走轉行的郝峰o(︶︿︶)o ,還有搞怪的,經常送我小耳釘的人事部的雪娜,還有跟他們合夥對抗“敵人”—王國濤。還有就是不愛說話的技術蠻深的小吳(組長),還有…… 突然實習結束,有種捨不得的感覺。喜歡跟他們一塊吃飯,喜歡在餐桌上一起打鬧,喜歡飯後聊天……       在客戶那邊,接觸最多的也就是小曹了,感覺技術很高,尤其是思維敏捷。在C++上,同樣幫助我很多。       可回來的匆忙,無論是公司還是客戶,一些可愛的朋友,都沒有見面道別……       北京之旅,收穫很多。知識,信心,朋友人氣……       其實,我對知識並不是太看重,知識,技術,是永遠學不完的,只要會學習,想學習,沒有學不會的。