幾大技術體系極其應用


目前市面上做軟件開發的幾大主流技術體系為(一般而言一類編程語言就代表了一種技術體系):

Java技術體系

.Net技術體系

Python技術體系

PHP技術體系

C/C++技術體系

Web前端(以JavaScript為代表的技術體系,包括Node.js);

基本上市面上主流做軟件開發的都是這幾種技術體系,當然還有其他比較小眾的技術體系

比如Go語言、Object-C、Rust等等這些都是比較小眾的,針對某些小的應用場景的,暫時並沒有成為應用開發的主流體系。

我們知道,在軟件開發中,就是兩種軟件架構:一種是B/S架構,一種是C/S架構

開發人員為了設計開發這兩種類型架構的軟件,需要選擇其所需要的技術,對於不同技術體系的選擇,便誕生了不同的崗位,整體上講一般是前端工程師、后端工程師;

再細分下前端又分為web前端、客戶端,B/S架構軟件的前端叫做Web前端,C/S架構軟件的前端一般叫做客戶端

當然這種叫法面對不同的終端又會有不同,一般我們的終端有三種:移動端、Pad、PC端,這是面向用戶的,我們的軟件前端就是部署在這些終端上可以給用戶看的。

這里對於前后端的描述比較多的原因是由於很多人分不清哪是前端,哪是后端,特別是初學者,我很理解你們對於一個小小的概念的不知具體所指而感受到的煩惱。

在兩種軟件架構中(B/S、C/S),后端就是其中的S(Server),兩種架構的軟件可以共用一個后端,后端一般就一個比較好理解,但是涉及到的后端技術就很多了,因為后端承受着用戶的各種請求,對於高並發、高流量的處理,對於后端來說是非常重要的,一般大型網站都會運用去中心化的思想將一個后台拆成多個不同的部分,也即設計成分布式系統,要設計成分布式系統就需要對原始的集中式后台進行拆分,將不同的功能或者服務分別部署在不同的服務器后台上以應對高並發請求帶來卡頓的用戶體驗,一般分布式系統的設計有以下幾種方式:

RPC(遠程過程調用):將不同的服務部署在不同的地方(所謂不同的地方就是部署再不同的服務器上,不將多個服務部署在同一服務器),通過RPC技術實現遠程服務的調用,就像調用本地程序一樣

MQ(消息隊列):消息隊列就是一個進程間通信的中間件,也是后台系統分層思想的一種體現,作用就是將信息通過中間傳輸,以降低服務器的壓力

分庫分表:這是一種在數據存儲層所作的去中心化,即將一些用戶經常需要操作的數據庫表分開存儲,以降低對同一個表的同時訪問壓力

LoadBlance(負載均衡):也是在去中心化思想的指導下所做的將應用分層的一種技術,即通過在多個設備上部署相同的服務確保同一應用服務因為大量請求而崩潰導致整個系統崩潰

CDN(內容分發網絡):英文全稱為Content Delivery Network,目的是為了加快用戶后台的訪問,這個網絡的作用就是將應用服務完整的部署在CDN網絡提供商的服務器上,以作緩存,當用戶訪問系統后台時會根據cdn網絡自動尋址到離他最近的cdn網絡提供商的服務器上,然后再訪問后台應用(這里可能說的有點牽強,待我下次再整理好了會完善的) 

現在的大型系統后台一般都是分布式設計的,運用了很多的分層/去中心化技術,當然這里所說得去中心化不是說某個獨立的去中心化,而是將一個整體進行拆分的去中心化,拆分后的每個獨立的模塊需要相互配合才能發揮其整個系統功能的作用,去中心化這個詞本身有幾種理解,剛接觸這個詞時那面會有點模糊,需要去多多理解

還有一些細分領域應用:圖像處理、人臉識別、機器學習

這些細分領域應用指的是針對某一個系統種的具體模塊需要用到,他們往往是一個系統的核心,在這些細分領域從事工作,需要比較好的數據結構與算法基礎。

以上就是關於當前的幾大技術體系的粗略介紹,后期需要整理的,這只是基本的思路記錄下

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM