Java['d?ɑ?v?]
當(dāng)前軟件開發(fā)行業(yè)應(yīng)用最廣、就業(yè)量最大的編程語言迅腔,在各類編程語言排行榜長期位列第一霜浴。是企業(yè)軟件開發(fā)的首選語言,也是Android系統(tǒng)的開發(fā)語言恭应。
Java吸取了C++語言的眾多優(yōu)點(diǎn)抄邀,是極好的面向?qū)ο缶幊陶Z言,程序員可以很優(yōu)雅的思維方式編寫強(qiáng)大負(fù)責(zé)的軟件程序暮屡。
Html5
HyperText Markup Language撤摸,網(wǎng)頁開發(fā)最主要的編程語言,簡(jiǎn)單好學(xué)功能強(qiáng)大褒纲。 Html5是最新版本准夷,2014年發(fā)布。
CSS3
Cascading Style Sheets莺掠,層疊樣式表衫嵌,用來給網(wǎng)頁元素設(shè)定各種樣式,美化頁面彻秆。 CSS3是最新版本楔绞,2001年制定。
JavaScript['d?ɑv?,skr?pt]
網(wǎng)頁編程腳本語言唇兑,主要用來實(shí)現(xiàn)網(wǎng)頁動(dòng)態(tài)效果和各種功能和業(yè)務(wù)邏輯酒朵。 JavaScript是開發(fā)者使用最廣泛的語音,沒有之一扎附。 JavaScript和Java的關(guān)系類似雷鋒和雷鋒塔的關(guān)系蔫耽,半毛錢都沒。 Java學(xué)不好對(duì)于JavaScript沒有任何影響留夜。
jQuery[d?e'kw??r?]
Javascript的一個(gè)框架匙铡,就是別人把很多網(wǎng)頁常用功能寫好了打包在一起成為jQuery給大家用。 jQuery能夠操作頁面制作動(dòng)畫碍粥,以及更多厲害的功能鳖眼。 jQuery曾經(jīng)是網(wǎng)頁開發(fā)的必選工具,但近幾年隨著Vue嚼摩、react钦讳、angular的興起矿瘦,jQuery已經(jīng)不那么流行了。
Bootstrap['b?t'str?p]
JS框架蜂厅,提供了很多現(xiàn)成的網(wǎng)頁元素匪凡,可以很快讓網(wǎng)頁變得美觀大方。
JDBC/MyBatis[mai'beitis]
JDBC,Java DataBase Connectivity即Java和數(shù)據(jù)庫的連通工具掘猿。通過這個(gè)標(biāo)準(zhǔn)可以方便的控制和操作數(shù)據(jù)庫病游。
MyBatis也是一個(gè)用來操作數(shù)據(jù)庫的數(shù)據(jù)持久層框架,但它比JDBC更簡(jiǎn)單更好用稠通,行業(yè)應(yīng)用也越來越廣泛衬衬。
DBCP/C3P0/BoneCP[bon si'pi]/Druid ['dru??d]
Java幾種數(shù)據(jù)庫連接池庫。Druid由阿里巴巴開源提供改橘。
什么是連接池滋尉?由于建立數(shù)據(jù)庫連接是一種非常耗時(shí)、耗資源的行為飞主,所以通過連接池預(yù)先同數(shù)據(jù)庫建立一些連接狮惜,放在內(nèi)存中,應(yīng)用程序需要建立數(shù)據(jù)庫連接時(shí)直接到連接池中申請(qǐng)一個(gè)就行碌识,使用完畢后再歸還到連接池中碾篡。
Servlet['s?vlet]
Servlet(Server Applet)是Java Servlet的簡(jiǎn)稱,稱為小服務(wù)程序或服務(wù)連接器筏餐,用Java編寫的服務(wù)器端程序开泽,具有獨(dú)立于平臺(tái)和協(xié)議的特性,主要功能在于交互式地瀏覽和生成數(shù)據(jù)魁瞪,生成動(dòng)態(tài)Web內(nèi)容穆律。
Java Servlet是JSP的技術(shù)基礎(chǔ),大型的Web應(yīng)用程序的開發(fā)需要Java Servlet和JSP配合才能完成导俘。
JSP
JSP全名為Java Server Pages峦耘,中文名叫java服務(wù)器頁面,它可以在web頁面的html文件中利用JSP標(biāo)記插入Java程序代碼旅薄,變成.jsp文件贡歧。用JSP開發(fā)的Web應(yīng)用是跨平臺(tái)的,既能在Linux下運(yùn)行赋秀,也能在其他操作系統(tǒng)上運(yùn)行。
EasyUI
Easyui是一種基于jQuery的用戶界面插件集,幫助web開發(fā)者不用編寫復(fù)雜的JavaScript代碼也能輕松的打造出功能豐富并且美觀的UI界面律想。
Ajax
Ajax ,異步 JavaScript 和 XML即Asynchronous Javascript And XML猎莲,開源向服務(wù)器發(fā)送請(qǐng)求獲取數(shù)據(jù),用于制作具有動(dòng)態(tài)交互數(shù)據(jù)的網(wǎng)頁技即。
Json[d?e?'s?n]
一種最常用的非結(jié)構(gòu)化的數(shù)據(jù)信息格式著洼,是互聯(lián)網(wǎng)數(shù)據(jù)傳輸最常用的格式。
DWR
DWR是一個(gè)用于改善web頁面與Java類交互的遠(yuǎn)程服務(wù)器端Ajax開源框架,可以幫助開發(fā)人員開發(fā)包含AJAX技術(shù)的網(wǎng)站。它可以允許在瀏覽器里的代碼使用運(yùn)行在WEB服務(wù)器上的JAVA方法,就像它就在瀏覽器里一樣塑崖。
Linux[?l?n?ks]/Unix['j?n?ks]
Unix老速,初名UNiplexed Information and Computing Service,誕生于1970年貝爾實(shí)驗(yàn)室遭京,是一個(gè)強(qiáng)大的操作系統(tǒng)。類Unix系統(tǒng)是指類似Unix的系統(tǒng),包括我們熟悉的Android伤柄、iOS、蘋果電腦系統(tǒng)MacOS文搂、Ubuntu等都是類Unix系統(tǒng)适刀。Android就是基于Linux的。常見的Linux有用于普通電腦的Ubuntu和適合做服務(wù)器的CentOS煤蹭。
Git[ɡ?t]/Github[ɡ?t'h?b]
項(xiàng)目協(xié)作和版本管理工具笔喉。 多人開發(fā)一個(gè)項(xiàng)目,共同編寫一個(gè)文件等各種情況需要有系統(tǒng)的協(xié)調(diào)管理硝皂。 軟件需要多次迭代升級(jí)常挚,有時(shí)候甚至需要回退,這都需要每個(gè)文件都有不同版本的跟蹤和管理吧彪。 Git是免費(fèi)開源工具待侵。 Github是基于Git技術(shù)的在線網(wǎng)站,是當(dāng)前全球最大的開發(fā)者社區(qū)姨裸,匯聚了全球幾乎所有的開源項(xiàng)目秧倾,你可以在Github建立自己的項(xiàng)目文件倉庫,與全球開發(fā)者一起協(xié)作傀缩。
Github在2018年已經(jīng)被微軟收購那先。
另外可選的網(wǎng)站有Gitlab、Gitbucket赡艰,國內(nèi)的有coding售淡、oschina等。
MVC/MVVM
MVC慷垮,模型視圖控制器揖闸,Model-View-Controller。
MVVM料身,模型視圖視圖模型模型汤纸,Model-View-ViewModle-Modle。
大型網(wǎng)站項(xiàng)目開發(fā)常用兩種架構(gòu)模式芹血,目的是可以方便的重復(fù)使用頁面元素贮泞,更好的管理網(wǎng)絡(luò)數(shù)據(jù)傳輸楞慈,網(wǎng)頁和后端服務(wù)分離,使網(wǎng)站更強(qiáng)大更穩(wěn)定啃擦,開發(fā)更快囊蓝,維護(hù)更容易。
MySQL[mai'si:kju?el]
SQL,結(jié)構(gòu)性查詢語言Structured Query Language,Mysql目前行業(yè)最常用的關(guān)系型數(shù)據(jù)庫令蛉,用來存儲(chǔ)各種數(shù)據(jù)聚霜,可以很方便的查詢搜索。
結(jié)構(gòu)性數(shù)據(jù)一般是指類似Excel表格的數(shù)據(jù)言询。
NoSQL/Redis[re'dis]/MongoDB['m??g??'di'bi]
NoSQL是非關(guān)系型數(shù)據(jù)庫俯萎,和MySQL不同。非關(guān)系型數(shù)據(jù)庫在互聯(lián)網(wǎng)時(shí)代尤其是大數(shù)據(jù)云計(jì)算時(shí)代越來越重要运杭,可以應(yīng)對(duì)更多樣的數(shù)據(jù)存儲(chǔ)需要夫啊。最常見的非關(guān)系型數(shù)據(jù)庫有Redis、MongoDB和Memcache辆憔。同時(shí)這些數(shù)據(jù)庫也經(jīng)常被用來大幅度提高后端軟件的運(yùn)行效率撇眯。很好的結(jié)合各種數(shù)據(jù)庫使用,可以使軟件程序性能提高成百上千倍虱咧。
Nginx[n'd?eninks]/Apache[??p?t??] /Tomcat['tɑmk?t]
這三個(gè)都是常用的網(wǎng)絡(luò)服務(wù)器軟件熊榛,為網(wǎng)站提供http服務(wù),讓用戶能夠訪問到服務(wù)器上的網(wǎng)頁文件腕巡。目前Nginx使用最為廣泛玄坦,其他兩個(gè)的使用在逐漸下降。
第三方登錄/移動(dòng)支付
指某些網(wǎng)站或APP可以使用QQ登錄绘沉、微信登錄煎楣、微博登錄、支付寶支付车伞、微信支付等功能择懂。這些功能都需要開發(fā)者編寫代碼進(jìn)行開發(fā),一般都會(huì)涉及到前端網(wǎng)頁和后端服務(wù)器開發(fā)另玖。
云部署
目前幾乎所有公司的網(wǎng)站都部署在云端服務(wù)器上困曙,即云服務(wù)提供商大公司提供的外地服務(wù)器,目前國內(nèi)最大的云服務(wù)器提供商是阿里云谦去,占有50%左右的市場(chǎng)份額慷丽,其次是騰訊云和微軟云等。
云端服務(wù)器更加安全穩(wěn)定鳄哭,成本更低盈魁,技術(shù)也更簡(jiǎn)單,目前一般的部署和維護(hù)工作都由普通開發(fā)者完成窃诉,所以必須了解云服務(wù)提供商的各種功能杨耙,以及云端操作系統(tǒng)CentOS的使用方法。
網(wǎng)站性能優(yōu)化
對(duì)于用戶量比較少只有幾百人的中小型網(wǎng)站來說飘痛,性能往往不那么敏感珊膜,但是對(duì)于用戶數(shù)以萬計(jì)數(shù)以千萬計(jì)的中大型商業(yè)網(wǎng)站來說,用戶打開網(wǎng)頁的速度宣脉、功能是否靈敏就成為重要的問題车柠。
因此必須掌握前端網(wǎng)頁優(yōu)化方法,加快網(wǎng)頁載入速度塑猖;也要掌握后端服務(wù)器程序優(yōu)化策略和數(shù)據(jù)庫優(yōu)化技巧竹祷,確保網(wǎng)站穩(wěn)定高速運(yùn)行。
JDBC/MyBatis[mai'beitis]
JDBC,Java DataBase Connectivity即Java和數(shù)據(jù)庫的連通工具羊苟。通過這個(gè)標(biāo)準(zhǔn)可以方便的控制和操作數(shù)據(jù)庫塑陵。
MyBatis也是一個(gè)用來操作數(shù)據(jù)庫的數(shù)據(jù)持久層框架,但它比JDBC更簡(jiǎn)單更好用蜡励,行業(yè)應(yīng)用也越來越廣泛令花。
Hibernate['ha?b?net]
一個(gè)開放源代碼的對(duì)象關(guān)系映射框架,它可以自動(dòng)生成SQL語句凉倚,自動(dòng)執(zhí)行兼都,使得Java程序員可以隨心所欲的使用對(duì)象編程思維來操縱數(shù)據(jù)庫。
Struts[st'r?ts]
一個(gè)基于MVC設(shè)計(jì)模式的Web應(yīng)用框架稽寒,它本質(zhì)上相當(dāng)于一個(gè)servlet扮碧,在MVC設(shè)計(jì)模式中,Struts作為控制器來建立模型與視圖的數(shù)據(jù)交互杏糙。
Struts 2是Struts的下一代產(chǎn)品慎王,是全新的Struts 2框架。
Spring[spr??]
一個(gè)Java的服務(wù)端程序開發(fā)框架搔啊,它使開發(fā)邏輯和業(yè)務(wù)邏輯更加清晰柬祠,利用這個(gè)框架可以開發(fā)各類企業(yè)級(jí)服務(wù)端程序。
Spring是一個(gè)開放源代碼的設(shè)計(jì)層面框架负芋,它解決的是業(yè)務(wù)邏輯層和其他各層的松耦合問題漫蛔,因此它將面向接口的編程思想貫穿整個(gè)系統(tǒng)應(yīng)用。
SpringMVC
基于Spring之上旧蛾,遵循MVC(模型-視圖-控制器)設(shè)計(jì)原則的前端web開發(fā)框架莽龟,它是基于Servlet技術(shù)實(shí)現(xiàn)的。
SprintBoot/SpringCloud
比SpringMVC更加簡(jiǎn)單锨天,更加專注于后端微服務(wù)開發(fā)的后端框架毯盈。
SpringCloud是全局微服務(wù)的整合與管理,可以看做是對(duì)多個(gè)SpringBoot微服務(wù)的管理病袄。
微服務(wù)就是一小組服務(wù)功能集合搂赋。中大型軟件功能眾多赘阀,往往需要拆分成很多小功能模塊進(jìn)行開發(fā),每個(gè)小模塊可以單獨(dú)運(yùn)行脑奠,就叫做微服務(wù)基公。
JDBC/MyBatis[mai'beitis]
JDBC,Java DataBase Connectivity即Java和數(shù)據(jù)庫的連通工具。通過這個(gè)標(biāo)準(zhǔn)可以方便的控制和操作數(shù)據(jù)庫宋欺。
MyBatis也是一個(gè)用來操作數(shù)據(jù)庫的數(shù)據(jù)持久層框架轰豆,但它比JDBC更簡(jiǎn)單更好用,行業(yè)應(yīng)用也越來越廣泛齿诞。
Spring Data['det?]
一個(gè)用于簡(jiǎn)化數(shù)據(jù)庫訪問酸休,并支持云服務(wù)的開源框架。其主要目標(biāo)是使得對(duì)數(shù)據(jù)的訪問變得方便快捷祷杈。
微服務(wù)
微服務(wù)架構(gòu)是一種架構(gòu)概念斑司,旨在通過將功能分解到各個(gè)離散的服務(wù)中以實(shí)現(xiàn)對(duì)解決方案的管理。它的主要作用是將功能分解到離散的各個(gè)服務(wù)當(dāng)中吠式,從而降低系統(tǒng)的耦合性陡厘,并提供更加靈活的服務(wù)支持,。
Dubbo['d?b?u]
Dubbo是阿里巴巴公司開源的一個(gè)高性能優(yōu)秀的服務(wù)框架特占,使得應(yīng)用開源高性能的 實(shí)現(xiàn)服務(wù)的輸出和輸入功能糙置,可以和 Spring框架無縫集成。
消息隊(duì)列
消息隊(duì)列是指信息在傳輸過程中保存信息的容器是目。
消息隊(duì)列的主要目的是提供路由并保證消息的傳遞谤饭;如果發(fā)送消息時(shí)接收者不可用,消息隊(duì)列會(huì)保留消息懊纳,直到可以成功地傳遞它揉抵。
消息隊(duì)列中間件是分布式系統(tǒng)中重要的組件,主要解決應(yīng)用耦合嗤疯,異步消息冤今,流量削鋒等問題,實(shí)現(xiàn)高性能,高可用茂缚,可伸縮和最終一致性等問題戏罢。
使用較多的消息隊(duì)列有ActiveMQ ['?kt?v],RabbitMQ['r?b?t]脚囊,Kafka['ka:fka:]龟糕。
大數(shù)據(jù)技術(shù)
大數(shù)據(jù),big data悔耘,指無法在一定時(shí)間范圍內(nèi)用常規(guī)軟件工具進(jìn)行捕捉讲岁、管理和處理的數(shù)據(jù)集合,是需要新處理模式才能具有更強(qiáng)的決策力、洞察發(fā)現(xiàn)力和流程優(yōu)化能力的海量缓艳、高增長率和多樣化的信息資產(chǎn)校摩。
Hadoop[ha'du:p]
Hadoop是一個(gè)由Apache基金會(huì)所開發(fā)的分布式系統(tǒng)基礎(chǔ)架構(gòu)。用戶可以在不了解分布式底層細(xì)節(jié)的情況下阶淘,開發(fā)分布式程序秧耗。充分利用集群的威力進(jìn)行高速運(yùn)算和存儲(chǔ)。
分布式系統(tǒng)是指運(yùn)行在網(wǎng)絡(luò)上臺(tái)計(jì)算機(jī)之上的軟件和系統(tǒng)舶治,與我們熟悉的windows只運(yùn)行在單個(gè)計(jì)算機(jī)上不同。
HDFS/MapReduce[m?p r?'d?s]
Hadoop的框架最核心的設(shè)計(jì)就是:HDFS和MapReduce车猬。HDFS為海量的數(shù)據(jù)提供了存儲(chǔ)霉猛,而MapReduce則為海量的數(shù)據(jù)提供了計(jì)算。
HDFS
Hadoop分布式文件系統(tǒng)(HDFS)被設(shè)計(jì)成適合運(yùn)行在通用硬件上的分布式文件系統(tǒng)珠闰。它和其他的分布式文件系統(tǒng)的區(qū)別也是很明顯的惜浅。HDFS是一個(gè)高度容錯(cuò)性的系統(tǒng),適合部署在廉價(jià)的機(jī)器上伏嗜。
MapReduce[m?p r?'d?s]
MapReduce是一種編程模型坛悉,用于大規(guī)模數(shù)據(jù)集(大于1TB)的并行運(yùn)算。它極大地方便了編程人員在不會(huì)分布式并行編程的情況下承绸,將自己的程序運(yùn)行在分布式系統(tǒng)上裸影。
并行運(yùn)算指一次執(zhí)行多個(gè)指令的算法,經(jīng)常是指在分布式系統(tǒng)上多臺(tái)計(jì)算機(jī)多個(gè)CPU同時(shí)并發(fā)執(zhí)行計(jì)算军熏。
Hive[ha?v]
Hive是基于Hadoop的一個(gè)數(shù)據(jù)倉庫工具轩猩,可以通過類SQL語句快速實(shí)現(xiàn)簡(jiǎn)單的MapReduce統(tǒng)計(jì),不必開發(fā)專門的MapReduce應(yīng)用荡澎,十分適合數(shù)據(jù)倉庫的統(tǒng)計(jì)分析均践。
HBase[e?t? be?s]
HBase是一個(gè)分布式的開源數(shù)據(jù)庫。HBase不同于一般的關(guān)系數(shù)據(jù)庫摩幔,它是一個(gè)適合于非結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)的數(shù)據(jù)庫彤委。
結(jié)構(gòu)化數(shù)據(jù)一般是指類似Excel表這樣的結(jié)構(gòu),比如word文檔或衡、圖片焦影、視頻就是非結(jié)構(gòu)的。
Storm[st??m]
Storm用于在分布式系統(tǒng)上實(shí)現(xiàn)實(shí)時(shí)處理消息并更新數(shù)據(jù)庫薇宠,也可以用于對(duì)數(shù)據(jù)流做連續(xù)查詢偷办,一邊計(jì)算,一遍把結(jié)果輸出給用戶澄港。
Hadoop主要是處理一批數(shù)據(jù)椒涯,對(duì)時(shí)效性要求不高,需要處理就提交一個(gè)工作任務(wù)回梧,而Storm時(shí)效性更高废岂,比如實(shí)時(shí)錄音錄像祖搓、數(shù)據(jù)更新等。
Storm核心組件
Storm核心組件有主節(jié)點(diǎn)湖苞、從節(jié)點(diǎn)拯欧、進(jìn)程、線程财骨、協(xié)調(diào)服務(wù)等镐作。
Zookeeper
分布式協(xié)作服務(wù)。是Hadoop和Hbase的重要組件隆箩。
Hive[ha?v]
Hive是基于Hadoop的一個(gè)數(shù)據(jù)倉庫工具该贾,可以通過類SQL語句快速實(shí)現(xiàn)簡(jiǎn)單的MapReduce統(tǒng)計(jì),不必開發(fā)專門的MapReduce應(yīng)用捌臊,十分適合數(shù)據(jù)倉庫的統(tǒng)計(jì)分析杨蛋。
Pig[p?ɡ]
與Hive類似,也是一個(gè)數(shù)據(jù)分析工具理澎,常用于用于檢索和分析數(shù)據(jù)量較大的數(shù)據(jù)集逞力。
Spark[spɑ?k]
Apache Spark 是專為大規(guī)模數(shù)據(jù)處理而設(shè)計(jì)的快速通用的計(jì)算引擎。擁有Hadoop MapReduce所具有的優(yōu)點(diǎn)糠爬;但不同于MapReduce的是寇荧,Spark更加快速,能更好地適用于數(shù)據(jù)挖掘與機(jī)器學(xué)習(xí)等需要迭代的MapReduce的算法秩铆。
Sqoop[skup]
一款開源的工具砚亭,主要用于在Hadoop(Hive)與傳統(tǒng)的數(shù)據(jù)庫(mysql、postgresql...)間進(jìn)行數(shù)據(jù)的傳遞殴玛,可以將一個(gè)關(guān)系型數(shù)據(jù)庫(如MySQL)中的數(shù)據(jù)導(dǎo)進(jìn)到Hadoop的HDFS中捅膘,也可以將HDFS的數(shù)據(jù)導(dǎo)進(jìn)到關(guān)系型數(shù)據(jù)庫中。
Flume[flu?m]
一個(gè)高可用的滚粟,高可靠的寻仗,分布式的海量日志采集、聚合和傳輸?shù)南到y(tǒng)凡壤。
Mahout[m?'ha?t]
一個(gè)開源項(xiàng)目署尤,提供一些可擴(kuò)展的機(jī)器學(xué)習(xí)領(lǐng)域經(jīng)典算法的實(shí)現(xiàn),旨在幫助開發(fā)人員更加方便快捷地創(chuàng)建智能應(yīng)用程序亚侠。Mahout包含許多實(shí)現(xiàn)曹体,包括聚類、分類硝烂、推薦過濾箕别、頻繁子項(xiàng)挖掘。
Yarn[jɑn]
一種新的 Hadoop 資源管理器,它是一個(gè)通用資源管理系統(tǒng)串稀,可為上層應(yīng)用提供統(tǒng)一的資源管理和調(diào)度除抛。