Văn bản & công cụ hàng ngày · Bộ công cụ văn bản
CamelCase, snake_case, kebab-case và PascalCase: mỗi cái được sử dụng
· Lý lịch
case-conversion số nhận dạng developer-workflow
Tham quan các quy ước đặt tên — chúng đến từ đâu, ngôn ngữ và hệ sinh thái nào mong đợi cũng như lý do tên tệp, URL, cột cơ sở dữ liệu và các khóa JSON, mỗi tên lại có một hướng khác nhau.
Năm tên cho một thứ — userProfileId, user_profile_id, user-profile-id, UserProfileId và USER_PROFILE_ID
Cụm từ "ID hồ sơ người dùng" có thể trở thành `userProfileId`, `UserProfileId`, `user_profile_id` hoặc `user-profile-id` mà không thay đổi từ. Sự khác biệt rõ ràng là nơi ranh giới xuất hiện và liệu từ đầu tiên có bắt đầu bằng chữ hoa hay không. ToolAcre tạo trực tiếp bốn biểu mẫu đó từ cùng một dữ liệu đầu vào, giúp dễ dàng so sánh sự khác biệt về cấu trúc của chúng.
Viết hoa hoàn toàn `USER_PROFILE_ID` là một quy ước hữu ích khác của dự án nhưng nó không phải là một tùy chọn kết hợp riêng biệt trong nguồn chuyển đổi chữ hoa chữ thường. Bộ công cụ hiển thị các phép biến đổi chữ hoa và chữ hoa một cách độc lập. Nếu cơ sở mã sử dụng hằng số chữ hoa, hãy chuyển đổi sang dạng rắn rồi viết hoa thay vì yêu cầu menu chữ hoa thực hiện cả hai bước cùng một lúc.
Bốn chuyển đổi được thể hiện bằng Bộ công cụ văn bản, cộng với một dạng hằng số viết hoa được tập hợp riêng
`camelCase` bắt đầu bằng một từ viết thường và viết hoa phần đầu của mỗi từ theo sau. `PascalCase` áp dụng hình dạng từ nối tương tự trong khi viết hoa từ đầu tiên. Trong ToolAcre, cả hai phép biến đổi đều bắt đầu bằng cùng một bộ tách từ, do đó, dấu câu và ranh giới kiểu chữ hiện có sẽ được diễn giải trước khi tập hợp đầu ra.
Nhiều nhóm gán hai dạng này cho các loại tên khác nhau, nhưng kho lưu trữ không thiết lập quy tắc ngôn ngữ chung hoặc lịch sử cho sự phân chia đó. Coi hướng dẫn kiểu cục bộ, kẻ nói dối, khung API hoặc mã lân cận làm cơ quan có thẩm quyền. Trình chuyển đổi thay đổi hình dạng chính tả; nó không xác định liệu tên đại diện cho một lớp, hàm, biến hay thành phần.
CamelCase và PascalCase khác nhau ở chữ cái đầu tiên; lịch sử ngôn ngữ của họ nằm ngoài kho lưu trữ bằng chứng
`snake_case` hạ thấp mọi từ được phát hiện và kết hợp các kết quả bằng dấu gạch dưới. Đối với `User Profile ID`, ToolAcre trả về `user_profile_id`. Dấu phân cách vẫn hiển thị, điều này có thể hữu ích khi tên đi qua các hệ thống không bảo toàn cách viết hoa một cách đáng tin cậy, nhưng lợi ích thực tế đó không phải là bằng chứng cho thấy mọi cơ sở dữ liệu, ngôn ngữ hoặc dịch vụ đều mong đợi dấu gạch dưới.
Sử dụng quy ước đã được xác định tại đích. Dịch vụ Python có thể có một chính sách, lược đồ SQL khác và tải trọng được tuần tự hóa thứ ba. ToolAcre không thể kiểm tra các hợp đồng đó. Lời hứa đáng tin cậy của nó hẹp hơn: `toSnakeCase` phát hiện các từ, viết thường từng từ và chèn `_` giữa chúng mà không quyết định liệu đích có cho phép hay thích kết quả đó hơn.
đầu ra snake_case được hỗ trợ trực tiếp; hệ sinh thái và kỳ vọng SQL tùy thuộc vào từng dự án
`kebab-case` sử dụng các từ viết thường giống nhau nhưng nối chúng bằng dấu gạch nối, tạo ra `user-profile-id`. Hình dạng đó hiển thị rõ ràng ở những nơi mà dấu gạch nối được chấp nhận làm dữ liệu, chẳng hạn như đoạn tuyến được định cấu hình hoặc tên tệp do dự án xác định. Nó không phải là mã định danh JavaScript vì trình phân tích cú pháp có thể đọc dấu gạch nối dưới dạng toán tử thay vì một phần của một tên.
Bản phác thảo liệt kê các lớp CSS, thuộc tính HTML, cờ dòng lệnh và phần mở rộng URL, tuy nhiên thư viện văn bản không xác định quy tắc của những người tiêu dùng đó. Xác nhận cú pháp đích trước khi chuyển đổi. ToolAcre cũng có chức năng `slugify` riêng biệt với tính năng gấp có dấu, chọn dấu phân cách, cắt xén và xử lý độ dài tùy chọn, do đó, chuyển đổi kebab thông thường không được trình bày dưới dạng xác thực URL-sên đầy đủ.
đầu ra kebab-case được hỗ trợ trực tiếp; việc sử dụng hợp lệ phụ thuộc vào cú pháp xung quanh
Ranh giới là nơi các quy ước đặt tên trở nên hữu ích hơn là chỉ mang tính thẩm mỹ. Một đối tượng trình duyệt có thể sử dụng một cách viết trong khi cột cơ sở dữ liệu hoặc tải trọng API sử dụng một cách viết khác. Làm cho ánh xạ đó trở nên rõ ràng trên một bộ chuyển đổi thay vì phân tán các chuyển đổi trên các chế độ xem, truy vấn và logic nghiệp vụ. Một cạnh có thể dự đoán được giúp mỗi mô hình nội bộ nhất quán và giúp xác định những điểm không khớp dễ dàng hơn.
Tránh chuyển đổi các giá trị tùy ý chỉ vì chúng trông giống như số nhận dạng. Bộ tách từ coi dấu câu là ranh giới và nhận ra các chuyển tiếp đã chọn giữa chữ thường, chữ hoa và chữ số. Điều đó hữu ích cho tên, nhưng nó có thể thay đổi các khóa có cách viết được sửa bên ngoài. Bảo toàn chính xác các khóa hợp đồng trừ khi giao diện nhận ghi lại ánh xạ dưới sự kiểm soát của bạn.
Ví dụ đã hoạt động - chuyển đổi một mã định danh thông qua tất cả các quy ước và quyết định vị trí nào thuộc về một dự án nhỏ
Hãy xem xét một ứng dụng nhỏ có cụm từ `user profile ID`. ToolAcre tạo ra `userProfileId` cho hộp lạc đà, `UserProfileId` cho hộp Pascal, `user_profile_id` cho hộp con rắn và `user-profile-id` cho hộp kebab. Mỗi đầu ra mang ba từ được phát hiện giống nhau, trong khi chữ viết hoa và dấu phân cách được chèn sẽ mã hóa hình dạng đã chọn.
Một dự án thực tế có thể giữ `userProfileId` trong đối tượng JavaScript, ánh xạ nó một cách rõ ràng tới `user_profile_id` tại ranh giới bền vững và dành `user-profile-id` cho một vị trí có ngữ pháp chấp nhận dấu gạch nối. Sự lựa chọn chính xác thuộc về dự án đó. Phần quan trọng là ghi lại từng ranh giới và kiểm tra ánh xạ thay vì liên tục đoán từ hình thức bên ngoài.
Điều này không bao gồm những gì - ký hiệu Hungary và các cuộc tranh luận về chữ viết tắt bên trong số nhận dạng
Sự so sánh này không giải quyết được chính tả viết tắt. Quá trình triển khai biến các từ được phát hiện thành các phần chữ thường trước khi xây dựng lại chúng, do đó, đầu vào chứa `HTTP` có thể xuất hiện dưới dạng `Http` bên trong đầu ra Pascal hoặc lạc đà. Cho dù một nhóm thích `Http`, `HTTP`, `Id` hay `ID` thì chính sách đặt tên cần có ngoại lệ rõ ràng bên ngoài những chuyển đổi chung này.
Nó cũng không bao gồm lịch sử ký hiệu, tiêu chuẩn ngôn ngữ hoặc mọi ngữ pháp nhận dạng hợp lệ. Những tuyên bố đó yêu cầu các nguồn ngoài các tệp công cụ được sử dụng cho bài viết này. ToolAcre thể hiện sự chuyển đổi văn bản xác định và ghi lại một hạn chế chính: một từ ghép được viết mà không có bất kỳ ranh giới nào có thể phát hiện được không phải lúc nào cũng có thể được chia thành các từ mà một người dự định.
Chính sách viết tắt và lịch sử ký hiệu nằm ngoài bằng chứng chuyển đổi
Không có trường hợp nào là đúng toàn diện. Một cái tên hữu ích khi nó tuân theo hợp đồng và vẫn có thể được nhận biết đối với những người duy trì lớp đó. Bắt đầu với quy ước đã có sẵn, giữ một biểu mẫu bên trong một ranh giới và chỉ dịch ở những nơi giao diện khác yêu cầu. Tính nhất quán làm giảm sự khác biệt ngẫu nhiên mà không giả vờ rằng mọi hệ sinh thái đều có chung một quy tắc.
Khi một ranh giới yêu cầu một hình dạng khác, hãy dán mã định danh vào trình chuyển đổi kiểu chữ của Bộ công cụ văn bản và kiểm tra bốn đầu ra trước khi áp dụng một đầu ra. Thao tác này chạy trong trình duyệt và tệp kê khai cho biết văn bản không được gửi đến máy chủ hoặc được lưu tự động. Sử dụng kết quả dưới dạng ánh xạ có chủ ý, sau đó để các thử nghiệm dự án và kiểm tra kiểu cục bộ xác nhận lựa chọn cuối cùng.