網(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ā)的范疇,所以?xún)烧哂泻芏嘞嗨浦?/p>
手機(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ā)的范疇,所以?xún)烧哂泻芏嘞嗨浦?。目前,許多開(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í)面。
目前,手機(jī)的發(fā)展一般分為兩部分。其中一部分是新應(yīng)用開(kāi)發(fā),涉及Android開(kāi)發(fā)和IOS開(kāi)發(fā)。另一部分是基于現(xiàn)有應(yīng)用的二次開(kāi)發(fā)。例如,所有主要的互聯(lián)網(wǎng)平臺(tái)都開(kāi)放了基于自己應(yīng)用的小程序開(kāi)發(fā)接口。這部分的發(fā)展任務(wù)也比較多,而且未來(lái)的發(fā)展空間也不一樣是的,它是相當(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í)。
作為前端,真的有必要把三大JS框架(vue,react,angular)都學(xué)會(huì)嗎?
我碰巧在實(shí)際生產(chǎn)項(xiàng)目中使用了這三個(gè)框架。說(shuō)句公道話(huà),從工作的角度來(lái)說(shuō),不一定要把這些都學(xué)完。從推廣的角度來(lái)看,你至少需要學(xué)習(xí)Vue、react和原生web開(kāi)發(fā)。安格爾在一定程度上已經(jīng)是第二梯隊(duì)。其工程方案可以理解,但已不再是主流。
事實(shí)上,大多數(shù)時(shí)候,前端工程師解決的不是風(fēng)格的問(wèn)題,而是協(xié)作和業(yè)務(wù)邏輯處理的問(wèn)題。一個(gè)公司很少同時(shí)使用多個(gè)框架來(lái)實(shí)現(xiàn)業(yè)務(wù)功能。他們可以學(xué)到很多,但在實(shí)際項(xiàng)目中,他們通常有一套代碼,這是方便,快速和高輸出。因此,你在公司的職位與你將遇到多少框架無(wú)關(guān)。而且在完全學(xué)習(xí)了一個(gè)框架之后,也不是不可能把其他的拿出來(lái),所以在一天之內(nèi)寫(xiě)一個(gè)項(xiàng)目也不是不可能的。但如果你想在技術(shù)上走得更遠(yuǎn),你需要了解它們的內(nèi)在邏輯、演變歷史和未來(lái)趨勢(shì),這樣你才能做到最好,擺脫技術(shù)上的糟粕。
如何領(lǐng)悟Java三大框架?
Hibernate:
Hibernate主要通過(guò)ORM(對(duì)象關(guān)系映射)和框架配置文件實(shí)現(xiàn)。讓實(shí)體類(lèi)和數(shù)據(jù)庫(kù)表一一對(duì)應(yīng)。讓實(shí)體類(lèi)先對(duì)應(yīng)數(shù)據(jù)庫(kù)表,讓實(shí)體類(lèi)的屬性逐一對(duì)應(yīng)數(shù)據(jù)庫(kù)表中的字段。這樣,就不需要操作數(shù)據(jù)庫(kù)表,而需要操作表中相應(yīng)的實(shí)體類(lèi)對(duì)象。以實(shí)現(xiàn)相應(yīng)的添加、刪除、修改和查詢(xún)操作。
Mybatis不是一個(gè)完整的ORM框架。mybatis的SQL需要開(kāi)發(fā)人員自己編寫(xiě),但是它也提供了輸入和輸出的自動(dòng)映射,因此可以認(rèn)為它是一個(gè)半自動(dòng)的ORM框架。Mybatis可以靈活配置SQL語(yǔ)句通過(guò)XML或注解運(yùn)行,映射Java對(duì)象和SQL語(yǔ)句生成最終SQL,最后映射SQL執(zhí)行結(jié)果生成Java對(duì)象,對(duì)于客戶(hù)需求的變化更為靈活。但靈活性的前提是mybatis不能獨(dú)立于數(shù)據(jù)庫(kù)。如果需要實(shí)現(xiàn)支持多個(gè)數(shù)據(jù)庫(kù)的軟件,則需要自定義多組SQL映射文件,這是一個(gè)繁重的工作負(fù)載。Hibernate具有很強(qiáng)的對(duì)象關(guān)系映射能力和良好的數(shù)據(jù)庫(kù)無(wú)關(guān)性。
Struts2:
Struts2處理請(qǐng)求是為每個(gè)請(qǐng)求創(chuàng)建一個(gè)單獨(dú)的操作類(lèi)。action類(lèi)中的字段屬性參數(shù)用作輸入和輸出參數(shù),IOC用于依賴(lài)注入。它是基于類(lèi)的開(kāi)發(fā)。
類(lèi)似地,SpringMVC使用輸入請(qǐng)求和響應(yīng)作為參數(shù),并返回modelandview,這是一種單例模式和基于方法的模式。
Spring:Spring的核心概念是di(依賴(lài)注入)和AOP(面向方面編程)。Di也稱(chēng)為IOC(控制反轉(zhuǎn))。使用spring,可以通過(guò)IOC從spring容器中獲取所有對(duì)象。每個(gè)物體通過(guò)彈簧注入到相應(yīng)的位置。通過(guò)IOC,spring可以在下一個(gè)對(duì)象注入(DI)之前創(chuàng)建對(duì)象,因此DI依賴(lài)于IOC。