小追兵專欄
作為入行不久,在帝都無數(shù)個日日夜夜奔波的程序猿,現(xiàn)在我大概理下我們所接觸到的程序開發(fā)的大的面。作為一個整理學(xué)習(xí)日記,不對的地方,可以指出,相互學(xué)習(xí)。
從我們智能手機(jī)說起,手機(jī)已經(jīng)成為我們不可或缺的一部分。那么手機(jī)在軟件行業(yè)里處在什么樣的位置呢。這里我把手機(jī)理解為 前端
前端:
我粗暴的理解為,“前就”是前面,眼前,“端”就是終端,連起來就是展示在使用者眼前的終端設(shè)備。這么看來,終端當(dāng)然還包括我們的電腦 、平板,都是前端。有前端,當(dāng)然就有后端。
這里我們先說前端,前端包括兩部分,網(wǎng)頁前端,和移動前端。網(wǎng)頁前端的編程語言,和需要掌握的相關(guān)知識:
HTML/CSS ----->負(fù)責(zé)網(wǎng)頁的頁面樣式和現(xiàn)實(shí)的內(nèi)容
JavaScript -----> 和上面的HTML/CSS一起使用,負(fù)責(zé)網(wǎng)頁的點(diǎn)擊交互等相應(yīng)和邏輯運(yùn)算
CSS3 ----->是上面CSS的完善和升級,增加了很多好用的屬性,比如動畫等。
HTML5 ----->上面HTML的完善和升級,增加了新的標(biāo)簽,統(tǒng)一了標(biāo)準(zhǔn)。
jQuery ----->JavaScript最常用的開發(fā)框架,讓JavaScript開發(fā)簡單容易。
AngularJS ----->google收購的一款優(yōu)秀的前端JS框架,
Node.js ----->Node.js是一個基于Chrome JavaScript運(yùn)行時建立的平臺,它是對Google V8引擎進(jìn)行了封裝,使得V8在非瀏覽器環(huán)境下運(yùn)行得更好。
Bootstrap-----> 是基于 HTML、CSS、JavaScript 的來自 前端開發(fā)框架,他來自Twitter,也是目前很受歡迎的的Web 開發(fā)框架。
WebApp -----> 基于Web的系統(tǒng)和應(yīng)用,簡單理解,就是開發(fā)了一個像應(yīng)用程序一樣的網(wǎng)頁,只需要在瀏覽器中打開頁面,就會等于打開了一個app,現(xiàn)在很典型的WebApp于微信公眾平臺綁定,在關(guān)注的公眾號頁面里,打開這個公眾號的網(wǎng)站,可以充值訂餐等等,就是一款WebApp
移動端編程
Android 主要編程語言Java,現(xiàn)在很多App會結(jié)合WebApp開發(fā)一款手機(jī)應(yīng)用。
iOS 主要編程語言:Objective-C,和蘋果官方行推出的Swift編程語言。
后端:
和前端對應(yīng),我們簡單理解為,后面對,看不見的,背后的設(shè)備。一般的后端設(shè)備,就是我們的服務(wù)器。
后端涉及的編程語言和知識點(diǎn):
PHP-----> 是一種通用開源腳本語言,主要適用于Web開發(fā)。主要實(shí)現(xiàn)服務(wù)器的邏輯,以及實(shí)現(xiàn)數(shù)據(jù)庫的增刪改查。
JAVA -----> 一種可以撰寫跨平臺應(yīng)用程序的面向?qū)ο蟮某绦蛟O(shè)計(jì)語言,可以看出,兩大特點(diǎn),跨平臺,面向?qū)ο?。引用很廣泛,可以最為后端服務(wù)器開發(fā)語言,也是Android開發(fā)語言。
Linux ----->一套免費(fèi)使用和自由傳播的類Unix操作系統(tǒng),現(xiàn)在很多公司服務(wù)器,都使用的是linux操作系統(tǒng),Linux一起良好的性能,豐富的免費(fèi)軟件資源,以及良好的穩(wěn)定性,在服務(wù)器操作系統(tǒng)上,有不可撼動的地位。
Python ----->是一種面向?qū)ο蟆⒔忉屝陀?jì)算機(jī)程序設(shè)計(jì)語言,Python是代表簡單主義思想的語言。閱讀一個良好的Python程序就感覺像是在讀英語一樣。它使你能夠?qū)W⒂诮鉀Q問題而不是去搞明白語言本身。和php一樣,大部分將其作為Web服務(wù)器開發(fā)。
C ----->一種能以簡易的方式編譯、處理低級存儲器、產(chǎn)生少量的機(jī)器碼以及不需要任何運(yùn)行環(huán)境支持便能運(yùn)行的編程語言。很古老,很經(jīng)典,很實(shí)用的語言。計(jì)算機(jī)專業(yè)和理工專業(yè)不可或缺的一門編程課程。優(yōu)點(diǎn)是編譯文件小,消耗小,執(zhí)行速度極快。
C++ ----->是在C語言的基礎(chǔ)上開發(fā)的一種面向?qū)ο缶幊陶Z言。
Go ----->谷歌2009發(fā)布的第二款開源編程語言,Go編譯的程序可以媲美C或C++代碼的速度;所以是一個比較年輕的語言,可以被用于網(wǎng)絡(luò)服務(wù)器、存儲系統(tǒng)和數(shù)據(jù)庫中。谷歌對該語言寄予厚望。
C# ----->是微軟公司發(fā)布的一種面向?qū)ο蟮?、運(yùn)行于.NET Framework之上的高級程序設(shè)計(jì)語言,C#看起來與Java有著驚人的相似,它是微軟公司.NET windows網(wǎng)絡(luò)框架的主角。
上面是前段和后端的一些開發(fā)語言和知識,前段用于給用戶展示信息,并且提交一些查詢的信息,前段通過網(wǎng)絡(luò)將需要查詢信息發(fā)送給后端,后端進(jìn)行編程邏輯處理,去數(shù)據(jù)庫查詢我們需要的信息,后端查詢到需要的信息,又通過網(wǎng)絡(luò)返回給前段,前段通過編程邏輯展示在我們面前。這就是一個完整的回路。
我們看到了,后端是需要去數(shù)據(jù)庫查詢需要的數(shù)據(jù)的,那么我們的任何應(yīng)用程序,或者一個平臺,都不可或缺的要去查詢數(shù)據(jù)庫的數(shù)據(jù)。下面我們看看數(shù)據(jù)庫有哪些?
- DB2 ----->又IBM的1997年的System R系統(tǒng)的原型發(fā)展而來,關(guān)系型數(shù)據(jù)庫管理系統(tǒng),它主要的運(yùn)行環(huán)境為UNIXLinux、IBM i、以及Windows服務(wù)器。DB2主要應(yīng)用于大型應(yīng)用系統(tǒng)。 DB2具有很好的網(wǎng)絡(luò)支持能力,每個子系統(tǒng)可以連接十幾萬個分布式用戶,可同時激活上千個活動線程,對大型分布式應(yīng)用系統(tǒng)尤為適用。
Oracle ----->是甲骨文公司的一款關(guān)系數(shù)據(jù)庫管理系統(tǒng)。它是在數(shù)據(jù)庫領(lǐng)域一直處于領(lǐng)先地位的產(chǎn)品,其系統(tǒng)可移植性好、使用方便、功能強(qiáng),適用于各類大、中、小、微機(jī)環(huán)境。它是一種高效率、可靠性好的 適應(yīng)高吞吐量的數(shù)據(jù)庫解決方案。
Informix ----->和DB2一樣,也是IBM的關(guān)系數(shù)據(jù)庫管理系統(tǒng),被定位為作為IBM在線事務(wù)處理(OLTP)旗艦級數(shù)據(jù)服務(wù)系統(tǒng)。
Sybase ----->美國Sybase公司研制的一種關(guān)系型數(shù)據(jù)庫系統(tǒng),
SQL Server ----->美國Microsoft公司推出的一種關(guān)系型數(shù)據(jù)庫系統(tǒng),是一個可擴(kuò)展的、高性能的、為分布式客戶機(jī)/服務(wù)器計(jì)算所設(shè)計(jì)的數(shù)據(jù)庫管理系統(tǒng),高性能設(shè)計(jì),可充分利用WindowsNT的優(yōu)勢,提供了基于事務(wù)的企業(yè)級信息管理系統(tǒng)方案。
PostgreSQL ----->PostgreSQL是以加州大學(xué)伯克利分校計(jì)算機(jī)系開發(fā)的 POSTGRES,后更名為PostgreSQL,是一個自由的對象-關(guān)系數(shù)據(jù)庫服務(wù)器(數(shù)據(jù)庫管理系統(tǒng))。
mySQL -----> 由瑞典 MySQL AB 公司開發(fā),目前屬于 Oracle 旗下公司,是一個關(guān)系型數(shù)據(jù)庫管理系統(tǒng)。MySQL是最流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),在 WEB 應(yīng)用方面 MySQL 是最好的應(yīng)用軟件之一,由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點(diǎn),一般中小型網(wǎng)站的開發(fā)都選擇 MySQL 作為網(wǎng)站數(shù)據(jù)庫。由于其社區(qū)版的性能卓越,搭配 PHP 和 Apache 可組成良好的開發(fā)環(huán)境。
SQLite ----->是一款輕型的數(shù)據(jù)庫,是遵守ACID的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),常用在移動端,如iPhone,Android手機(jī),都用的是SQLite數(shù)據(jù)庫,
以上關(guān)于數(shù)據(jù)庫的資料,基本都來自百度百科,這里只是簡單的介紹服務(wù)器端使用到的數(shù)據(jù)庫,不對其進(jìn)行詳細(xì)說明。
由此可見:我們一個網(wǎng)站,或者一個手機(jī)app,再或者一個手機(jī)游戲,都是有“前端”和“后端”相互協(xié)作構(gòu)成整個完整的系統(tǒng)。我們的數(shù)據(jù)機(jī)會全部都是存儲在數(shù)據(jù)庫中。
這里我們從大的方向上了解了一個網(wǎng)絡(luò)系統(tǒng),一個大的系統(tǒng)的關(guān)鍵組成部分。我們了解這些,可以從一個較高的角度,分塊去學(xué)習(xí)自己感興趣的東西。比如,對前端感興趣,我們可以選擇前端的一種,例如Android,或者ios,再或者網(wǎng)頁H5等。又如,我們?nèi)绻矚g后端服務(wù)器,我們可以選擇PHP,抑或別的語言技術(shù)學(xué)習(xí)。
這樣我們可以站在山頂看山下一片好風(fēng)景。不是嗎?