㈠ 程序員有哪些交流社區或者論壇
作為一名低代碼平台領域的廠商,經常去的一些國內社區網站及論壇,關於程序員的交流社區或者論壇,這里收集一些比較好的開發者社區供大家參考,具體如下:
1、CSDN -專業開發者社區 IT技術交流平台
2、IT圈,圈圈精彩 - 原軟媒論壇、IT之家,國內最人氣的科技社交圈層,繼軟媒論壇、IT之家社區演變而來。
3、51CTO技術論壇-中國領先的IT技術社區 國內主流IT技術社區,論壇擁有大批IT技術人/IT專家
4、快速開發平台社區 -天翎論壇低代碼平台技術社區,主要是以低代碼開發平台為主的技術性論壇社區
㈡ java主要是學習什麼啊
很多新手在學習java的時候都比較迷茫,不知道從哪裡開始學起,這里就給大家整理了一份java開發學習路線,比較系統全面,可參考這份大綱來安排學習計劃,希望可以幫到你~
階段目標:
1、熟練掌握java的開發環境與編程核心知識;
2、熟練運用java面向對象知識進行程序開發;
3、對java的核心對象和組件有深入理解;
4、熟練運用javaAPI相關知識;
5、熟練應用java多線程技術;
6、能綜合運用所學知識完成一個項目。
知識點:
1、基本數據類型,運算符,數組,掌握基本數據類型轉換,運算符,流程式控制制;
2、數組,排序演算法,java常用API,類和對象,了解類與對象,熟悉常用API;
3、面向對象特徵,集合框架,熟悉面向對象三大特徵,熟練使用集合框架;
4、IO流,多線程;
5、網路協議,線程運用。
階段目標:
1、熟練掌握資料庫和MySQL核心技術;
2、深入理解JDBC與DAO資料庫操作;
3、熟練運用JSP及Servlet技術完成網站後台開發;
4、深入理解緩存、連繼池、註解、反射、泛型等知識;
5、能夠運用所學知識完成自定義框架。
知識點:
1、資料庫知識,範式,MySQL配置,命令,建庫建表,數據的增刪改查,約束,視圖,存儲過程,函數,觸發器,事務,游標,建模工具。
2、深入理解資料庫管理系統通用知識及MySQL資料庫的使用與管理。為Java後台開發打下堅實基礎。Web頁面元素,布局,CSS樣式,盒模型,JavaScript,jQuery。
3、掌握前端開發技術,掌握jQuery。
4、Servlet,EL表達式,會話跟蹤技術,過濾器,FreeMarker。
5、掌握Servlet相關技術,利用Servlet,JSP相關應用技術和DAO完成B/S架構下的應用開發。
6、泛型,反射,註解。
7、掌握JAVA高級應用,利用泛型,註解,枚舉完成自己的CRUD框架開發為後續框架學習做鋪墊。
8、單點登錄,支付功能,項目整合,分頁封裝熟練運用JSP及Servlet核心知識完成項目實戰。
㈢ 怎麼才可以成為一名程序員要通過哪些考試要什麼資格認證
計算機技術與軟體專業技術資格(水平)考試(簡稱計算機軟體資格考試)是原中國計算機軟體專業技術資格和水平考試(簡稱軟體考試)的完善與發展。這是由國家人事部和信息產業部領導下的國家級考試,其目的是,科學、公正地對全國計算機與軟體專業技術人員進行職業資格、專業技術資格認定和專業技術水平測試。
計算機軟體資格考試網站
軟考在線
http://www.netandnet.net/
是一個專為准備參加軟考人員服務的計算機專業水平考試網站,內容括最新軟考新聞,軟考文章,軟考下載,軟考書店,軟考論壇等.
系統分析之窗
http://www.sawin.com.cn/
Sawin作為系統分析、軟體工程的技術推廣站點,特別關注軟體業所涉及的四個方面,即技術、管理、過程和質量,並以《讀者文摘》方式展示精品文章!
雲峰空間-系統分析員
http://www.peak-top.com/
建站2年,擁有大量系統分析員考試資料和經驗總結、軟體工程資料等等。
中國軟體考試聯盟
http://www.ciu.net.cn/
成立於2002年,是軟體水平考試和等級考試輔導站點
中國系統分析員
http://www.csai.cn/
軟體設計師|網路工程師|資料庫工程師|程序員|手機開發|軟考培訓|信息技術|系統分析師|自學考試|等級考試
軟考專版
http://www.divsun.com/
一個專門匯集計算機軟體專業技術資格和水平考試的個人站點,資源相當豐富! 軟考專版正在改版中,軟考通訊錄正在升級中,請改日訪問,不便之處敬請諒解。
軟體水平考試指南
http://www.exam100.com
涉及最新考試動態、考試政策咨詢等,還提供計算機水平考試客戶端工具BookMan免費下載包括了軟體水平考 試大綱、各地考試中心聯系方法、試題庫等資料。
計算機軟體資格考試論壇
論壇首頁-程序員考試交流中心
http://www.xiaohui.com/forum/forumdisplay.php?fid=7
計算機資格與水平考試、計算機等級考試情報交流中心...
高程網設論壇
http://bbs.cnitexam.com/index.php?cateid=4
提供軟體水平&資格考試指南、高級程序員考試、網路設計師相關的資料、技術方案。
中國IT考試網
http://bbs.cnitexam.com/
主要討論計算機資格&水平考試、計算機等級考試的相關內容,注冊會員有6000多。
計算機軟體水平考試——按軟體水平級別學習
http://bbs.kaowang.com/index1.asp?ClassID=3
計算機軟體資格考試證書
計算機軟體資格考試證書封面
計算機軟體資格考試證書內頁
計算機軟體資格考試簡介
計算機技術與軟體專業技術資格(水平)考試(簡稱計算機軟體考試)是原中國計算機軟體專業技術資格和水平考試(簡稱軟體考試)的完善與發展。這是由國家人事部和信息產業部領導下的國家級考試,其目的是,科學、公正地對全國計算機技術與軟體專業技術人員進行職業資格、專業技術資格認定和專業技術水平測試。
根據人事部、信息產業部文件(國人部發[2003]39號),計算機軟體考試納入全國專業技術人員職業資格證書制度的統一規劃。通過考試獲得證書的人員,表明其已具備從事相應專業崗位工作的水平和能力,用人單位可根據工作需要從獲得證書的人員中擇優聘任相應專業技術職務(技術員、助理工程師、工程師、高級工程師)。計算機技術與軟體專業實施全國統一考試後,不再進行相應專業技術職務任職資格的評審工作。因此,這種考試既是職業資格考試,又是專業技術資格考試。
同時,這種考試還具有水平考試性質,報考任何級別不需要學歷、資歷條件,考生可根據自己熟悉的專業情況和水平選擇適當的級別報考。程序員、軟體設計師、系統分析師級別的考試已與日本相應級別的考試互認,以後還將擴大考試互認的級別以及互認的國家。
計算機軟體資格考試分類:
這種考試分5個專業類別:計算機軟體、計算機網路、計算機應用技術、信息系統、信息服務。
每個專業又分三個層次:高級資格(高級工程師)、中級資格(工程師)、初級資格(助理工程師、技術員)。
對每個專業、每個層次,設置了若干個資格(或級別)。從2004年開始將逐步實施這些級別的考試。
計算機軟體資格考試證書有效期:
合格證書有效期為3年。期滿前3個月內,持證者需要到指定登記機構進行再登記。再登記時需要持有接受新知識、新技術培訓和繼續教育的證明。有關登記的辦法將另行頒布。原計算機軟體專業技術資格證書和水平證書繼續有效。
考試合格者將頒發由中華人民共和國人事部和中華人民共和國信息產業部用印的計算機技術與軟體專業技術資格(水平)證書。
計算機軟體資格考試時間:
從2004年開始,每年將舉行2次考試。每年上半年和下半年考試的級別不盡相同。考試大綱、教材、輔導、參考用書由全國計算機技術與軟體專業技術資格(水平)考試辦公室組編陸續出版。
2004年下半年計算機技術與軟體專業技術資格(水平)考試報考指南
考試時間安排:
註:各科目考試均及格才能合格。
考試形式:均為筆試。
報名時間:一般在7-9月間,由各地考試機構根據當地情況確定。
報考條件:
1、遵紀守法,恪守職業道德;
2、具有一定計算機技術應用能力。
報考任何級別都不限學歷和資歷條件。
報名手續:
在當地考試機構指定的報名點,按當地標准交納報名考試費,帶身份證件,一寸近照3張。
11月6日考試 程序員
上午 9:00-11:30 基礎知識 使用2004年新版考試大綱和教材
下午 2:00-4:30 應用技術
軟體設計師
上午 9:00-11:30 基礎知識
下午 2:00-4:30 應用技術
系統分析師
上午 9:00-11:30 綜合知識
下午 1:30-3:00 案例分析
3:20-5:20 論文
網路管理員
上午 9:00-11:30 基礎知識
下午 2:00-4:30 應用技術
資料庫系統
工程師
上午 9:00-11:30 基礎知識
下午 2:00-4:30 應用技術
網路工程師
上午 9:00-11:30 基礎知識
下午 2:00-4:30 應用技術
2004年下半年計算機技術與軟體專業技術資格(水平)考試指定用書
1、考試大綱(清華大學出版社,已出版)
程序員考試大綱,5元
網路管理員考試大綱,5元
軟體設計師考試大綱,5元
網路工程師考試大綱,5元
資料庫系統工程師考試大綱,5元
系統分析師考試大綱,5元
2、指定教材(清華大學出版社,已出版)
程序員教程,48元
網路管理員教程,46元
軟體設計師教程,60元
網路工程師教程,60元
資料庫系統工程師教程,66元
系統分析師教程(系統分析員教程),67元
3、試題分析解答(清華大學出版社)
2004年上半年試題分析解答,25元,8月底出版
4、指定輔導用書(西安電子科技大學出版社,8月25日出版)
程序員考試輔導,40元
軟體設計師考試輔導,45元
網路管理員考試輔導,30元
資料庫系統工程師考試輔導,50元
網路工程師考試輔導,待定價
5、參考用書
系統分析師技術指南,39元(清華大學出版社,已出版)
系統分析師常用工具,22元(清華大學出版社,已出版)
2004年各地軟體考試對外聯系查詢方式
地區 郵編 地址 查詢
全國
100043
北京4356信箱全國軟考辦
www.ceiaec.org
北京
100027
北京東外新中街11號人事考試中心
www.bjpta.gov.cn(網上報名)
上海
200032
上海市瑞金路438號職業能力考試院
www.21cnhr.com,021-64031155
天津
300040
天津解放北路161號教育中心
www.teiaec.org.cn,022-23326389
重慶
400020
重慶江北區建北四支路2號信息局
www.jxc.cq.gov.cn,023-67511780
湖北
430060
武漢市武昌彭劉楊路189號微機辦
www.hbsoft.net, 027-88874377
廣東
510033
廣州連新路171號信息大樓7層軟考辦
www.gdcst.org, 020-83549674
廣東
510075
廣州天河路13號4樓人事考試中心
www.gdkszx.com.cn 020-37605296
江蘇
210003
南京市中山北路285號701室信息廳
www.jsiid.gov.cn, 025-83342413
浙江
310006
杭州市環城西路新5號軟考辦
www.topcheer.cn., 0571-85118167
湖南
410011
長沙八一路省信息產業廳辦公室
www.hniec.org,0731-4461614
遼寧
110013
沈陽市瀋河區小北關街126號
遼寧省信息技術教育中心
www.lnitec.com, 024-88560655
024-88560755
江西 330002
南昌市井崗山大道1116號軟考辦
www.jict.org0791-6492261
安徽
230001
合肥市蕪湖路325號省建工大廈四樓省人事考試中心
0551-2648014
陝西
710054
西安市西影路59號軟考辦
www.shaanxirk.com, 029-85523927
河南
450003
鄭州市花園路85號信息廳科技處
www.heiec.net,www.itha.gov.cn
0371-5582243
河北
050000
石家莊裕華西路408號職稱考試中心
0311-7909278
新疆
830011
烏魯木齊北京南路40號附4號信息辦
www.xjxxb.gov.cn,0991-3845804
山東
250014
濟南市燕山路2號人事考試中心
0531-8932041-2332
福建
350001
福州市湖東路49號1樓信息廳教育中心
www.info-e.gov.cn,0591-7532011
黑龍江
150001
哈爾濱南崗區文敏街9號信息廳軟考辦
www.hljeiec.net,0451-2625467
四川
610015
成都市東二巷21號人事考試中心
028-86757442
吉林
130051
長春市新發路32號信息廳科教處
www.jlsxxcyt.org.cn,0431-2716494
吉林
130051
長春市人民大街59號人事廳職考辦
0431-8905423
廣西
530022
南寧市新竹路20號人事考試中心
www.gxtpa.com.cn,0771-5852432
甘肅
730000
蘭州皋蘭路100號統辦1號樓職考中心
0931-8881909
貴州
550001
貴陽中華北路242號省信息廳軟考辦
0851-6865250
寧波
315040
江東桑田路688號生產力促進大樓208室
cc.nbinfo.net.cn,0574-87805727
山西
030001
太原市並州北路143號省信息辦
0351-4040969
雲南
650021
昆明五一路221號(社院大廈)605室
0871-5033747
大連
116021
沙河口區成仁街9號銀都大廈信息局
www.dlbii.gov.cn 0411-84609323
海南
570203
海口白龍南路53號人力資源局考試部
www.himprec.org.cn,0898-65375001
內蒙古
010020
呼市中山東路團結巷83號人事考試中心
0471-6601701
寧夏
750001
銀川市湖濱東街83號人事考試中心
0951-6198143
青海
810008
西寧市五四西路4號計委信息中心
www.qhei.gov.cn,0971-6305907
西藏
850000
拉薩市娘熱路5號人事廳考試中心
0891-6823043
全國的考務工作由信息產業部電子教育中心負責。各省(市)的考試機構由當地人事主管部門與信息產業主管部門協商確定。一般在各大、中城市都有報名點和考試點。
㈣ 想考MCP認證
微軟認證考試介紹(一)
微軟資格認證考試是由全球軟體業的龍頭--美國微軟公司(Microsoft)主持的,對計算機技術工作者使用微軟公司軟體產品的能力、水平的一種測試。考試前由微軟公司設在各地的微軟認證高級技術教育中心(CTEC)對學員進行培訓,以提高技術人員以及微軟公司的用戶在軟體開發和應用等領域的技術水平,引導學員掌握微軟應用軟體的關鍵技術,同時提高他們的軟體開發和使用能力。經過微軟授權培訓,並且通過了微軟資格認證考試的計算機科技人員,將獲得由微軟公司頒發的相應軟體領域的微軟技術認證證書,此證書可以證明持有者在相應領域的工作技能,有較高的權威性,並且在全球范圍內有效。
一、參加微軟認證培訓考試的學員將獲得如下的利益:
1、公共認證:能夠獲得由微軟總部頒發的由微軟總裁親筆簽名而且得到全球認可得專家證書。
2、技術支持:直接獲得微軟最新技術信息及參加微軟組織的技術活動。
3、利於求職:微軟認證專家證書是外企、國企相關專業優先就業以及技術職稱的評定參考,是取得高職位,獲得高薪的可靠保證。
4、移民:此證書是國外求職的可靠保證,將利於學員技術移民、定居國外。
二、微軟資格認證考試的類別和一般過程
微軟技術證書共分為七類,以下作簡單介紹:
1、MCSE
微軟認證系統工程師(Microsoft Certified Systems Engineer)。此證書的獲得者將有能力為使用Microsoft Windows NT Server和Microsoft BackOffice的用戶提供有效的系統規劃、系統實現、系統維護和信息系統的支持。
2、MCSE Internet
微軟認證的系統工程師(Microsoft Certified Systems Engineer) INTERNET工程師。此證書的獲得者將有能力在IT業中管理、配置企業內部網(Intranet)和國際互聯網(Internet)。其中包括瀏覽器(Browser)、代理伺服器(Proxy Server),網路主機(Host)、網站(Web Site)資料庫(DataBase)的管理和配置。
3、MCSD
微軟認證開發工程師(Microsoft Certified Solution Developer)。此證書的獲得者將有能力為微軟的軟體開發工具(資料庫系統、應用程序設計軟體等如MS SQL Server、Microsoft Visual Studio、Microsoft Transaction Server)建立基於分布式網路環境下的商業化應用。
4、MCP
微軟認證專家(Microsoft Certified Professional)。此證書的獲得者需要在微軟的某一產品方面有一定的專長,他們還可以通過參加其他的微軟認證證書的考試來進一步加強其使用微軟軟體產品的能力。
5、MCP Site Building
微軟認證專家(Microsoft Certified Professional)+網站建立(Site Building)。此證書的獲得者將有能力使用微軟公司的技術和產品去設計、建立、管理和維護站點,特別是建立互動式的頁面、多媒體資料庫和搜索引擎。
6、MCP Internet
微軟認證專家(Microsoft Certified Professional)+互聯網(Internet)。此證書的獲得者有互聯網方面的特長,能夠在一定程度上保證網路的安全性、安裝、配置和管理伺服器產品及資源,監視和分析網路的狀態,排除網路故障等。
7、MCT
微軟認證教師(Microsoft Certified Trainer)。此證書的獲得者必須有能力在教學和技術兩個方面深入微軟的官方課程。 如何參加微軟資格認證:
要參加微軟資格認證考試,首先應該具有一定的英語水平(由於考試試題全部使用英文,所以應當具有相當於大學英語二、三級的英文水平,這樣可以看懂題目要求),有一定的Windows操作系統的操作基礎。可以在微軟公司設在全球范圍內的800多家授權考試中心(APTC: Authorized Pronmetric Testing Center)的任何一家報名參加考試(設在中國的APTC名錄附後)。
考試之前首先要根據所報考證書的課程要求確定要參加的考試的科目數量,然後到附近的報名海外注冊中心進行登記注冊,登記時交納考試所需的費用。考試必須在付款後的一年之內進行,考生可以提前6個星期通知考試中心將要參加考試,也可以在考試之前的之少一個工作日內通知考試中心將要參加考試。如果至少在考試之前的兩個工作日與海外報名注冊中心取得聯系,還可以取消或者重新計劃再參加考試。注意某些地方允許在考試的當天進行登記,但是必須在不遲於考試之前的兩個小時進行。
報名完畢後考生會收到來自於海外報名注冊中心的登記和付款確認信,然後考生可以和附近的授權考試中心聯系,一邊安排考試日程。考試日程安排好之後,考生將會收到關於約定的指示和注冊過程、考試時必要的證件要求及關於考試中心位置的信息。考生然後就可以按照上述的操作要求進行計劃,參加認證考試。(注意:可以直接報名參加考試,而不需要到微軟授權培訓中心接受培訓)
認證考試流程
一、確定要認證的項目,並仔細考慮參加考試的科目。
二、選擇考點。
三、報名並預約考試。
四、參加考試。
附錄:考場規則
一、預約考試
不同的考點安排考試的時間並不一樣,要根據自己的時間安排選擇考點。
確定考點之後,需要提前三天以上(不同考點不一樣)前去考試中心預約報名。
填寫考試中心的考生登記表(中英文); 付費。
二、考試
考生攜帶有效證件提前至少15分鍾進入考場;
考生在簽到表上簽字;
閱讀考試規則;
簽署考生考場協議;
考試;
交草稿紙,列印考試成績,蓋章;
在簽到表上簽字退席。
微軟認證考試介紹(二)
八、專家答疑點金
1.MCP認證的基本目標?
由微軟公司創建的MCP認證。自然與微軟的產品有關。MCP認證的基本目標是:利用以科學方法確立的考題,一方面測試應考者對某一微軟產品知識的了解深度以及操作掌握微軟產品的技術熟練程度,另一方面也使應考者通過考試確實對解決實際問題有所幫助。隨著IT產業專家隊伍的擴大和對人才需求的增加,MCP認證也在逐漸升溫。應試者個人可以通過認證確認自己的計算機軟體知識掌握水平,微軟公司也可以通過認證情況了解自己產品在世界各地的使用情況,同時,使用微軟產品的企業在招聘相關產品的技術人才時,也有了一個統一的考察標准。
2.MCP證書有幾項?
微軟認證專家(MCP)證書有八項:
MCP微軟認證產品專家()
MCP Internet微軟認證專家 網路專家
MCP SiteBuilding微軟認證專家 網站開發專家
MCSE微軟認證系統工程師()
MCSE Internet微軟認證系統工程師 網路專家
MCSD微軟認證軟體開專家()
MCDBA微軟認證資料庫管理員()
MCT微軟認證教師(MicrosoftCertifiedTrainer)
3.MCP與MCPS的表示方法是否有區別?
在目前微軟認證專家體系中,根本不存在MCPS的說法,因此兩者的區別也無從談起。如果更准確地定義MCP, 它應該包括兩個層面的含義:從高層面上講,MCP是整個微軟認證專家體系的總稱,是全部8項認證項目的代表名稱;從低層面上講,MCP是微軟認證產品專家的名稱,微軟認證產品專家是微軟認證專家體系中的一項認證,也是最初級的一項認證。 在一般情況下,MCP是指整個微軟認證專家體系而言,指代全部8項MCP認證專家。
4. 怎樣成為 MCP專家?
要想成為MCP專家,必須通過微軟公司推出的一門或多門高級計算機技術人員認證考試。也就是所謂的MCP考試。以上列舉的8項MCP認證,其中7項可以通過自學、或到當地微軟授權的培訓中心(CTEC,Microsoft Certified Technical Ecation Center)尋求相關的課程培訓,來完成認證考試;而要獲得MCT認證,除了要獲得一項上述MCP認證考試外,還必須通過更嚴格的相關考試,一般只有CTEC的正式教員才可以申請。 一旦通過1項MCP專家認證的系列考試,你將得到一張微軟公司頒發的、比爾·蓋茨簽名的MCP證書。目前全球有九十個國家承認MCP認證資格。
5.微軟MCP考試的組織形式?
MCP認證體系創建和試題設計是由微軟公司進行的,但具體認證考試的實施卻是由兩家獨立的公司進行操作。這兩家公司分別是美國的思而文學習系統有限公司(Sylvan Prometric)和虛擬大學企業集團(Virtual University Enterprises)。思爾文在世界各地設有1400多個考試中心(APTC,Authorized Prometric Testing Center),負責各地具體的MCP考試業務。微軟公司雖然不具體組織實施考試,但是每一個應考者只要進行了考試注冊登記並進行了第一次考試,公司都會自動記錄其成績。
6. 任何人都有資格參加MCP考試嗎?
原則上來說,任何人只要願意,都可按照MCP考試的規定要求參加考試。由於MCP考試是對計算機軟體高級人才的一系列測評,對於那些已經是IT產業從業人員或打算加入IT產業技術人員大軍的人來說,通過MCP考試,其意義尤為重大。因為MCP證書不僅標志著你的計算機軟體技術實力,使你在世界各地IT產業內可以享有高就業機會,高薪,相關學業免學分的待遇,而且還可能享受到一系列的有利於專業發展的特別優惠。
7. 獲得MCP認證有學歷限制嗎?
沒有。即使不是大學生,從沒有作過與計算機相關的工作,也沒有IT產業專家的推薦,只要你通過了相應MCP考試,你就會獲得MCP證書,成為全球IT業認可的MCP專家。唯一的前提是通過相應的MCP考試。
8. MCP認證考試對英語水平的要求很高嗎?
目前MCP認證考試的大多數科目仍然是英語。在中國大陸的中文版考試科目只有三門,它們分別是:70-059,70-067,70-073.因此,除非你只申請參加微軟認證產品專家的考試 (只有1門),你總是或多或少地要接觸到英文版的考試科目。況且,中文版考試科目都是由中國台灣人製作的,許多語言表達習慣與大陸地區的有所不同,不如直接使用英文版方便。如果你完全不懂英文,參加考試會有一些困難。 可是從另一個角度講,微軟認證專家的考試終歸是計算機領域的專業考試.它所涉及的英文具有相當的專業特點,如果你的英語相當於非專業英語三級水平就可以了。英語不好沒有關系,前一兩門考試多背些單詞即可,到後來就會逐漸適應。應考的關鍵是要熟練掌握與計算機使用相關的英語,理解具體對應的實際操作過程和原理。
9.我是學文科專業畢業的,也想參加MCP認證,不知是否有資格?
任何人都有資格參加MCP認證,不論年齡大小、學歷高低、專業如何,只要按規定通過微軟認證專家MCP的考試,就可以獲得相應的MCP證書。據從事MCP認證培訓的專家介紹,他們就韻經教過一位四十歲左右、已為人母的大齡學員,在接受培訓之前對電腦一竅不通,連怎麼開機郡不會。但是經過系統的培訓之後,也順利通過了考試,拿到了證書。這說明在正確的指導下,只要勤奮努力,門外漢照樣能通過MCP考試,獲得MCP證書。
10.都說獲得MCP認證就有可能獲得高薪工作的機會,究竟MCP平均年薪是多少,可否透露一二?
在中國,獲得MCP認證的專家基本上都在IT產業內從事與軟體開發有關的高技術含量的研究工作,相當一部分人在外企工作。由於一般人並不願意透露個人的准確收入,只能估計平均年收人在10萬元左右。據有關資料顯示,1998年美國MCSE的平均年收入約6萬美元,MCSD的平均年收入略高於MCSE。但一些業內人士認為這一數字是相當保守的。因為美國社會非常重視工作經驗,個人年收入依據具體工作經驗的不同而有高有低。作為一個MCSE或MCSD,剛開始工作時是缺乏經驗的新手,最低年薪的起價可能是3萬美元。但3個月後、半年後薪水分別會有較大的提高,而一年後年薪可達10萬美元。 想一想,通過6門考試拿到一個證書,就可能得到一個年薪上10萬美元的工作,是不是很合算?
11. 通過MCP認證除了有機會獲得高薪收入外,是否還有什麼專業上的好處呢?
通過任何一項MCP認證,都可為專業上帶來很多好處,最起碼是向您的客戶和同事顯示,您具備了使用和支持微軟公司特別推出的一系列產品所需要的多麼雄厚的專業知識,使你在工作中增加了無比的自信。同時作為MCP,你還將得到下列專業技術方面的基本優惠:
#你所擁有的對微軟產品和相關技術的知識和熟練掌握會得到IT業內的承認;
#通過微軟公司MCP網站的可靠渠道直接得到微軟公司技術和產品信息;
#成為MSDN網站認證成員。MSDN網站是一個專對MCP開放的免費系統,通過這一系統,你能隨時探訪最好的技術資源寶庫,不僅與全球MCP社會保持聯系,還能優先得到有價值的技術資料和服務。盡管目前有些MSDN網站只有英語服務,而且有些國家尚未開通此站點,隨著MCP認證在全球范圍內的擴大,相信擁有MSDN站點服務的地區將逐漸增加;
#應邀參加微軟公司舉辦的研討會,技術培訓和相關活動; ;
#成為《微軟專家認證》的免費讀者 (美國境外的讀者只須支付郵購費用)。
《微軟專家認證》是一本專門描述IT業內職業和專業發展的刊物,能夠全方位地提供與IT產業相關的技術和經濟、社會最新動態。 除此之外,微軟公司還將提供MCP證書、標志、胸針、錢夾卡等顯示MCP身份的標志性物品。 總之,MCP認證考試是微軟推出的高級計算機技術人員認證考試,由微軟總裁比爾·蓋茨簽發的MCP證書在全球90多個國家均可得到承認.MCP證書的擁有者在全球各地均可享受高就業機會及高薪待遇.在北美的大多數國家可以作為外來移民的技術評估標准。
總體說來,持微軟MCP認證證書的人,可獲得如下好處:
1)納入微軟人才庫;
2)有機會參加微軟各種技術講座;
3)稱為各大公司及海外機構的獵取對象;
4)強有力的市場競爭優勢;
5)工移民海外和出國就業的重要資本;
6)獲得微軟公司及用戶最大程度的信任;
7)獲得微軟公司的技術支持,如訪問微軟安全姑點、技術信息光碟等。另外,擁有微軟證書的專家可以在自己的名片、個人簡歷等內容上印上微軟認證專家標志(LOGO). 在以上好處中,最重要的是獲得微軟技術支持,這樣你可以永保競爭的領先地位。
12.如果通過了全部MCP認證,是否比獲得單項MCP認證有更多的實惠?
如果通過了全部的MCP認證,除了獲得通過各項MCP認證應該得到的實惠外,沒有任何特別的優待。從實用的角度看。大多數人會根據具體某項認證的要求,選擇通過適合自己需要的一項或多項認證,沒有必要非得通過全部8項MCP認證。有些MCP發燒友曾經想像過這樣的情節:那些通過全部MCP認證的微軟專家應邀與比爾·蓋茨夫婦在家中共進晚宴。如果幸運的話,還有機會乘坐有衛隊護航的私人飛機抵達潑特蘭大,與坡·艾倫一起觀看NBA職業籃球賽。當然這些美妙的時刻郡不過是幻想,但是如果真想成為微軟產品萬能專家,擁有全部MCP專家證書可能會具有實實在在的價值。
13.8項MCP認證所針對的不同專業目標和要求?
有關8項MCP認證所針對的不同專業目標和要求,市面上出售的相關書籍都有不同程度的介紹,以下信息是在相關材料的基礎上進行綜合分析的結果、僅供參考:
微軟認證產品專家(MCP):測定對微軟某一產品的技術性能和操作技巧的熟悉了解程度,只需參加一間考試即可獲得此項認證。獲得此項認證的人還可以在此項認證的基礎上進一步得到其他各項認證。
微軟認證專家 網路專家(MCP Internet):測定與國際網路業務相關的技術熟練程度,如果在規劃、安裝、管理、支持網路伺服器及相關業務方面有特殊專長和愛好,可考慮此項認證。
微軟認證專家 網站開發專家(MCP SiteBuilding):對建立網站方面相關特殊技術程度的測定,如果有能力在規劃、建立、維護和管理網站(特別是互動式網站)方向發展,可以考慮此項認證。
微軟認證系統工程師(MCSE);測定掌握微軟WindowsNT伺服器和微軟Backoffice集成系列伺服器產品的熟練程度,凡有志於掌握計算機網路相關技術,熟知相關產品技術性能和操作方法的人,最好先考慮此項認證。
微軟認證系統工程師 網路專家(MCSE Internet):對與擴展、部署和管理復雜的企業網、國際網相關的技術能力的測定,如果職業目標是成為高級網路技術專家,並且業務環境與較復雜的網站管理使用息息相關,不妨考慮此項認證。
微軟認證軟體開發專家(MCSD):測定利用微軟軟體開發工具或平台,開發商用程序的能力,如果想成為熟練的軟體開發者或程序員,可考慮此項認證。
微軟認證資料庫管理員(MCDBA):測定利用微軟SOL Server資料庫開發工具創建、擴展資料庫以及相關的管理使用資料庫的能力,申請此項認證的人應該在SQLServer資料庫開發工具的使用管理方面達到一定的專業水平。
微軟認證教師(MCT):專為提供微軟認證培訓服務的教師所提供的認證,只有通過上述一種MCP認證並己從事培訓教
㈤ sun的java程序員認證需要多少錢,培訓多長時間,一般一年可以考幾次,幾月份考試
參加Java程序員認證考試
java程序員認證考試考試號為310-025。Java程序員的認證考試以Sun公司的SL-275英文原版教材為標准,需要掌握並作為考試內容的知識點有:聲明和許可權控制,流控制和異常處理,垃圾回收機制,基本語法,操作數和符號,重載、覆蓋、運行類型和面向對象,線程等;此外,還有java.awt、java.lang、java.util、java.io包中的常用類等。 javaSL-275的考試共有試題59道,通過分數為61分(答對36道題即可)。時間為120分鍾,在提交試卷前的任何時候,都可以看到任意一道試題。題型分為單選和多選題(可根據單選框或多選框來判斷),多選題在題目中將指明該題有幾個正確答案。
參加考試需要提前2天到考試中心注冊考生ID,並和考試中心的工作人員預約考試時間。考生必須按時參加考試,並攜帶本人身份證。考試結束即可看到考試結果。Sun公司頒發的證書將在考試之後的2個月內以信件方式發到考生注冊的地址處。
java開發員認證Sun Certified JAVA Deverloper(SCJD)
java開發員的認證考試以Sun指定的javaSL-285為教材,機考部分的考試號為310-027。
Java開發員認證課程:
課程的具體內容有:解釋軟體開發周期每階段的目標,可使用適當的java程序類型,了解API設計的基本元素,根據項目中的功能要求確定程序組件;描述關系資料庫的設計及其設計原則;了解JDBC、ODBC及其使用;創建良好的GUI設計原則設計自己的用戶界面;使用Socket連接以適當格式傳輸數據,創建一個多層java小程序或應用程序;了解在Solaris和Windows平台之間的移植問題。
Java開發員的認證考試:
Java開發員的考試分程序設計和機考兩部分。其中,程序設計部分不限時。考生報名後,可從指定的網址下載考試題目,並根據題目要求進行程序設計。在指定的時間段(1年)內,考生須傳回自行設計的java程序。但通常情況下,考生都會在2至3個月內將程序傳回。機考部分將針對程序回答題目,只要真正領悟和掌握了設計程序的過程和內容,回答這部分考題就沒有問題了。開發員的認證考試是對一個java開發人員綜合能力的一種考核,通過該課程的學習將培養一個程序設計人員的獨立編程的能力,而該證書的取得也是對這種能力的一個有力證明。(www.passitcert.com)
㈥ 為自己搭建一個分布式 IM(即時通訊) 系統
CIM(CROSS-IM) 一款面向開發者的 IM(即時通訊)系統;同時提供了一些組件幫助開發者構建一款屬於自己可水平擴展的 IM 。
藉助 CIM 你可以實現以下需求:
下面來看看具體的架構設計。
整體主要由以下模塊組成:
cim-server
IM 服務端;用於接收 client 連接、消息透傳、消息推送等功能。
支持集群部署。
cim-forward-route
消息路由伺服器;用於處理消息路由、消息轉發、用戶登錄、用戶下線以及一些運營工具(獲取在線用戶數等)。
cim-client
IM 客戶端;給用戶使用的消息終端,一個命令即可啟動並向其他人發起通訊(群聊、私聊);同時內置了一些常用命令方便使用。
整體的流程也比較簡單,流程圖如下:
所以當我們自己部署時需要以下步驟:
接下來重點看看具體的實現,比如群聊、私聊消息如何流轉;IM 服務端負載均衡;服務如何注冊發現等等。
IM 服務端
先來看看服務端;主要是實現客戶端上下線、消息下發等功能。
首先是服務啟動:
由於是在 SpringBoot 中搭建的,所以在應用啟動時需要啟動 Netty 服務。
從 pipline 中可以看出使用了 Protobuf 的編解碼(具體報文在客戶端中分析)。
注冊發現
需要滿足 IM 服務端的水平擴展需求,所以 cim-server 是需要將自身數據發布到注冊中心的。
所以在應用啟動成功後需要將自身數據注冊到 Zookeeper 中。
最主要的目的就是將當前應用的 ip + cim-server-port+ http-port 注冊上去。
上圖是我在演示環境中注冊的兩個 cim-server 實例(由於在一台伺服器,所以只是埠不同)。
這樣在客戶端(監聽這個 Zookeeper 節點)就能實時的知道目前可用的服務信息。
登錄
當客戶端請求 cim-forward-route 中的登錄介面(詳見下文)做完業務驗證(就相當於日常登錄其他網站一樣)之後,客戶端會向服務端發起一個長連接,如之前的流程所示:
這時客戶端會發送一個特殊報文,表明當前是登錄信息。
服務端收到後就需要將該客戶端的 userID 和當前 Channel 通道關系保存起來。
同時也緩存了用戶的信息,也就是 userID 和 用戶名。
離線
當客戶端斷線後也需要將剛才緩存的信息清除掉。
同時也需要調用 route 介面清除相關信息(具體介面看下文)。
IM 路由
從架構圖中可以看出,路由層是非常重要的一環;它提供了一系列的 HTTP 服務承接了客戶端和服務端。
目前主要是以下幾個介面。
注冊介面
由於每一個客戶端都是需要登錄才能使用的,所以第一步自然是注冊。
這里就設計的比較簡單,直接利用 Redis 來存儲用戶信息;用戶信息也只有 ID 和 userName 而已。
只是為了方便查詢在 Redis 中的 KV 又反過來存儲了一份 VK,這樣 ID 和 userName 都必須唯一。
登錄介面
這里的登錄和 cim-server 中的登錄不一樣,具有業務性質,
為了實現只能一個用戶登錄,使用了 Redis 中的 set 來保存登錄信息;利用 userID 作為 key ,重復的登錄就會寫入失敗。
獲取一台可用的路由實例也比較簡單:
當然要獲取 Zookeeper 中的服務實例前自然是需要監聽 cim-server 之前注冊上去的那個節點。
具體代碼如下:
也是在應用啟動之後監聽 Zookeeper 中的路由節點,一旦發生變化就會更新內部緩存。
群聊介面
這是一個真正發消息的介面,實現的效果就是其中一個客戶端發消息,其餘所有客戶端都能收到!
流程肯定是客戶端發送一條消息到服務端,服務端收到後在上文介紹的 SessionSocketHolder 中遍歷所有 Channel(通道)然後下發消息即可。
服務端是單機倒也可以,但現在是集群設計。所以所有的客戶端會根據之前的輪詢演算法分配到不同的 cim-server 實例中。
因此就需要路由層來發揮作用了。
路由介面收到消息後首先遍歷出所有的客戶端和服務實例的關系。
路由關系在 Redis 中的存放如下:
由於 Redis 單線程的特質,當數據量大時;一旦使用 keys 匹配所有 cim-route:* 數據,會導致 Redis 不能處理其他請求。
所以這里改為使用 scan 命令來遍歷所有的 cim-route:*。
接著會挨個調用每個客戶端所在的服務端的 HTTP 介面用於推送消息。
在 cim-server 中的實現如下:
cim-server 收到消息後會在內部緩存中查詢該 userID 的通道,接著只需要發消息即可。
在線用戶介面
這是一個輔助介面,可以查詢出當前在線用戶信息。
實現也很簡單,也就是查詢之前保存 」用戶登錄狀態的那個去重 set 「即可。
私聊介面
之所以說獲取在線用戶是一個輔助介面,其實就是用於輔助私聊使用的。
一般我們使用私聊的前提肯定得知道當前哪些用戶在線,接著你才會知道你要和誰進行私聊。
類似於這樣:
在我們這個場景中,私聊的前提就是需要獲得在線用戶的 userID。
所以私聊介面在收到消息後需要查詢到接收者所在的 cim-server 實例信息,後續的步驟就和群聊一致了。調用接收者所在實例的 HTTP 介面下發信息。
只是群聊是遍歷所有的在線用戶,私聊只發送一個的區別。
下線介面
一旦客戶端下線,我們就需要將之前存放在 Redis 中的一些信息刪除掉(路由信息、登錄狀態)。
IM 客戶端
客戶端中的一些邏輯其實在上文已經談到一些了。
登錄
第一步也就是登錄,需要在啟動時調用 route 的登錄介面,獲得 cim-server 信息再創建連接。
登錄過程中 route 介面會判斷是否為重復登錄,重復登錄則會直接退出程序。
接下來是利用 route 介面返回的 cim-server 實例信息(ip+port)創建連接。
最後一步就是發送一個登錄標志的信息到服務端,讓它保持客戶端和 Channel 的關系。
自定義協議
上文提到的一些登錄報文、真正的消息報文這些其實都是在我們自定義協議中可以區別出來的。
由於是使用 Google Protocol Buffer 編解碼,所以先看看原始格式。
其實這個協議中目前一共就三個欄位:
目前主要是三種類型,分別對應不同的業務:
心跳
為了保持客戶端和服務端的連接,每隔一段時間沒有發送消息都需要自動的發送心跳。
目前的策略是每隔一分鍾就是發送一個心跳包到服務端:
這樣服務端每隔一分鍾沒有收到業務消息時就會收到 ping 的心跳包:
內置命令
客戶端也內置了一些基本命令來方便使用。
比如輸入 :q 就會退出客戶端,同時會關閉一些系統資源。
當輸入 :olu(onlineUser 的簡寫)就會去調用 route 的獲取所有在線用戶介面。
群聊
群聊的使用非常簡單,只需要在控制台輸入消息回車即可。
這時會去調用 route 的群聊介面。
私聊
私聊也是同理,但前提是需要觸發關鍵字;使用 userId;;消息內容 這樣的格式才會給某個用戶發送消息,所以一般都需要先使用 :olu 命令獲取所以在線用戶才方便使用。
消息回調
為了滿足一些定製需求,比如消息需要保存之類的。
所以在客戶端收到消息之後會回調一個介面,在這個介面中可以自定義實現。
因此先創建了一個 caller 的 bean,這個 bean 中包含了一個 CustomMsgHandleListener 介面,需要自行處理只需要實現此介面即可。
自定義界面
由於我自己不怎麼會寫界面,但保不準有其他大牛會寫。所以客戶端中的群聊、私聊、獲取在線用戶、消息回調等業務(以及之後的業務)都是以介面形式提供。
也方便後面做頁面集成,只需要調這些介面就行了;具體實現不用怎麼關心。
cim 目前只是第一版,BUG 多,功能少(只拉了幾個群友做了測試);不過後續還會接著完善,至少這一版會給那些沒有相關經驗的朋友帶來一些思路。
歡迎工作一到五年的Java工程師朋友們加入Java程序員開發: 721575865
群內提供免費的Java架構學習資料(裡面有高可用、高並發、高性能及分布式、Jvm性能調優、Spring源碼,MyBatis,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多個知識點的架構資料)合理利用自己每一分每一秒的時間來學習提升自己,不要再用"沒有時間「來掩飾自己思想上的懶惰!趁年輕,使勁拼,給未來的自己一個交代!
㈦ java 目前市面上比較火的框架有哪些
Java 始終排在第一位,這使它成為有史以來最著名的軟體編程語言之一。及時的更新和新版本發布使它成為一種充滿活力的、有競爭力的編程語言。
2020年最常用的java框架
十大常用框架:
一、SpringMVC
二、Spring
三、Mybatis
四、Dubbo
五、Maven
六、RabbitMQ
七、Log4j
八、Ehcache
九、Redis
十、Shiro
一、SpringMVC
Spring Web MVC是一種基於Java的實現了Web MVC設計模式的請求驅動類型的輕量級Web框架,即使用了MVC架構模式的思想,將web層進行職責解耦,基於請求驅動指的就是使用請求-響應模型,框架的目的就是幫助我們簡化開發,Spring Web MVC也是要簡化我們日常Web開發的。
模型(Model )封裝了應用程序的數據和一般他們會組成的POJO。
視圖(View)是負責呈現模型數據和一般它生成的HTML輸出,客戶端的瀏覽器能夠解釋。
控制器(Controller )負責處理用戶的請求,並建立適當的模型,並把它傳遞給視圖渲染。
Spring的web模型 - 視圖 - 控制器(MVC)框架是圍繞著處理所有的HTTP請求和響應的DispatcherServlet的設計。
Spring Web MVC處理請求的流程
具體執行步驟如下:
1、 首先用戶發送請求————>前端控制器,前端控制器根據請求信息(如URL)來決定選擇哪一個頁面控制器進行處理並把請求委託給它,即以前的控制器的控制邏輯部分;圖2-1中的1、2步驟;
2、 頁面控制器接收到請求後,進行功能處理,首先需要收集和綁定請求參數到一個對象,這個對象在Spring Web MVC中叫命令對象,並進行驗證,然後將命令對象委託給業務對象進行處理;處理完畢後返回一個ModelAndView(模型數據和邏輯視圖名);圖2-1中的3、4、5步驟;
3、 前端控制器收回控制權,然後根據返回的邏輯視圖名,選擇相應的視圖進行渲染,並把模型數據傳入以便視圖渲染;圖2-1中的步驟6、7;
4、 前端控制器再次收回控制權,將響應返回給用戶,圖2-1中的步驟8;至此整個結束。
二、Spring
2.1、IOC容器:
IOC容器就是具有依賴注入功能的容器,IOC容器負責實例化、定位、配置應用程序中的對象及建立這些對象間的依賴。應用程序無需直接在代碼中new相關的對象,應用程序由IOC容器進行組裝。在Spring中BeanFactory是IOC容器的實際代表者。
2.2、AOP:
簡單地說,就是將那些與業務無關,卻為業務模塊所共同調用的邏輯或責任封裝起來,便於減少系統的重復代碼,降低模塊間的耦合度,並有利於未來的可操作性和可維護性。AOP代表的是一個橫向的關系
AOP用來封裝橫切關注點,具體可以在下面的場景中使用:
Authentication 許可權
Caching 緩存
Context passing 內容傳遞
Error handling 錯誤處理
Lazy loading懶載入
Debugging 調試
logging, tracing, profiling and monitoring記錄跟蹤優化校準
Performance optimization性能優化
Persistence 持久化
Resource pooling資源池
Synchronization同步
Transactions 事務
三、Mybatis
MyBatis 是支持普通 SQL查詢,存儲過程和高級映射的優秀持久層框架。MyBatis 消除了幾乎所有的JDBC代碼和參數的手工設置以及結果集的檢索。MyBatis 使用簡單的 XML或註解用於配置和原始映射,將介面和 Java 的POJOs(Plain Old Java Objects,普通的 Java對象)映射成資料庫中的記錄。
總體流程:
(1)載入配置並初始化
觸發條件:載入配置文件
將SQL的配置信息載入成為一個個MappedStatement對象(包括了傳入參數映射配置、執行的SQL語句、結果映射配置),存儲在內存中。
(2)接收調用請求
觸發條件:調用Mybatis提供的API
傳入參數:為SQL的ID和傳入參數對象
處理過程:將請求傳遞給下層的請求處理層進行處理。
(3)處理操作請求
觸發條件:API介面層傳遞請求過來
傳入參數:為SQL的ID和傳入參數對象
處理過程:
(A)根據SQL的ID查找對應的MappedStatement對象。
(B)根據傳入參數對象解析MappedStatement對象,得到最終要執行的SQL和執行傳入參數。
©獲取資料庫連接,根據得到的最終SQL語句和執行傳入參數到資料庫執行,並得到執行結果。
(D)根據MappedStatement對象中的結果映射配置對得到的執行結果進行轉換處理,並得到最終的處理結果。
(E)釋放連接資源。
(4)返回處理結果將最終的處理結果返回
MyBatis 最強大的特性之一就是它的動態語句功能。如果您以前有使用JDBC或者類似框架的經歷,您就會明白把SQL語句條件連接在一起是多麼的痛苦,要確保不能忘記空格或者不要在columns列後面省略一個逗號等。動態語句能夠完全解決掉這些痛苦。
四、Dubbo
Dubbo是一個分布式服務框架,致力於提供高性能和透明化的RPC(遠程過程調用協議)遠程服務調用方案,以及SOA服務治理方案。簡單的說,bbo就是個服務框架,如果沒有分布式的需求,其實是不需要用的,只有在分布式的時候,才有bbo這樣的分布式服務框架的需求,並且本質上是個服務調用的東東,說白了就是個遠程服務調用的分布式框架。
1、透明化的遠程方法調用,就像調用本地方法一樣調用遠程方法,只需簡單配置,沒有任何API侵入。
2、軟負載均衡及容錯機制,可在內網替代F5等硬體負載均衡器,降低成本,減少單點。
3、 服務自動注冊與發現,不再需要寫死服務提供方地址,注冊中心基於介面名查詢服務提供者的IP地址,並且能夠平滑添加或刪除服務提供者。
節點角色說明:
Provider: 暴露服務的服務提供方。
Consumer: 調用遠程服務的服務消費方。
Registry: 服務注冊與發現的注冊中心。
Monitor: 統計服務的調用次調和調用時間的監控中心。
Container: 服務運行容器。
五、Maven
Maven這個個項目管理和構建自動化工具,越來越多的開發人員使用它來管理項目中的jar包。但是對於我們程序員來說,我們最關心的是它的項目構建功能。
六、RabbitMQ
消息隊列一般是在項目中,將一些無需即時返回且耗時的操作提取出來,進行了非同步處理,而這種非同步處理的方式大大的節省了伺服器的請求響應時間,從而提高了系統的吞吐量。
RabbitMQ是用Erlang實現的一個高並發高可靠AMQP消息隊列伺服器。
Erlang是一門動態類型的函數式編程語言。對應到Erlang里,每個Actor對應著一個Erlang進程,進程之間通過消息傳遞進行通信。相比共享內存,進程間通過消息傳遞來通信帶來的直接好處就是消除了直接的鎖開銷(不考慮Erlang虛擬機底層實現中的鎖應用)。
AMQP(Advanced Message Queue Protocol)定義了一種消息系統規范。這個規范描述了在一個分布式的系統中各個子系統如何通過消息交互。
七、Log4j
日誌記錄的優先順序,分為OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者您定義的級別。
八、Ehcache
EhCache 是一個純Java的進程內緩存框架,具有快速、精乾等特點,是Hibernate中默認的CacheProvider。Ehcache是一種廣泛使用的開源Java分布式緩存。主要面向通用緩存,Java EE和輕量級容器。它具有內存和磁碟存儲,緩存載入器,緩存擴展,緩存異常處理程序,一個gzip緩存servlet過濾器,支持REST和SOAP api等特點。
優點:
1、 快速
2、 簡單
3、 多種緩存策略
4、緩存數據有兩級:內存和磁碟,因此無需擔心容量問題
5、 緩存數據會在虛擬機重啟的過程中寫入磁碟
6、可以通過RMI、可插入API等方式進行分布式緩存
7、 具有緩存和緩存管理器的偵聽介面
8、支持多緩存管理器實例,以及一個實例的多個緩存區域
9、提供Hibernate的緩存實現
缺點:
1、使用磁碟Cache的時候非常佔用磁碟空間:這是因為DiskCache的演算法簡單,該演算法簡單也導致Cache的效率非常高。它只是對元素直接追加存儲。因此搜索元素的時候非常的快。如果使用DiskCache的,在很頻繁的應用中,很快磁碟會滿。
2、不能保證數據的安全:當突然kill掉java的時候,可能會產生沖突,EhCache的解決方法是如果文件沖突了,則重建cache。這對於Cache數據需要保存的時候可能不利。當然,Cache只是簡單的加速,而不能保證數據的安全。如果想保證數據的存儲安全,可以使用Bekeley DB Java Edition版本。這是個嵌入式資料庫。可以確保存儲安全和空間的利用率。
九、Redis
redis是一個key-value存儲系統。和Memcached類似,它支持存儲的value類型相對更多,包括string(字元串)、list(鏈表)、set(集合)、zset(sorted set –有序集合)和hash(哈希類型)。這些數據類型都支持push/pop、add/remove及取交集並集和差集及更豐富的操作,而且這些操作都是原子性的。在此基礎上,redis支持各種不同方式的排序。與memcached一樣,為了保證效率,數據都是緩存在內存中。區別的是redis會周期性的把更新的數據寫入磁碟或者把修改操作寫入追加的記錄文件,並且在此基礎上實現了master-slave(主從)同步。
Redis資料庫完全在內存中,使用磁碟僅用於持久性。相比許多鍵值數據存儲,Redis擁有一套較為豐富的數據類型。Redis可以將數據復制到任意數量的從伺服器。
1.2、Redis優點:
(1)異常快速:Redis的速度非常快,每秒能執行約11萬集合,每秒約81000+條記錄。
(2)支持豐富的數據類型:Redis支持最大多數開發人員已經知道像列表,集合,有序集合,散列數據類型。這使得它非常容易解決各種各樣的問題,因為我們知道哪些問題是可以處理通過它的數據類型更好。
(3)操作都是原子性:所有Redis操作是原子的,這保證了如果兩個客戶端同時訪問的Redis伺服器將獲得更新後的值。
(4)多功能實用工具:Redis是一個多實用的工具,可以在多個用例如緩存,消息,隊列使用(Redis原生支持發布/訂閱),任何短暫的數據,應用程序,如Web應用程序會話,網頁命中計數等。
1.3、Redis缺點:
(1)單線程
(2)耗內存
十、Shiro
Apache Shiro是Java的一個安全框架,旨在簡化身份驗證和授權。Shiro在JavaSE和JavaEE項目中都可以使用。它主要用來處理身份認證,授權,企業會話管理和加密等。Shiro的具體功能點如下:
(1)身份認證/登錄,驗證用戶是不是擁有相應的身份;
(2)授權,即許可權驗證,驗證某個已認證的用戶是否擁有某個許可權;即判斷用戶是否能做事情,常見的如:驗證某個用戶是否擁有某個角色。或者細粒度的驗證某個用戶對某個資源是否具有某個許可權;
(3)會話管理,即用戶登錄後就是一次會話,在沒有退出之前,它的所有信息都在會話中;會話可以是普通JavaSE環境的,也可以是如Web環境的;
(4)加密,保護數據的安全性,如密碼加密存儲到資料庫,而不是明文存儲;
(5)Web支持,可以非常容易的集成到Web環境;
Caching:緩存,比如用戶登錄後,其用戶信息、擁有的角色/許可權不必每次去查,這樣可以提高效率;
(6)shiro支持多線程應用的並發驗證,即如在一個線程中開啟另一個線程,能把許可權自動傳播過去;
(7)提供測試支持;
(8)允許一個用戶假裝為另一個用戶(如果他們允許)的身份進行訪問;
(9)記住我,這個是非常常見的功能,即一次登錄後,下次再來的話不用登錄了。
文字描述可能並不能讓猿友們完全理解具體功能的意思。下面我們以登錄驗證為例,向猿友們介紹Shiro的使用。至於其他功能點,猿友們用到的時候再去深究其用法也不遲。
十一、設計模式
這個算不上框架,可自行忽略,不過我認為設計模式的思想很有必要了解一下。
思想:
開閉原則:
開閉原則就是說對擴展開放,對修改關閉。在程序需要進行拓展的時候,不能去修改原有的代碼。
針對介面編程,針對介面編程,依賴於抽象而不依賴於具體。
盡量使用合成/聚合的方式,而不是使用繼承。
一個實體應當盡量少的與其他實體之間發生相互作用,使得系統功能模塊相對獨立。
使用多個隔離的介面,比使用單個介面要好。
里氏代換原則:
(1)子類的能力必須大於等於父類,即父類可以使用的方法,子類都可以使用。
(2)返回值也是同樣的道理。假設一個父類方法返回一個List,子類返回一個ArrayList,這當然可以。如果父類方法返回一個ArrayList,子類返回一個List,就說不通了。這里子類返回值的能力是比父類小的。
(3)還有拋出異常的情況。任何子類方法可以聲明拋出父類方法聲明異常的子類。 而不能聲明拋出父類沒有聲明的異常。
㈧ rpc的實現機制是什麼
RPC 的全稱是 Remote Procere Call 是一種進程間通信方式。它允許程序調用另一個地址空間(通常是共享網路的另一台機器上)的過程或函數,而不用程序員顯式編碼這個遠程調用的細節。即無論是調用本地介面/服務的還是遠程的介面/服務,本質上編寫的調用代碼基本相同。
比如兩台伺服器A,B,一個應用部署在A伺服器上,想要調用B伺服器上應用提供的函數或者方法,由於不在一個內存空間,不能直接調用,這時候需要通過就可以應用RPC框架的實現來解決。
RPC 會隱藏底層的通訊細節(不需要直接處理Socket通訊或Http通訊)
RPC 是一個請求響應模型。客戶端發起請求,伺服器返回響應(類似於Http的工作方式)
RPC 在使用形式上像調用本地函數(或方法)一樣去調用遠程的函數(或方法)。
二、常見RPC框架
幾種比較典型的RPC的實現和調用框架。
(1)RMI實現,利用java.rmi包實現,基於Java遠程方法協議(Java Remote Method Protocol)
和java的原生序列化。
(2)Hessian,是一個輕量級的remoting onhttp工具,使用簡單的方法提供了RMI的功能。 基於HTTP協議,採用二進制編解碼。
(3)THRIFT是一種可伸縮的跨語言服務的軟體框架。thrift允許你定義一個描述文件,描述數據類型和服務介面。依據該文件,編譯器方便地生成RPC客戶端和伺服器通信代碼。
二、RPC框架實現原理
在RPC框架中主要有三個角色:Provider、Consumer和Registry。如下圖所示:
RPC框架面試總結-RPC原理及實現
節點角色說明:
* Server: 暴露服務的服務提供方。
* Client: 調用遠程服務的服務消費方。
* Registry: 服務注冊與發現的注冊中心。
三、RPC調用流程
RPC基本流程圖:
RPC框架面試總結-RPC原理及實現
一次完整的RPC調用流程(同步調用,非同步另說)如下:
1)服務消費方(client)調用以本地調用方式調用服務;
2)client stub接收到調用後負責將方法、參數等組裝成能夠進行網路傳輸的消息體;
3)client stub找到服務地址,並將消息發送到服務端;
4)server stub收到消息後進行解碼;
5)server stub根據解碼結果調用本地的服務;
6)本地服務執行並將結果返回給server stub;
7)server stub將返回結果打包成消息並發送至消費方;
8)client stub接收到消息,並進行解碼;
9)服務消費方得到最終結果。
RPC框架的目標就是要2~8這些步驟都封裝起來,讓用戶對這些細節透明。
四、服務注冊&發現
RPC框架面試總結-RPC原理及實現
服務提供者啟動後主動向注冊中心注冊機器ip、port以及提供的服務列表;
服務消費者啟動時向注冊中心獲取服務提供方地址列表,可實現軟負載均衡和Failover;
五、使用到的技術
1、動態代理
生成 client stub和server stub需要用到 Java 動態代理技術 ,我們可以使用JDK原生的動態代理機制,可以使用一些開源位元組碼工具框架 如:CgLib、Javassist等。
2、序列化
為了能在網路上傳輸和接收 Java對象,我們需要對它進行 序列化和反序列化操作。
* 序列化:將Java對象轉換成byte[]的過程,也就是編碼的過程;
* 反序列化:將byte[]轉換成Java對象的過程;
可以使用Java原生的序列化機制,但是效率非常低,推薦使用一些開源的、成熟的序列化技術,例如:protobuf、Thrift、hessian、Kryo、Msgpack
關於序列化工具性能比較可以參考:jvm-serializers
3、NIO
當前很多RPC框架都直接基於netty這一IO通信框架,比如阿里巴巴的HSF、bbo,Hadoop Avro,推薦使用Netty 作為底層通信框架。
4、服務注冊中心
可選技術:
* Redis
* Zookeeper
* Consul
* Etcd
㈨ Web和UDDI Service區別在哪
互聯網路的發展給電子商務帶來了商機,但是由於大家各自為營的局面,電子商務的解決方案層出不窮,混亂的局面在一定程度上阻礙了電子商務的進一步發展。本文認為目前國際上以UDDI為核心的Web Service是如今電子商務的最好解決方式。如何使發布和發現服務更快速准確是UDDI的重要任務。 什麼是UDDI 統一描述、發現和集成(Universal Description, Discovery, and Integration,UDDI)相當於Web Service的一個公共注冊表,通俗點說它就是電子商務應用與服務的「網路黃頁」;它旨在以一種結構化的方式來保存有關各公司及其服務的信息。通過 UDDI,人們可以發布和發現有關某個公司及其Web服務的信息,然後就可以根據這些發布在UDDI的信息,通過統一的調用方法來享受這些服務了(如圖1所示)。而在以前,服務消費者需要和服務提供者通過電話、郵件、會議等手段來商議和溝通服務的提供和調用方式,如今通過UDDI這些問題都輕松解決,而且迅速方便。
UDDI的實現有以下幾種技術: ● XML(eXtend Markable Language, 擴展標記語言),用嚴格的嵌套標記表示數據信息,特別適合在Internet環境中的多點數據交換環境下使用。 ● SOAP(Simple Object Access Protocol,簡單對象訪問協議), 用來定義數據描述和遠程訪問的標准。是一個輕型的分布式計算協議,它允許在一個分散、分布式的環境中交換信息。SOAP是一個基於XML的協議。每一個通過網路的遠程調用都可以通過SOAP封裝起來。SOAP使用HTTP傳送XML消息,盡管HTTP不是最有效率的通信協議,而且在傳送XML消息時還需要額外的文件解析,但是XML和HTTP都是開放標准規范,HTTP是一個在Web上被最廣泛應用又能避免許多關於防火牆問題的傳送協議,從而使SOAP得到了廣泛的接受和應用。 ● WSDL(Web Services Description Language,Web服務描述語言), 是發布和請求Web服務的描述語言;是基於XML的語言。它將Web服務描述為一組對消息進行操作的網路端點。每個WSDL服務描述包含對一組操作和消息的一個抽象定義,以及綁定到這些操作和消息的一個具體協議,還有這個綁定的網路端點的規范。 UDDI如何工作 首先,我們先來了解UDDI的數據是由哪些元素構成的。UDDI注冊表中的數據由「白頁」、「黃頁」、「綠頁」構成。其中「白頁」包含關於商業名稱、地址、電話號碼等信息;「黃頁」包含基於某些商業類型的商業體的列表(或者說是UDDI按照商業類型或者其所在行業的類型提供的入口);「綠頁」用於顯示每個商業體提供的服務,包括與之有關的或使用這種服務的所有諸如參數、終點值等技術信息。而具體的數據是由下面的UDDI數據結構來表示的。 UDDI有四種主要數據結構: ● 商業實體信息(businessEntity結構):UDDI 商業注冊的商業信息發布和發現的核心XML 元素都包含在該結構中,它是商業實體專屬信息集中最高層的數據容器,位於整個信息結構的最上層。該結構支持「黃頁」信息。 ● 服務信息(businessService結構):該結構將一系列有關商業流程或分類目錄的Web 服務的描述組合到一起。businessService和下面要提到的bindingTemplate一起構成了「綠頁」信息。 ● 綁定信息(bindingTemplate結構):該結構包括應用程序連接遠程Web 服務並與之通訊所必需的信息,以及通過附加的特性可以實現一些復雜的路由選擇。 ● 技術規范信息(tModel結構):該元素包含了一個列表,列表的每個子元素分別是一個調用規范的引用。這些引用作為一個標識符的雜湊集合,組成了類似指紋的技術標識,用來查找、識別實現了給定行為或編程介面的Web 服務。 UDDI的這些數據都是利用基於XML技術的WSDL來描述的,這些數據都是服務提供者在向UDDI注冊之前編寫服務程序時,由工具自動產生的,並不需要手工編寫。有了提供Web服務的程序和描述這些程序的WSDL文件,就可以向UDDI發布了,使服務調用者通過UDDI來發現該服務,再通過UDDI中WSDL文件關於Web服務的描述,來調用並享受該Web服務。 其實UDDI本身就是一個Web服務,它的調用介麵包含查詢API和發布API。這些API實際上是用WSDL來進行描述的,用戶只需根據這些描述,向UDDI發送API描述中相應的參數和命令,就可以享受這些服務(如查詢、插入、刪除等)。查詢API用來快速地定位候選的商業實體、Web服務及其調用規范和相關信息的細節。發布API分為保存API和刪除API。一旦得到授權,一個獨立的機構可以注冊任意數量的businessEntity或tModel信息,也可以修改原先發布的信息。UDDI注冊中心是對所有提供公共UDDI注冊服務站點的統稱。在邏輯上,UDDI 數據存放在運營商(即承諾運營一個公共節點的公司)節點上。 以下是如何通過UDDI來發現服務並調用服務的過程,通過這些過程描述,我們能更清楚地了解UDDI的工作原理。 1. 編寫調用遠程Web服務的程序時,程序員使用UDDI商業注冊中心(通過使用Web界面或其他基於查詢API 的工具)來定位businessEntity 信息,這些信息是由(或為)提供該Web服務的企業注冊的。 2. 程序員可以進一步獲得更詳細的businessService信息,或是得到一個完整的businessEntity結構。因為businessEntity結構包含了有關已發布的Web服務的所有信息,因此程序員只需簡單地選擇一個bindingTemplate並保存留待以後使用。 3. 基於Web服務在bindingTemplate的tModel中提供的調用規范的相關信息,程序員可以按照該Web服務的調用規范編寫程序。 4. 在運行時,程序可以按需要使用已保存下來的 bindingTemplate的信息來調用Web服務。 UDDI的最新動態 目前,UDDI國際組織出版的UDDI規范的最新版本是UDDI V3規范,而當前各大UDDI運營商實現服務的UDDI還是按照V2規范來執行的。V2和V3規范的最大區別在於V3規范改變了V2規范的平行的體系結構,實現了層次型的結構,為全球的UDDI運營商的統一管理和服務提供了堅實的基礎。 在UDDI規范2中,所有的UDDI Registry都是同級的關系,它們之間形成一個環狀,而它們之間的數據是要通過一個安全通道進行復制的,最終是要使所有UDDI Registry的數據完全相同,而達到在服務享受者在發現服務的時候,無論通過任一個UDDI Registry查詢到的數據都是相同的。 如圖2所示,目前幾大UDDI注冊商之間的數據是每24小時復制一次,也就是說,當你在某個UDDI注冊Web服務的24小時後,全世界所有的服務享受者就能通過任何一個UDDI Registry查詢到該服務。然而這樣的UDDI架構使得數據有巨大的冗餘,在注冊數據量小的時候,還可以接受,但如果每天有大量的數據注冊的時候,就需要消耗巨大的資源。
V3規范融入了多注冊中心拓撲結構(multi-registry topology)、增強的安全特徵、改進了的WSDL支持,以及訂閱(Subscription)API和核心信息模型的先進性,使得在多Web服務集結構的情況下,UDDI可以提供給客戶或使用者更復雜、更完善的描述和發現功能。如圖3所示。
V3規范把原來UDDI的平行結構,設計成為一種層次型的結構,這便於全球分布式UDDI的管理。在頂層設立了ROOT,它的作用是給其他的Affiliate Registry分配全球惟一的Key,同時也賦予它們生成Key的權力,使全球的每個數據都有惟一的Key,這樣便於統一管理。另外,V3規范也在節點的復制上做了重大的改進。但V3規范也還有一些未完善的地方,如Affiliate Registry之間的數據復制和共享等問題;這些問題有待進一步的研究和改進。 UDDI是一種新的應用技術,也是一種新的Web服務,它的出現給電子商務的發展帶來了新的契機,也推動了互聯網路的發展。有專家預測,在未來的5年之內,隨著UDDI技術的不斷完善和推廣,UDDI將成為電子商務的代名詞。就讓我們拭目以待,並親身體驗UDDI的快速發現和發布服務,感受它們所帶來巨大經濟效益的樂趣。 (計算機世界報 第11期 E26)
㈩ 如何使用程序員客棧做開發
為什麼說程序員客棧是遠程工作者開發中心?為什麼效率會大大提高呢?從數學的角度來定量計算一下,在客棧上發布網站建設需求,自己去找單個開發者,自己去找外包商的效率,哪種方式能更快找到合適的人?
我們要預設幾個常用場景和經驗值:
前提假設:
要找到一個能力和時間都合適的開發者,經驗人次是平均見過4個候選者,才能選中1個。假設每天面試一個候選者,每次大概聊2個小時。一個產品從想法到上線,即使我們不考慮測試環節,也需要產品文檔-設計-前端-後端 4個環節。
常用場景1:自己一個個去找人,通過熟人也好,朋友也好推薦或者自薦來組成團隊。
1)尋找時間:假設你通過各種方式,每個職位都嘗試去聯絡了10個人。預期這起碼將花去你一周的時間2)等待回復時間:一周3)面試所佔時間:你需要花費 16*2 =32 小時在面試上面,才能把基礎所需的產品經理,設計師,前端,後端找到。
總結:從你開始想要找人,到你最終找到人,樂觀的估計,也需要起碼花掉 14個工作日,112工作時。其中32小時完全被佔用
場景2:去找一個外包團隊,外包團隊的人員配備齊全。1)聯絡且確認候選人: 預計一周,聯絡了10個左右外包團隊,然後4個能進一步詳談。2)面試:4*2 = 8 小時(完全佔用時間)
總結:從你開始想要找人,到你最終找到人,樂觀的估計,也需要起碼花掉 6個工作日,48小時。其中8小時完全被佔用
場景3:在程序員客棧上
我們按照能力匹配排序,從最適合地開始詢問,找到近期正好有時間有興趣來做這件事情的人。一天之內至少可以詢問16名開發者並獲得反饋。按照25%的幾率,我們一般在第4次詢問的時候已經成功找到開發者,這個時候的平均時間是4小時。
按照流程進行,每個環節需要的開發者我們預計4小時可以匹配成功,一共需要4*4 = 16小時。完全佔用時間:10分鍾(需求明確)
結論
在客棧上找到合適的開發者,比自己單個單個去找要快96小時,比自己去找外包團隊要快 的時間,是場景1:單個去找開發這的16%,是場景2 去找外包團隊的 33%。
同時,完全佔用時間比優勢更明顯:客棧發布:10分鍾單個開發者尋找:32 小時單個外包團隊尋找:8小時。