Чтение онлайн

на главную - закладки

Жанры

Человеческий фактор в программировании
Шрифт:

Остальные детали этого подхода можно найти у Роланда Рако (Roland Racko), Меилира Пейдж-Джонса (Meilir Page-Jones) и других настоящих ОО-гуру. В своих статьях и книгах они показывают, что даже во всей своей красе 00 не обязательно должно быть трудным — даже для тех заржавелых, старых умов, которые до основания заражены структурными методами.

Субъективное программирование

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

рано или поздно вы обязательно сориентируетесь. Хороших источников знаний и советов по объектно-ориентированным методам предостаточно.

Если в глубине души вы программист, то, следуя своим наклонностям, вы захотите написать кусок кода. Использование правильного языка может быть очень полезным. В качестве такого языка можно выбрать почти любой, но, вероятно, больше всего для этого подходит Eiffel — язык, который заслуживает большей известности и большего коммерческого успеха. Хотя он и не является самым лучшим языком из тех, что создавались для разработки программного обеспечения, этот язык является виртуальной противоположностью намного более известного языка С++. Eiffel помогает научиться думать и проектировать с помощью объектов, тогда как С++ помогает заставить себя думать, что вы изменились, даже если вы выдаете все тот же старый гуталин. В отличие от С++, Eiffel — это четкий и компактный язык. С помощью Eiffel легко программировать хорошо и трудно программировать плохо. Если бы Eiffel применяли больше производителей и на большем количестве платформ, этот язык мог бы выиграть за счет своей жизнеспособной и разнообразной среды визуальной разработки, а его инструменты поддерживали бы принятые методы и системы обозначений. Вероятно, собственный компилятор кода также был бы полезен. А еще языку не помешало бы, чтобы некоторые из его сторонников были менее жесткими. Smalltalk — больше, Java — это напиток дня, a Eiffel — это тот язык, который по-прежнему любят многие. (Je suis ton ami1, Bertrand.)

В качестве учебника по ОО для начинающих программистов я многие годы рекомендовал книгу, написанную человеком, который в конце концов сделал структурное проектирование доступным для обычных смертных. «What Every Programmer Should Know About Object-Oriented Design» (Что должен знать каждый программист об объектно-ориентированном проектировании) (Page-Jones, 1995 [55]) была не первой книгой на эту тему, но никогда не поздно писать о сложных предметах ясно и понятно. (Сейчас ее заменила другая, не менее полезная книга того же автора: «Fundamentals of Object-Oriented Design» (Основы объектно-ориентированного проектирования) (Page-Jones, 2000 [56])).

Так что сориентируйтесь и вы.

Из журнала Software Development, том 3, № 6, июнь 1995 г.

25

Шито белыми нитками

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

Согласно современным мифам об объектной технологии, бесшовное про-эктирование обеспечивает создание более качественного программного эбеспечения с помощью более простого процесса. Каким образом? На про-гяжении всего процесса разработки применяется один общий и согласованный набор компонентов — понятий предметной области. Понятия представлены согласно их трактовке реальными пользователями, обитающими в сказочной стране, называемой «реальным миром». На основе гаких понятий создаются модели, с помощью которых разработчики анализируют и решают свои задачи. Таким

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

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

Большая часть моей работы связана с облегчением участи пользователей, ограждением их от страданий и унижений, приносимых плохим программным обеспечением с непостижимыми инопланетными интерфейсами. Пользователи вкушают плоды, которые может дать бесшовное проектирование. В свою очередь, компоненты предметной области, которые заполняют классы и объекты программного обеспечения, могут быть отражены в пользовательских интерфейсах, организованных на основе тех же понятий. Это удивительно, но продукт бесшовной разработки, ориентированный с помощью объектов из мира пользователя, является продуктом, говорящим на его языке. Такой продукт представляет собой узнаваемое продолжение мира, в котором работает пользователь. В нем объединены как раз те предметы, которые пользователь воспринимает или применяет одновременно (см. главы 24 и 28).

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

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

Другие проектные группы, несмотря на свое сильное стремление улучшить юзабилити программного обеспечения, могут испытывать трудности из-за применения неадекватных методов. Например, они могут уповать на тестирование с целью выявления изъянов в юзабилити, а не на хорошие методы проектирования, позволяющие избежать таких изъянов. Они готовы расходовать средства на юзабилити, но не знают, на что именно их следует потратить. В некоторых отношениях таким группам помочь легче всего — они уже стремятся идти в этом направлении и готовы тратить на это свои ресурсы. Им нужно только показать дорогу. Как только они поймут, как применять эффективные модели, они смогут достичь чрезвычайных успехов с точки зрения юзабилити конечных продуктов.

Время инструментов

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

Поделиться:
Популярные книги

На границе империй. Том 9. Часть 4

INDIGO
17. Фортуна дама переменчивая
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 9. Часть 4

Истребитель. Ас из будущего

Корчевский Юрий Григорьевич
Фантастика:
боевая фантастика
попаданцы
альтернативная история
5.25
рейтинг книги
Истребитель. Ас из будущего

Ты нас предал

Безрукова Елена
1. Измены. Кантемировы
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Ты нас предал

Измена. Избранная для дракона

Солт Елена
Любовные романы:
любовно-фантастические романы
3.40
рейтинг книги
Измена. Избранная для дракона

Штуцер и тесак

Дроздов Анатолий Федорович
1. Штуцер и тесак
Фантастика:
боевая фантастика
альтернативная история
8.78
рейтинг книги
Штуцер и тесак

Кодекс Охотника. Книга VIII

Винокуров Юрий
8. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Охотника. Книга VIII

Жребий некроманта 2

Решетов Евгений Валерьевич
2. Жребий некроманта
Фантастика:
боевая фантастика
6.87
рейтинг книги
Жребий некроманта 2

Жена неверного маршала, или Пиццерия попаданки

Удалова Юлия
Любовные романы:
любовно-фантастические романы
4.25
рейтинг книги
Жена неверного маршала, или Пиццерия попаданки

Князь Мещерский

Дроздов Анатолий Федорович
3. Зауряд-врач
Фантастика:
альтернативная история
8.35
рейтинг книги
Князь Мещерский

Надуй щеки!

Вишневский Сергей Викторович
1. Чеболь за партой
Фантастика:
попаданцы
дорама
5.00
рейтинг книги
Надуй щеки!

Морской волк. 1-я Трилогия

Савин Владислав
1. Морской волк
Фантастика:
альтернативная история
8.71
рейтинг книги
Морской волк. 1-я Трилогия

Возвышение Меркурия. Книга 7

Кронос Александр
7. Меркурий
Фантастика:
героическая фантастика
попаданцы
аниме
5.00
рейтинг книги
Возвышение Меркурия. Книга 7

Возвышение Меркурия. Книга 5

Кронос Александр
5. Меркурий
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Возвышение Меркурия. Книга 5

Барону наплевать на правила

Ренгач Евгений
7. Закон сильного
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Барону наплевать на правила