Читаем Собор и Базар полностью

Изучая работу Линуса и формируя мою собственную теорию о том, почему Linux имеет такой успех, я решил проверить свои измышления на моем новом, значительно менее сложном проекте. Сначала я реорганизовал и упростил popclient. Реализация Карла Харриса была неплохой, однако много С – программистов находило в ней массу сложных и ненужных вещей. Код считался центральной частью, а структуры данных были просто поддержкой кода. В результате код был хорош, но дизайн структур данных по высоким стандартам хаккера, программирующего на LISP'e, был по меньшей мере ужасным.

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

В течение первого месяца, я просто следовал дизайну Карла Харриса. Первым изменением, которое я сделал стала поддержка IMAP-протокола. Я реализовал это, реорганизовав машинные протоколы в общий драйвер и три таблицы методов (для POP2, POP3 и IMAP). Это и предыдущие изменения продемонстрировали общий принцип, который следует помнить хорошему программисту, особенно тем кто пользуется С – подобными языками:

9. Хорошие структуры данных и плохой код работают несколько лучше, чем хороший код и плохие данные.

Брукс Глава 9: "Если вы покажете мне код и скроете структуры данных, я ничего не пойму в вашей программе. Однако, если вы покажете мне структуры данных, код скорее всего не понадобится. Он будет очевиден. " Прошло шесть месяцев, и я начал подумывать об изменении имени – это был уже не просто popclient. Однако, я колебался,потому что в дизайне не было ничего принципиально нового. Для уникальности моей версии popclient'a еще очень многого не хватало.

Все значительно изменилось, когда fetchmail научился направлять почту в SMTP порт. Наступил день, когда я пришел к этому. Я уже говорил, что я решил использовать этот проект для проверки моей теории о том, что действия Линуса Торвальдса были правильными. Вы спросите, как я делал это? Я использовал для этого следующие способы:

1 – Я часто выпускал релизы(не реже чем каждые 10 дней, а во время периодов интенсивной разработки каждый день.)

2 – Я увеличил список бета тестеров, добавив к нему каждого, кто контактировал со мной на тему fetchmail'a.

3 – Каждый раз когда я делал релиз, я рассылал обЪявления бета-тестерам, приглашая людей активно сотрудничать.

4 – Я слушал своих бета-тестеров и поддерживал с ними обратную связь.

Эффект от этих простых действий был незамедлительным. С самого начала проекта я получал отчеты об ошибках, за которые разработчиков следовало бы убить. Часто к этим отчетам прилагались элегантные решения. Я получал критику, я получал интересную почту, я получал остроумные решения. Вот к чему это привело:

10. Если вы относитесь к вашим бета-тестерам как к самому ценному ресурсу, очень скоро они станут вашим самым ценным ресурсом.

Очень интересно было наблюдать за увеличением списка бета-тестеров – друзей feetchmail'a. На время написания в нем было 249 членов, и каждую неделю к ним добавлялись два-три человека.

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

6. Popclient превращается в Fetchmail.

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

Размышляя об SMTP forwarding, я понял, что popclient может делать очень много вещей. Я разработал транспортного почтового агента (mail transport agent) и агента локальной доставки (local delivery agent). Используя SMTP forwarding, от MDA можно было избавиться совсем и использовать чистый MTA, доставляя почту другим программам примерно так же, как это делает sendmail.

Зачем нужна вся эта путаница с конфигурированием агента почтовой доставки или с установлением на почтовый ящик lock-and-append, если 25-ый порт почти наверняка находится на каждой платформе с поддержкой TCP/IP?

Отсюда можно извлечь несколько уроков. Во-первых идея об SMTP-forwarding была главным вознаграждением, которое я получил за то, что пытался воспроизвести методы Линуса. Пользователи подкинули мне эту идею и все, что мне оставалось сделать – это понять выводы.

11. Иногда использовать идеи пользователей лучше, чем использовать свои идеи.

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

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

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

• Захватывающая история от первого лица – ученого, который решил превратиться в киборга, чтобы победить неизлечимую болезнь, поразившую его ЦНС.• Реальный опыт использования самых последних достижений робототехники, ИИ и хирургии в создании получеловека-полуробота.• Описание эксперимента, который способен изменить будущее смертельно больных людей.В 2017 году американскому ученому-робототехнику Питеру Скотту-Моргану диагностировали боковой амиотрофический склероз – болезнь, которую врачи признают неизлечимой (этот недуг в свое время разрушил нервные клетки Стивена Хокинга). Но Скотт-Морган не сдался. Он использовал обширные знания, опыт и новейшие технологии, чтобы заменить часть пострадавших функций своего организма электроникой. Затем ученый решил переместить свой аватар в компьютер с помощью искусственного интеллекта и стать Питером 2.0, чтобы не просто победить болезнь, но получить шанс на вечную жизнь в машине. Эта книга описывает эксперимент, похожий на сюжет научно-фантастического фильма, однако совершенно реальный. Благодаря стараниям ученого люди с инвалидностью получают шанс выжить. Эксперимент Питера 2.0 способен изменить будущее.Цитаты«Была зима. Мы отправились в погоню за северным сиянием и забрались уже очень далеко к северу от полярного круга, где я и отмокал в тот день в горячей ванне. Потом встал – вода была еще теплой – и вытер полотенцем все тело выше колен. Поднял левую ногу, стряхнул капли, как собака, которая наступила во что-то неприятное, и поставил ее на коврик. Как следует отряхнуть правую ногу я не смог. Она лишь слегка колыхалась».«Каждому человеку от рождения дано право изменить мир. К этому выводу я пришел к своему шестнадцатому дню рождения, и мне нравилось думать, что добиться перемен можно, только нарушая правила».«Месяца четыре, если не ошибаюсь, я провел в стадии отрицания, прежде чем принять, наконец, для себя новую истину: вероятно, это не просто период. Вероятно, я сейчас не просто экспериментирую с новым стилем жизни, подразумевающим ограниченные возможности, чтобы потом вернуться к привычному, как у всех, темпу передвижения. Вероятно, теперь я инвалид».Для кого:Для тех, кто интересуется последними достижениями в области ИИ, хирургии и робототехники.

Питер Скотт-Морган

Зарубежная компьютерная, околокомпьютерная литература
Внедрение SAP R/3: Руководство для менеджеров и инженеров
Внедрение SAP R/3: Руководство для менеджеров и инженеров

Это практическое всеобъемлющие руководство было написано специально для тех, кто выбирает стратегию внедрения SAP в организации. «Внедрение SAP R/3: руководство для менеджеров и инженеров» объясняет, что означает понятие «эпоха ERP», почему информация является одним из ключевых ресурсов предприятия, как SAP способствует росту конкурентоспособности компании, а также преимущества методологии ASAP в планировании и использовании ресурсов при внедрении SAP. Подход к ERP-системам, используемый в данной книге, будет крайне полезен менеджерам и специалистам, которым необходимо представить высшему руководству своих компаний основания для внедрения SAP; кроме того, данная книга будет весьма полезной тем, кто занимается проектами SAP или планирует такой проект в ближайшем будущем. Для тех читателей, кто непосредственно занят в проектах SAP, эта книга станет надежным руководством и поможет внести существенный вклад в развитие проекта.

Вивек Кале

Зарубежная компьютерная, околокомпьютерная литература / Прочая компьютерная литература / Книги по IT