導航:首頁 > 軟體資訊 > 美團app用的什麼框架

美團app用的什麼框架

發布時間:2024-08-08 12:15:51

1. 美團前端面試難嗎

美團目前也是在大量的招人啊~~當時參加的是美團打車部門的面試(一年工作經驗以上的),部門技術棧vue,後台就是node,一面通過,等了兩個小時面試二面,然後通知我回去等消息,一般這樣就是掛掉了,毫無疑問。美團是一次性全部面完的。所以去參加最好做好面試四個小時的打算。
先來聊聊一面吧~哈哈
一面
1.簡單的自我介紹,與大體的了解我。。。
一面面試官非常不錯,先問了下幾個項目和用到的技術,會先對我懂的東西做一個大體的了解,比如webpack的單頁面的多頁面切換,webpack的按需載入,一些webpack的配置有哪些,問了有沒有看vue源碼,我說了一個vue的watch,大體問了問我框架方面的東西,發現我對框架並不是很熟練,安慰我說沒有關系。
2.promise的原理
這個面試官最讓人欣賞的就是不會去問你不了解的東西,一開問了我promise,發現我用的並不是很多,就很自然的說沒事,換一種方法問你~~~好和藹啊~
然後就讓我用原生js寫一個回調函數,其實就是問promise的原理了,js寫一個。
3.this指向
這個是面試官手寫了一道變態長以及繞的this指向題,可以自行網路js this指向面試題,看幾道沒有啥問題,需要關注的是其中也考了,argument,和apply(null)。以後想起來再寫吧
4.bind與函數柯里化
也就是寫個bind,這個紅皮書高級函數(22章)有,

可以看下。不過還是得先理解bind的用法,返回一個函數,以及可以傳遞的參數。參數這里涉及到了函數柯里化。都是手寫代碼,而且最好寫的整潔,因為我有些一筆帶過,面試官都讓我寫完整,明確說要看我寫代碼水平
5.==, isNaN, typeof
問這個之前先問了我有幾種數據類型(七種,下圖再加symbol),這里隱形的看你知不知道es6,symbol這個新出的類型。說出了symbol自然會問你這個類型有什麼用。

然後就寫了好多個typeof,isNaN,==的問輸出,這個就是基礎題
6.知道什麼http請求頭?
這個可以說的很多,說了幾個,又主動說了下有關跨域請求頭,之前項目用的cors,於是和他聊了一會,其實面試就是主動表現自己,把自己知道的都說出來,不然幾個請求頭說細不細,要問細了能把人問蒙了,最好把話題引到自己知道的地方。
7.問了css
問了css盒子並畫出來,清除浮動與bfc,兩列布局。
8.說了一大堆其實就是想考我防抖
面試完這個問我想問的問題,我直接問還有二面么?回答有的,又介紹了一會美團打車,說是後台是node,看來要求是前端也要有後台的知識嘍。
二面
二面的是我的學長,可是我被問慘了。。。。問的顯然比一面深入很多,都問了java
1.自我介紹,問項目
針對項目問了不少,當時有一個支付行為的項目,於是問了很多安全方面的問題,蒙蒙的,完全不知道。第一個就很失敗了。然後問了其他的項目,問了websocket。
2.node的EventEmitter用js實現出來
寫出來了,但是可以看出來代碼寫的不規范,學長面試官表示看起來很亂。不過大約算是可以的,指出了幾個問題,讓我進行修改。(之後完善)
3.虛擬dom
其實vue中就有jsx,react的特點之一有jsx,虛擬dom和代碼優化有點關系。
先說下正常對dom的操作,在瀏覽器中分為渲染引擎和js引擎,現在瀏覽器內核一般都是渲染引擎(生成渲染樹),因為js引擎越來越獨立了(所謂的v8引擎?)
然而你在js中獲取dom元素的時候你必須要通過渲染引擎,這樣兩個線程之間的數據交換自然會很慢。所以在前端優化中總是要考慮減少dom操作這一項。包括獲取dom元素變數儲存起來。
jsx是把dom元素變成了儲存在內存中的數據結構。js很快,操作dom也很快。不過也存在缺點,目前的理解就這么點了。
4.路由的實現原理
餓,不知道。。(待會看!)
5.node文件流,java的映射機制(記不太清楚)?
餓。。
6.數組方法map和recer區別?

7.進程與線程的區別
終於有個我會的了,這個顯然想問你js的運行機制。先介紹了下進程與線程。
一個瀏覽器是一個進程,雖然js是單線程的,但是瀏覽器是多線程的,v8引擎也是多線程的,比如有渲染線程,有處理請求的線程。然後說說任務隊列,eventloop。沒有理解很深也不敢往下說。
事件循環可以看下這個,鏈接
8.樹遍歷
先序,中序,後序。我只知道這么多了,顯然想讓我寫一個的,可是不會。也顯然面試官內心已經把我pass掉了,沒多問。
9.問了個演算法
KMP??反正我不知道。

2. 像美團外賣這樣的APP用一種開發語言,能開發得出來嗎

像美團外賣這樣的APP用一種開發語言,能開發得出來嗎?答案是不能。

美團發展到現在可以說已經是一個【巨無霸】了,裡面集成了很多很多功能,除了核心的外賣,還有 旅遊 、 娛樂 、購物、出行,金融等等業務線,那麼這么多復雜的業務根本不可能用同一種開發語言實現。

那麼美團都用到哪些開發語言和技術了呢?下面就根據我的理解詳細說一下。

前端是把產品的核心服務交給用戶的呈現者,它的表述方式、展示形式以及交互邏輯都跟用戶息息相關,都影響著用戶使用產品的體驗,也就是說直接影響產品的用戶留存。

前端開發主要分為三大類型:Andriod、IOS和PC(H5) ,android開發語言是Kotlin和Java,IOS開發語言是Object-c和Swift,PC(H5)開發語言就比較雜了,有JS、CSS、HTML,還有很多第三方的前端框架,比如Angular.js、vue.js、Bootstrap、JQuery等等。

關於後端的功能,這一點可以說是眾說紛紜,主要需要考慮的是如何實現功能、數據的交互流程和存取、平台的穩定性與性能等。

那麼後端都用到哪些開發語言和技術呢?

根據後端技術選型的標准,後端可選的開發語言和技術是非常多的。

比如Java體系的話,可以選用SpringMVC、Spring cloud、Hibernate,Mybatis、Mysql、Redis、Memcache、zookeeper、Kafka......;

比如python體系的話,可以選用Django、Flask、Tarnado、Web2py等,中間件都是通用的,Redis,MQ、MySQL、Kafka等都可以用在python體系中;

當然還有PHP、C、Perl等開發語言。


綜上所述,美團這個巨無霸公司,隨著業務線的擴展用到的技術肯定會越來越多,而且越來越復雜,技術快速變革的時代,適者生存的競爭性也會越來越激烈。

俗話說:羅馬不是一日建成的,任何事都不可能一蹴而就,包含技術。在以後的發展中美團也會逐步更新自己的技術和開發語言的。

至少三種語言。後端一種語言(比如Java丶Go丶Python丶PHP等),後端語言及生態比較成熟。下面重點聊前端App開發。

前台兩種語言(Android和iOS是不同的開發環境。比如Android用Java或者Kotlin,iOS採用Object C++或Swift),稱之為Native開發。

當然創業公司可以用一種前端語言寫App前端,這樣就不需要Android和蘋果分兩種語言寫,寫一次代碼可以編譯成Android和iOS的App,現在通行的方案有Vue之類的DOM渲染模式,以及ReactNative方案(RN)。性能上RN優於DOM渲染但低於用Native開發的App。所以美團這種公司,一定是Native方式寫App,但RN是初創項目不錯的選擇。

與RN競爭的還有一種新貴flutter,是google推出來的,但設計原理與RN不同,性能方面優於RN,只是目前生態不夠健全,國內有閑魚app是採用此技術。未來可能會佔一席之地。

最後,其實App開發已經是強努之末,我覺得主流應該是朝PWA和小程序方向發展。

你好,開發譬如美團這種APP,用一種語言是實現不了的,一個APP有安卓和蘋果兩個操作系統,開發能在安卓iOS端應用的APP主流的開發語言和技術是很多的,如後台有JAVA、C++、PHP、Python等多種開發語言,前端有kotlin、HTML、css、jquery、ajax、bootstrap、angular.js、react、vue.js、node.js、swift、object-c等多種語言和框架。

一個APP的開發是需要前端技術和後台技術共同配合完成,這樣的APP不論是功能還是性能都給用戶很好的體驗,單一開發語言畢竟技術支持有限,所以即使能開發出來,APP的用戶體驗也是不理想的。

一般APP有這幾種開發組合模式:1、原生安卓iOS開發,前端:JAVA、kotlin、swift、object-c後台:JAVA、PHP、C++等後台技術,這種模式開發周期長,成本高,性能好;2、混合APP開發即hybrid app,前端以網頁技術為主,穿插原生開發功能,兼具原生APP和web app的優點,如淘寶、微信等應用都是走的這個技術;3、web app,前端純網頁技術,後台為主流開發語言,這種模式開發速度快,成本低,界面體驗可能弱一些。

可見開發一款APP大多數都是多種語言配合完成,謝謝閱讀。

看完之前的評論,依然好奇為什麼一個語言不能完全勝任。

前端跨平台的方案有react native,cordova,flutter等,如果需要兼容開發小程序,h5頁面,可以採用taro來開發,一套代碼,所有平台通吃。

後端的方案有服務端運行時nodejs,大數據背景下運用而生的資料庫mobgodb,緩存解決方案redis,搜索工具elasticsearch,負載均衡ngix,基本上是需要什麼就有什麼

所以總結下來,一句話,一種語言可以實現類似美團這樣的app和小程序。為什麼美團使用的語言那麼多,一大原因估計是美團app開發的早,當時前端技術不成熟,工具沒現在這么多。

使用混合開發與C++ 進行跨平台開發,有好有壞。

C++ 進行跨平台開發

編寫一次,隨處運行。早在 2013 年,Dropbox 就採用上述策略進行移動開發,這背後的想法很簡單:用 C++ 編寫一次代碼,而不是用 Java 和 Objective-C 編寫兩次。那時,整個移動工程團隊相對還比較小,但需要支持快速增長的移動路線圖。因此,公司希望找到一種方法,使這個小團隊可以快速交付大量 Android 和 iOS 代碼。

如今,Dropbox 完全放棄了這個策略,轉而使用各個平台的原生語言(主要是 Swift 和 Kotlin ,這兩種語言在剛開始制定移動策略時還不存在)。

Hybrid App混合開發

Hybrid App主要以JS+Native兩者相互調用為主,從開發層面實現「一次開發,多處運行」的機制,成為真正適合跨平台的開發。Hybrid App兼具了Native App良好用戶體驗的優勢,也兼具了Web App使用HTML5跨平台開發低成本的優勢。

目前已經有眾多Hybrid App開發成功應用,比如美團、愛奇藝、支付寶等知名移動應用,都是採用Hybrid App開發模式。

移動應用開發的方式,目前主要有三種:


幾種模似都可以開發出應用,小應用無所謂,但是大流量應用,對圖形要求高的如 游戲 等原生開發的效果還是最好

支付寶打開很慢,就是因為採用混合開發,使用人多了不如原生開發

不行的哦。任何你看到的應用和網頁,都需要多個語言開發的,大的分比如前端和後端,用的語言都是不一樣的

3. 美團軟體是怎麼開發出來的。

美團軟體就相當於一家商店,手機上的商品分類顯示和商品的展示是用安卓android開發或者ios這些前台ui設計(其實就是超市裡面的分類存放)這只是框架來顯示。就是我們看到的手機上的排版後台用一些編程語言java、c語言c#等編寫各種類及之間的各種關系(一個資料庫中的各種關系,增刪改查)————其實就是把商品創造出來,按各類分好,再把分好的東西擺放到用前台ui設計出的框架中。其實美團等軟體的開發和我們實際生活息息相關,只是用計算機的思想把他解決。

4. 美團RN是什麼意思

美團RN是指美團點評餐飲外賣平台使用的React Native技術。React Native是Facebook公司開發的一種跨平台框架,可以使用JavaScript語言編寫原生應用程序。美團點評將React Native應用於它的移動應用程序開發中,從而創建了美團RN。
美團RN的優勢在於它能夠快速構建跨平台原生應用程序。使用React Native,開發人員可以更快地開發移動應用程序,同時還可以在Android和iOS平台之間分享最多的應用程序代碼。這樣,美團點評可以為其客戶提供快速,高效和一致的用戶體驗。
美團RN目前是美團點評移動開發的重要技術之一。美團點評的開發人員通過使用該技術來為其iOS和Android平台開發各種應用程序。美團RN的引入幫助美團點評更快地推出新的功能並提高了應用程序的性能,從而使其能夠保持在激烈的餐飲外賣市場中的領先地位。

閱讀全文

與美團app用的什麼框架相關的資料

熱點內容
用友商貿寶t1登錄找不到加密狗 瀏覽:555
區間測速演算法不正確 瀏覽:331
appstore轉到哪個國家比較好 瀏覽:924
程序員為什麼被公司埋炸彈 瀏覽:941
linuxds18b20驅動 瀏覽:137
集群大數據編譯命令 瀏覽:536
什麼狼人殺app好 瀏覽:303
hadoop壓縮命令 瀏覽:655
croe殼命令 瀏覽:77
抽干文件夾圖片 瀏覽:950
android光感 瀏覽:968
php業務流 瀏覽:971
devc編譯錯了怎麼辦 瀏覽:300
編譯系統都有哪些部分 瀏覽:707
資料庫技術pdf 瀏覽:232
如何把網頁部署到伺服器上 瀏覽:634
php用戶組 瀏覽:785
撫順自動數控編程軟體 瀏覽:747
如何判斷是否可以通過編譯 瀏覽:929
衛士通加密官網 瀏覽:55