Chuyển đến nội dung chính

Bài đăng

Hiển thị các bài đăng có nhãn Chất lượng mã

Viết một lint tuỳ chỉnh cho codebase Dart của bạn

Nhóm nào cũng có một quy tắc cứ bị phá vỡ hoài. “Đừng dùng context sau một await.” “Repository trả về Result , không bao giờ ném lỗi.” “Không print trong lib/ .” Chúng sống trong một bình luận review, được giải thích lại cho từng người mới, rồi tuần sau lại bị vi phạm. Một luật của analyzer thì không bao giờ mệt khi phải nhắc đi nhắc lại. Trước hết, dùng cạn các luật có sẵn Trước khi viết bất cứ thứ gì, hãy kiểm tra xem luật đó đã tồn tại chưa. Linter đi kèm hơn hai trăm luật, và phần lớn quy ước của nhóm nằm trong số đó. Một cấu hình đáng để bắt đầu: # analysis_options.yaml include : package:flutter_lints/flutter.yaml analyzer : language : strict-casts : true strict-raw-types : true errors : invalid_annotation_target : ignore unused_import : error dead_code : error exclude : - "**/*.g.dart" - "**/*.freezed.dart" linter : rules : - always_declare_return_types - avoid_print - prefer_final_locals...

Viết một lint tuỳ chỉnh cho codebase Dart của bạn

Nhóm nào cũng có một quy tắc cứ bị phá vỡ hoài. “Đừng dùng context sau một await.” “Repository trả về Result , không bao giờ ném lỗi.” “Không print trong lib/ .” Chúng sống trong một bình luận review, được giải thích lại cho từng người mới, rồi tuần sau lại bị vi phạm. Một luật của analyzer thì không bao giờ mệt khi phải nhắc đi nhắc lại. Trước hết, dùng cạn các luật có sẵn Trước khi viết bất cứ thứ gì, hãy kiểm tra xem luật đó đã tồn tại chưa. Linter đi kèm hơn hai trăm luật, và phần lớn quy ước của nhóm nằm trong số đó. Một cấu hình đáng để bắt đầu: # analysis_options.yaml include : package:flutter_lints/flutter.yaml analyzer : language : strict-casts : true strict-raw-types : true errors : invalid_annotation_target : ignore unused_import : error dead_code : error exclude : - "**/*.g.dart" - "**/*.freezed.dart" linter : rules : - always_declare_return_types - avoid_print - prefer_final_locals...