Вечные истины и современный код: проверяем аксиомы «Жемчужин программирования»

«Жемчужинам программирования» Джона Бентли в прошлом году исполнилось 40 лет. Мы решили спросить у нашей команды, насколько актуальны цитаты из книги. И поняли, почему её называют исповедью разработчиков и нестареющей классикой.

Вечные истины и современный код: проверяем аксиомы «Жемчужин программирования»

«Константа для одного человека — это переменная для другого»

Сьюзан Герхарт, специалист по информатике

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

Виктория Инешина, фронтенд-разработчик: «То, что для одного человека постоянно и неизменно, может быть не чётко однозначно для другого. Поэтому да, на мой взгляд, эта цитата актуальна и универсальна».

Карина Борисова, тестировщик: «Я думаю, что это факт и он останется фактом».

Анна Майорова, UX-дизанер: «В определённом смысле я согласна с данным высказыванием. Но константа не может быть переменной, так как константа не меняется ни для кого, а переменные могут изменяться в зависимости от любых факторов. Бывает так, что то, что для одного человека неизменно (константа), для другого может подвергаться изменениям под действием любых факторов (переменная)».

Валерия Павлова, UX/UI-дизайнер: «Для IT это актуально, но не всегда актуально для конкретной команды. Но это очень актуально в общем, с точки зрения психологии».

«Всегда начинай с самой сложной части. Если сложное реализовать невозможно, то зачем тратить время на простое? Закончив со сложной частью, ты уже почти победил. Всегда начинай с простой части. То, что ты поначалу считаешь простым, часто оказывается сложным. Закончив с простым, можно сосредоточить все усилия на сложном»

Эл Шапира, Bell Labs

Павел Головкин, технический руководитель проектов: «Это правда-правда. И это должно быть в головах у тимлидов, проектных менеджеров навсегда».

Карина Борисова, тестировщик: «Первая часть подойдёт одним людям, вторая — другим. Она актуальна, потому что она для всех».

Салем Аджамиех, C#-разработчик: «Мне она понравилась. Я в жизни так делаю. Простая часть окажется в итоге сложнее».

Анна Майорова, UX-дизанер: «Тут я не согласна. Потому что самое сложное — это сделать первый шаг. Многие фокусируются на целой лестнице, но мало кто фокусируется на маленькой ступеньке, с которой нужно начинать».

Валерия Павлова, UX/UI-дизайнер: «Соглашусь, декомпозиция самой сложной части на простые всегда помогает более-менее “сравнять” их по сложности, а дальше уже выбор зависит от процессов и приоритетов».

Максим Карпов, C#-разработчик: «Начав с самой сложной части, разбей ее на простые части. И проблема выбора уйдет. P.S: Выбирать из простых задач можно по алфавиту».

«На первые 90% кода тратится 90% времени разработки. На оставшиеся 10% кода тратится ещё 90% времени разработки»

Том Кэргилл, Bell Labs

Виктория Инешина, фронтенд-разработчик: «И такое бывает, да. Что-то кажущееся незначительным может вызвать наибольшее количество проблем».

Карина Борисова, тестировщик: «Я не разработчик, но в тестировании на самом деле то же самое: на большую часть тратится много ресурсов, потом остаётся какая-то мелочь — и ты сидишь столько же времени, сколько сидел с основной массой».

Салем Аджамиех, C#-разработчик: «Это факт. Так не только в программировании, но и в жизни вообще».

Анна Майорова, UX-дизанер: «Я раньше кодила. Тут, скорее, тратится на оставшиеся 10% кода 200% времени разработки, потому что ты что-то захочешь переделать, что-то тебе не понравится. И для дизайна цитата актуальна, потому что в процессе ты захочешь сделать еще пару вариантов. Процесс мышления может быть долгим. Даже может быть такое, что ответ приснится (у меня так как раз было)».

Валерия Павлова, UX/UI-дизайнер: «С этим согласна, потому что оставшиеся 10% — это всегда доработки, правки, а они, как известно, занимают очень много времени».

«Если у тебя слишком много особых случаев, то ты делаешь что-то не так» Крейг Зеруни, Computer FX Ltd.

Крейг Зеруни, Computer FX Ltd.

Андрей Мелешин, DevOps-инженер: «100%».

Павел Головкин, технический руководитель проектов: «Абсолютно согласен. Если слишком много особых случае, значит, что-то не так сделали. Идите всё передумывать».

Карина Борисова, тестировщик: «Я бы не сказала, что с фразой полностью согласна. Если у тебя слишком много особых случаев, то смотри шире. Если каждый раз что-то не так, возможно, дело не в тебе, а в процессах».

Салем Аджамиех, C#-разработчик: «Это да. Я лично считаю, что если что-то не так, ты всегда можешь что-то сделать. Я люблю всегда брать ответственность на себя».

Валерия Павлова, UX/UI-дизайнер: «Не совсем согласна. Не всегда все процессы зависят от тебя. Процессы выстраиваются в команде. И это уже коллективная ответственность, а не только твоя».

Анна Майорова, UX-дизанер: «Иногда это знак продуктивности, творческой деятельности, воображения. Важно не количество особых случаев, а их итог».

«Двадцать процентов форм ввода, заполняемых людьми, содержат плохие данные»

Виктор Высотский, Bell Labs

Виктория Инешина, фронтенд-разработчик: «Люди такие. Бывает».

Карина Борисова, тестировщик: «Даже может быть больше. Есть человеческий фактор и непредсказуемость человеческого поведения. Это очень актуально, да».

Анна Майорова, UX-дизанер: «Согласна, потому что мы не машины. Людям свойственно ошибаться. Да даже искусственный интеллект ошибается. Роботы вон ходить пока не могут, падают периодически (восстание машин еще не скоро)».

Валерия Павлова, UX/UI-дизайнер: «Да, тут я согласна. Не все всегда стараются качественно заполнить данные».

Если хотите услышать больше историй об IT, подписывайтесь на наш блог в Telegram.

Начать дискуссию