網(wǎng)站開(kāi)發(fā) 手機(jī)APP的開(kāi)發(fā)和網(wǎng)站的開(kāi)發(fā)是不是完全不同?
手機(jī)APP的開(kāi)發(fā)和網(wǎng)站的開(kāi)發(fā)是不是完全不同?雖然手機(jī)應(yīng)用開(kāi)發(fā)和網(wǎng)站開(kāi)發(fā)會(huì)采用不同的編程語(yǔ)言,但是從技術(shù)架構(gòu)的角度來(lái)看,手機(jī)應(yīng)用開(kāi)發(fā)和傳統(tǒng)網(wǎng)站開(kāi)發(fā)(主要是靜態(tài)的)屬于前端開(kāi)發(fā)的范疇,所以兩者有很多相似之
手機(jī)APP的開(kāi)發(fā)和網(wǎng)站的開(kāi)發(fā)是不是完全不同?
雖然手機(jī)應(yīng)用開(kāi)發(fā)和網(wǎng)站開(kāi)發(fā)會(huì)采用不同的編程語(yǔ)言,但是從技術(shù)架構(gòu)的角度來(lái)看,手機(jī)應(yīng)用開(kāi)發(fā)和傳統(tǒng)網(wǎng)站開(kāi)發(fā)(主要是靜態(tài)的)屬于前端開(kāi)發(fā)的范疇,所以兩者有很多相似之處。目前,許多開(kāi)發(fā)團(tuán)隊(duì)已經(jīng)將web前端開(kāi)發(fā)和移動(dòng)端開(kāi)發(fā)集成到前端開(kāi)發(fā)團(tuán)隊(duì)中。事實(shí)上,對(duì)于前端開(kāi)發(fā)人員來(lái)說(shuō),也提出了新的要求,即進(jìn)一步拓展自己的知識(shí)面。
例如,android應(yīng)用的開(kāi)發(fā)分為兩部分:一部分是基于互聯(lián)網(wǎng)的,另一部分是基于開(kāi)放應(yīng)用的是的,它相當(dāng)廣泛。
隨著物聯(lián)網(wǎng)的不斷發(fā)展,未來(lái)移動(dòng)互聯(lián)網(wǎng)和物聯(lián)網(wǎng)將深度融合。因此,未來(lái)移動(dòng)終端的發(fā)展將覆蓋物聯(lián)網(wǎng)領(lǐng)域,這也需要開(kāi)發(fā)者在一定程度上更新自己的知識(shí)。一般來(lái)說(shuō),移動(dòng)終端的發(fā)展對(duì)業(yè)務(wù)邏輯仍有一定的要求,存在一定的發(fā)展難度。然而,隨著云計(jì)算技術(shù)的逐漸成熟,移動(dòng)終端的開(kāi)發(fā)難度也在下降。
從技術(shù)體系上看,移動(dòng)終端的發(fā)展需要掌握三個(gè)部分。一是Android開(kāi)發(fā)技術(shù),涉及Java和kotlin編程語(yǔ)言;二是IOS開(kāi)發(fā),涉及OC和swift編程語(yǔ)言;三是各種移動(dòng)web開(kāi)發(fā)和小程序開(kāi)發(fā),主要涉及JavaScript語(yǔ)言。
與移動(dòng)終端開(kāi)發(fā)相比,web前端開(kāi)發(fā)主要涉及HTML、CSS、JavaScript等一系列開(kāi)發(fā)框架。隨著nodejs的應(yīng)用,web前端開(kāi)發(fā)人員也需要掌握一定的后端開(kāi)發(fā)知識(shí)。
為什么網(wǎng)上有人說(shuō)WEB開(kāi)發(fā)沒(méi)技術(shù)含量?
一個(gè)非常好的問(wèn)題。我是一個(gè)web應(yīng)用程序架構(gòu)師,多年來(lái)一直致力于回答這個(gè)問(wèn)題。歡迎跟我來(lái)了解更多。
基本上,所有行業(yè)都需要開(kāi)發(fā)網(wǎng)站。web開(kāi)發(fā)技術(shù)含量低的觀點(diǎn)在某些應(yīng)用場(chǎng)景中是正確的。
這種web應(yīng)用以靜態(tài)信息顯示為主要目的,如企業(yè)官方網(wǎng)站、私人網(wǎng)站等。由于沒(méi)有動(dòng)態(tài)交互功能,所以開(kāi)發(fā)主要是HTML和CSS,靜態(tài)頁(yè)面維護(hù)可以結(jié)合后臺(tái)管理工具的使用,這些功能都有一個(gè)成熟的開(kāi)發(fā)框架,統(tǒng)稱為CMS內(nèi)容管理系統(tǒng)。
如果網(wǎng)站有復(fù)雜的業(yè)務(wù)邏輯,比如電子商務(wù)、直播等系統(tǒng),不僅功能復(fù)雜,而且支持高并發(fā)、高可用,技術(shù)指標(biāo)非常高。大家都知道淘寶網(wǎng)站,沒(méi)人說(shuō)技術(shù)含量低。
用戶看到的web應(yīng)用程序只是顯示的客戶端,后臺(tái)服務(wù)是系統(tǒng)的核心。為了滿足越來(lái)越復(fù)雜的需求,現(xiàn)在web開(kāi)發(fā)的功能和架構(gòu)也越來(lái)越復(fù)雜,多層架構(gòu)、數(shù)據(jù)中心、動(dòng)靜分離、集群部署、自動(dòng)運(yùn)維等。比如淘寶雙11,為了應(yīng)對(duì)流量高峰,后臺(tái)服務(wù)進(jìn)行了很多技術(shù)升級(jí)。
舉個(gè)真實(shí)的例子。在參加虹口市科創(chuàng)組織的創(chuàng)業(yè)活動(dòng)時(shí),遇到一位朋友,他投資100萬(wàn)元為陌生人開(kāi)發(fā)了一款社交應(yīng)用,頁(yè)面刷新延遲時(shí)間超過(guò)10秒。如何將這種用戶體驗(yàn)用于營(yíng)銷(xiāo)?
經(jīng)過(guò)分析,問(wèn)題出在后臺(tái)接口服務(wù)上。為什么web界面會(huì)延遲這么長(zhǎng)時(shí)間?前端應(yīng)用刷新頁(yè)面時(shí),調(diào)用后端服務(wù)rest接口讀取信息,直接讀取數(shù)據(jù)庫(kù),查詢多個(gè)表。作為基礎(chǔ)數(shù)據(jù)層,如果不使用緩存系統(tǒng),做一點(diǎn)營(yíng)銷(xiāo),就不需要太多用戶造成系統(tǒng)雪崩。
為什么很多看起來(lái)不復(fù)雜的網(wǎng)站,卻需要頂尖的程序員來(lái)開(kāi)發(fā)?
有些網(wǎng)站看起來(lái)很簡(jiǎn)單,還可以實(shí)現(xiàn)基本的登錄、注冊(cè)、查詢等操作。實(shí)際上,函數(shù)非常簡(jiǎn)單。即使是初學(xué)者學(xué)習(xí)編程也能做到。
當(dāng)然,這是要完成的基本功能。底層程序員考慮的是功能的實(shí)現(xiàn),而基于功能的互聯(lián)網(wǎng)站則要求更高的安全性和并發(fā)性??傊δ芊浅:?jiǎn)單,但要實(shí)現(xiàn)高并發(fā)性并不容易。同時(shí),網(wǎng)站運(yùn)營(yíng)過(guò)程中會(huì)出現(xiàn)很多漏洞,等待修復(fù)。
初級(jí)程序員覺(jué)得所有的網(wǎng)站在一開(kāi)始就取得了很多成就之后都太簡(jiǎn)單了。你可以自己做。實(shí)際上,您只能處理函數(shù)。千萬(wàn)人不可能同時(shí)參觀。感謝上帝,你可以保證成千上萬(wàn)的人。
所以此時(shí)的狀態(tài)仍然保持在功能級(jí)別。但是互聯(lián)網(wǎng)項(xiàng)目需要高并發(fā)性。
對(duì)于大型互聯(lián)網(wǎng)項(xiàng)目,除了開(kāi)發(fā)功能需求,更重要的是優(yōu)化。例如,構(gòu)建云服務(wù)器集群、更改bug、優(yōu)化流程等等。因此,互聯(lián)網(wǎng)項(xiàng)目似乎仍然需要頂尖程序員的開(kāi)發(fā)。因?yàn)樗麄冎赖母唷?/p>
我認(rèn)為作為一個(gè)程序員,我們應(yīng)該一直遵循學(xué)習(xí)的狀態(tài)。繼續(xù)學(xué)習(xí)。來(lái)吧。
軟件開(kāi)發(fā)、網(wǎng)站開(kāi)發(fā)有區(qū)別嗎?
謝謝。我是一名軟件工程師。首先我要明確的是,軟件開(kāi)發(fā)的范圍非常大,包括游戲開(kāi)發(fā)、網(wǎng)站開(kāi)發(fā)、手機(jī)應(yīng)用開(kāi)發(fā)等等。
因此,網(wǎng)站開(kāi)發(fā)屬于軟件開(kāi)發(fā)的范疇,網(wǎng)站開(kāi)發(fā)主要采用B/S架構(gòu),B代表瀏覽器,S代表服務(wù)器。由此可見(jiàn),網(wǎng)站的開(kāi)發(fā)還包括前端和后端兩部分。
前端負(fù)責(zé)開(kāi)發(fā)web界面,還控制用戶數(shù)據(jù)和服務(wù)器數(shù)據(jù)之間的交互。
常見(jiàn)技術(shù)包括HTML和JavaScript。Html用于編寫(xiě)網(wǎng)頁(yè)的外觀。JavaScript控制著網(wǎng)頁(yè)數(shù)據(jù)處理的邏輯,還可以處理圖形交互的動(dòng)畫(huà)效果。
下圖是前端工程師的思維導(dǎo)圖:
后端負(fù)責(zé)服務(wù)器的代碼開(kāi)發(fā)。目前,服務(wù)器的主流語(yǔ)言是Java。作為一名java開(kāi)發(fā)工程師,我主要談?wù)搄ava。
Java知識(shí)很深,但歸根結(jié)底,Java的主要目的是對(duì)服務(wù)器端的數(shù)據(jù)庫(kù)進(jìn)行合理的管理,處理數(shù)據(jù)變化和數(shù)據(jù)傳輸,保證前端數(shù)據(jù)能夠得到有效的反饋,保證網(wǎng)站的數(shù)據(jù)能夠穩(wěn)定、連續(xù)地輔助網(wǎng)站的運(yùn)行網(wǎng)站。
事實(shí)上,網(wǎng)站開(kāi)發(fā)過(guò)程是軟件開(kāi)發(fā)的縮影,開(kāi)發(fā)原則是相互聯(lián)系的。