2009-04-28 6 views
2

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

ответ

8

«Сделайте все как можно проще, но не проще». - Альберт Эйнштейн

«Совершенство достигается, когда нет ничего, что можно было добавить, но когда ничего не осталось, чтобы отнять». - Антуан де Сент-Экзюпери


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

Попробуйте немного подумать о вещах. Вместо

Сколько вещей я могу добавить до того, как это раздуется?

попробовать

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

1

Вот хороший набор слайдов из презентации на тему: Rescue Princess 2.0.

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

0

1: Что делать пользователям нужно, и хотите, и

2: Какие функции будут у вас есть время, чтобы осуществить?

Ваш вопрос довольно общий. Какие функции представляют собой раздувание? Это зависит от того, пишете ли вы антивирусный сканер, ОС или текстовый процессор.

0

Между «хорошим» и «слишком большим» нет четкого барьера. Однако это зависит от того, что вы хотите сделать.

Если вы разрабатываете SDK, я рекомендую разделить его реализацию в нескольких небольших библиотек (а не только один большой SDL библиотеки, есть SDL ядро, SDL_Mixer, SDL_Image и т.д.)

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

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

0

Это не точная цитата, но идея была что-то вроде этого:

Часть программного обеспечения является совершенным не тогда, когда нечего больше добавить, но когда есть больше ничего, чтобы удалить.

По сути, чем проще и точнее программное обеспечение, тем лучше.

Чтобы получить примеры хорошего дизайна программного обеспечения, взгляните на популярные сегодня программы. Приложения Google будут приятным местом для просмотра. Возможно, Skype. Хех, даже StackOverflow. :)

Если вы хотите устрашать, перейдите в мир САПР. Посмотрите, например, Blender. Это бесплатное программное обеспечение для 3D-дизайнеров. Хороший инструмент, мне говорят, но пользовательский интерфейс имеет так много кнопок/панелей/меню/и т. Д. что он заставляет ребенка кроликов плакать. К сожалению, я не могу сказать, будет ли это хорошим примером «плохого» пользовательского интерфейса. 3D-проектирование очень сложный процесс, и все эти инструменты, вероятно, находятся в нужном месте. Но это определенно запугивает. :)

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

1

Прямой ответ на ваш вопрос: практически любой продукт Microsoft. Я показываю свои предубеждения здесь, но у Microsoft есть сильная тенденция сохранять свою кодовую базу и добавлять функции поверх функций до тех пор, пока оригинальная функциональность приложения почти не потеряется под насыпи нарисованной crud.

Посмотрите, например, на MS Word; в то время как вы все еще можете просто открыть его и начать печатать, не дай бог, если вы хотите перенумеровать раздел своего документа, оставив остальных в покое. Небеса запрещают, если вы хотите создать Оглавление, которое включает ссылки на Приложение. Этот материал является тем, что является основой для текстовых процессоров, и Word поддерживает его, он просто поддерживает его таким образом, что вы не можете его выполнить без руководства, нескольких чашек кофе и бинтов, чтобы остановить кровотечение, голову на столе.

Microsoft не одинока в этом; эта вещь имеет тенденцию происходить все время, со всеми видами продуктов; но они являются одними из самых жестоких преступников, которые я нашел.

0

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

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

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

0

Разработка широкомасштабной подключаемой системы, чтобы вы могли добавлять и вынимать вещи в любое время. Задача решена. Если бы это было так просто, как написать код спагетти. ;)

Смежные вопросы