如何用開發(fā)本地tcpip程序的思路開發(fā)webapp,相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。
創(chuàng)新互聯(lián)基于成都重慶香港及美國等地區(qū)分布式IDC機房數(shù)據(jù)中心構(gòu)建的電信大帶寬,聯(lián)通大帶寬,移動大帶寬,多線BGP大帶寬租用,是為眾多客戶提供專業(yè)服務器托管報價,主機托管價格性價比高,為金融證券行業(yè)成都服務器托管,ai人工智能服務器托管提供bgp線路100M獨享,G口帶寬及機柜租用的專業(yè)成都idc公司。
不可否認的是,webapp已經(jīng)是與desktop, mobile app并列的主流appmodel之一,但是,web卻是一種典型的Appstack as os,webapp是在native server apps上打出的一個b/s洞,再在這個洞里發(fā)展出來的一整個世界(跟移動端APP一樣比如安卓),,比如,它底下的appstack,分別屬于native/desktop的范疇,負責gui的是nginx,db MySQL,etc(代表webappstack的是服務端app,客戶端只是“client side html,js resources”,它脫離了服務端,就沒有自身存在的意義。不是一個獨立可用的app)..
Vs nativeapp和nativedev,它從來沒有自己的os,或任何標準的宿主定義。較之native app,它不算是一種有專門運行它的OS供它托管運行的“app”,你要說webapp的host是lamp,很明顯,lnmp中的l并不屬于web,是applicationserver?beanserver?,也不是,它是語言的組件服務器,換言之,只有nginx,mysql這樣的東西屬于web —— 只是說,技術(shù)上通過ln+np的組合,能搞出一種web程序。這跟移動開發(fā)類似,它們都是linux和一種虛擬機語言雙重托管運行下的app,——— 本來嘛,web開發(fā)和移動開發(fā)是beyond native層面的,也只須這樣。
在開發(fā)上,動態(tài)程序的web app是monolith的前后端整合的,叫page app,程序員在后端完成所有的程序開發(fā),Webapp的框架邏輯無非是routing,template,orm,route,mvc這些框架邏輯。代表一種appmodel的,無非就是它的stack框架邏輯。因為它考慮進了瀏覽器是服務端和客戶端一體app。web程序之間不用交互和復用,沒有api機制,也沒有web件,web as service(當然,這些后來也有。。。),只有語言源碼級的復用。
應用上,和后端運維上,也都是整合在web的。用戶在一個web界面上完成所有的事,比如cms后端管理。用戶和內(nèi)容也是集成在遠程的。沒有線下只有線上。 這也就是說,程序靠后端,內(nèi)容靠用戶,全民線上分布式,沒有線下分布式,它整個就是monolitch的(而且采用http,js這些具體選型沒有二選,使得webapp是fixed的)。
以上這引起都不是問題。也不是web的問題。就像Web剛開始一出來其實就是分發(fā)靜態(tài)文檔只是后來有人用它來強行運行webapp而已(而且分布式應用開發(fā)本來在工業(yè)上的實現(xiàn)就很破碎,歷史上并不存在一個真正的分布式OS,也不存在一個分布式appserver,見《plan9一個真正的分布式OS》) ——— 歷史上,長鏈接,webgl,streaming content,這些,一直都是從各個維度去克服web monolitch page appmodel,使之多元的努力,
只是,只能有線上分布,不能有真正的線下分布,web這個缺點是顯而易見的。有完全適合將web置于線上的現(xiàn)實需要,也就存在與現(xiàn)實的web應用現(xiàn)實相左的需求,比如,存不存在一種線上線下合作分布式的webapp呢?那些在本地可以處理的就讓它在不必在遠程,比如后端管理,使之跳出browser? 就像git的分布式那樣,——— 在前面,我們也不斷講到此類思路,比如用靜態(tài)網(wǎng)站思路來開發(fā)webapp,用tcpip來開發(fā)b/s。
這樣的方案是存在的,網(wǎng)上有wordpress headless cms這樣的項目,這樣努力的結(jié)果就是重新將web置于規(guī)范級,將webapp重設(shè)計,它僅需要是一個http協(xié)議,也不必是一個b/s app,web只需是一個gui,而不應成為full appstack的全部。這樣就分離了線上線下。線上線下分別開發(fā),這二者通過api鏈接。
重新分離的好處多多,最明顯的就是,開發(fā)上:
1)Web的服務端可以真正作為headless backend,變身as service服務。有api機制和復用。客服分離開發(fā),用c/s方式和類nativedev方式開發(fā),客服不再拘泥彼此的技術(shù)規(guī)范和語言技術(shù)選型。
2)簡化了服務端開發(fā)和選型,顯示邏輯分離,服務端web框架再不用mvc這樣的東西及其它同時考慮處理客戶端routing等的邏輯,Lnmp中也不再需要php了??梢栽诜斩擞萌魏我环N語言來實現(xiàn)。也可以有g(shù)itstack這種多選擇的選型結(jié)構(gòu)。或僅是其它采采用了http的其它非lnmp的xxxstack,所以,webapp的后端可以是任何東西。
3)將客戶端開發(fā)獨立成線下,不再將webapp視為一個monolith的appmodel,類c/s web,可以用任何語言實現(xiàn)將html視為編輯器中的asserts,不僅是瀏覽器了。,可以是其它獨立的客戶端app,
4)變“瘦服務端開發(fā)”“強客戶端開發(fā)”,比如Wordpress,插件可以在客端做,不用開源了。或者反之,那種復雜的線上交互網(wǎng)站,也是可以的(可是,那還有其它方法來解決不是?比如將動態(tài)部分也弄成一個headless “chat”,headless “comment”,headless “xxx”??)。
應用上:
1)cms可以發(fā)展為headless cms在本地管理,擁有真正獨立的客戶端app,可以fully Turn into functional in-browser application.
2)如果是展示型網(wǎng)站如cms,遠端web程序也只需是個存儲空間。比如阿里云OSS這種。這樣,一個靜態(tài)空間就可以解決cms托管的問題,而且更專業(yè)。
還有更多。。
其實,上面幾點就“treating b/s webapp as c/s webapp in nativedev manner”一個意思。
看完上述內(nèi)容,你們掌握如何用開發(fā)本地tcpip程序的思路開發(fā)webapp的方法了嗎?如果還想學到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!
名稱欄目:如何用開發(fā)本地tcpip程序的思路開發(fā)webapp
URL標題:http://chinadenli.net/article20/jhhjjo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導航、App設(shè)計、網(wǎng)站制作、建站公司、做網(wǎng)站、靜態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)