Gần như mọi ngôn ngữ lập trình chính đều có một thư viện để xử lý các dấu tách thư mục cho bạn. Bạn nên tận dụng chúng. Điều này sẽ đơn giản hóa mã của bạn và ngăn ngừa lỗi .
Theo kinh nghiệm của tôi, lý do thông thường để kết hợp các chuỗi như thế này là chúng đến từ các nguồn khác nhau. Đôi khi, đó là những phần khác nhau từ một tập tin cấu hình. Đôi khi, đó là sự kết hợp liên tục với một đối số chức năng. Trong mọi trường hợp, khi chúng đến từ các nguồn khác nhau, bạn phải xem xét một số trường hợp khác nhau có thể có liên quan đến dấu phân cách ở hai đầu được kết hợp:
- Cả hai đầu có thể có một dấu phân cách:
"images/"
và"/sounds"
- Chỉ một người có dấu phân cách:
"images"
và "/sounds"
hoặc "images/"
và"sounds"
- Không có dấu phân cách:
"images"
và"sounds"
Thực tế mỗi phần đến từ một nguồn khác nhau có nghĩa là mỗi nguồn có thể có những ý tưởng riêng về những quy ước phải tuân theo, nếu có ai đó nghĩ gì về nó! Bất cứ điều gì đang gọi mã của bạn không cần phải lo lắng về điều này . Mã của bạn nên xử lý tất cả các trường hợp vì ai đó sẽ vi phạm quy ước của bạn . Điều này sẽ dẫn đến lãng phí thời gian điều tra nguyên nhân gây ra lỗi và khắc phục. Tôi đã có một vài lần khó chịu khi đồng nghiệp đưa ra giả định về cách các đường dẫn nên được định dạng trong tệp cấu hình, nghĩa là tôi phải đi tìm mã và tìm ra những gì họ đang mong đợi (hoặc sửa mã).
Hầu hết các ngôn ngữ chính cung cấp một phương pháp để làm điều này cho bạn, đã xử lý nhiều trường hợp:
Có một cảnh báo với những điều này. Một số trong số này dường như cho rằng một dấu tách thư mục hàng đầu trong đối số thứ hai đề cập đến một đường dẫn gốc và điều này có nghĩa là đối số đầu tiên phải được loại bỏ hoàn toàn. Tôi không biết tại sao điều này được coi là hữu ích; Đối với tôi, nó chỉ gây ra vấn đề. Tôi chưa bao giờ muốn kết hợp hai phần đường dẫn và kết thúc với phần đầu tiên bị loại bỏ. Đọc tài liệu cẩn thận cho các trường hợp đặc biệt, và nếu cần, hãy viết một trình bao bọc thực hiện những gì bạn muốn với những điều này thay vì xử lý đặc biệt của chúng.
Điều này cũng giúp nếu bạn có bất kỳ nhu cầu hỗ trợ các hệ điều hành khác nhau. Các lớp này hầu như có mặt khắp nơi để chọn phân cách chính xác. Các thư viện thường có cách bình thường hóa các đường dẫn để phù hợp với các quy ước của hệ điều hành.
Trong trường hợp ngôn ngữ lập trình của bạn không có thư viện sẵn có, bạn nên viết một phương thức xử lý tất cả các trường hợp này và sử dụng nó một cách tự do và xuyên suốt các dự án.
Điều này rơi vào danh mục "không đưa ra giả định" và "sử dụng các công cụ giúp bạn."