Читаем Кодеры за работой. Размышления о ремесле программиста полностью

Сейбел: Так вот проблема современного разработчика - выбрать одно из 14 решений. Как вы делаете выбор?

Фицпатрик: Запускаем поиск в Google и смотрим, какой из них попадает в начало списка. Какой больше всего нравится людям? И нужно знать людей. Я стал значительно больше участвовать в жизни сообщества открытого исходного кода, посещать все эти конференции, поскольку там я встречаюсь с людьми и понимаю, кто пользуется большим уважением, кто действительно крут.

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

Сейбел: Можно ли быстро выяснить, подходит тебе что-то или нет?

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

Сейбел: А как насчет инструментов, которыми вы сейчас пользуетесь, - по-прежнему применяете Emacs?

Фицпатрик: Да, я все еще использую Emacs. Правда, не знаю его так хорошо, как хотел бы. Я знаю все горячие клавиши, но сам не настраиваю его. Пользуюсь чужими настройками и почти могу прочесть их. Иногда мне это надоедает, и я думаю: “Пора бы написать кое-что на Elisp[33] для привязки этой штуки к горячей клавише”, - но никогда этого не делаю.

Стив Йегг (Steve Yegge) работает над проектом, который в основном заменил бы язык Elisp на JavaScript. Жду, пока он закончит, чтобы не учить еще один язык. Пишу все эти штуки на JavaScript, но не рассматриваю его как язык. Это язык для броузеров. В Google я много чего писал на JavaScript и потом встраивал это в Java и C++. Я понял, что JavaScript для этого отлично подходит.

Сейбел: Есть инструменты, которыми вы регулярно пользуетесь, при том что терпеть их не можете? Кроме ваших настольных приложений.

Фицпатрик: Да, все настольные приложения. У меня их куча. Эти броузеры все время виснут, падают и занимают кучу памяти. Вся моя операционная система виснет. Коллеги, видя, как я работаю в Emacs, пытаются убедить меня, что Eclipse или IntelliJ все это делают у них автоматически. Раз в полгода я пробую то или другое. Но эти чертовы штуки просто крутятся там, съедая память и падая в процессе ввода (наверно, не справляются с тем, что я набираю). Ладно, фоновая подсветка синтаксиса или компиляция в другом потоке. Но зачем при этом блокировать ввод с клавиатуры? Что ж, снова попробую то или другое через полгода. И я счастлив, что не обязан использовать.все это. Мне и с Emacs неплохо.

Моя кривая обучения выглядит так: я быстро изучаю что-нибудь, пока не смогу работать с этим достаточно быстро и качественно. Обычно это где-то 80-90%, тогда я работаю весьма продуктивно, мне не приходится постоянно что-то искать, вот и отлично. После этого я продвигаюсь уже медленнее. И только если мне что-то очень уж приглянулось, говорю себе: “Пора поглубже изучить документацию этого языка - мануалы - и обшарить все потайные углы и щели”.

Сейбел: Насколько это разумно сегодня? Ведь столько вещей, которые можно изучить. Можно бесконечно изучать работу со своим редактором, но сколько программ вы сумеете написать при этом?

Фицпатрик: Да, но для меня такие усилия всегда окупаются (по крайней мере, что касается редакторов). Когда я изучаю что-то, это окупается в течение недели, может быть двух. Если я пишу дурацкий скрипт командной оболочки или маленький скрипт на Perl, или еще что-то, что автоматизирует мою жизнь, это всегда окупается.

Сейбел: Значит, вы никогда не попадались в ловушку бесконечного усовершенствования инструментов?

Фицпатрик: Нет. Я все это делаю с какой-нибудь целью. Да, я знаю тех, кто постоянно работает над своими инструментами, никогда ничего не доводя до конца. И я могу двинуться в этом направлении, но недалеко.

Сейбел: Каков, по-вашему, самый важный навык для программиста?

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

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

100 мифов о Берии. Вдохновитель репрессий или талантливый организатор? 1917-1941
100 мифов о Берии. Вдохновитель репрессий или талантливый организатор? 1917-1941

Само имя — БЕРИЯ — до сих пор воспринимается в общественном сознании России как особый символ-синоним жестокого, кровавого монстра, только и способного что на самые злодейские преступления. Все убеждены в том, что это был только кровавый палач и злобный интриган, нанесший колоссальный ущерб СССР. Но так ли это? Насколько обоснованна такая, фактически монопольно господствующая в общественном сознании точка зрения? Как сложился столь негативный образ человека, который всю свою сознательную жизнь посвятил созданию и укреплению СССР, результатами деятельности которого Россия пользуется до сих пор?Ответы на эти и многие другие вопросы, связанные с жизнью и деятельностью Лаврентия Павловича Берии, читатели найдут в состоящем из двух книг новом проекте известного историка Арсена Мартиросяна — «100 мифов о Берии».В первой книге охватывается период жизни и деятельности Л.П. Берии с 1917 по 1941 год, во второй книге «От славы к проклятиям» — с 22 июня 1941 года по 26 июня 1953 года.

Арсен Беникович Мартиросян

Биографии и Мемуары / Политика / Образование и наука / Документальное
Клуб банкиров
Клуб банкиров

Дэвид Рокфеллер — один из крупнейших политических и финансовых деятелей XX века, известный американский банкир, глава дома Рокфеллеров. Внук нефтяного магната и первого в истории миллиардера Джона Д. Рокфеллера, основателя Стандарт Ойл.Рокфеллер известен как один из первых и наиболее влиятельных идеологов глобализации и неоконсерватизма, основатель знаменитого Бильдербергского клуба. На одном из заседаний Бильдербергского клуба он сказал: «В наше время мир готов шагать в сторону мирового правительства. Наднациональный суверенитет интеллектуальной элиты и мировых банкиров, несомненно, предпочтительнее национального самоопределения, практиковавшегося в былые столетия».В своей книге Д. Рокфеллер рассказывает, как создавался этот «суверенитет интеллектуальной элиты и мировых банкиров», как распространялось влияние финансовой олигархии в мире: в Европе, в Азии, в Африке и Латинской Америке. Особое внимание уделяется проникновению мировых банков в Россию, которое началось еще в брежневскую эпоху; приводятся тексты секретных переговоров Д. Рокфеллера с Брежневым, Косыгиным и другими советскими лидерами.

Дэвид Рокфеллер

Биографии и Мемуары / История / Образование и наука / Документальное