Скачать 360.39 Kb.
|
Почаще изобретайте колесоДжейсон П. Сэйдж (Jason P. Sage) Пользуйтесь тем, что уже существует – глупо изобретать колесо заново... Приходилось вам слышать подобный совет? Наверняка. Каждый разработчик или студент часто слышит такие замечания. Но почему? Почему на изобретение колеса заново смотрят так косо? Потому что существующий код, как правило, работает. Он уже прошел какой-то контроль качества и строгое тестирование и успешно применяется. Кроме того, время и силы, потраченные на изобретение старого, едва ли окупятся в той же мере, как использование существующего продукта или кода. Стоит ли браться за изобретение колеса? Зачем? В каких случаях? Вероятно, вы знакомы с публикациями о паттернах в разработке программ или книгами, посвященными проектированию программного обеспечения. Какой бы замечательной ни была содержащаяся в них информация, они часто вгоняют в сон. Использование готового кода в сравнении с разработкой собственного приложения с нуля, тестированием его, порчей, починкой и постоянным совершенствованием – то же, что просмотр фильма о парусном спорте по сравнению с самостоятельным хождением под парусом. Изобретение колеса – это не просто упражнение в правильном размещении конструкций кода: оно связано с получением глубокого знания внутреннего устройства различных существующих компонент. Вы знаете, как работают администраторы памяти бля, кто это?? :-) распределители памяти что ли? ? Виртуальные страницы? Можете сами их реализовать? А как насчет двунаправленных связных списков? Классов динамических массивов? Клиентов ODBC? Можете написать графический интерфейс пользователя, который работает так же, как Большинство разработчиков никогда не создавали сами такие базовые программные реализации и потому неглубоко разбираются в их работе. В результате любое программное обеспечение такого типа рассматривается как таинственный черный ящик, который каким-то образом работает. Если вы видите только поверхность воды, этого недостаточно для понимания опасностей, таящихся в ее глубине. Поверхностное знание решений, применяемых в разработке программного обеспечения, ограничит ваши возможности создавать выдающиеся продукты. Если, изобретая колесо, вы столкнетесь с проблемами, это лучше, чем если вы добьетесь успеха с первого раза. Уроки, получаемые при работе методом проб и ошибок, имеют эмоциональную составляющую, которую простое чтение технической книги не способно создать! Запоминать факты и читать умные книги важно, но в становлении выдающегося программиста приобретение опыта имеет такое же значение, как накопление фактов. Изобретение колеса так же важно для образования программиста, как поднятие тяжестей для культуриста. Очень хорошая глава, не считая администраторов памяти :-) Не поддавайтесь соблазнам паттерна SingletonСэм Сааристе (Sam Saariste) Паттерн Singleton может решить многие ваши проблемы. Вы знаете, что вам нужен единственный экземпляр. Вам гарантируется, что этот экземпляр будет инициализирован перед использованием. Конструкция оказывается простой благодаря наличию глобальной точки доступа. Все прекрасно. Ну что может не понравиться в этом классическом паттерне проектирования? Если подумать, то весьма многое. Как ни соблазнительно их использование, но чаще всего синглтоны, как показывает опыт, приносят больше вреда, чем пользы. Они затрудняют тестирование и вредят сопровождению. К сожалению, сведения об этом не так широко известны, как следовало бы, и синглтоны сохраняют свое обаяние для множества программистов. Хотя есть основания задуматься, так ли они хороши:
Избавление от синглтонов может стать в окончательном итоге сложной задачей:
Порядок неявной зачистки синглтонов при завершении программы не определен. Это может вызвать проблемы в приложениях, содержащих синглтоны с взаимными зависимостями. При завершении таких приложений одни синглтоны могут обращаться к другим, которые уже уничтожены. Ряд этих недостатков можно преодолеть с помощью специальных механизмов. Однако за это приходится расплачиваться усложнением кода, чего можно избежать при выборе альтернативных конструкций. Поэтому ограничьте использование паттерна Singleton теми классами, для которых действительно не должно никогда создаваться больше одного экземпляра. Не пользуйтесь глобальной точкой входа в синглтон в произвольном коде. Прямое обращение к синглтону должно происходить лишь в нескольких хорошо определенных местах, откуда оно может передаваться другому коду через его интерфейс. Этот другой код ни о чем не знает, поэтому он не зависит от того, как реализован интерфейс – через синглтон или какой-то другой класс. В итоге разрушаются связи, мешающие модульному тестированию, и облегчается сопровождение. Так что надеюсь, что когда вам в следующий раз придет в голову реализовать или использовать синглтон, вы дважды подумаете, стоит ли это делать. |
Программа по формированию навыков безопасного поведения на дорогах... Разработать обучающую программу, выдающую структурированную и наглядную информацию о работе клавиатуры, буфера клавиатуры, обработчиков... | Литература: Детские народные подвижные игры: Кн для воспитателей... Игру начинает первая пара: кот ловит мышь, а та бегает вокруг играющих. В опасный момент мышь может спрятаться в коридоре, образованном... | ||
Программа по формированию навыков безопасного поведения на дорогах... СанПиН 4 178-02). В 2009-2010 учебном году кабинет был оснащен 10 новыми ученическими компьютерами (монитор, системный блок, мышь,... | Курсовой проект по дисциплине «Системы программирования и операционные системы» Резидентный обработчик прерываний от клавиатуры с подключением до системного обработчика | ||
История Системные требования: Pentium 90,Win 95/NT, 16 Мб озу, монитор с разрешением 640х480, HiColor (не менее 32 тыс цветов), 4х cd-rom,... | Программа по формированию навыков безопасного поведения на дорогах... Цель урока: освоение клавиатуры — важнейшего устройства ввода информации в память компьютера | ||
Программа по формированию навыков безопасного поведения на дорогах... С помощью чего проще набрать текст? Двухкнопочной мыши или 102 клавишной клавиатуры? | Программа по формированию навыков безопасного поведения на дорогах... Цель: познакомить учащихся с различными устройствами ввода информации в компьютер. Изучить назначения клавиш клавиатуры | ||
Компьютер (арм учителя: монитор+системный блок+клавиатура+мышь) Начальный курс географии 7 кл. География. Наш дом Земля. Материки, океаны, народы и страны | Музыка Подробная информация о более чем 100 музыкальных инструментов. История возникновения инструментов, возможность прослушать каждый... | ||
Ландер Кени «О чем думает Стив»» Гений цифровой эры, придумавший компьютерную мышь, айфон и многое другое, без чего наша жизнь была бы совсем другой | Программа по формированию навыков безопасного поведения на дорогах... «Свидетель» уже знала о том, что владеет великим сценарием и хотела присвоить ему звание Лучшего Оригинального Сценария еще до того... | ||
В е д е н и е Кроме того, к компьютеру могут подключаться принтер для вывода на печать текстовой и графической информации; мышь —устройство, облегчающее... | Конспект занятия кружка «Компьютерный мир» 1 кл по теме «Манипулятор «мышь» Построение парами. Переход на площадку. Построение в шеренгу. В центре площадки ребята образуют круг и делятся на две команды | ||
Программа по формированию навыков безопасного поведения на дорогах... Продолжение темы Norton Utilities Программа Speed Disk. Программа WipeInfo и другие утилиты. Создание системной дискеты. Драйверы... | Тема урока: «Компьютер и его основные устройства». Тип урока Опорные понятия: Периферийные устройства: системный блок, монитор, принтер, сканер, клавиатура, мышь, аудио система |