# Flutter Code formatting --- # Why do we need code formatting? 🧑🏻‍💻👩🏻‍💻👨🏻‍💻 Note: 雖然您的程式碼可能符合個人的偏好,但基於我們的經驗,開發團隊可能會發現以下方式更高效: 1. 採用統一的風格:團隊使用一致的程式碼風格,有助於提高可讀性與維護性。 2. 自動化格式化:透過工具強制執行程式碼風格,減少手動調整的成本。 與其在程式碼審查中進行繁瑣的格式爭論(例如花時間討論格式,而非程式碼行為),不如將精力集中在程式碼的功能與邏輯上。 --- # How to organize imports in Dart? --- ## How does Dart's official website handle it? * [Code formatting](https://docs.flutter.dev/tools/formatting) * To preview proposed changes ``` sh dart fix --dry-run ``` * remove unnecessary import statements. ``` sh dart fix --apply ``` --- ## Linter rules * [directives_ordering](https://dart.dev/tools/linter-rules/directives_ordering) * [always_use_package_imports](https://dart.dev/tools/linter-rules/always_use_package_imports) * [avoid_relative_lib_imports](https://dart.dev/tools/linter-rules/avoid_relative_lib_imports) * Intellij: [Format files from the command line](https://www.jetbrains.com/help/idea/command-line-formatter.html) Note: * directives_ordering: It caused 57 files to change. * [Linter rules](https://dart.dev/tools/linter-rules#lints) * [Recommended Linter rules](https://github.com/dart-lang/core/blob/main/pkgs/lints/lib/recommended.yaml) --- ## How does a third-party plugin do it? (Not recommended) * [better_imports](https://pub.dev/packages/better_imports) * [import_sorter](https://pub.dev/packages/import_sorter) * [single_import_generator](https://pub.dev/packages/single_import_generator) --- ## How do I format code in Dart? ###### Automatically formatting code with the dart command ``` sh dart format lib/main.dart ``` ``` sh dart format lib/main.dart -l 120 ``` ``` sh # 僅格式化 /lib 資料夾中的 Dart 檔案,並排除 .g.dart 和 .freezed.dart 檔案 find ./lib -name "*.dart" ! -name "*.g.dart" ! -name "*.freezed.dart" -exec dart format {} -l 120 \; ``` --- ## We can do this better. * [Order other class members in a way that makes sense](https://github.com/flutter/flutter/blob/master/docs/contributing/Style-guide-for-Flutter-repo.md#formatting) ###### Linter rules * [sort_constructors_first](https://dart.dev/tools/linter-rules/sort_constructors_first) * [DCM - member-ordering](https://dcm.dev/docs/rules/common/member-ordering/) Note: 1. Flutter 的程式碼可能每天都被數十萬人閱讀。更容易閱讀和理解的程式碼能為這些人節省時間。即使每人每天節省一秒鐘,也能累積節省數小時甚至數天的時間。開發人員為 Flutter 付出的額外格式化努力,直接轉化為團隊的效率提升。此外,當開發人員能更快掌握框架時,最終也能為使用者帶來更大的效益。 2. 建構函數應優先於其他內容 3. 按生命週期順序排列 --- # Thanks 🥹
{"contributors":"[{\"id\":\"911de02f-c8f8-4ddb-a91f-64cf7623d126\",\"add\":2543,\"del\":36}]","title":"How to Improve Project Manager's Hard Skills","slideOptions":"{\"spotlight\":{\"enabled\":false}}","description":"Note: 雖然您的程式碼可能符合個人的偏好,但基於我們的經驗,開發團隊可能會發現以下方式更高效:1.\t採用統一的風格:團隊使用一致的程式碼風格,有助於提高可讀性與維護性。2.\t自動化格式化:透過工具強制執行程式碼風格,減少手動調整的成本。"}
    114 views