Làm thế nào để bạn đặt tên thư viện cá nhân của bạn? [đóng cửa]


8

Tôi khá tệ với việc đặt tên.

Cái tên duy nhất tôi có thể nghĩ ra một cách khái quát là 'người trợ giúp'. Giả sử, nếu tôi có tệp tiêu đề chứa các hàm trợ giúp để thao tác các đường dẫn, tôi có xu hướng đặt nó vào thư mục "người trợ giúp" của mình và gọi nó là "path-helper.hpp" hoặc đại loại như thế.

Rõ ràng, đó là một quy ước đặt tên xấu. :)

Tôi muốn có một sơ đồ đặt tên nhất quán cho thư mục của mình (và không gian tên) mà tôi có thể sử dụng để luôn tham khảo các tiêu đề và thư viện của riêng mình, nhưng tôi gặp khó khăn khi tìm tên dễ gõ hoặc nhớ (như boost) ... vì vậy tôi cuối cùng gọi một số người trong số họ là "người trợ giúp" hoặc "stdext" hoặc không có gì, đó không phải là một ý tưởng tuyệt vời.

Làm thế nào để bạn tìm thấy tên cho các thư viện dễ nhớ và dễ gõ và không quá chung chung (như "người trợ giúp" hoặc "std" hoặc "stdext" hoặc tương tự)?

Bất kỳ đề xuất về làm thế nào để làm điều này?


14
Tôi sẽ đặt tên MFCcho nó là "Mehrdad Foundation Classes", nhưng thật không may, chữ viết tắt này đã được sử dụng trong gần hai thập kỷ :(
dasblinkenlight

@dasblinkenlight: lol.
dùng541686

Tuy nhiên, chỉ trên Windows :-)
johannes

@dasblinkenlight bởi Middlesbrough Football Club, thật không may (;
Francisco Presencia

Câu trả lời:


4

Cố gắng nhóm các chức năng của trình trợ giúp theo chủ đề và bao gồm chủ đề trong tên thư viện. Một tên thư viện như "helper" có thể quá chung chung, nhưng một tên như "PathHelper", "FileIOHelper" nói khá nhiều về những chức năng mà người ta có thể mong đợi trong lib đó (cá nhân, tôi thích "... Tiện ích", nhưng đó chỉ là một vấn đề của sở thích cá nhân). Ví dụ: tôi có các tên lib như "MathUtilities", "StringUtilities" "ConfigUtilities", "DBUtilities", v.v.

Tất nhiên, đối với các thư viện lớn hơn trong nhóm của chúng tôi, chúng tôi sử dụng tên mà không có bất kỳ thuật ngữ chung nào ở cuối. Và thành thật mà nói, chúng tôi cũng có một thư viện gọi là "Chung" cho một số chức năng và các lớp không nhóm tốt dưới một tên chủ đề cụ thể. Nhưng chúng tôi cố gắng để giữ cho lib nhỏ.


2

Nói chung, đó là một quá trình hữu cơ đối với tôi.

Không gian tên của tôi có xu hướng phản chiếu tên thư mục của tôi, chủ yếu vì tôi nghĩ việc tìm kiếm mọi thứ theo cách đó dễ dàng hơn.

Các dự án công ty thường có tiền tố công ty ở phía trước không gian tên và đối với các dự án cá nhân, tôi chuyển đổi giữa dự án-prefix.folder và chỉ thư mục cho các tên.

Các thư mục "chính" có xu hướng rõ ràng cho tên của chúng và thường liên quan đến chức năng của chúng - "Foo". Đối với các dự án lớn hơn, tôi sẽ chia ra thư mục chính để phản ánh mô hình lập trình chính mà tôi có thể theo dõi. Vì vậy, đối với MVVM, tôi sẽ có "Foo.View", "Foo.ViewModel" và "Foo.Model" làm tên ví dụ.

Lúc nào cũng vậy, các hàm trợ giúp không phù hợp với bất kỳ nơi nào khác bắt đầu len lỏi vào dự án. Tôi sẽ bắt đầu với một thư mục loại "chung" hoặc "tiện ích" để lần đầu tiên hạ cánh chúng. "Người trợ giúp", "Cơ sở" và "Lõi" sẽ hoạt động tốt như một nơi hạ cánh ban đầu.

Tôi cố gắng đặt tên cho các chức năng của mình dựa trên Chủ đề và / hoặc Hành động mà chúng thực hiện. Vì vậy, tôi có thể có PathManager, PathChecker, v.v ... Thông thường, tôi biết tôi sẽ có một số Hành động liên quan đến một chủ đề, vì vậy tôi sẽ đặt tên lớp theo Chủ đề và thêm các phương thức khi cần. Một từ điển có thể có ích ở đây.

Tôi đã tìm thấy một mối tương quan cao giữa việc dễ dàng đặt tên một đối tượng và mức độ tôi có thể mô tả chức năng này phải làm như thế nào. Một trong những điểm kiểm tra cá nhân của tôi là nếu tôi đang vật lộn để đặt tên cho một cái gì đó thì điều đó có nghĩa là tôi cần phải suy nghĩ về những gì chức năng thực sự phải làm. Một khi tôi sửa các vấn đề chức năng, tên đến dễ dàng.

Khi tôi thu thập thêm các hàm trợ giúp, tôi sẽ di chuyển chúng vào thư mục và / hoặc không gian tên của riêng chúng. Việc họ có nhận được một thư mục của dự án gốc hay họ có nhận được một thư mục con vào thư mục tiện ích hay không tùy thuộc vào tính chất và số lượng của các chức năng.


1

Tương tự như GlenH7, tôi có xu hướng có một thư viện "-misc", trong đó org là một chữ viết tắt ba hoặc bốn chữ cái cho bất cứ ai sử dụng lao động hiện tại của tôi.

Bất kỳ hàm ngẫu nhiên mới nào được đặt ở đó cho đến khi đủ chúng tích lũy cho một mẫu xuất hiện. Vào thời điểm đó, tôi nhóm chúng lại với nhau và kéo các hàm liên quan vào các thư viện có tên hợp lý hơn, tái cấu trúc mã máy khách khi cần.

Đôi khi một chút kỷ luật đã được yêu cầu để giữ cho kích thước của thư viện có thể quản lý được, nhưng ngày nay các thư viện * -misc của tôi có xu hướng vẫn còn khá nhỏ.

(Tôi cũng luôn có thư viện "devauto" và "testauto" có chứa các chức năng "cấp độ meta" nhằm hỗ trợ phát triển và tự động hóa thử nghiệm).


0

Nếu là tôi, tôi sẽ chỉ có một thư viện đường dẫn (nhiều khả năng đó sẽ là một thư viện hệ thống tập tin có chứa một thành phần đường dẫn). Nó sẽ cung cấp giao diện chính xác mà tôi cần để hoàn thành công việc. Chắc chắn 90% trong số đó sẽ là một trình bao bọc mỏng xung quanh boost.filesystem hoặc bất kỳ hệ thống tập tin ngôn ngữ nào có, nhưng mã của tôi sẽ chỉ nhìn thấy thư viện nhất quán tuyệt vời này. Không cố nhớ nếu chức năng đó có trong X, X-helper, X-utils hoặc X-ext. Nếu X cần trợ giúp thì đã đến lúc sửa X, không phát minh ra các vị trí ngẫu nhiên mới cho mã.


0

Tôi cũng rất tệ trong việc này. Cách tiếp cận thực tế của tôi là sử dụng làm phong phú tên theo ngày và / hoặc dự án và / hoặc địa điểm cho đến khi tôi đưa ra một tên hợp lý.

Tôi biết đối với một người khác không thể đọc được, nhưng bản thân tôi có thể nhanh chóng nhận ra họ. Và hầu hết các thư viện này cuối cùng đều sử dụng một lần cho tôi.


1
Có phải chỉ tôi hoặc bạn thực sự có ý nghĩa như thế holycow-Boston-11:37PM-RainyOutsidenào? :)
dây leo
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.