dart系列之:手写Library,Library编写最佳实践

简介: dart系列之:手写Library,Library编写最佳实践

目录



简介


Library是dart用来组织代码的一种非常有用的方式,通过定义不同的Library,可以将非常有用的dart代码进行封装,从而提供给其他的项目使用。虽然我们可以自由使用import或者export来对library进行导入和导入。但是什么样的用法才是最合适的用法呢? 一起来看看吧。


使用part和part of


虽然很多程序员讨厌使用part,但是dart确实提供了part这种功能用来将一个大的lib拆分成多个小的文件。


没错,和part的中文含义一样,part就是将lib文件进行拆分用的。


part of表示当前文件是另外一个主文件的一部分。part表示主文件是由引用的文件组成的。


我们举个例子,假如现在有三个文件student_age.dart,student_name.dart和student.dart.


其中前面两个文件是后面一个文件的组成部分。


student_age.dart:


part of student;
int getAge(){
    return 18;
}


student_name.dart:


part of student;
String getName(){
    return "jack";
}


student.dart:


library student;
part 'some/other/student_age.dart';
part 'some/other/student_name.dart';


上面的代码有什么问题呢?


上面代码的问题在于对于student_age.dart来说,里面的part of只是指定了所属的library,但是我们读起来会一头雾水,因为不知道具体的library到底在什么地方。


所以应该这样写:


part of '../../student.dart';


src中的文件


默认情况下lib目录下的src文件只是package内部使用的,不允许被外部的项目所调用。


所以我们一定不要直接引入lib包中的src文件。


package中的lib文件


对于package来说,lib中的文件是可以被导出的文件,但是我们在引入package的时候最好不要使用绝对路径或者相对路径直接导入lib中的文件。


而是需要使用import 'package:'.


举个例子,假如我们有下面结构的library文件:


my_package
└─ lib
   └─ api.dart
   test
   └─ api_test.dart


api.dart就是我们要导出的文件。如果我们在api_test.dart中需要引用api.dart,则可以有下面两种方式:


import 'package:my_package/api.dart';


和:


import '../lib/api.dart';


其中上面一种方式是官方推荐的方式,为什么不使用下面一种方式呢?这是因为相对路径的方式只能在包内部使用。并且dart官方不建议将lib放在引用路径中,如果要引用lib内部的文件, 一定要使用package:。


当然,如果是package内部的引用,则优先使用相对路径,比如:


my_package
└─ lib
   ├─ src
   │  └─ stuff.dart
   │  └─ utils.dart
   └─ api.dart
   test
   │─ api_test.dart
   └─ test_utils.dart


那么对应lib/api.dart来说,可以这样引用:


import 'src/stuff.dart';
import 'src/utils.dart';


对于utils.dart来说,可以这样引用:


import '../api.dart';
import 'stuff.dart';


对于test/api_test.dart来说,可以这样引用:


import 'package:my_package/api.dart'; 
import 'test_utils.dart';


总之,不要在import的路径中出现lib。


总结



以上就是dart中Library编写最佳实践。

相关文章
|
3月前
|
Dart 编译器 API
Dart笔记:Dart 库
Dart笔记:Dart 库
115 0
|
7月前
|
JSON 测试技术 Go
Go代码包与引入全解
Go代码包与引入全解
33 0
|
6月前
|
Dart
带你读《深入浅出Dart》十二、Dart库的使用和创建(1)
带你读《深入浅出Dart》十二、Dart库的使用和创建(1)
|
3月前
|
设计模式 JSON Dart
Dart笔记:build_runner-用于 Dart 代码生成和模块化编译的构建系统
Dart笔记:build_runner-用于 Dart 代码生成和模块化编译的构建系统
48 0
|
3月前
|
存储 Dart 编译器
Dart笔记:Dart语言中的注解(元数据)
Dart笔记:Dart语言中的注解(元数据)
79 0
|
9月前
|
存储 Dart JavaScript
《深入浅出Dart》Dart库的使用和创建
Dart库的使用和创建 引言 在Dart中,代码重用和模块化可以通过库(libraries)和包(packages)实现。一个库就是一组代码,被一起打包为了实现一种或多种特定功能。一个包则是一种发布和分享Dart库的方式。在这一章,我们将详细介绍如何使用和创建Dart库和包,以及如何实现一个具有大数相加功能的库。 Dart库的使用
85 0
|
4月前
|
数据采集 JSON 安全
简明指南:使用Kotlin和Fuel库构建JD.com分析
Kotlin是一门基于JVM的静态类型编程语言,以其简洁、高效、安全、跨平台等特点而著称。这门语言不仅适用于Android开发,还可用于服务器端和Web应用程序的开发。Fuel库作为一款轻量级的Kotlin HTTP客户端,提供了一套简洁易用的DSL(领域特定语言),使得发送HTTP请求和处理响应变得异常便捷。除此之外,Fuel还支持协程、异步操作、JSON处理以及文件上传等多种功能,以满足各种网络编程需求。
简明指南:使用Kotlin和Fuel库构建JD.com分析
|
6月前
|
存储 Dart
带你读《深入浅出Dart》十二、Dart库的使用和创建(2)
带你读《深入浅出Dart》十二、Dart库的使用和创建(2)
|
9月前
|
Dart C++ JavaScript
《深入浅出Dart》编写第一个Flutter应用
编写第一个Flutter应用 在本文中,我们将详细介绍如何编写你的第一个Flutter应用程序:一个简单的Hello World应用。我们将使用Dart语言和Flutter框架来创建一个具有基本用户界面的应用。 步骤 1:安装 Flutter 和 Dart 首先,确保你已经安装了Flutter和Dart的开发环境。可以参考之前提供的安装指南。
70 0
|
9月前
|
Dart 测试技术 JavaScript
《深入浅出Dart》Dart测试
单元测试和集成测试 Dart的生态系统提供了一个完善的测试框架来进行代码的单元测试和集成测试。以下是一些基本的测试知识。 Dart单元测试 单元测试是在软件开发中进行的最小单元的测试。在Dart中,我们可以使用内置的test包来进行单元测试。 安装测试包 首先,我们需要在pubspec.yaml中添加test的依赖:
104 0

热门文章

最新文章