大學(xué)生微軟公司實(shí)習(xí)總結(jié).doc_第1頁
大學(xué)生微軟公司實(shí)習(xí)總結(jié).doc_第2頁
大學(xué)生微軟公司實(shí)習(xí)總結(jié).doc_第3頁
大學(xué)生微軟公司實(shí)習(xí)總結(jié).doc_第4頁
大學(xué)生微軟公司實(shí)習(xí)總結(jié).doc_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

大學(xué)生微軟公司實(shí)習(xí)總結(jié) 大學(xué)生微軟公司實(shí)習(xí)總結(jié)前言 離開實(shí)習(xí)的那家公司已經(jīng)有一個月了,但這篇文章卻遲遲沒有寫完,或者是找工作讓人折騰,或者還是自己太懶了,趁這兩天有一陣緩沖期,抓緊時間把這段經(jīng)歷做個總結(jié)吧。在正式開始之前,首先介紹一下我實(shí)習(xí)的這間小公司的一些概況吧,這家公司做的是ERP產(chǎn)品,使用的技術(shù)是Winform/C#。在這實(shí)習(xí)的兩個月時間里,Winform給我的感覺是適合做桌面快速開發(fā),但我還是不太喜歡這門技術(shù),覺得Winform的前后臺開發(fā)比較耦合,對界面的展現(xiàn)相當(dāng)乏力,據(jù)聞微軟推出的WPF會是WINFORM的一個替代品,可見在未來WINFORM的使用率會逐漸下降。boss是一個新西蘭海歸,本身也有10年開發(fā)經(jīng)驗(yàn)了,現(xiàn)在回國創(chuàng)業(yè)。期間在與boss交流的過程中,發(fā)現(xiàn)一個有趣的事情:在新西蘭那邊軟件開發(fā)行業(yè)微軟的技術(shù)很流行,原因是微軟與那邊的大學(xué)合作緊密,采取了一系列激勵學(xué)生從事微軟技術(shù)開發(fā)的措施:開設(shè)專門學(xué)習(xí)微軟技術(shù)的課程,計(jì)算機(jī)學(xué)生可以免費(fèi)獲得Windows正版認(rèn)證,如果在學(xué)校的微軟課程中學(xué)習(xí)成績優(yōu)異,還可以獲得額外的獎品,boss說他曾經(jīng)在微軟的技術(shù)課程中考到了第一名,然后就被邀請到新西蘭微軟總部領(lǐng)取了一臺XBOX游戲機(jī),可見,微軟在那邊的推廣力度還是很大的。為什么微軟愿意花這么大資金投入呢?相信沒有人愿意做虧本生意。boss提到在新西蘭那邊,版權(quán)是受到法律嚴(yán)格保護(hù)的,如果員工發(fā)現(xiàn)公司沒有使用正版軟件,是可以直接告公司的,所以那邊的公司基本都會用正版軟件,微軟的投入不是沒有回報(bào)的。同時新西蘭的IT行業(yè)起步不是很早,所以在微軟的高推廣力度下收效非??捎^。 閑說了這么多東西,接下來開始進(jìn)入正題吧,首先要介紹的是工具篇。工具篇“功欲善其事,必先利其器?!?作為一個開發(fā)者,除了具備優(yōu)良的編程理念和敏銳的思路,同時應(yīng)該能熟練地使用一些工具,內(nèi)外兼修,工具的使用能大幅度地提升開發(fā)效率,帶來的效益是很可觀的。在實(shí)習(xí)的這家公司里,開發(fā)用的是Visusl Stdio 2010 和 SQLServer 2008。對于數(shù)據(jù)庫而言,我沒接觸過其他DBM,所以不好對比,但是一提起VS,仿佛我眼中就冒出火光了,對,這是我接觸過最強(qiáng)大,最具生產(chǎn)力的開發(fā)環(huán)境,沒有之一。對于這兩個常用的開發(fā)環(huán)境,這里就不在多說了,接下來將介紹一下其他的工具。 1. ERStudio 在未使用ERStudio前,我一直是直接在SQL-Server的Query窗口中寫CREATE TABLE語句,說實(shí)在話,我很喜歡這樣的開發(fā)方式,畢竟一切都在代碼的可控制范圍內(nèi)。但手動寫CREATE TABLE對于TABLE少的情況下還好,一旦TABLE的數(shù)量比較多的時候就比較難辦,因?yàn)楹茈y看出表與表之間的聯(lián)系,容易遺漏東西。ERStudio具有強(qiáng)大的數(shù)據(jù)庫建模功能,可以自動生成CREATE TABLE語句,同時還可以查看已建好的數(shù)據(jù)庫的結(jié)構(gòu),印象比較深的一次是使用ERStudio把數(shù)據(jù)庫中的大概30張表拉到可視化建模界面顯示,表與表之間的聯(lián)系能夠清晰地展現(xiàn)出來,對于了解整個模塊的數(shù)據(jù)庫設(shè)計(jì)提供了非常好的圖形界面。 2. Team Foundation Server TFS作為一個團(tuán)隊(duì)開發(fā)服務(wù)軟件,只需部署到服務(wù)器上,然后讓每個開發(fā)端的VS的團(tuán)隊(duì)資源管理器連接到服務(wù)器,這樣就能進(jìn)行團(tuán)隊(duì)開發(fā)任務(wù)了。確切來說,TFS大概可以分為兩個部分,一個是源代碼管理,另一個是開發(fā)任務(wù)管理。對于源代碼管理,在日常開發(fā)中經(jīng)常用到的操作有獲取最新版,簽入代碼,簽出代碼,解決沖突等。當(dāng)然TFS還提供了很多強(qiáng)大的功能,這里就不一一列舉出來了。 對于每個開發(fā)者而言,使用源代碼管理器,不僅可以專注于自己所負(fù)責(zé)的模塊的開發(fā)情況,也可以及時地獲取最新版本,同時源代碼管理器還保留了歷史開發(fā)版本,具有很高的安全性,對于團(tuán)隊(duì)項(xiàng)目來說這真是必不可少的一個工具。 TFS對于軟件開發(fā)管理方面同樣提供了很好的支持,使用開發(fā)任務(wù)管理,你可以建立自己的任務(wù)列表,設(shè)置每個任務(wù)的優(yōu)先級,預(yù)計(jì)完成時間,開發(fā)標(biāo)記(未開始,開始,已完成,阻塞),以及注釋等等。在之前做個人項(xiàng)目開發(fā)的時候,自己是沒有做提前規(guī)劃的習(xí)慣,基本上是突然想到什么就做什么,開發(fā)任務(wù)很凌亂,所以效率確實(shí)不怎么樣。而開發(fā)任務(wù)管理可以幫助你整理任務(wù),跟蹤你的開發(fā)情況,記錄每天的工作情況,久而久之你也許會驚喜發(fā)現(xiàn)自己的開發(fā)效率會在潛移默化中逐漸提高,至少對于我自己使用過后的感受是這樣子的。以致后來自己在做個人開發(fā)的時候,也喜歡使用開發(fā)任務(wù)管理軟件,不過我不是使用TFS,畢竟這是針對團(tuán)隊(duì)開發(fā)而言的,對于個人使用有點(diǎn)過于龐大而且部署復(fù)雜,所以我自己使用的是一款叫做 TODOLIST 的免費(fèi)軟件,我非常喜愛這個東西,因?yàn)樗_實(shí)很好用,所以在這里推薦給大伙。 微軟的TFS功能很強(qiáng)大,同時也是一個收費(fèi)軟件,如果想使用免費(fèi)的SVN,可以參見Mercurial,著名問答平臺StackOverFlow就是使用這個版本管理軟件。 3. SQL Server Profie SQL Server Profile 是一個監(jiān)控SQL Server運(yùn)行的組件,需要安裝SQL Server企業(yè)版才會有這個組件。使用這個組件的一個很重要原因是為了監(jiān)控SQL和存儲過程的執(zhí)行情況,因?yàn)閷?shí)習(xí)的這家公司使用自己開發(fā)的框架,封裝了很多數(shù)據(jù)庫底層操作,所以有時出BUG了,需要查看某個存儲過程或SQL到底執(zhí)行了沒有,這時候SQL Server Profie 就派上用場了。 4. SQL Promt 使用了SQL Promt后,我發(fā)現(xiàn)我越來越離不開它了。不知道SQL Server 2012對于T-SQL智能提示的支持做得怎樣,至少在我本機(jī)的SQL Server 08 Express R2的智能提示確實(shí)不怎么樣。SQL Promt是可以運(yùn)行在SQL Server上的一個收費(fèi)插件,提供了強(qiáng)大的智能提示功能。實(shí)習(xí)的這家公司很多業(yè)務(wù)邏輯需要寫成存儲過程,對于兩三百行的存儲過程如果智能提示很差的話,對于編寫者而言將是一個災(zāi)難,因?yàn)槲易约阂婚_始沒有用這個插件,對比兩個開發(fā)模式,所以我深有體會,使用Promt可以大大提高開發(fā)效率。技術(shù)篇 1. 12層的開發(fā)框架 傳統(tǒng)的開發(fā)框架基本分為最基礎(chǔ)的三層:界面UI層,業(yè)務(wù)邏輯層,數(shù)據(jù)訪問層。12層的開發(fā)框架是建立在傳統(tǒng)三層之上的,首先最底層是基礎(chǔ)層,分別定義了項(xiàng)目的界面,業(yè)務(wù)邏輯,數(shù)據(jù)訪問的基礎(chǔ)組件,供上層使用。層與層之間的調(diào)用也是有嚴(yán)格限制的,即上層只能訪問下層的東西。也許你會覺得12層好像很多余,使用傳統(tǒng)三層不也可以嗎?其實(shí)這就要牽涉到ERP的問題了,雖然ERP已經(jīng)有一系列的標(biāo)準(zhǔn)操作,但不同的行業(yè),細(xì)分到不同的公司,卻希望能有個性化定制,切實(shí)符合公司實(shí)際應(yīng)用場景,如果使用傳統(tǒng)三層,那么有關(guān)個性化的部分會與公司的ERP通用產(chǎn)品緊密地耦合在一起,這是不利于后期維護(hù)和功能擴(kuò)展的。12層的開發(fā)框架就是為了解決這個問題的,基礎(chǔ)層之上是標(biāo)準(zhǔn)層,標(biāo)準(zhǔn)層之上是行業(yè)層,行業(yè)層之上是公司層,這樣客戶個性化定制的功能就主要集中在上層了,這就避免了耦合,從而也能最大程度地重用代碼。 2. 面向集合的SQL 相信很多開發(fā)者跟我一樣,因?yàn)閷τ诿嫦蜻^程的熟悉,很容易把面向過程的思想也帶到SQL中來。比如說現(xiàn)在為一張表生成測試數(shù)據(jù),面向過程的思想會這樣做:這還不簡單嘛,寫個WHILE循環(huán),設(shè)定一個循環(huán)變量,一次插入一行數(shù)據(jù),然后就翹起雙手坐等結(jié)果出來。這樣子的方案確實(shí)能解決問題,但又有沒有考慮過效率問題呢?如果按照一次一行的處理方式的話,SQL Server會為每一行Insert生成一個事務(wù)處理,一旦處理的數(shù)據(jù)量很大,速度是非常慢的。不如讓我們把視角從面向過程轉(zhuǎn)到面向集合,來看看面向集合又可以怎樣實(shí)現(xiàn)吧。面向集合的SQL 當(dāng)然這個例子還不足以說明面向集合思想的應(yīng)用場景,要講明白面向集合的思想還需要很大的篇幅介紹,這里也就點(diǎn)到為止了,畢竟我自己也處于接收面向集合思想的初級階段,就不敢繼續(xù)班門弄斧了,想要了解更多可以點(diǎn)擊:。 3. 使用腳本模板和界面模板 很多時候,在進(jìn)入功能開發(fā)的前期,我們都要做一系列基礎(chǔ)的工作,比如新建一個Form后,引入必要的命名空間,添加必要的界面控件等等。這些工作確實(shí)耗費(fèi)時間,那么這時候就應(yīng)該考慮使用模板了。我接觸過兩種模板,一種是T-SQL模板,另外一種是界面模板。創(chuàng)建T-SQL模板應(yīng)該來說比較簡單,只要一點(diǎn)小技巧就可以了,那就是在SQL Server的Query窗口寫完模板后,存為文件后就把文件設(shè)置為只讀。而界面模板的話,就需要使用到VS提供的導(dǎo)出模板功能,具體這里就不進(jìn)行介紹了,隨便一搜就可以查到相關(guān)的資料了,不然的話記得VS 2010高級編程這本書也有詳細(xì)地提到過,可以參考下這本書。 Example-存儲過程模板 4. 調(diào)試程序 很多時候程序運(yùn)行出BUG了, 通過拋出的異常信息無法定位到BUG,這時就需要使用調(diào)試功能了。VS提供了強(qiáng)大的調(diào)試功能,基本組合為F5+F10+F11+設(shè)置斷點(diǎn),在敏感位置插入一個斷點(diǎn),按下F5,程序運(yùn)行到斷點(diǎn)處就會跳回IDE界面,這時已運(yùn)行代碼變量的值都可以在程序中查看了,按下F10為執(zhí)行下一條語句,如果程序有調(diào)用另外的函數(shù),按下F11則可以進(jìn)入所調(diào)用的函數(shù)中。調(diào)試程序也是開發(fā)人員必須掌握的基本技能之一。 5. SQL編寫規(guī)范以及腳本的命名 有關(guān)良好的編程規(guī)范所帶來的好處這里就不在老生常談了,“優(yōu)秀的代碼是寫給人看的”這句經(jīng)典的話已經(jīng)涵蓋了方方面面。其實(shí),良好的編寫規(guī)范的養(yǎng)成并不困難,除了學(xué)習(xí)編程規(guī)范的技巧之外,還要在開發(fā)中踐行這些編程規(guī)范,保持對寫優(yōu)秀代碼的追求,這就可以了。這里簡單介紹一下有關(guān)T-SQL編程的幾個小技巧:關(guān)鍵字大寫,對于SQL的保留字如FROM,WHERE,AND等等,都使用大寫;使用縮寫,比如內(nèi)聯(lián)一張表可以用INNER JOIN, 也可以直接使用JOIN,這時就應(yīng)該選擇JOIN,盡量減少代碼;留空換行的選擇,來看一個對比:復(fù)制代碼/單行寫完的SQLSELECT * FROM table WHERE table_id = 1/留空換行的寫法SELECT * FROM tableWHERE table_id = 1/稍微復(fù)雜的SQLSELECT a.*, b.table_num FROM table1 a JOIN table2 b ON a.table_id = b.table_idWHERE a.table_id = 1復(fù)制代碼對于越復(fù)雜的T-SQL,留空換行的寫法可讀性會大大提高。這個技巧的一個重點(diǎn)是對齊,這里就不再過多描述了。 對于團(tuán)隊(duì)開發(fā)而言,每個人都需要寫T-SQL腳本,并放到一個模塊的文件夾中,這樣在部署的時候需要運(yùn)行一個小工具,就可以運(yùn)行整個文件夾中的T-SQL腳本了。然而這樣卻有一個問題:我們知道T-SQL腳本的創(chuàng)建是要求有先后順序的,總不能在CREATE TABLE語句之前先往TABLE加入初始數(shù)據(jù)吧,所以為了讓腳本有序,需要在腳本命名的開頭寫上一個序號,同時要注意到一點(diǎn)是最好以5或10的遞增順序?qū)懶蛱?,比?0010_CreateTableStudent_Teroy.sql, 00020_InsertIntoTableStudent_Teroy.sql 等等。這樣命名是為了應(yīng)付有時中間遺漏了什么腳本沒寫,就生成一個中間序號比較00005_CreatePrimayKeyOnStudent_Teroy.sql放到文件夾中,如果以1為增量,就不能這樣實(shí)現(xiàn)了。非技術(shù)篇 1. Visio OneNote 需求人員將ERP界面需要制作的東西畫在Visio上, 同時將對應(yīng)的業(yè)務(wù)邏輯寫在OneNote上, 做為開發(fā)者, 就以這兩個東西為基準(zhǔn)進(jìn)行開發(fā)工作,所以實(shí)習(xí)期間除了打開VS和SQLServer外,這兩個東西也是必備品。Visio提供了專業(yè)的可視化處理,確實(shí)很好用,特別提一下OneNote,OneNote是一個可分享的筆記本,能更好地提供協(xié)作溝通功能,一個比較贊的功能是,它可以在每一個功能描述點(diǎn)之前添加一個打勾的選項(xiàng),所以當(dāng)你完成了某個功能點(diǎn)的時候,就順便在之前的勾打上,這就可以記錄你的完成情況,盡量避免了功能遺漏。 2. 溝通交流的藝術(shù) 作為開發(fā)人員,跟需求人員溝通交流是家常便飯的事情,ERP開發(fā)更是如此。我接觸的開發(fā)模塊是財(cái)務(wù)模塊,這是一個專業(yè)性很強(qiáng)的東西,因?yàn)槟惚仨毘浞至私鈺?jì)上的東西,不然開發(fā)工作將會一頭霧水,所以很多時候都需要和需求人員探討會計(jì)上的種種業(yè)務(wù)員需求。 溝通交流也是一門學(xué)問,在我一剛開始進(jìn)行溝通的時候,經(jīng)常是等到需求人員噼里啪啦講完一大堆后,但我還是似懂非懂,提出疑問后,然后又需要別人再重復(fù)地講多一遍,這就是低效的溝通交流。那么如何提高溝通的效率呢?問題如果發(fā)生在自己身上就要尋求方法解決。首先,在于別人做溝通交流的時候,請保證自己一定要全神貫注,仔細(xì)地聽,認(rèn)真地思考,這是高效率溝通的第一道保障;及時提問,當(dāng)遇到自己不理解的地方,請

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論