Quy ước đặt tên cho tệp lớp một phần


93

Tôi đang tạo phần lớn mã giàn giáo ASP.NET MVC của mình. Tất cả các tệp được tạo là các lớp từng phần sử dụng các quy ước đặt tên tiêu chuẩn. Ví dụ: tệp đ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 được tạo, tôi tạo tệp lớp từng phần thứ hai có tên EmployeeControllerCustom.cs. Tôi tách logic tùy chỉnh và logic được tạo thành hai tệp khác nhau để lần sau khi tôi tạo EmployeeController, các thay đổi tùy chỉnh của tôi sẽ không bị ghi đè. Việc 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 tệp từng phần được thiết lập hơn mà tôi nên tuân theo không?

Câu trả lời:


152

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

<Compile Include="Subfolder/Program.cs" />
<Compile Include="Subfolder/Program.Foo.cs">
  <DependentUpon>Program.cs</DependentUpon> <!-- Note that I do not reference the subfolder here -->
</Compile>

Xuất hiện dưới dạng:

  • Thư mục con
    • Program.cs
      • Program.Foo.cs

5
Đề xuất DependentUpon thực sự tuyệt vời và hoạt động tốt. Cảm ơn đã lưu ý. Nếu tôi đang đọc chính xác, bạn không chỉ cần sử dụng một hậu tố chuẩn như "Tùy chỉnh". Hậu tố của bạn luôn thể hiện ý định về 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ỏ bọc? Không. cung cấp bất cứ điều gì hơn ngoài khả năng đọc được cải thiện? Cảm ơn.
Ben Griswold 25/09/09

11
Đúng - tên tệp cho biết mục đích của mã trong phần đó . Vì vậy, nếu tôi đang triển khai một giao diện kỳ ​​lạ (và giữ mã riêng biệt), nó có thể xảy ra SomeType.ICustomTypeDescriptor.cs. Các .(IMO) tách hai điều: kiểu thực tế ( SomeType) và mục đích ICustomTypeDescriptor- cả hai đều đã cased đầy đủ; ngoài ra, nó phù hợp với những thứ như SomeForm.Designer.cs;-p
Marc Gravell

Hoàn hảo. Cảm ơn cho cái nhìn sâu sắc hơn. Nếu tôi có thể làm nhiều hơn, hãy bình chọn câu trả lời của bạn và đánh dấu là chính xác tôi sẽ làm.
Ben Griswold 25/09/09

1
@Marc Gravell: bạn có tình cờ biết bất kỳ phần mở rộng VS nào cung cấp chức năng thiết lập DependentUpon cho tệp không?
Dyppl

2
@Dyppl Phần mở rộng FileNesting có thể làm điều này
gt

15

Để thêm vào câu trả lời của Marc Gravell ♦, tôi đã gặp tình huống với các tệp trong thư mục con và DependentUponnút bị bỏ qua. Điểm ngắn gọn của nó là trong trường hợp như vậy, 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 hi vọng điêu nay se giup được ai đo :)


tôi cũng vậy. nó xảy ra bởi vì tôi bắt đầu dự án trong cơ sở dữ liệu đầu tiên và khi nó tạo ra mô hình, nó đặt chúng vào bên trong sơ đồ mô hình. VS2015 nếu nó tạo ra sự khác biệt cho bất kỳ ai.
Joshua K
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.