Инструменты дизайнера ухудшают опыт программирования? [закрыто]


10

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

  • Entity Framework имеет модельер
  • В RIA Services есть мастер (ы) DomainService
  • У рабочего процесса есть весь конструктор рабочих процессов, что-то вроде этого (я не знаю, на самом деле не использовал его)

Есть еще кое-что, но я думаю, вы поняли идею. Там много дизайнерских инструментов. Используя некоторые из них, я обнаружил, что:

Они усложняют дела за пределами предписанных случаев использования

(т.е. все технические демонстрационные видео)

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

В итоге получается, что мне приходится бороться с инструментом или бороться с его выходом настолько, чтобы я мог сделать все сам без него - и у меня было гораздо более глубокое понимание того, что происходит. Я нахожу это особенно бесит дизайнер 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 напрямую. Как только вы поймете, что делаете, конечно, быстрее отредактировать разметку напрямую. Вспоминая EF v1.0,

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

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


2

как обычно, это зависит

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


1

То же самое здесь, без инструмента дизайна.

Я разрабатываю базу данных ERD на бумаге и пишу средство развертывания, которое выдает операторы «создать таблицу», чтобы я мог стереть и восстановить по желанию. Также помогает для управления версиями базы данных.

Я считаю, что бумага 11x17 (A3) может быть отличным местом для проектирования очень сложных систем. Получить хороший ластик и карандаши (я предпочитаю Staedtler ).


1

С точки зрения поставщика, все эти необычные дизайнерские инструменты, похоже, служат цели, аналогичной дисконтным / бесплатным студенческим лицензиям. Идея состоит в том, чтобы позволить вам создать что-то с минимальными усилиями и затратами. Как только вы инвестируете, они держат пари, что вы научитесь расширять свои навыки с помощью их инструментов, а не изучать чужие.

Это не значит, что инструменты не имеют законного продуктивного использования. Он должен быть ценным для изучения сгенерированного кода и узнать от него. К сожалению, как заметил Кен Хендерсон, код часто не читается и не является тем, который вы хотите использовать в качестве шаблона для будущей работы. Мне вспоминаются несколько разделов в Программирование служб WCF , где автор объясняет, как писать код вручную или генерировать его в Visual Studio. Неизбежно, сгенерированная опция требует дополнительного раздела для удаления постороннего кода.


0

Инструменты дизайнера действительно повышают производительность?

Они могут до тех пор, пока ваш проект прост и не слишком сложен для них. По моему опыту, вы попали в стену, как только вы пытаетесь реализовать / решить реальную проблему мира.

Они забавные убийцы?

WF (рабочий процесс) и WPF, где весело, но и убийственно, когда VS 2008 рушится каждые 30 минут.

«Сообщество» на самом деле просит больше дизайнерских инструментов, или поставщики просто думают, что мы?

Многие из инструментов, выпущенных MS в последнее время, кажутся отчаянными попытками удержать разработчиков. Битва сейчас идет на рынке смартфонов. Кто победит в сердце разработчиков, MS, Google или Apple?


0

Так было всегда, даже в те времена, когда мы привыкли различать разработчиков, которые знали, как нажимать на мастера, и разработчиков, которые знали, какой код генерировали мастера, и могли модифицировать его для крайних случаев.

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.