Хоча я ніколи не постачав нічого, використовуючи Smalltalk, мій короткий час граючи з ним, безумовно, залишив свій слід. Єдиний спосіб описати досвід - це MVC таким, яким він мав бути. По суті, все важке підняття вашої заявки робиться в бізнес-об'єктах (або доменній моделі, якщо ви так схильні). Стандартні елементи певним чином прив’язані до бізнес-об'єктів. Наприклад, текстове поле відображається в полі об’єкта (саме поле є об'єктом, тому це легко зробити). Кнопка відображатиметься до методу. Це все робиться за допомогою дуже простого і природного API. Нам не потрібно думати про прив’язку об’єктів тощо. Це просто працює.
Тим не менш, у багатьох нових мовах та API ви змушені думати ззовні. Спочатку з C ++ та MFC, а тепер із C # і WPF, Microsoft дістала, що світ розробників підключився до будівельників GUI, де ви будуєте свою програму, впроваджуючи обробники подій. . Розробка Java Swing не така вже й інша, лише ви пишете код, щоб самостійно створити елементи керування формою. Для деяких проектів ніколи навіть не може бути доменної моделі - лише обробники подій. Більшість моїх кар’єрів я займався цією моделлю.
Кожен спосіб змушує вас думати інакше. З підходом Smalltalk ваш домен розумний, а ваш GUI - німий. З підходом VisualStudio за замовчуванням ваш графічний інтерфейс розумний, тоді як ваша доменна модель (якщо вона існує) досить анемічна.
Багато розробників, з якими я працюю, бачать цінність у підході Smalltalk, і намагаються підключити цей підхід до середовища VisualStudio. WPF має деякі динамічні функції зв’язування, що робить можливим; але є обмеження. Неминуче якийсь код, що належить до доменної моделі, опиняється в класах GUI.
Отже, яким чином ви розробляєте / розробляєте свій код? Чому?
- Перший графічний інтерфейс. Взаємодія користувача є найважливішою.
- Домен спочатку. Мені потрібно переконатися, що система правильна, перш ніж поставити на неї інтерфейс.
Для будь-якого підходу є плюси і мінуси. Модель домену вписується в кришталеві собори та пиріг на небі. Графічний інтерфейс підходить для швидких і брудних (іноді дуже брудних).
І для додаткового бонусу: Як ви переконаєтесь, що код є ремонтом?