2009-09-25 11 views
74

Tôi đang tạo số lượng lớn mã nguồn giàn giáo ASP.NET MVC của mình. Tất cả các tệp được tạo ra là các lớp một phần sử dụng các quy ước đặt tên chuẩn. Ví dụ, tệp trình điều khiển nhân viên của tôi có tên là EmployeeController.cs. Nếu tôi muốn mở rộng EmployeeController với logic tùy chỉnh, không sinh ra, tôi tạo một tệp lớp một phần thứ hai có tên là EmployeeControllerCustom.cs. Tôi tách logic tùy chỉnh và được tạo ra thành hai tệp khác nhau để lần sau tôi tạo EmployeeController các thay đổi tùy chỉnh của tôi không bị ghi đè. Thêm hậu tố "Tùy chỉnh" vào tên tệp có vẻ hợp lý đối với tôi, nhưng có quy ước đặt tên lớp một phần được thiết lập hơn mà tôi nên theo dõi không?Quy ước đặt tên cho các tệp lớp một phần

Trả lời

121

Tôi sử dụng . tách - ví dụ: EmployeeController.SomeSpecialBehaviour.cs. Tôi cũng liên kết nó vào cây dự án thông qua "dependsUpon" hoặc bất cứ điều gì nó là trong csproj, để nó tổ dưới tệp (trong explorer giải pháp) gọn gàng. Bạn phải làm điều đó bằng tay (chỉnh sửa csproj) hoặc với một addin, mặc dù; ví dụ:

<Compile Include="Program.cs" /> 
<Compile Include="Program.Foo.cs"> 
    <DependentUpon>Program.cs</DependentUpon> 
</Compile> 

xuất hiện như:

  • Program.cs
    • Program.Foo.cs
+0

đã không nhận ra DependentUpon làm việc trên bất kỳ tập tin ... – thecoop

+2

các DependentUpon đề xuất thực sự tuyệt vời và hoạt động tốt. Cảm ơn vì đã chú ý. Nếu tôi đọc chính xác, bạn không chỉ đơn giản sử dụng hậu tố chuẩn như "Tùy chỉnh". Hậu tố của bạn luôn thể hiện ý định của chức năng của tệp lớp một phần. Ngoài ra, có một lý do tại sao bạn sử dụng. tách đối lập với vỏ? Có. cung cấp bất cứ điều gì nhiều hơn khả năng đọc được cải thiện? Cảm ơn. –

+7

Đúng - tên tệp cho biết ý định của mã trong * phần đó *. Vì vậy, nếu tôi đang triển khai một giao diện lạ (và giữ mã riêng biệt), nó có thể là 'SomeType.ICustomTypeDescriptor.cs'. '.' (IMO) phân tách hai điều: loại thực tế (' SomeType') và mục đích 'ICustomTypeDescriptor' - cả hai đều đã được gộp đầy đủ; bên cạnh đó, nó phù hợp gọn gàng với những thứ như 'SomeForm.Designer.cs' ;-p –

9

Để thêm vào câu trả lời Marc Gravell ♦ 's, tôi đã có một tình huống với tệp trong thư mục con và DependentUpon nút bị bỏ qua. Ngắn của nó là trong trường hợp này nó xml của tôi phải là:

<Compile Include="foo\bar.cs" /> 
<Compile Include="foo\bar.baz.cs"> 
    <DependentUpon>bar.cs</DependentUpon> <!-- Note that I do not reference the subfolder here --> 
</Compile> 

Tôi hy vọng điều này sẽ giúp người :)

+0

Giúp tôi, cảm ơn. – heltonbiker