Quy ước đặt tên cho các dự án nguồn mở iOS / OSX


12

Không phải lúc nào cũng vậy, hầu hết thời gian, bạn sẽ tìm thấy các dự án nguồn mở iOS hoặc Mac OS X với tên bắt đầu bằng chữ cái đầu của tên tác giả và tên cuối cùng. Nếu một dự án được tác giả bởi Nick Leblanc, dự án sẽ được đọc là NLMyProject.

Ví dụ:

cái đó từ đâu tới? Có phải một người đã viết nó theo cách này trước và sau đó mọi người khác đã làm theo?

Tôi không thể tìm thấy bất cứ điều gì về nó, ngay cả trong Nguyên tắc của Apple . Là thành ngữ đó được viết ở bất cứ đâu?


1
Câu hỏi hay, và các ví dụ mã nguồn mở tuyệt vời! ;-)
Leo Natan

Câu trả lời:


16

Mục tiêu C, giống như C, không có không gian tên. Điều này có nghĩa là nếu ai đó đã định nghĩa một hàm foohoặc một lớp Bar, thì nó phải là duy nhất trên toàn cầu và bạn không thể định nghĩa nó. Điều này có thể dẫn đến rất nhiều vấn đề đau đầu khi bạn có mã của mình và sau đó thêm một thư viện khác và đột nhiên mọi thứ bị phá vỡ ở những nơi xa lạ.

một hướng dẫn được trình bày bởi Apple cho điều này trong lập trình với Objective C: ước phần của thư viện nhà phát triển iOS:

Một số tên phải là duy nhất trên ứng dụng của bạn

Mỗi lần bạn tạo một loại, ký hiệu hoặc mã định danh mới, trước tiên bạn nên xem xét phạm vi mà tên phải là duy nhất. Đôi khi phạm vi này có thể là toàn bộ ứng dụng, bao gồm các khung được liên kết của nó; đôi khi phạm vi được giới hạn chỉ trong một lớp kèm theo hoặc thậm chí chỉ là một khối mã.

Tên lớp phải là duy nhất trên toàn bộ ứng dụng

Các lớp Objective-C phải được đặt tên duy nhất không chỉ trong mã mà bạn đang viết trong một dự án, mà còn trên bất kỳ khung hoặc gói nào bạn có thể đưa vào. Ví dụ, bạn nên tránh sử dụng các tên lớp chung như ViewContoder hoặc TextParser vì có thể một khung công tác bạn đưa vào ứng dụng của bạn có thể không tuân theo các quy ước và tạo các lớp có cùng tên.

Để giữ cho tên lớp duy nhất, quy ước là sử dụng tiền tố trên tất cả các lớp. Bạn sẽ nhận thấy rằng các tên lớp Cacao và Cacao Touch thường bắt đầu bằng NS hoặc UI. Các tiền tố hai chữ cái như thế này được Apple dành riêng để sử dụng trong các lớp khung. Khi bạn tìm hiểu thêm về Ca cao và Ca cao cảm ứng, bạn sẽ gặp nhiều loại tiền tố khác liên quan đến các khung cụ thể:

...

Các lớp học của riêng bạn nên sử dụng ba tiền tố chữ cái. Chúng có thể liên quan đến sự kết hợp giữa tên công ty và tên ứng dụng của bạn hoặc thậm chí một thành phần cụ thể trong ứng dụng của bạn. Ví dụ, nếu công ty của bạn được gọi là Whispering Oak và bạn đang phát triển một trò chơi có tên Zebra Sur ngạc nhiên, bạn có thể chọn WZS hoặc WOZ làm tiền tố lớp.

Vì vậy, các thư viện mà bạn đề cập đến loại phá vỡ quy ước này, nhưng giải quyết vấn đề thiếu không gian tên trong Mục tiêu C.

Đọc thêm
Không gian tên của NSHipster
Cách tốt nhất để giải quyết xung đột không gian tên Objective-C là gì?
Làm thế nào để một người sử dụng không gian tên trong mã mục tiêu iOS-c?


Âm thanh như Objective-C thực sự cần không gian tên ...
Chris Cirefice

1
@ChrisCirefice nó sẽ thực sự tốt, nhưng điều cần nhận ra là Objective C là một lớp mỏng trên đầu C. Cố gắng giới thiệu không gian tên có vẻ khó hơn vẻ ngoài của nó. Đi sâu vào Tại sao Objective-C không có không gian tên? Tôi tìm thấy Clang Developers - Thêm không gian tên vào Objective-C . Hãy nhớ rằng, @được sử dụng vì nó không được sử dụng trong C ... cố gắng thêm một toán tử khác mà không phá vỡ những thứ khác là một thách thức.

1
@ChrisCirefice Không gian tên không giải quyết bất cứ điều gì. Xung đột tiền tố chỉ trở thành xung đột không gian tên.
Tuyến Miles

@MichaelT Objective C đã không phải là một lớp mỏng trên đỉnh C trong một thời gian (Objective C 2.0). Bây giờ Apple đã chuyển trọng tâm sang Swift, bao gồm các tính năng hiện đại hơn, chẳng hạn như không gian tên, nhưng hiện thiếu các tính năng khác của Objective C.
Leo Natan
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.