Tôi nên xác định hằng số trong tập lệnh ở đâu?


8

Khi viết tập lệnh bằng ngôn ngữ kịch bản hiện đại, ví dụ Powershell hoặc JavaScript, tôi nên xác định các hằng số ở đâu? Tôi có nên làm cho tất cả các hằng số toàn cầu trở nên dễ đọc và dễ sử dụng hay không, có nghĩa là xác định các hằng số càng gần phạm vi của chúng càng tốt (ví dụ, trong một hàm, nếu không cần thiết ở nơi khác)? Tôi đang suy nghĩ chủ yếu về các thông báo lỗi, ID lỗi, đường dẫn đến tài nguyên hoặc tùy chọn cấu hình.

Câu trả lời:


12

Các hằng số rất tốt cho việc chỉ đưa ra các tên biến mô tả để tránh các vấn đề về số ma thuật , nhưng chúng gây ra một vấn đề khó chịu tương tự là không thể xác định giá trị thực sự được sử dụng khi const được xác định khi sử dụng.

Đề nghị của tôi, trong tất cả các ngôn ngữ: xác định các hằng số trong phạm vi càng gần với mức sử dụng thực tế của chúng. Nếu chỉ được sử dụng trong một lớp; Chỉ đưa vào lớp đó. Nhiều lớp có nghĩa là đảm bảo rằng ít nhất nó trong cùng một không gian tên với tất cả các lớp sử dụng nó.

Trong javascript, điều này có nghĩa là gần với phạm vi từ vựng vì nó có thể phù hợp với tất cả các cách sử dụng.


they cause a similarly annoying problem of not being able to identify the value actually being usedCác IDE không nên có "đi đến định nghĩa" hay có thể xem trước giá trị như bất kỳ var nào khác? Tôi cho rằng siêu dữ liệu khó hơn đối với các tập lệnh.
StuperUser

1
Thông thường, người ta không sử dụng IDE để xây dựng các kịch bản shell. Và ngay cả khi một người có bản chất năng động, họ không cho vay để chia sẻ lại công cụ "đi đến định nghĩa".
Wyatt Barnett

1
Tài khoản để thiết kế các khái niệm hữu ích trên các ngôn ngữ với ít công cụ hơn và thường không ảnh hưởng đến tính hữu ích của các công cụ nếu có. Công cụ đôi khi có thể làm cho các thiết kế xấu dễ bảo trì, đó là lý do tại sao sự phụ thuộc của công cụ thường được sử dụng.
Jimmy Hoffa

similarly annoying problem of not being able to identify the value actually being usedNgười ta không phải kiểm tra rất thường xuyên đó GRAVITATIONAL_ACCELERATIONlà 9,80665. Khi một hằng số được đặt, bạn nên tự trừu tượng hóa giá trị và suy nghĩ theo tên của sự vật.
Tulains Córdova

1

Thay vì sử dụng hằng, bạn có thể sử dụng tệp cấu hình. JavaScript cho phép bạn có các tệp dễ dàng phân tích cú pháp ở định dạng json. Tôi không biết về PowerShell.

Các tệp cấu hình có lợi thế là tập trung, nhưng tên của thuộc tính trong phạm vi chức năng (khi bạn truy xuất nó) cho phép bạn duy trì khả năng đọc.


Đôi khi điều đó có thể là quá mức cần thiết. Đặc biệt nếu giá trị chỉ được sử dụng nội bộ cho mã và không được hiển thị cho người dùng. Tôi thích giữ các tệp cấu hình của mình tối thiểu để ứng dụng dễ cài đặt hơn.
David Hogue
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.