Чи принижують інструменти дизайнера досвід програмування? [зачинено]


10

Останнім часом я оглядався, зокрема, деякі доступні засоби MS, і помічаю велику увагу на дизайнерських інструментах та майстрах. Не тільки для розвитку інтерфейсу, але для всього.

  • Entity Framework має модельєра
  • RIA Services має майстри доменів сервісу
  • У документообігу є весь конструктор, що займається робочим процесом ... (я не знаю, не дуже використовував це)

Є ще більше, але я думаю, що ви зрозуміли цю ідею. Є багато інструментів дизайнера. Використовуючи деякі з них, я знаходжу:

Вони ускладнюють питання поза встановленими випадками використання

(тобто всі демонстраційні відеоролики)

Я нещодавно оцінював деякі з цих технологій, і намагаючись працювати з ними, мені в кінцевому підсумку доводиться розбирати саме те, що для мене роблять дизайнери, модельєри та майстри ... інакше я втрачаюсь, коли мені насправді доводиться намагатися робити щось із того, що було створено.

Це в кінцевому підсумку є випадком, коли мені доводиться боротися з інструментом або достатньо боротися з його результатом, щоб я міг би просто виконати всю справу сам без цього - і мав набагато сильніше розуміння того, що відбувається. Я вважаю це особливо вразливим за допомогою майстра дизайнера Silverlight та майстра обслуговування доменів служби RIA.

Мені здається, що я запитую "Який хороший цей інструмент, якщо мені доведеться розібратися в його внутрішніх роботах або переписати половину його результатів, щоб його використовувати?"

Вони не такі швидкі

Точка продажу цих інструментів полягає в підвищенні продуктивності, і ця точка може змінюватися з часом за допомогою інструменту, і це не обов'язково стосується дизайнерів інтерфейсу (хоча, в деяких випадках, це все ж таки є -> я дивлюся на вас, дизайнера Silverlight) . Я вважаю, що я можу зламати якийсь код набагато швидше, ніж можу перетягувати, змінювати розмір, переміщувати, що б там не було в дизайнері.

Користувальницький інтерфейс заважає моделі

Можливо, це лише я, але коли я використовую щось, що нагадує інструмент дизайну UML, я закінчую витрачати більше часу на все, щоб мої лінії не перетиналися, і щоб я бачив це все на екрані, ніж моделювати те, що я Я намагаюся досягти.

Їм не весело

Половина причини, яку я кодую на життя, полягає в тому, що мені це подобається. Якщо натиснути прапорці та вибрати комбіновані скриньки, а потім виправити все, що виходить, не цікаво.

Я, здається, не один

Громада також не хоче цих інструментів. Найкращий приклад, про який я можу подумати на даний момент, - це Entity Framework Code-First.

Тому я прошу:

  1. Чи реально покращують продуктивність дизайнерські інструменти ?
  2. Вони веселі вбивці?
  3. Чи "спільнота" насправді просить більше дизайнерських інструментів, чи продавці просто думають, що ми є?

Відповіді:


7

Я здогадуюсь, що хороші інструменти дизайну покращують продуктивність і не відволікають від «веселощів». Однак це лише здогадка, оскільки мені ще належить натрапити на хороший інструмент дизайну.

Я особисто не просив інструментів для проектування.


2
+1 Мені напевно подобається, що "ще не вдалося натрапити на хороший інструмент дизайну". хоча я міг би додати "краще, ніж сіра речовина між моїми очними яблуками".
Кен Хендерсон

2
+1 Майстри корисні лише до тих пір, поки те, що ви робите, відповідає тій моделі, яку вони втілюють. Оскільки в основному мені платять, щоб робити дивні речі, вони зазвичай просто заважають. Єдиним інструментом для дизайну, який мені колись дуже сподобався, була (приготуйтеся до шоку від цього Microsoft-не-вентилятора) графічна база даних та генератор запитів у MS Access. Це спрацювало добре, оскільки реляційні бази даних та SQL є концептуально досить простими та чітко визначеними, тому інструмент проектування може працювати майже з усім, що ви хотіли б робити.
Боб Мерфі

Все, що ви будуєте самостійно, щоб допомогти вам із завданням, - це «хороший інструмент дизайну». Сюди входять ваш редактор, ваш компілятор, ваш налагоджувач, ваші особисті бібліотеки тощо. Проблема більшості "програмних засобів" полягає в тому, що вона повинна бути достатньо загальною для всіх, тому вона зазвичай не відповідає проблемі. І вони ніколи не заважають змусити це грати приємно! Дотримуйтесь філософії Unix, будь ласка. Я не хочу бути в садовому наборі інструментів для саду MS.
Спенсер Ратбун

4
  1. Я думаю, це, мабуть, залежить. Якщо ви досить недосвідчений розробник, то використання інструментів дизайну, ймовірно, є більш продуктивним, ніж друкувати його. Я цілком впевнений, що я був більш продуктивним у своїх ранніх днях VB6, використовуючи конструктор, ніж я міг би його виконувати вручну. Інша річ, яку слід врахувати, - це те, як технологія (принаймні, як її представлена ​​IDE) піддається ручному редагуванню. VB6 та .NET WinForms, звичайно, не роблять (а точніше, ви, мабуть, не хочете вручну редагувати "згенерований" файл коду (або його частину). З WPF та ASP.NET я думаю, що досить недосвідчений розробник почне з Дизайнер, але швидко переходить на редагування XAML / ASP безпосередньо. Після того, як ви знаєте, що ви робите, це, безумовно, швидше редагувати розмітку безпосередньо.

  2. Залежить від того, чи буде з розміткою цікаво працювати. WPF та ASP (.NET) можуть бути цікавими. VB6 / WinForms - nope не хоче редагувати створені розділи коду більше, ніж потрібно.

  3. Я не думаю, що громада робить це прямо. Хоча, вивчаючи щось нове, дизайнер може полегшити ковтання в шматки навчання.


2

як завжди, це залежить

Коли я вперше досліджував користування веб-сервісами, у Java був підручник на 50 сторінок, а .NET - майстер. Вгадайте, до кого звик?


1

Тут теж немає інструменту дизайну.

Я проектую ERD бази даних на папері і записую розгортачувач, який видає заяви "створити таблицю", таким чином я можу стерти і відновити за бажанням. Також допомагає для версії бази даних.

Я вважаю, що папір розміром 11x17 (A3) може стати чудовим місцем для проектування дуже складних систем. Отримайте гарну гумку та олівці (я віддаю перевагу Staedtler ).


1

З точки зору постачальника, всі ці вигадливі дизайнерські інструменти, здається, служать цілі, подібній до ліцензій на знижки / безкоштовні студентські ліцензії. Ідея полягає у тому, щоб ви могли створити щось із мінімальними зусиллями та витратами. Після вкладення коштів вони роблять ставку на те, що ви навчитеся розширювати свої навички за допомогою своїх інструментів, а не вивчати чужі.

Це не означає, що інструменти не мають законних результативних цілей. Це має бути цінним для вивчення згенерованого коду та навчання з нього. На жаль, як зазначив Кен Хендерсон, код часто не читається і не є тим, що ви хочете використовувати як шаблон для подальшої роботи. Мені нагадали кілька розділів у програмуванні WCF Services , де автор пояснює, як писати код вручну або створити його Visual Studio. Неминуче створений параметр вимагає наступного розділу для видалення стороннього коду.


0

Чи реально покращують продуктивність дизайнерські інструменти?

Вони можуть тривати, доки ваш проект простий і не надто складний для них. З мого досвіду, ви потрапили в стіну, як тільки намагаєтесь реалізувати / вирішити реальну світову проблему.

Вони веселі вбивці?

WF (Workflow) та WPF, де весело, але й вбивця, коли VS 2008 зазнав аварії кожні 30 хвилин.

Чи "спільнота" насправді просить більше дизайнерських інструментів, чи продавці просто думають, що ми є?

Багато інструментів, випущених MS останнім часом, здаються відчайдушними спробами утримати розробників. Зараз битва триває на ринку смарт-телефонів. Хто здобуде перемогу над розробниками, MS, Google чи Apple?


0

Це завжди було таким способом, навіть тоді, коли ми розрізняли розробників, які лише знали, як натискати майстри, та розробників, які знали, який код створюються майстрами та могли змінювати його для кращих випадків.

Те, що у вас є ще більше інструментів, майстрів та дизайнерів, які все роблять під кришками, щоб не стригти себе на гострі шматочки, це користь для розробників, які або не хочуть знати, або не мають ширини. досвід чи вміння розуміти згенерований код. Я думаю, що є приємне місце між тим, що ви хочете, щоб комп'ютер зробив для вас, і тим, що вам потрібно зробити самостійно, як альтернатива - це мови програмування, які повністю базуються на перетягуванні блоків на форму. (Раніше я працював над такою річчю в середовищі, що залежить від домену, я не хотів би її використовувати!)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.