前端,也稱web前端、web客戶端、通常是指網站的前臺部分,運行在PC端、移動端等瀏覽器上展現給用戶瀏覽的網頁,包括網站的表現層和結構層,通俗點就是用戶可以看到的部分,前端與后端(服務端)相對應,前端調取后端(服務端)的數據展現給用戶。
打開百度APP,查看更多高清圖片
Hotodo導學
前端開發做什么?
前端工程師,又叫web前端開發,前端開發是從網頁制作演變而來。早期的網頁制作主要內容都是靜態地,以文字圖片為主,用戶使用網站也以瀏覽為主。隨著互聯網的發展,現代網頁更佳美觀,交互效果更加顯著,功能更加強大,于是網站開發細分成了前端開發和后端開發。
前端工程師通過前端技術完成界面設計、界面展現,交互效果,頁面維護、網站優化等等。通俗點講,就是設計、制作網頁,實現網頁上各種各樣的特效和功能。
前端開發需要具備什么技能?
前端開發的主要語言是JavaScript,JavaScript是世界上最流行的腳本語言,因為你在電腦、手機、平板上瀏覽的所有的網頁,以及無數基于HTML5的手機App,交互邏輯都是由JavaScript實現的。簡單地說,JavaScript是一種運行在瀏覽器中的解釋性的編程語言。在當今Web世界里,只有JavaScript能跨平臺、跨瀏覽器驅動網頁,與用戶交互,你沒有其它選擇。
現在前端開發的主要技術通常是指html、css、javascript技術和一些前端框架的使用,如Bootstrap,jquery,react,vue,angular等。
前端開發的一般要求如下:
計算機或相關專業,熟悉常用的數據結構和算法;掌握操作系統與計算機網絡等專業知識;
熟悉HTML、JavaScript、Ajax、CSS、HTML5、ES6、CSS3等web開發技術;
掌握至少一種主流的前端框架(react/vue/angular),對于可視化開發有一定經驗,具備一定的框架設計能力;
熟悉Web應用系統開發,對HTTP、TCP/IP協議有深入了解;
熟悉Nodejs,對前后端分離模式有深入理解并有實際項目經驗;
具有較強的溝通能力與團隊合作精神;具有良好的分析問題、解決問題的能力以及較強的學習能力。
什么是服務端(后端)開發?服務端開發做什么?
服務端(后端)是相對于前端(客戶端)而言的,服務端,顧名思義是提供資源服務的,客戶端發送的請求交給服務器端處理,服務器端根據用戶的需求,處理完畢后以response對象的形式返回所需資源(數據)給客戶端。客戶端,通常以request對象的形式發送請求給服務器端處理。現在的應用,不管是web應用還是獨立APP,并不是所有功能都請求服務端處理,有些功能比如簡單的數據統計,客戶端就直接處理了,但很多功能是需要服務端統一處理的。這就像水龍頭和自來水廠的分工,用戶需要水,打開水龍頭就相當于給服務端發送請求,供應的水質好不好、水源足不足取決于服務端自來水廠,而希望水來的緩慢一點,在客戶端調節水龍頭就可以實現了,就沒有必要通知自來水廠去做任何處理。
服務端開發,就是開發運行在服務器端的程序,為客戶端提供API接口服務。軟件客戶端和服務端的協作,分為B/S(瀏覽器/服務器)和C/S(客戶端/服務器)兩種模式,瀏覽器就是一種通用的客戶端,現在流行的APP就相當于個性化的客戶端,無論B/S還是C/S都要有相應的服務器端程序提供服務。對于絕大部分應用,服務端的核心就是數據庫,服務器端的程序就是根據應用需求來管理和操作服務端的數據庫,通過對數據庫的操作,返回滿足用戶需求的數據。那么服務端開發,使用什么語言和數據庫呢?
幾乎任何一種開發語言都能作為服務端程序語言,但每種語言的流行度和學習成本不一樣,各自的特性也有較大差異。當前比較流行的服務端語言有Java、Python、NodeJS、PHP、Go語言(Golang)、C語言、C++、C#等。入門學習,NodeJS很不錯,因為是跟前端開發的生態是一樣的,都是用JavaScript語言,最容易上手;其次是Python和Go語言,這兩個語法都很簡潔,都屬于后起之秀,但Go語言的性能要比Python高很多,Go語言的開源輪子沒有Python多;PHP很容易上手,前幾年聚集的開發者也很多,但近幾年逐漸被NodeJS所取代;Java語言流行的最久,其生態也很完善,但其語法和生態復雜、學習成本較高,開發者有可能會轉移到其它后起之秀的語言;C語言通常用于底層與硬件結合的驅動、固件以及高性能計算等軟件開發,是一門經久不衰的開發語言;C++和C#通常用于PC桌面客戶端應用程序開發,PC客戶端和服務端都能用C++和C#實現,C++因為性能卓越與C是近親而且比C語言更面向對象、開發效率比C語言高,一直不溫不火,而C#開發者已開始越來越少。就像沒有十全十美的人一樣,也沒有十全十美的開發語言,開發者主要根據學習成本、語言流行度、生態完善度和應用場景去選擇學習那種開發語言。快速入門,建議選擇NodeJS;進階追求開發效率和性能,建議選擇Go語言(Golang)。
服務端開發除了至少要精通一門開發語言之外,常用的數據庫是必須要會用的。在當今的互聯網應用中,最常見的數據庫模型主要有兩種,即關系型數據庫和非關系型數據庫。常用的關系型數據庫有Access、SQLite、MySQL、MariaDB、SQL Server、Postgre、Oracle等。常用的非關系型數據庫主要有鍵值(key-value)存儲數據庫Memcached、Redis、MemcacheDB,列存儲(Column-oriented)數據庫Cassandra、HBase,面向文檔的(Document-Oriented)數據庫MongoDB、CouchDB,圖形數據庫Neo4J、InforGrid。一般只要掌握了Redis、MySQL和MongoDB這三種數據庫,就能滿足絕大多數應用需求,掌握了這三種數據庫之后,學習其它數據庫也就非常容易了。
網站開發分為前端開發和后端開發,可以先從web前端開發入手,學習HTML、css、JavaScript等方面的知識,然后在轉向后端開發語言的學習,比如說PHP和Java語言,然后還需要一定的數據庫知識,比如mysql、access等,掌握了這些前端后端數據庫方面的知識后,就需要整合這些知識和技術,然后完成整個網站程序的開發和設計了。
學習前端開發還是后端開發取決于自身的知識結構和興趣,前后端開發對軟件開發來說都是非常重要的,只是關注的點不同罷了,下面分別做一個簡單的描述。
前端開發更注重用戶的使用體驗,前端開發是與用戶交互的窗口,一方面接收用戶輸入的數據,另一方面把系統處理完的數據通過前端進行呈現,所以往往前端開發對設計有一定的要求。現在前端開發有三個角色,分別是交互設計師、視覺設計師和前端程序員,這三個角色分別承擔著不同的任務,一般交互設計師和視覺設計師是在需求階段就開始介入,而前端程序員則是跟著程序開發團隊同步進行開發。
前端開發對基礎知識的要求往往并不高,前端程序員即使沒有扎實的數學基礎也能夠順利的完成自己的開發任務,前端開發通常只會使用到一些比較簡單的數學知識,所以有很多從事前端開發的工程師并不是計算機專業畢業的。前端程序員需要學習的編程語言總的來說還是比較簡單的,比如Html、CSS、JavaScript等,其中JavaScript還是有一定難度的,需要一個系統的學習過程。
后端開發往往更注重功能的處理,后端開發需要涉及到業務邏輯實現、數據庫操作、性能優化、消息傳遞、資源部署等內容,可以說后端開發承載了整個軟件的大部分核心任務。相對于前端開發來說,后端開發往往就需要有扎實的基礎知識了,尤其是數學知識,包括高數、離散數學、線性代數、概率論等,同時后端開發需要掌握的編程語言相對來說也要比前端復雜一些,比較常見的編程語言包括Java、PHP、Python、C++等。
對于高中畢業的人來說,學習前端開發是一個不錯的選擇。
我從事軟件開發工作多年,目前也在帶軟件開發團隊,我會陸續在頭條寫一些關于軟件開發方面的文章,感興趣的朋友可以關注我,相信一定會有所收獲。
如果有軟件開發方面的問題,也可以咨詢我。
謝謝!