<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Flutter 毀了客戶端和 Web 開發(fā)!

          共 3148字,需瀏覽 7分鐘

           ·

          2021-10-02 02:25

          點擊“開發(fā)者技術前線”,選擇“星標”

          讓一部分開發(fā)者看到未來

          轉自:英文:Luke Urban,翻譯:CSDN

          原文鏈接:https://itnext.io/flutter-is-no-longer-a-cross-platform-framework-b53c87b14c39


          Google 重磅發(fā)布了專為 Web、移動和桌面而構建的 Flutter 2.0!將 Flutter 從移動開發(fā)框架擴展成可移植框架,因而開發(fā)者無需重寫代碼即可將應用擴展至桌面或網(wǎng)頁。看似為了幫助Web和移動開發(fā)者,實際上不然,而本文作者認為,現(xiàn)在不應該再去想創(chuàng)建一個需要部署到所有平臺的應用程序,Flutter反而毀了Web和移動開發(fā)。


          以下為譯文:

          大家好,我是一名軟件開發(fā)人員,我叫 Luke。


          由于我選擇了這個相當大膽的標題,為了避免誤會,我要對其進行詳細的解釋。從技術角度來講,F(xiàn)lutter 的確是一個跨平臺的框架。也不止其,所有跨斷技術都是非常糟糕的設計。


          但是,我有點不同的看法。

          從 Flutter 2.0 發(fā)布以來,我就察覺到它被炒的有點過了。不應該再去想創(chuàng)建一個需要部署到所有平臺的應用程序,Flutter反而毀了Web和移動開發(fā)。


          請不要誤會,我并不是要否定它,其實我也是 Flutter 的粉絲,亦將一如既往的擁護它。


          我在日常工作中經(jīng)常使用 Flutter 來開發(fā) iOS 和 Android 應用程序。由于早前我是用 Kotlin 或者 Swift 來開發(fā)原生的應用,支持多種特性,如:掃描 / 頁面識別、pin/biometric 應用程序認證、通知、firebase 統(tǒng)計和一些高級的用戶流,現(xiàn)在用 Flutter 來開發(fā)應用,我對 Flutter 的優(yōu)缺點的了解更加透徹。


          1、六大平臺


          通過今年的 Flutter Engage 會議我們可知已經(jīng)可以使用 Flutter 在 iOS、 Android、 Mac、 Windows、 Linux 和 Web 這六個平臺中的任何一個平臺上開發(fā)應用。這太棒了!但事情遠沒有這么簡單...你的確可以在這 6 個平臺上部署你的應用程序,但是說實話,我很少這么做。我很難想象一個人會在不同的平臺上部署同一個應用程序,我認為應該根據(jù)不同的平臺特點使用不同的設計模式。在大型設備上使用底部彈窗、應用程序條、簡潔的列表就很別扭。一般來說,適合在移動設備上的組件和設計模式在桌面設備上卻不合時宜,反之亦然。

          我的一個非常好的朋友 Filip Hracek 在 Flutter Engage 演講中提到“神奇的設計開發(fā)者”的相關話題,我非常贊同他的看法。我認為需要有更多的開發(fā)者真正知道他們正在做的是什么,而且不是盲目地跟從迭代面板。

          *Scrum Sprint* 是一個可重復的固定時間框,在這個時間框內創(chuàng)造一個高價值的產(chǎn)品。-- 維基百科

          強烈推薦大家觀看 Filip 在 Youtube 上的相關視頻片段https://www.youtube.com/watch?v=MIepaf7ks40。

          接下來,我們重新回到 Flutter 這個話題:

          2、不應該再去想創(chuàng)建一個需要部署到所有平臺的應用程序

          你更應該去想如何將你要編寫的應用程序模塊化,以便在未來更好地復用這些模塊。給你們舉個例子:在我的公司,我們正在開發(fā)專注于用戶數(shù)據(jù)的應用程序。

          這就需要創(chuàng)建自定義和高級的調查報告,我們不希望每次添加新問題時都要編寫新的窗口小部件。我們的做法是:編寫一個包含所有可能的調查邏輯的模塊,在許多其他項目中復用它(而不需要每次都重寫一遍相似的代碼)

          我給你舉上面這個例子的目的是提醒你在構建一個應用程序時,你更應該著重思考你要做的應用程序或整個業(yè)務的重點是什么。更應該去重點思考,它背后的業(yè)務邏輯是什么?


          在計算機軟件中,業(yè)務邏輯或領域建模也是程序的一部分,它對真實世界的業(yè)務規(guī)則進行編碼,確定如何創(chuàng)建、存儲和修改數(shù)據(jù)。

          當你明確了領域劃分,你可以將一個領域封裝成獨立的模塊,你可以將該模塊在需要開發(fā)的 Flutter 應用程序中復用。


          但 Luke,這有什么好大驚小怪的嗎?


          對,這是一個好問題!

          對于相同的業(yè)務邏輯,你可以用不同的用戶流來創(chuàng)建多個 Flutter 應用。你可以將要開發(fā)的 Flutter 應用進行分類(如:移動應用、桌面應用和 Web應用),這將能幫助關注到不同平臺的差異,對特定平臺進行特定處理最終將獲得更好的用戶體驗。


          3、針對不同平臺要編寫多個應用程序

          雖然 Flutter 還算是一個相對比較新的技術,還主要針對小公司和個人開發(fā)者,但這不妨礙它成為一個人人皆可用的偉大工具。

          我參與開發(fā)過多個企業(yè)級應用程序。根據(jù)我的經(jīng)驗,系統(tǒng)的每個部分都需要有一個清晰的工作流程。開發(fā)一個系統(tǒng)通常需要前端、后端等。為了節(jié)約成本,編寫一個應用程序,在不同的平臺運行也越發(fā)流行。為了實現(xiàn)這個目的,你需要雇一個團隊進行專門開發(fā)。你敢想象,十幾個人的團隊開發(fā)同一套代碼來實現(xiàn)所有平臺的特性嗎?這簡直是管理層的噩夢。很可能出現(xiàn):一部分開發(fā)人員開發(fā)的桌面特性與移動團隊正在開發(fā)的特性相沖突的情況。

          其次,應用程序包也會越來越臃腫,然而很多時候并不是每個平臺都需要有一份軟件包。現(xiàn)在,正值 Flutter 2.0 發(fā)布的時候,由于我并沒有將所有的包都進行升級,還不支持 null 安全還需要手動解決依賴沖突的問題。

          4、為什么 Flutter 不是一個跨平臺的框架

          在讀了這篇文章之后,或許你能夠理解為什么我會認為 Flutter 不是一個真正的跨平臺框架。Flutter 是一個為我們提供了為每個平臺構建應用程序所需的功能的工具。我認為,真正實現(xiàn)跨平臺不應該只開發(fā)一個應用程序,更應該開發(fā)一組由相同的業(yè)務邏輯驅動的應用程序集合。


          此外,當我們編寫 Flutter 應用程序時,我們并沒有跨越任何平臺。我們這種所謂的跨平臺,不過是用 Xamarin 或其他工具將寫好的代碼翻譯成原生元素。


          如果非要把 Flutter 和其他東西進行類比的話,那么與之相似的就是游戲引擎(如 Unity)。我們不需要專門在 Windows 或者 Mac 系統(tǒng)上開發(fā)對應平臺的游戲。我們可以使用 Unity 編寫,然后將其導出到一個特定的平臺。使用 Unity 編寫一個游戲然后導出到多個平臺和真正的跨平臺完全也是兩碼事。


          因為每個項目都有技術債務,你應該停止抱怨,并開始重構。每次開發(fā)新功能之前都應該進行小型代碼重構。但接入 Flutter 大規(guī)模的重構和重寫永遠不會有好結果。

          5、結尾


          全文都在討論跨平臺相關話題,   以上就是我認為 flutter 毀了 Web 開發(fā)的原因。很多人對這一說法很感興趣,并熱切地加入了辯論。如果你認為 flutter 并沒有那么糟糕,或許你會持有不同意見,如果你喜歡本文,歡迎點贊評論和我交流。

          —  —

          點這里??關注我,記得標星呀~

          前線推出學習交流一定要備注:研究/工作方向+地點+學校/公司+昵稱(如JAVA+上海

          掃碼加小編微信,進群和大佬們零距離



          END



          好文點個在看吧!
          瀏覽 29
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  欧美操操 | 伊人98| 干AV影院 | 亚洲 欧美 中文 日韩a v | 欧美一级爱爱视频 |