Văn bản & công cụ hàng ngày · Bộ công cụ văn bản
Cách trình chuyển đổi chữ hoa chữ thường phân chia CamelCase và các từ viết tắt như ParsHTTPResponse
· Cách thức hoạt động
text-conversion developer-workflow unicode
Giải thích ba quy tắc ranh giới mà một trình chuyển đổi trường hợp tốt áp dụng — chạy dấu phân cách, chuyển đổi từ dưới lên trên và các cạnh viết tắt — và lý do tại sao phân tích cú phápHTTPResponse2Json là thử nghiệm cho thấy những quy tắc yếu.
parse_h_t_t_p_response và các lỗi khác - tại sao việc chuyển đổi số nhận dạng lại khó hơn chuyển đổi 'hello world'
Chuyển “hello world” thành hello_world thật dễ dàng; biến phân tích cú phápHTTPResponse thành phân tích cú pháp_h_t_t_p_response là dấu hiệu cho thấy thuật toán coi mỗi chữ viết hoa là một từ. Nhà phát triển đổi tên mã định danh JavaScript cho Python API cần điều ngược lại: xác định mã thông báo trước, sau đó áp dụng quy ước tham gia của đích. Bước đầu tiên tương tự sẽ tạo ra đầu ra rắn, kebab, lạc đà và Pascal, nếu không thì bốn nút không đồng ý về vị trí bắt đầu của các từ.
Quy tắc một: các dấu phân cách chạy — dấu cách, dấu gạch nối, dấu gạch dưới và dấu câu đều đánh dấu một ranh giới, tuy nhiên có nhiều dấu cách trong một hàng
Các dấu cách, dấu gạch ngang, dấu gạch dưới và các ký tự không phải chữ cái/non-number khác đã đánh dấu ranh giới. Hãy coi lần chạy là một dấu phân cách: nút--chính phải trở thành hai mã thông báo, không phải là mã thông báo trống giữa các dấu gạch nối. Trình chuyển đổi chữ hoa chữ thường của ToolAcre phân tách bằng biểu thức nhận biết Unicode cho các chữ cái và số, vì vậy các chữ cái không phải ASCII phổ biến sẽ không bị loại bỏ chỉ vì nằm ngoài A–Z. Chuẩn hóa khoảng trắng là về quy ước đặt tên, không phải về việc tự động thay đổi tệp nguồn gốc.
Quy tắc hai: chuyển đổi từ thấp lên cao - một chữ cái hoặc chữ số viết thường theo sau là chữ in hoa bắt đầu một từ mới
Mẫu dành cho chữ cái viết thường hoặc chữ số theo sau là chữ cái viết hoa sẽ chèn một ranh giới trước chữ hoa. Điều đó biến ParseResponse thành phân tích cú pháp + Phản hồi và cho phép 2Json trở thành 2 + Json. Quy tắc này tự nó không tách từ trước đó khỏi chữ số cuối cùng của nó: ToolAcre coi Response2 là một mã thông báo trước khi tách chữ hoa J. Việc bạn có muốn Phản hồi + 2 là một quyết định hướng dẫn về kiểu hay không, vì vậy hãy kiểm tra số nhận dạng số thay vì giả sử mọi trình chuyển đổi đều đưa ra lựa chọn giống nhau.
Quy tắc ba: các cạnh viết tắt - một chuỗi các chữ hoa theo sau là một cặp chữ hoa rồi chữ thường kết thúc từ viết tắt trước chữ hoa cuối cùng
Một từ viết tắt cần thêm một cái nhìn về phía trước. Trong HTTPResponse, dòng vốn HTTP kết thúc trước R vì R được theo sau bởi chữ thường. Một quy tắc khớp với lần chạy và cặp chữ hoa-chữ thường sẽ chèn một ranh giới vào đó: HTTP + Phản hồi, không phải H + T + T + P + Phản hồi. Khi một tên kết thúc bằng tất cả chữ hoa, không có hậu tố viết thường để đánh dấu một từ mới và từ viết tắt vẫn ở cùng nhau. Đó là sự khác biệt giữa mã định danh mã hóa và chèn dấu phân cách trước mỗi chữ hoa.
Các chữ số và các trường hợp biên — trong đó '2Json' phân chia và tại sao không có bộ quy tắc nào đáp ứng mọi hướng dẫn kiểu
Các quy ước về chữ số vẫn còn mơ hồ: version2Parser, HTTP2Json và IP6Address không phải tất cả đều bao hàm cùng một nhóm từ. ToolAcre nhóm các chữ số với mã thông báo trước đó cho đến khi chữ số tiếp theo kích hoạt ranh giới tiếp theo. Tương tự, một chữ cái có chữ viết hoa nhạy cảm với ngôn ngữ có thể mở rộng hoặc hoạt động khác với ASCII: tiếng Thổ Nhĩ Kỳ có dấu chấm/dotless i và ß tiếng Đức xứng đáng được xem xét thủ công. Công cụ này thực hiện một chuyển đổi xác định chứ không phải yêu cầu hiểu cách đặt tên theo ngữ nghĩa của một biến.
Ví dụ đã hoạt động - chạy phân tích cú phápHTTPResponse2Json và lớp CSS được gạch nối thông qua trường hợp rắn, kebab, lạc đà và Pascal
Chạy phân tích cú phápHTTPResponse2Json thông qua trình chuyển đổi trường hợp thực tế. Nó tạo ra parse_http_response2_json trong trường hợp con rắn, parseHttp-response2-json trong trường hợp kebab, ParseHttpResponse2Json trong trường hợp lạc đà và ParseHttpResponse2Json trong trường hợp Pascal. Đối với nút--chính, các dấu phân cách liên tiếp sẽ thu gọn thành nút_chính và nút-chính. Các kết quả đầu ra này hiển thị cả quy tắc viết tắt thành công và lựa chọn nhóm chữ số. Kiểm tra điểm đến của bạn API trước khi sử dụng tìm kiếm và thay thế trên cơ sở mã.
Điều này không bao gồm những gì - cách viết theo ngôn ngữ cụ thể, chẳng hạn như chữ i chấm trong tiếng Thổ Nhĩ Kỳ, có bài viết riêng
Cơ chế này không thực hiện việc gấp chữ hoa chữ thường của mọi ngôn ngữ, suy ra rằng từ viết tắt là viết tắt của một thuật ngữ tên miền cụ thể hoặc đổi tên các tham chiếu trong suốt chương trình. Chuyển đổi chuỗi và mã định danh khác với việc tái cấu trúc mã nguồn bằng nhận thức ký hiệu. Công cụ không thể đảm bảo rằng dịch vụ Python chấp nhận trường JSON đã được đổi tên; người gọi vẫn có thể phụ thuộc vào cách viết cũ. Chạy kiểm tra lược đồ của bạn sau khi thay đổi tên trường công khai.
Bài học rút ra — trình chuyển đổi kiểu chữ của Bộ công cụ văn bản áp dụng ba quy tắc này và hiển thị kết quả ngay lập tức để bạn có thể kiểm tra trước khi dán vào mã
Trước tiên, hãy xác định mã thông báo bằng cách sử dụng dấu phân cách, chuyển tiếp và cạnh viết tắt; chỉ sau đó tham gia và xử lý chúng. Bộ công cụ văn bản làm cho các quy tắc đó hiển thị ngay lập tức và cho phép bạn hoàn tác chuyển đổi. Đối với tên trường có nhiều từ viết tắt, hãy so sánh các kết quả thật của snake/kebab thay vì áp dụng một cách mù quáng biểu thức chính quy có chữ cái viết hoa đơn giản cho toàn bộ kho lưu trữ.