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

Программист, проспавший большую часть последних десяти или двадцати лет, наверное, не знает о том, что такое объектно-ориентированное программирование. Остальные из нас уже сыты этими объектами по горло. Я испытываю некоторое сочувствие к этим ван Винклям[33] нашей отрасли, поскольку в 1986 году, когда я имел неосторожность вернуться в компьютерную индустрию, объектная технология уже была звездой, восходившей с головокружительной скоростью. А ведь за десять лет до этого, в пору моего последнего отсутствия в компьютерной области, объектно-ори-ентированное программирование было неизвестным хмурым карликом, скрытым в космосе непонятных компьютерных методов. Конечно, спустя десяток лет очень легко определять, какие тенденции проявлялись ранее.

Нельзя сказать, что объектно-ориентированный подход является особенно новым. Хотя некоторые авторы связывают провал структурных методов с возникновением объектно-ориентированных, на самом деле, структурное программирование и проектирование появилось почти одновременно с объектами, возникнув из одного первобытного болота неструктурных методов. Дейкстра (Dijkstra), Константин (Constantine), Кэй (Кауе), Даал (Dahl) и Сатерленд (Sutherland) — все эти люди работали параллельно в конце 60-х и начале 70-х годов, разрабатывая и распространяя основные понятия новых способов мышления о программах и программировании.

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

«Как же можно объект уподобить информационному кластеру или модулю с информационным сцеплением?», — может спросить дотошный студент.

«Послушайте, — отвечает нетерпеливый преподаватель, — я же сказал вам забыть обо всей этой старой структурной чепухе. Это не работало. И пока вы не очистите кору головного мозга от этих вещей, вы ничего не поймете». (Подразумевается, что преподаватель даже и не знает, о чем спрашивает студент, поэтому пусть студент закроет рот и слушает.)

Многие из педагогов и демагогов, которые в то время занимались 00, утверждали, что единственный путь к «объектной эффективности» — это отказ от старых способов. Нужно забыть все, что вы знаете (или думаете, что знаете) о разработке программного обеспечения, и изучить совершенно новую парадигму. Следовало начать все сначала — с чистой грифельной доски в голове.

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

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

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

Упаковка

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

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

Перейти на страницу:

Похожие книги

«1С. Управление небольшой фирмой 8.2». Управленческий учет в малом бизнесе
«1С. Управление небольшой фирмой 8.2». Управленческий учет в малом бизнесе

Описана новейшая версия программы «1С: Управление небольшой фирмой 8.2», которая сочетает в себе многофункциональность, простоту в освоении и достоинства современного интерфейса программ фирмы «1С». В этой конфигурации есть все необходимое для автоматизации оперативного и управленческого учета на предприятии малого бизнеса. В то же время программа не перегружена средствами учета, что очень важно для формирования оптимального соотношения между стоимостью и функциональностью.Изложение материала в книге построено с использованием большого количества примеров, часть из которых разобраны очень подробно. Надеемся, что эта книга станет надежным путеводителем для тех пользователей, которые только начинают знакомство с программой, а более опытные пользователи также найдут для себя важную и полезную информацию.Издание подготовлено при содействии компании «1С: Франчайзинг. БИЗНЕС-КЛУБ» – официального партнера фирмы «1С».

Николай Викторович Селищев

Маркетинг, PR
111 способов повысить продажи без увеличения затрат
111 способов повысить продажи без увеличения затрат

В любом бизнесе всегда можно сделать что-то еще для увеличения продаж, ведь ни одна компания не использует все возможные и подходящие ее специфике методы маркетинга. Например, средний магазин «Walmart» (крупнейшая сеть дисконт-супермаркетов в мире) использует порядка 500 способов (ошибки в нолях нет) привлечения клиентов и увеличения продаж. А чем вы хуже? «Под ногами» лежит больше денег, чем бизнес зарабатывает в данный момент. Нужно только наклониться, чтобы их поднять. Продажи компании можно легко увеличить относительно простыми и малозатратными или вовсе бесплатными способами. Именно такие способы приводятся в этой книге. Читайте и внедряйте новые для вас методы, иначе это сделают ваши конкуренты, а вы будете в роли догоняющих!

Айнур Сафин

Маркетинг, PR / Маркетинг, PR, реклама / Финансы и бизнес