Flutter:构建可扩展且易于维护的文件夹结构

问题描述 投票:0回答:1

我正在对我的几个 flutter 应用程序进行重构。当我制作这些应用程序时,我不太关心文件夹结构

因此,当我的应用程序在每次更新时变得更大之后,该过程变得更难/难以维护。

所以我决定重构这些应用程序并在干净的架构上重建它们。

ِ我已经阅读了这篇文章,它解释了如何使用块创建可扩展的文件夹和文件结构

但我不明白两件事:

  1. 核心模块有什么区别?
  2. 他说核心、模块在每个功能上都必须有4个文件夹块、模型、屏幕......但在他的示例中,核心功能的身份验证和设置没有这些?如果我的身份验证没有 UI 而只是获取当前应用程序身份验证状态的逻辑怎么办?

我不太熟悉 DDD 原理,也不知道如何将它们应用到我的应用程序中。

例如,我的一个应用程序是一款财务应用程序,用于收集您的日常支出并创建报告,这是当前的文件夹结构。

android flutter dart design-patterns flutter-dependencies
1个回答
0
投票

我最近开始使用 GetX,我的架构观点发生了变化。 GetX 调用其状态管理器 -

controllers

因此,我们有一个明显的架构模式选择 - MVC

是的

GetControllers
不完全是 MVC 中的 Controller,但谁在乎呢?

因此,下一个文件夹结构:

controller \
           user_controller.dart
           todo_controller.dart        
model \         
       user.dart
       user_service.dart //firebase connection
       todo.dart
       todo_service.dart 

view \
      user_screen.dart
      todo_screen.dart

      widgets \
               custom_button.dart

如果我们的应用程序中有超过 3 个功能,那么

controller \
           feature1 \
                    feature1_controller.dart
          ...
           featureN \      
model \
      feature1 \
               feature1.dart
               feature1_service.dart //firebase connection
       ...
      featureN \

view \
     feature1 \
               feature1_screen.dart
     ...
     featureN \ 

     widgets \
             custom_button.dart

这种方法称为层优先。

永远不应该使用替代的功能优先方法。 如果应用程序对于层优先方法来说太大,则应将其拆分为多个包。

显然,以上都是我的拙见。

在软件开发中,几乎一切都是权衡的。

© www.soinside.com 2019 - 2024. All rights reserved.