Java開發相關術語解析
Java['dʒɑːvə]
當前軟體開發行業應用最廣、就業量最大的程式語言,在各類程式語言排行榜長期位列第一。是企業軟體開發的首選語言,也是Android系統的開發語言。
Java吸取了C++語言的眾多優點,是極好的面向物件程式語言,程式設計師可以很優雅的思維方式編寫強大負責的軟體程式。
Html5
HyperText Markup Language,網頁開發最主要的程式語言,簡單好學功能強大。Html5是最新版本,2014年釋出。
CSS3
Cascading Style Sheets,層疊樣式表,用來給網頁元素設定各種樣式,美化頁面。CSS3是最新版本,2001年制定。
JavaScript['dʒɑvə,skrɪpt]
網頁程式設計指令碼語言,主要用來實現網頁動態效果和各種功能和業務邏輯。JavaScript是開發者使用最廣泛的語音,沒有之一。JavaScript和Java的關係類似雷鋒和雷鋒塔的關係,半毛錢都沒。Java學不好對於JavaScript沒有任何影響。
jQuery[dʒe'kwɪərɪ]
Javascript的一個框架,就是別人把很多網頁常用功能寫好了打包在一起成為jQuery給大家用。jQuery能夠操作頁面製作動畫,以及更多厲害的功能。jQuery曾經是網頁開發的必選工具,但近幾年隨著Vue、react、angular的興起,jQuery已經不那麼流行了。
Bootstrap['bʊt'stræp]
JS框架,提供了很多現成的網頁元素,可以很快讓網頁變得美觀大方。
JDBC/MyBatis[mai'beitis]
JDBC,Java DataBase Connectivity即Java和資料庫的連通工具。通過這個標準可以方便的控制和操作資料庫。
MyBatis也是一個用來操作資料庫的資料持久層框架,但它比JDBC更簡單更好用,行業應用也越來越廣泛。
DBCP/C3P0/BoneCP[bon si'pi]/Druid ['druːɪd]
Java幾種資料庫連線池庫。Druid由阿里巴巴開源提供。
什麼是連線池?由於建立資料庫連線是一種非常耗時、耗資源的行為,所以通過連線池預先同資料庫建立一些連線,放在記憶體中,應用程式需要建立資料庫連線時直接到連線池中申請一個就行,使用完畢後再歸還到連線池中。
Servlet['sɜvlet]
Servlet(Server Applet)是Java Servlet的簡稱,稱為小服務程式或服務聯結器,用Java編寫的伺服器端程式,具有獨立於平臺和協議的特性,主要功能在於互動式地瀏覽和生成資料,生成動態Web內容。
Java Servlet是JSP的技術基礎,大型的Web應用程式的開發需要Java Servlet和JSP配合才能完成。
JSP
JSP全名為Java Server Pages,中文名叫java伺服器頁面,它可以在web頁面的html檔案中利用JSP標記插入Java程式程式碼,變成.jsp檔案。用JSP開發的Web應用是跨平臺的,既能在Linux下執行,也能在其他作業系統上執行。
EasyUI
Easyui是一種基於jQuery的使用者介面外掛集,幫助web開發者不用編寫複雜的JavaScript程式碼也能輕鬆的打造出功能豐富並且美觀的UI介面。
Ajax
Ajax ,非同步 JavaScript 和 XML即Asynchronous Javascript And XML,開源向伺服器傳送請求獲取資料,用於製作具有動態互動資料的網頁。
Json[dʒeɪ'sən]
一種最常用的非結構化的資料資訊格式,是網際網路資料傳輸最常用的格式。
DWR
DWR是一個用於改善web頁面與Java類互動的遠端伺服器端Ajax開源框架,可以幫助開發人員開發包含AJAX技術的網站。它可以允許在瀏覽器裡的程式碼使用執行在WEB伺服器上的JAVA方法,就像它就在瀏覽器裡一樣。
Linux[ˈlɪnəks]/Unix['jʊnɪks]
Unix,初名UNiplexed Information and Computing Service,誕生於1970年貝爾實驗室,是一個強大的作業系統。類Unix系統是指類似Unix的系統,包括我們熟悉的Android、iOS、蘋果電腦系統MacOS、Ubuntu等都是類Unix系統。Android就是基於Linux的。常見的Linux有用於普通電腦的Ubuntu和適合做伺服器的CentOS。
Git[ɡɪt]/Github[ɡɪt'hʌb]
專案協作和版本管理工具。多人開發一個專案,共同編寫一個檔案等各種情況需要有系統的協調管理。軟體需要多次迭代升級,有時候甚至需要回退,這都需要每個檔案都有不同版本的跟蹤和管理。Git是免費開源工具。Github是基於Git技術的線上網站,是當前全球最大的開發者社群,匯聚了全球幾乎所有的開源專案,你可以在Github建立自己的專案檔案倉庫,與全球開發者一起協作。
Github在2018年已經被微軟收購。
另外可選的網站有Gitlab、Gitbucket,國內的有coding、oschina等。
MVC/MVVM
MVC,模型檢視控制器,Model-View-Controller。
MVVM,模型檢視檢視模型模型,Model-View-ViewModle-Modle。
大型網站專案開發常用兩種架構模式,目的是可以方便的重複使用頁面元素,更好的管理網路資料傳輸,網頁和後端服務分離,使網站更強大更穩定,開發更快,維護更容易。
MySQL[mai'si:kjuːel]
SQL,結構性查詢語言Structured Query Language,Mysql目前行業最常用的關係型資料庫,用來儲存各種資料,可以很方便的查詢搜尋。
結構性資料一般是指類似Excel表格的資料。
NoSQL/Redis[re'dis]/MongoDB['mɒŋgəʊ'di'bi]
NoSQL是非關係型資料庫,和MySQL不同。非關係型資料庫在網際網路時代尤其是大資料雲端計算時代越來越重要,可以應對更多樣的資料儲存需要。最常見的非關係型資料庫有Redis、MongoDB和Memcache。同時這些資料庫也經常被用來大幅度提高後端軟體的執行效率。很好的結合各種資料庫使用,可以使軟體程式效能提高成百上千倍。
Nginx[n'dʒeninks]/Apache[əˈpætʃɪ] /Tomcat['tɑmkæt]
這三個都是常用的網路伺服器軟體,為網站提供http服務,讓使用者能夠訪問到伺服器上的網頁檔案。目前Nginx使用最為廣泛,其他兩個的使用在逐漸下降。
第三方登入/移動支付
指某些網站或APP可以使用QQ登入、微信登入、微博登入、支付寶支付、微信支付等功能。這些功能都需要開發者編寫程式碼進行開發,一般都會涉及到前端網頁和後端伺服器開發。
雲部署
目前幾乎所有公司的網站都部署在雲端伺服器上,即雲服務提供商大公司提供的外地伺服器,目前國內最大的雲伺服器提供商是阿里雲,佔有50%左右的市場份額,其次是騰訊雲和微軟雲等。
雲端伺服器更加安全穩定,成本更低,技術也更簡單,目前一般的部署和維護工作都由普通開發者完成,所以必須瞭解雲服務提供商的各種功能,以及雲端作業系統CentOS的使用方法。
網站效能優化
對於使用者量比較少只有幾百人的中小型網站來說,效能往往不那麼敏感,但是對於使用者數以萬計數以千萬計的中大型商業網站來說,使用者開啟網頁的速度、功能是否靈敏就成為重要的問題。
因此必須掌握前端網頁優化方法,加快網頁載入速度;也要掌握後端伺服器程式優化策略和資料庫優化技巧,確保網站穩定高速執行。
JDBC/MyBatis[mai'beitis]
JDBC,Java DataBase Connectivity即Java和資料庫的連通工具。通過這個標準可以方便的控制和操作資料庫。
MyBatis也是一個用來操作資料庫的資料持久層框架,但它比JDBC更簡單更好用,行業應用也越來越廣泛。
Hibernate['haɪbɚnet]
一個開放原始碼的物件關係對映框架,它可以自動生成SQL語句,自動執行,使得Java程式設計師可以隨心所欲的使用物件程式設計思維來操縱資料庫。
Struts[st'rʌts]
一個基於MVC設計模式的Web應用框架,它本質上相當於一個servlet,在MVC設計模式中,Struts作為控制器來建立模型與檢視的資料互動。
Struts 2是Struts的下一代產品,是全新的Struts 2框架。
Spring[sprɪŋ]
一個Java的服務端程式開發框架,它使開發邏輯和業務邏輯更加清晰,利用這個框架可以開發各類企業級服務端程式。
Spring是一個開放原始碼的設計層面框架,它解決的是業務邏輯層和其他各層的鬆耦合問題,因此它將面向介面的程式設計思想貫穿整個系統應用。
SpringMVC
基於Spring之上,遵循MVC(模型-檢視-控制器)設計原則的前端web開發框架,它是基於Servlet技術實現的。
SprintBoot/SpringCloud
比SpringMVC更加簡單,更加專注於後端微服務開發的後端框架。
SpringCloud是全域性微服務的整合與管理,可以看做是對多個SpringBoot微服務的管理。
微服務就是一小組服務功能集合。中大型軟體功能眾多,往往需要拆分成很多小功能模組進行開發,每個小模組可以單獨執行,就叫做微服務。
JDBC/MyBatis[mai'beitis]
JDBC,Java DataBase Connectivity即Java和資料庫的連通工具。通過這個標準可以方便的控制和操作資料庫。
MyBatis也是一個用來操作資料庫的資料持久層框架,但它比JDBC更簡單更好用,行業應用也越來越廣泛。
Spring Data['detə]
一個用於簡化資料庫訪問,並支援雲服務的開源框架。其主要目標是使得對資料的訪問變得方便快捷。
微服務
微服務架構是一種架構概念,旨在通過將功能分解到各個離散的服務中以實現對解決方案的管理。它的主要作用是將功能分解到離散的各個服務當中,從而降低系統的耦合性,並提供更加靈活的服務支援,。
Dubbo['dʌbəu]
Dubbo是阿里巴巴公司開源的一個高效能優秀的服務框架,使得應用開源高效能的 實現服務的輸出和輸入功能,可以和 Spring框架無縫整合。
訊息佇列
訊息佇列是指資訊在傳輸過程中儲存資訊的容器。
訊息佇列的主要目的是提供路由並保證訊息的傳遞;如果傳送訊息時接收者不可用,訊息佇列會保留訊息,直到可以成功地傳遞它。
訊息佇列中介軟體是分散式系統中重要的元件,主要解決應用耦合,非同步訊息,流量削鋒等問題,實現高效能,高可用,可伸縮和最終一致性等問題。
使用較多的訊息佇列有ActiveMQ ['æktɪv],RabbitMQ['ræbɪt],Kafka['ka:fka:]。
大資料技術
大資料,big data,指無法在一定時間範圍內用常規軟體工具進行捕捉、管理和處理的資料集合,是需要新處理模式才能具有更強的決策力、洞察發現力和流程優化能力的海量、高增長率和多樣化的資訊資產。
Hadoop[ha'du:p]
Hadoop是一個由Apache基金會所開發的分散式系統基礎架構。使用者可以在不瞭解分散式底層細節的情況下,開發分散式程式。充分利用叢集的威力進行高速運算和儲存。
分散式系統是指執行在網路上臺計算機之上的軟體和系統,與我們熟悉的windows只執行在單個計算機上不同。
HDFS/MapReduce[mæp rɪ'dʊs]
Hadoop的框架最核心的設計就是:HDFS和MapReduce。HDFS為海量的資料提供了儲存,而MapReduce則為海量的資料提供了計算。
HDFS
Hadoop分散式檔案系統(HDFS)被設計成適合執行在通用硬體上的分散式檔案系統。它和其他的分散式檔案系統的區別也是很明顯的。HDFS是一個高度容錯性的系統,適合部署在廉價的機器上。
MapReduce[mæp rɪ'dʊs]
MapReduce是一種程式設計模型,用於大規模資料集(大於1TB)的並行運算。它極大地方便了程式設計人員在不會分散式並行程式設計的情況下,將自己的程式執行在分散式系統上。
並行運算指一次執行多個指令的演算法,經常是指在分散式系統上多臺計算機多個CPU同時併發執行計算。
Hive[haɪv]
Hive是基於Hadoop的一個數據倉庫工具,可以通過類SQL語句快速實現簡單的MapReduce統計,不必開發專門的MapReduce應用,十分適合資料倉庫的統計分析。
HBase[eɪtʃ beɪs]
HBase是一個分散式的開源資料庫。HBase不同於一般的關係資料庫,它是一個適合於非結構化資料儲存的資料庫。
結構化資料一般是指類似Excel表這樣的結構,比如word文件、圖片、視訊就是非結構的。
Storm[stɔːm]
Storm用於在分散式系統上實現實時處理訊息並更新資料庫,也可以用於對資料流做連續查詢,一邊計算,一遍把結果輸出給使用者。
Hadoop主要是處理一批資料,對時效性要求不高,需要處理就提交一個工作任務,而Storm時效性更高,比如實時錄音錄影、資料更新等。
Storm核心元件
Storm核心元件有主節點、從節點、程序、執行緒、協調服務等。
Zookeeper
分散式協作服務。是Hadoop和Hbase的重要元件。
Hive[haɪv]
Hive是基於Hadoop的一個數據倉庫工具,可以通過類SQL語句快速實現簡單的MapReduce統計,不必開發專門的MapReduce應用,十分適合資料倉庫的統計分析。
Pig[pɪɡ]
與Hive類似,也是一個數據分析工具,常用於用於檢索和分析資料量較大的資料集。
Spark[spɑːk]
Apache Spark 是專為大規模資料處理而設計的快速通用的計算引擎。擁有Hadoop MapReduce所具有的優點;但不同於MapReduce的是,Spark更加快速,能更好地適用於資料探勘與機器學習等需要迭代的MapReduce的演算法。
Sqoop[skup]
一款開源的工具,主要用於在Hadoop(Hive)與傳統的資料庫(mysql、postgresql...)間進行資料的傳遞,可以將一個關係型資料庫(如MySQL)中的資料導進到Hadoop的HDFS中,也可以將HDFS的資料導進到關係型資料庫中。
Flume[fluːm]
一個高可用的,高可靠的,分散式的海量日誌採集、聚合和傳輸的系統。
Mahout[mə'haʊt]
一個開源專案,提供一些可擴充套件的機器學習領域經典演算法的實現,旨在幫助開發人員更加方便快捷地建立智慧應用程式。Mahout包含許多實現,包括聚類、分類、推薦過濾、頻繁子項挖掘。
Yarn[jɑn]
一種新的 Hadoop 資源管理器,它是一個通用資源管理系統,可為上層應用提供統一的資源管理和排程。