最终项目练习 Flutter 代码和文件夹符号 v1.0
文件夹定义和名称
Lib
├──page 落地页
│ └──user 页面模块文件夹
│ └──login 页面落地页文件夹
│ └──user_login.dart => class UserLoginPage 后缀为page为落地页 唯一入口
│ └──user_login_button.dart => class UserLoginButton 非公共部分页面子组件
├──component 通用组件
│ └──Modal
│ └──alert.dart => class ModalAlertComponent
├──store 数据集中管理
│ ├──index.dart 实例化Provider export model类
│ ├──proto pb协议转换代码
│ ├──service pb协议 yyp协议 等等转义成 dart方法
│ ├──model
│ │ ├──user_model.dart => class UserModel
│ │ └──index.dart => export all models
│ └──object
│ └──user_object.dart => class UserObject
├──helper 公共方法
│ └──index.dart 常规方法、通用方法、全局方法可以用过这个入口export 避免重复引入、可以作用通过用方法入口
├──config 配置中心
│ ├──index.dart 配置变量与切换方法
└──router 路由
└── 页面映射配置、observe 方法导出
复制代码
标识符
Dart 中存在三种类型的标识符:
- 大写驼峰:每个单词的第一个字母,包括第一个单词。
- Camel 系列:将每个单词的第一个字母大写,但第一个单词始终小写,即使第一个单词是缩写。
- 小写单词和下划线:仅使用小写字母,甚至缩写,并用下划线_分隔。
类型名称使用大写字母
类、枚举、自定义类型和符号类型应使用大写字母,不能使用破折号。
class SliderMenu { }
class HttpRequest { }
typedef bool Predicate<T>(T value);
class Foo {
const Foo([arg]);
}
@Foo(anArg)
class A { }
@Foo()
class B { }
// 如果注解类的构造函数没有参数,可以创建一个单独的小写驼峰常量。
const foo = const Foo();
@foo
class C { }
复制代码
库和资源名称使用大写字母和下划线
library peg_parser.source_scanner;
import 'file_system.dart';
import 'slider_menu.dart';
复制代码
其他标识符使用小写驼峰式
var item;
HttpRequest httpRequest;
void align(bool clearItems) {
// ...
}
复制代码
建议常量名称使用小写驼峰式
const pi = 3.14;
const defaultTimeout = 1000;
final urlScheme = new RegExp('^([a-z]+):');
class Dice {
static final numberGenerator = new Random();
}
复制代码
缩写词和首字母缩略词应大写
HttpConnectionInfo
uiHandler
IOStream
HttpRequest
Id
DB
复制代码
输入命令
每个部分中的字母顺序
// 在其它导入之前导入 “dart:”
import 'dart:async';
import 'dart:html';
// 在相对导入之前导入 “package:”
import 'package:bar/bar.dart';
import 'package:foo/foo.dart';
// 在其它导入前导入第三方 “package:”
import 'package:my_package/util.dart';
//
import 'util.dart';
// 在所有导入之后的单独部分指定导出
export 'util.dart';
复制代码
dartfmt 格式
使用官方 dartfmt 格式代码。
避免行长超过 80 个字符
阅读研究表明,太长的文本很难阅读,因为当您看到下一行的开头时,您的眼睛会移动太远。这就是新闻和报纸使用多栏文章的原因。
对所有过程控制系统使用大括号
if (isWeekDay) {
print('Bike to work!');
} else {
print('Go dancing or read a book!');
}
// 有一个例外是:if 语句没有 else,符合条件只有一行,可以省略大括号。
if (arg == null) return defaultValue;
作者:YYDev
链接:https://juejin.im/post/5d5bd3ba6fb9a06af23876ea‷♿来源♿♿♿♿。如需商业印刷,请联系作者以获得许可。非商业转载请注明来源。
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。