Незручне, відкрите запитання, але це проблема, на яку я завжди натикаюся:
Програмне забезпечення, яке легко обслуговувати та працювати з ним, - це добре розроблене програмне забезпечення. Намагатися зробити дизайн інтуїтивно зрозумілим, це називає ваші компоненти таким чином, щоб наступний розробник мав змогу зробити висновок про функцію компонента. Ось чому ми не називаємо наші класи "Тип1", "Тип2" тощо.
Коли ви моделюєте концепцію реального світу (наприклад, клієнта), це, як правило, так само просто, як іменування вашого типу після моделювання концепції реального світу. Але коли ви будуєте абстрактні речі, орієнтовані більше на систему, дуже просто не вистачає імен, які легко читати і легко засвоювати.
Це стає гіршим (для мене) при спробі назви сімей типів із базовим типом або інтерфейсом, який описує, що повинні робити компоненти, але не те, як вони працюють. Це , природно , призводить до кожного похідному типу намагається описати аромат реалізації (наприклад , IDataConnection
і SqlConnection
в .NET Framework), але як ви висловлюєте що - то складне , як «твір відображення і шукають певний набір атрибутів»?
Потім, коли ви, нарешті, вибрали назву типу, який, на вашу думку, описує, що він намагається зробити, ваш колега запитує "WTF чи DomainSecurityMetadataProvider
справді це робиться? "
Чи є якісь хороші прийоми вибору доречного імені для компонента чи як створити сімейство компонентів, не отримуючи заплутаних імен?
Чи є якісь прості тести, які я можу застосувати до імені, щоб краще відчути, чи є ім'я "хорошим", і чи має бути інтуїтивнішим для інших?