Liệu nó có ý nghĩa khi sử dụng các bộ nhận dạng ysv thay vì các bộ định danh để giảm bớt chức năng tìm và thay thế? [đóng cửa]


9

Mặc dù về mặt ngữ pháp không chính xác, khi viết định danh cho các hàm, biến, v.v. Lý do của tôi cho điều này là nếu bạn cần tìm và thay thế, ví dụ, thay thế "công ty" bằng "nhà cung cấp", "công ty" sẽ khớp cả hai dạng số ít và số nhiều (" công ty và" công ty "), trong khi nếu số nhiều được viết đúng chính tả, bạn sẽ phải thực hiện hai tìm kiếm riêng biệt.


8
Còn trẻ em, chuột, dao, sói, mans, womans, wifes và răng thì sao? Mọi thứ đều hợp lệ để tránh "hai tìm kiếm riêng biệt" đáng sợ .
Tulains Córdova

3
Bản thân tôi là một phần của những con sói hơn sói ...
Jimmy Hoffa

2
Bạn có thực sự có kế hoạch đổi tên định danh rất thường xuyên trong quy trình làm việc của bạn không? Có vẻ hơi quá mức khi đảm nhận tất cả sự lập dị về nhận thức của các tên sai trong mã chỉ để hỗ trợ một chức năng có thể chưa từng được sử dụng.
Kent A.

10
Tin tôi đi, bạn không muốn áp dụng thao tác tìm và thay thế cho một cơ sở mã lớn cho một từ như "công ty" mà không có ràng buộc "chỉ toàn từ". Do đó, bạn sẽ phải sử dụng hai tìm kiếm riêng biệt.
Doc Brown

2
Hai. Tách rời. Tìm kiếm.
Tulains Córdova

Câu trả lời:


24

Bất kỳ tìm kiếm và thay thế nào như vậy nên được thực hiện cẩn thận và mỗi thay đổi được kiểm tra thủ công để tránh "đi kèm" trong một nhận xét trở thành "acvendor" với thay đổi công ty / nhà cung cấp của bạn. Như vậy, hai tìm kiếm riêng biệt cho "công ty" và "công ty" sẽ không tạo ra chi phí đáng kể so với thời gian kiểm tra và phê duyệt từng thay đổi.

Vì vậy, các từ sai chính tả để đạt được chỉ một tìm kiếm cung cấp các tiêu cực của việc nhìn xấu và khó đọc hơn mức cần thiết, mà không mang lại bất kỳ lợi ích rõ ràng nào.


11
Và, với các công cụ tái cấu trúc trở nên tốt hơn, tìm kiếm và thay thế toàn cầu chỉ dựa trên văn bản đang trở thành cách ít đáng tin cậy nhất để đổi tên định danh.
Kent A.

Đây không phải là vấn đề khi sử dụng tìm kiếm "toàn bộ từ", như được đề cập bởi Doc Brown.
SHNC

6
@ user3047082, tìm kiếm toàn bộ từ cũng không khớp với "công ty", làm cho toàn bộ câu hỏi trở nên vô nghĩa ...
David Arno

6

Tôi giả sử bạn đang nói về việc đổi tên trong các tệp mã nguồn. Với các IDE ngày nay, điều này luôn luôn phải được thực hiện với các công cụ tái cấu trúc của IDE. Nếu IDE của bạn không có điều này, hãy xem xét chuyển sang IDE khác. Hầu hết các công cụ tái cấu trúc IDE cũng giữ một lịch sử tái cấu trúc, cho bạn khả năng "hoàn tác" nhanh chóng nếu bạn không thích kết quả của công cụ tái cấu trúc. Sử dụng tìm kiếm / thay thế, bạn có thể không có khả năng hoàn tác toàn bộ các thay đổi (trừ khi bạn có thể sử dụng các công cụ kiểm soát sửa đổi của mình và trở lại phiên bản đã cam kết trước đó). Ngoài ra, sử dụng các công cụ tái cấu trúc, bạn sẽ an toàn hơn khi vô tình thay đổi thứ gì đó mà bạn không có ý định thay đổi.


3
Đối với bất kỳ ai đánh dấu câu trả lời này là chất lượng thấp: trong khi nó không trả lời đúng câu hỏi như đã hỏi, nó giải quyết bức tranh lớn hơn về lý do tại sao người ta muốn sử dụng sơ đồ đặt tên như vậy và cách tốt hơn để hoàn thành nhiệm vụ tương tự. Tôi đã bình chọn "có vẻ ổn" cho đánh giá cờ và thêm một upvote.

Cảm ơn, @Snowman. Đó là bản chất con người, khi ở một khu vực không xác định, để đóng khung một câu hỏi dựa trên suy nghĩ (thiếu kinh nghiệm) của chính bạn. Có, trong khi tôi không trả lời câu hỏi thực tế, giả định của tôi về những gì thực sự được hỏi dựa trên những manh mối khác trong câu hỏi. Các số nhiều mà tôi gặp nhiều nhất là từ các công cụ tạo mã, ví dụ, kỹ thuật đảo ngược XSD-to-POJO, Hibernate / JPA từ cơ sở dữ liệu, v.v. Về cơ bản, nếu các số nhiều này nằm trong mã và tác giả không thích lựa chọn số nhiều, sau đó rất có thể chúng không được viết bởi tác giả và có nhiều khả năng được tạo tự động.
javabeano

-9

Đúng! Đúng! Đúng! Nó có ý nghĩa hoàn hảo để làm điều đó. Và tôi đã làm điều đó trong nhiều năm.

Tiết lộ 1: Tiếng Anh không phải là ngôn ngữ mẹ đẻ của tôi.

Tiết lộ 2: Kiến thức về ngữ pháp tiếng Anh của tôi tốt hơn đáng kể so với người bản ngữ trung bình.

Tiết lộ 3: Khi nói về giao tiếp với con người, tôi là một ngữ pháp kịch liệt của Đức quốc xã.

Và bây giờ khi những tiết lộ này không còn nữa, hãy để tôi nói rằng ngữ pháp tiếng Anh không có chỗ trong mã. Bạn thấy đấy, đó là lý do tại sao nó được gọi là chứ không phải văn xuôi . Nó được cho là có một số điểm tương đồng với ngôn ngữ được con người hiểu, với mục đích dễ đọc, nhưng ngoài ra, thứ chúng ta cần nhất từ ​​mã không phải là phẩm chất của văn xuôi; đó là những phẩm chất kỹ thuật khác, như chính xác , không rõ ràngcăng thẳng . Đó là lý do cú pháp C if( x != y ) y++;nhiều thích hợp hơn để các IF X IS NOT EQUAL TO Y THEN ADD 1 TO Y END-IF.cú pháp của Cobol. Sự mong muốn bị cáo buộc của các trình biên dịch hiểu ngôn ngữ tự nhiên là một lời ngụy biện và đừng hiểu ý tôi, hãy xem ol'Edsger nói gì về nó:Edsger W. Dijkstra, về sự ngu ngốc của "lập trình ngôn ngữ tự nhiên" .

Một chất lượng quan trọng khác là khả năng tính toán của các định danh . Việc một thuộc tính được gọi Colorluôn có thể được đọc thông qua một phương thức được gọi getColor()và được viết thông qua một phương thức được gọi setColor()là rất quan trọng. Các định danh này có thể tính toán được từ tên của tài sản, vì vậy bạn không cần phải biết chúng bằng trái tim. Nếu một lập trình viên chọn một cặp phương thức được gọi getColor()bằng một mặt, nhưng colorize()mặt khác, các đồng nghiệp của họ sẽ xem xét chính xác sự phá hoại này. Đó là cách tính toán định danh quan trọng.

Ngoài ra, các công cụ lập trình có thể được viết (và thực tế rất nhiều trong số chúng đã được viết, ví dụ, Hibernate ) có thể tính toán các tên này. Nếu không có khả năng tính toán tên định danh, bạn sẽ phải sử dụng cú pháp bổ sung (ví dụ: trong Hibernate, chú thích thêm) để chỉ định chính xác cho từng công cụ cách tạo từng tên định danh duy nhất hoặc chính xác tên ad hoc mà bạn đã đặt cho mỗi thực thể.

Vì vậy, khả năng tính toán định danh rất quan trọng, đồng thời ngữ pháp tiếng Anh không liên quan, (vì chúng tôi không làm lập trình ngôn ngữ tự nhiên), vì vậy để có thể tính toán tên của một tập hợp các thực thể bằng cách luôn thêm "s" vào tên của một trường hợp duy nhất có ý nghĩa hoàn hảo, không bao giờ bận tâm đến thực tế rằng nó vi phạm hầu hết mọi người (bao gồm cả tôi) nhạy cảm ngôn ngữ tiếng Anh.

Và dù chúng ta có thích hay không, đây là xu hướng của tương lai. Ngôn ngữ bản địa của phần lớn các lập trình viên trên hành tinh không còn là tiếng Anh nữa, và xu hướng là tiếp tục rất mạnh mẽ theo hướng này. (Ngoài ra, tôi thậm chí sẽ không sẵn sàng đặt cược tiền vào đề xuất rằng tiếng Anh là ngôn ngữ mẹ đẻ của phần lớn các lập trình viên làm việc tại Hoa Kỳ ngay bây giờ.) Đây là những người, ở một mức độ lớn, khi cố gắng tính toán tên của một bộ sưu tập từ tên của một ví dụ duy nhất của "công ty", sẽ chỉ thêm một "s" và mẫu "công ty" thậm chí sẽ không xuất hiện trong đầu họ. Đối với một tỷ lệ lớn các nhà lập trình trên thế giới ngày càng tăng, kiến ​​thức về đặc thù của ngôn ngữ tiếng Anh không thêm bất kỳ giá trị nào vào công việc của họ, nó chỉ làm cho nó khó hơn một chút.


7
1. Chỉ mục và Chỉ số đều là số nhiều hợp lệ của chỉ mục. Bạn đã nhầm lẫn khi tin rằng chỉ có một là chính xác, ví dụ: vui lòng xem oxforddictionaries.com/def định / english / index . 2. Một X riêng tư, có thể được đọc qua getX và được ghi vào thông qua setX không riêng tư; đó là một giá trị công cộng. 3. Mã là một tài liệu thiết kế. Nó thông báo cho trình biên dịch về cách tạo "mã máy", nhưng quan trọng hơn, nó mô tả thiết kế đó theo cách mà người khác có thể dễ dàng đọc được. Khả năng đọc là một trong hai khía cạnh quan trọng nhất đối với mã (khả năng kiểm tra là khía cạnh khác).
David Arno

3
Mã được viết vì hai lý do: cho con người đọc và cho máy tính thực thi. Một số người sẽ nói mã nguồn được viết chủ yếu cho con người đọc, vì phần lớn nó được biên dịch ngay lập tức thành mã byte trước khi máy tính thực thi nó. Vì vậy, trong khi các máy tính có thể không quan tâm đến ngữ pháp phù hợp, con người chắc chắn làm được.
Eric King

3
Mặc dù tiếng Anh có thể không phải là ngôn ngữ mẹ đẻ của bạn, nhưng nó có thể là người tiếp theo đọc mã của bạn. Nó có thể cũng sẽ gây nhầm lẫn cho những người khác của ngôn ngữ mẹ đẻ của bạn đã học tiếng Anh.
Andy

2
hoặc bạn sẽ chỉ làm tổn thương những người cần gấp đôi Companyskhi cần Companies. Rốt cuộc, toàn bộ điểm của mã chúng ta thường viết trên thực tế là làm cho nó gần với ngôn ngữ tự nhiên hơn.
Andy

2
Sao cũng được, tôi thấy tờ giấy đó cứt. Mã nằm giữa ngôn ngữ tự nhiên và mã byte. Nếu không phải để giảm bớt sự hiểu biết về mã của con người, sẽ không có lý do nào để không nhập trực tiếp mã byte.
Andy
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.