Иногда короткая мысль может родить потрясающие идеи.

Я собрал несколько замечательных цитат.

Я использую их как вдохновение или девиз для некоторых статей.

Разработка программного обеспечения

В информатике есть только две сложные вещи: инвалидация кеша и именование вещей.

Фил Карлтон



Что такое имя? - Часть I: Квест
Мы все согласны: хорошее имя всегда является самым важным. Давай найдем их. medium.com





Сделайте незаконные государства непредставимыми.

Ярон Мински



Сначала упростите изменение (предупреждение: это может быть сложно), а затем внесите легкое изменение.

Кент Бек



Простые вещи должны быть простыми, сложные - возможными.

Алан Кей



Прежде чем программное обеспечение можно будет использовать повторно, оно должно быть пригодным для использования.

Ральф Джонсон

Простота - необходимое условие надежности.

Эдсгер В. Дейкстра

Запахи - это определенные структуры в коде, которые предполагают (иногда кричат) о возможности рефакторинга.

Мартин П. Фаулер



Как найти вонючие части вашего кода
Код плохо пахнет. Посмотрим, как изменить ароматы. medium.com



Объектное мышление фокусирует наше внимание на проблемном пространстве, а не на пространстве решения.

Дэвид Уэст

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

Марк Доннер

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

Р. Теннант

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

Алан Кей

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

Алан Купер

Концептуальная целостность - наиболее важный фактор при проектировании системы.

Фредерик П. Брукс

Подклассы не всегда должны разделять все характеристики своего родительского класса, но будут делать это с наследованием. Это может сделать дизайн программы менее гибким. Он также вводит возможность вызова методов для подклассов, которые не имеют смысла или вызывают ошибки, поскольку методы не применяются к подклассу.

Стив Клабник



Мы утешаем себя убеждением, что, если бы клиенты были довольны тем, что, по их словам, им нужно, дизайн был бы прекрасен. Заказчик виноват в изменении требований к нам.

Роберт Мартин

Я не очень догматичен в отношении оператора goto. У меня неприятное ощущение, что другие делают из этого религию, как будто концептуальные проблемы программирования могут быть решены с помощью одного трюка, простой формы дисциплины программирования!

Эдсгер Дейкстра

Если вы можете сделать сегодняшнюю работу сегодня, но делаете это таким образом, что вы не можете сделать завтрашнюю работу завтра, тогда вы проиграете.

Мартин Фаулер

Вы не можете научить новичков программированию сверху вниз, потому что они не знают, какой конец вверху.

Тони Хоар

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

Рик Кук



В любом случае (СУХОЙ или лень) идея одна и та же: сделать вашу программу гибкой. Когда приходят перемены (а они случаются всегда), вам будет намного легче меняться вместе с ними.

Крис Пайн



Дублирование - главный враг хорошо спроектированной системы.

Роберт Мартин



Оптимизм - это профессиональная опасность программирования: обратная связь - это лечение.

Кент Бек

Хитрость заключается в том, чтобы решить имеющуюся у вас проблему, а не проблему, которую вы хотите.

Брэм Коэн



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

Ребекка Вирфс-Брок



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

Мартин П. Фаулер

Ошибка возникает из-за обработки объектных переменных (переменных экземпляра), как если бы они были атрибутами данных, а затем создания вашей иерархии на основе общих атрибутов. Всегда создавайте иерархии на основе общего поведения, стороны.

Дэвид Уэст



Вы можете доказать что угодно, упомянув другой компьютерный язык.

Ларри Уолл

Цель вычислений - понимание, а не числа.

Ричард Хэмминг



Сказать программисту, что библиотека для X уже есть, - все равно что сказать автору песен, что уже есть песня о любви.

Пит Корделл

В чисто функциональной программе значение [константы] никогда не меняется, и все же оно изменяется все время! Парадокс!

Джоэл Спольски

Когда кто-то говорит: «Мне нужен язык программирования, на котором мне нужно только говорить то, что я хочу сделать», дайте ему леденец.

Алан Перлис

Структура данных - это просто глупый язык программирования.

Билл Госпер

Хакеры - заносчивые гики-романтики. Им не хватает внимательного и исследовательского духа.

Брюс Стерлинг



Программное обеспечение - это газ; он расширяется, заполняя контейнер.

Натан Мирвольд



Наука - это то, что мы понимаем достаточно хорошо, чтобы объяснить компьютеру. Искусство - это все, что мы делаем.

Дональд Кнут

Код, который вы пишете, делает вас программистом. Код, который вы удаляете, делает вас хорошим. Код, который вам не нужно писать, делает вас отличным.

Марио Фуско

Окончательный исходный код - это реальный дизайн программного обеспечения.

Джек Ривз



Научитесь не сразу добавлять слишком много функций и создайте и протестируйте основную идею.

Лия Калвер

Если это не сработает, неважно, насколько быстро это не сработает.

Мич Равера



Основная деятельность программирования - это не создание новых независимых программ, а интеграция, модификация и объяснение существующих.

Терри Виноград

Я не мог устоять перед соблазном вставить пустую ссылку просто потому, что это было так легко реализовать. Это привело к бесчисленным ошибкам, уязвимостям и системным сбоям, которые, вероятно, причинили боль и ущерб на миллиард долларов за последние сорок лет.

Тони Хоар



Написание класса без контракта аналогично созданию инженерного компонента (электрической схемы, микросхемы VLSI (очень крупномасштабная интеграция), моста, двигателя…) без спецификации. Ни один профессиональный инженер не стал бы даже рассматривать эту идею.

Бертран Мейер

Программирование - это не набор текста, а размышление.

Рич Хикки

Нет ничего более постоянного, чем временный взлом.

Кайл Симпсон



Архитектура - это напряжение между сцеплением и сплоченностью.

Нил Форд



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

Уорд Каннингем

Никакое элегантное программирование или технология не решат проблему, если она неправильно определена или неправильно понята с самого начала.

Милт Брайс

Обучение программированию полезно независимо от ваших карьерных амбиций.

Арианна Хаффингтон

Сложность не имеет ничего общего с интеллектом, простота - нет.

Ларри Боссиди

Позже равно никогда.

Закон Леблана

В случае сомнений используйте грубую силу.

Кен Томпсон

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

Э. Раймонд

Схема - это не модель. Модель - это не диаграмма. Это абстракция, набор понятий и отношений между ними.

Эрик Эванс



Мышление - это не способность манипулировать языком; это способность манипулировать концепциями.

Лесли Лэмпорт

Информация, совместно используемая объектом, может быть или не быть частью структуры этого объекта. То есть объект может вычислить информацию или делегировать запрос информации другому объекту.

Ребекка Вирфс Брукс

Если кто-то утверждает, что у него идеальный язык программирования, он либо дурак, либо продавец, либо и то, и другое.

Бьярн Страуструп

Программы, как и люди, стареют. Мы не можем предотвратить старение, но мы можем понять его причины, ограничить его последствия и обратить некоторые повреждения.

Марио Фуско

Ходить по воде и разрабатывать программное обеспечение по спецификации легко, если и то, и другое заморожено.

Эдвард V Берард

Программные объекты (классы, модули, функции и т. Д.) Должны быть открыты для расширения, но закрыты для модификации.

Бертран Мейер

Для меня программирование - это больше, чем важное практическое искусство. Это также грандиозный проект в области основ знания.

Грейс Хоппер

Язык программирования - это инструмент, который оказывает глубокое влияние на наши привычки мышления.

Эдсгер Дейкстра

Хороший дизайн увеличивает ценность быстрее, чем увеличивает стоимость.

Томас С. Гейл

Основная деятельность программирования - это не создание новых независимых программ, а интеграция, модификация и объяснение существующих.

Терри Виноград

Я наконец-то понял, что такое «восходящая совместимость». Это означает, что мы должны сохранить все наши старые ошибки.

Денни ван Тассель



Сделайте так, чтобы было трудно игнорировать ошибки. Не скрывайте коды ошибок в возвращаемых значениях.

Стив Магуайр

Преждевременная оптимизация - корень всех зол

Дональд Кнут



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

Ребекка Вирфс-Брок



Типы - это, по сути, утверждения о программе. И я думаю, что важно, чтобы все было максимально просто, в том числе даже не указывалось, какие типы

Дэниел Ингаллс



Я не лучший программист; Я просто хороший программист с прекрасными привычками.

Кент Бек

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

Ларри Бернштейн

В сфере технологий преобладают два типа людей: те, кто понимает, что им не удается, и те, кто управляет тем, чего не понимают.

Арчибальд Путт

По возможности воруйте код.

Том Дафф

Сегодня большая часть программного обеспечения существует не для решения проблемы, а для взаимодействия с другим программным обеспечением.

Я Энджелл

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

Дэниел Рид

Остерегайтесь программистов, у которых есть отвертки.

Леонард Брандвейн

Бог мог создать мир за шесть дней, потому что ему не нужно было делать его совместимым с предыдущей версией.

Марк Твен

BASIC для компьютерного программирования, как QWERTY для набора текста.

Сеймур Паперт

В любой конкретный момент времени функции, предоставляемые нашими языками программирования, отражают наше понимание программного обеспечения и программирования.

Р. Э. Фэрли

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

Патрик Маккензи

PHP - это незначительное зло, созданное и созданное некомпетентными любителями, тогда как Perl - великое и коварное зло, созданное опытными, но извращенными профессионалами.

Джон Риббенс

Любую проблему в информатике можно решить с помощью другого уровня косвенного обращения.

Дэвид Уиллер



Я не могу быть настолько уверен в информатике, как в биологии. У биологии легко есть 500 лет интересных проблем, над которыми нужно работать. Это на том уровне

Дональд Кнут

Однажды компьютер обыграл меня в шахматы, но в кикбоксинге он мне не подходил.

Эмо Philips

Ученые строят, чтобы учиться; Инженеры учатся строить.

Фред Брукс

Самым большим препятствием на пути к открытию является не незнание, а иллюзия знания.

Дэниел Бурстин

Помните, код - это ваш дом, и вы должны в нем жить.

Майкл С. Фезерс

Лучшее улучшение производительности - это переход из нерабочего состояния в рабочее состояние.

Дж. Остерхаут

Лучше дождаться, когда появится продуктивный программист, чем ждать, пока первый доступный программист станет продуктивным.

Стив МакКоннелл

Теперь вся арифметика оказалась в пределах досягаемости механизма.

Чарльз Бэббидж

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

Борис Бейзер

Если вы думаете, что хорошая архитектура стоит дорого, попробуйте плохую архитектуру.

Брайан Фут и Джозеф Йодер

C ++ разработан для того, чтобы вы могли выражать идеи, но если у вас нет идей или вы не знаете, как их выразить, C ++ не поможет.

Бьярн Страуструп



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

Джин Спаффорд

Ошибки прячутся в углах и собираются на границах.

Борис Бейзер

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

Пол Грэм



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

Ада Лавлейс

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

Питер Норвиг

Один плохой программист может легко создать две новые рабочие места в год.

Дэвид Парнас

Ошибки есть ошибки. Вы пишете код с ошибками, потому что вы это делаете. Если это безопасный язык с точки зрения безопасности во время выполнения, операционная система дает сбой, а не выполняет переполнение буфера уязвимым образом.

Кен Томпсон

Наука - это то, что мы понимаем достаточно хорошо, чтобы объяснить компьютеру, искусство - это все остальное.

Дональд Кнут

Тот, кто может вообразить все, может создать невозможное

Алан Тьюринг

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

Джейсон Фрид

Недели программирования могут сэкономить вам часы планирования.

Аноним

Программное обеспечение похоже на энтропию: его трудно понять, оно ничего не весит и подчиняется второму закону термодинамики; т.е. всегда увеличивается.

Норман Августин

Дизайн, в котором не учтены изменения, может привести к серьезному изменению дизайна в будущем.

Эрих Гамма

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

Эдсгер В. Дейкстра

Самые недовольные клиенты - ваш лучший источник знаний.

Билл Гейтс

Технологии - это все, что было изобретено после того, как вы родились.

Алан Кей

Я не боюсь компьютеров. Боюсь, что их не хватит.

Айзек Азимов

Ключ к производительности - это элегантность, а не набор особых случаев.

Джон Бентли и Дуглас Макилрой

Основная проблема сопровождения программ заключается в том, что исправление дефекта может привести к появлению другого.

Фред Брукс

Программное обеспечение не будет завершено, пока не умрет последний пользователь.

Сидни Марковиц

Никто в краткой истории вычислительной техники никогда не писал идеального программного обеспечения. Вряд ли ты будешь первым.

Энди Хант

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

Дуглас Макилрой

Простота перед универсальностью, используйте перед повторным использованием.

Кевлин Хенни

Программирование - это не то, что вы знаете; дело в том, что вы можете понять.

Крис Пайн

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

Джоэл Спольски

Неправильная документация часто хуже, чем ее отсутствие.

Бертран Мейер

Пишите скромный код - модули, которые не раскрывают ничего лишнего для других модулей и не зависят от реализации других модулей.

Дэйв Томас



Внутри каждой хорошо написанной большой программы есть хорошо написанная маленькая программа.

C.A.R. Хоар



Наиболее неудачными тремя годами в обучении сметчиков являются арифметика в пятом классе.

Норман Р. Огюстин

Генерация кода, как и употребление алкоголя, хороша в умеренных количествах.

Алекс Лоу



Простота, доведенная до крайности, становится элегантностью.

Джон Франклин

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

Тим Кук

У вас должны быть долгосрочные цели, чтобы вас не расстраивали краткосрочные неудачи.

Чарльз К. Ноубл

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

Алан Кей

Мы не должны обвинять программистов в их ошибках. Они принадлежат им только до тех пор, пока код не будет объединен с репозиторием. После этого все ошибки наши!

Егор Бугаенко

Суть XML такова: проблема, которую он решает, несложная, и он решает проблему плохо.

Фил Уодлер

Разработчик новой системы должен быть не только разработчиком и первым крупным пользователем; дизайнер должен также написать первое руководство пользователя. Если бы я не участвовал в полной мере во всех этих мероприятиях, буквально сотни улучшений никогда бы не были внесены.

Дональд Кнут

Открытие состоит в том, чтобы видеть то, что видели все, и думать о том, о чем никто не думал.

Альберт Сент-Джорджи

Самый опасный вид отходов - это отходы, которых мы не признаем.

Сигео Синго

В оптимальном комитете нет членов.

Норман Ральф Августин

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

Джефф Этвуд

В команде разработчиков программного обеспечения из 10 человек, вероятно, есть 3 человека, которые производят достаточно дефектов, чтобы сделать их чистыми отрицательными производителями.

Гордон Шульмейер

Лучшая реакция на «это сбивает с толку, где документы» - это переписать функцию, чтобы сделать ее менее запутанной, а не писать больше документов.

Джефф Этвуд

Хорошо установленную ошибку микрокода обнаружить будет практически невозможно.

Кен Томпсон

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

Дж. Барнс

Закон Альцгеймера: смотреть на код, который вы написали более двух недель назад, все равно что смотреть на код, который вы видите впервые.

Дэн Гурвиц

Если бы программистам платили за удаление кода из программного обеспечения вместо написания нового кода, программное обеспечение было бы намного лучше.

Николас Негропонте

Забудьте этот мир со всеми его проблемами и, если возможно, его многочисленными Шарлатанами - словом, обо всем, кроме Чародейки Чисел.

Ада Лавлейс

Программное обеспечение - это газ; он расширяется, чтобы заполнить свой контейнер.

Натан Мирвольд

Менталитет Gnome «пользователи идиоты, которых сбивает с толку функциональность» - это болезнь. Если вы думаете, что ваши пользователи идиоты, только идиоты будут использовать это.

Линус Торвальдс



Простые системы неосуществимы, потому что они требуют бесконечного тестирования.

Норман Ральф Августин

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

Оскар Годсон

Самые дешевые, самые быстрые и надежные компоненты компьютерной системы - это те, которых там нет.

Гордон Белл

Разработчики тянутся к сложности, как мотыльки к пламени, часто с одним и тем же результатом.

Нил Форд

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

Питер Дойстч

Первые 90 процентов кода составляют первые 90 процентов времени разработки. Остальные 10 процентов кода составляют остальные 90 процентов времени разработки.

Том Каргилл

Если вы рисуете диаграммы, генерирующие код, или набираете текст в браузере, вы пишете код.

Кент Бек

Написание программного обеспечения - это очень интенсивное, очень личное дело. У вас должно быть время, чтобы пройти через это, чтобы понять это. Затем отлаживайте его.

Винт Серф

Не поддавайтесь на комментарии, они могут ввести в заблуждение: отлаживайте только код.

Дэйв Сторер



Цель программной инженерии - контролировать сложность, а не создавать ее.

Памела Заве



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

Роберт Д. Шнайдер



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

Фредерик П. Брукс



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

Алан Перлис

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

Ричард Фейнман

Информатика переворачивает нормальное явление. В нормальной науке вам дан мир, и ваша задача - узнать правила. В информатике вы даете компьютеру правила, и он создает мир.

Алан Кей

Прежде чем вы скажете, что не можете что-то сделать, попробуйте.

Сакичи Тойода

Всегда обнаруживается, что сложная работающая система произошла от простой работающей системы.

Джон Галл

Очень сложно предсказать, особенно будущее.

Нильс Бор



Информатика - это не машины, так же как астрономия - это не телескопы. Существует существенное единство математики и информатики.

Майкл Р. Стипендиат

Опасность компьютеров заключается не в том, что они со временем станут такими же умными, как мужчины, а в том, что мы тем временем согласимся пойти им навстречу.

Бернард Авишай

Если вы технический руководитель, вам нужно заниматься кодированием.

Мартин Фаулер

Получать информацию из Интернета - все равно что пить из пожарного гидранта.

Митч Капор

Если код и комментарии не совпадают, то оба, вероятно, ошибочны.

Норм Шрайер

Программирование просто говорит себе: «У меня встреча через час, так что лучше не начинать с этого», пока ты не умрешь.

Алекс Энгельберг

Программисты не выгорают из-за тяжелой работы, они выгорают из-за директив о внесении изменений, а не о «отгрузке».

Марк Берри

Если вы боитесь что-то менять, это явно плохо спроектировано.

Мартин П. Фаулер

Лучший способ получить правильный ответ в Интернете - это не задавать вопрос, а опубликовать неправильный ответ.

Уорд Каннингем

Математики становятся друг другу на плечи, а ученые-компьютерщики - друг другу на пятки.

Ричард Хэмминг

Стандарты всегда устарели. Вот что делает их стандартами.

Алан Беннетт

Адаптация старых программ к новым машинам обычно означает адаптацию новых машин к поведению старых.

Алан Дж. Перлис

В динамической типизации замечательно то, что она позволяет выражать все, что можно вычислить. А системы типов - нет. Если у вас есть система типов, вы даже не знаете, какие есть интересные программы.

Гилад Браха

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

Майкл Фезерс

Компьютеры делают то, что вы им говорите, а не то, что вы от них хотите.

Александр Атанасов

Убирайтесь с пути ваших разработчиков или отдайте их тому, кто это сделает.

Адриан Кокрофт

Лучший способ получить точную информацию о переполнении стека - опубликовать что-то не так и дождаться исправлений.

Мэтью Остерн

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

Джо Армстронг

Я возражаю против того, чтобы делать то, что могут делать компьютеры.

Олин Шиверс

Ошибка не станет ошибкой, пока вы не откажетесь ее исправить.

Орландо Алоизиус Баттиста

Хороший код - это лучшая документация.

Стив МакКоннелл

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

Амир Гахрай

Мир меняется, и я считаю, что если я хочу остаться программистом, мне придется измениться вместе с ним.

Кент Бек

Если у вас есть процедура с десятью параметрами, вы, вероятно, пропустили некоторые.

Алан Перлис

Физика - это операционная система Вселенной.

Стивен Р. Гарман

Простота не предшествует сложности, а следует за ней

Алан Перлис

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

Д. Гелернтер

Восемьдесят процентов всех форм ввода задают вопросы, которые им не нужны.

Майк Гэри

Следует отметить, что ни один инженер-программист с этической подготовкой никогда не согласится написать процедуру DestroyBaghdad. Вместо этого базовая профессиональная этика потребовала бы от него написать процедуру DestroyCity, которой Багдад мог бы быть указан в качестве параметра.

Натаниэль Боренштейн

Критика - это не просто неприязнь. Школы искусств учат мастерству и уважению к работе. Школы информатики этого не делают.

Кент Бек

Биология - самая мощная из когда-либо созданных технологий. ДНК - это программное обеспечение, белок - это оборудование, клетки - это фабрики.

Арвинд Гупта

Если вы сделаете общее заявление, программист скажет: «Да, но…», а дизайнер скажет: «Да, и…»

Андре Бенсуссан

Проблема в том, что при разработке программного обеспечения часто последствия ваших решений не становятся очевидными в течение многих лет.

Кент Бек

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

Кент Бек

Программисты считают себя художниками. По этой причине они считают, что вести точный учет своей работы наравне с мытьем пепельницы.

Порт Отис

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

Алан Перлис

Если мы хотим подсчитать строки кода, мы не должны рассматривать их как «произведенные строки», а как «потраченные строки».

Эдсгер Дейкстра

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

Кристофер Александр

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

Роберт Д. Шнайдер

Программирование похоже на игру в гольф. Дело не в том, чтобы забить мяч в лунку, а в том, сколько ударов для этого потребуется.

Харлан Д. Миллс

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

Брэди Кларк

Урок такой: даже если вы точно знаете, что происходит в вашей системе, измеряйте производительность, а не спекулируйте. Вы чему-то научитесь, и в девяти случаях из десяти вы не будете правы!

Рон Джеффрис

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

Кент Бек

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

Стив Шварц

Когда я изучаю код, рефакторинг приводит меня к более высокому уровню понимания, который в противном случае я бы упустил. Те, кто отвергает рефакторинг понимания как бесполезную возню с кодом, не понимают, что они никогда не видят возможностей, скрытых за путаницей.

Мартин Фаулер

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

Митч Рэтклифф



Языки программирования

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

Никлаус Вирт

На языках, признанных «плохими», написано больше хорошего кода, чем на языках, провозглашенных «прекрасными», - гораздо больше.

Бьярн Страуструп

То, что что-то легко измерить, не значит, что это важно.

Дэвид Хайнемайер Ханссон

У того, кто в молодости не взломал ассемблер, нет сердца. У того, кто поступает по-взрослому, нет мозга.

Джон Мур

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

Никлаус Вирт

Большинство экспертов сходятся во мнении, что наиболее вероятным способом уничтожения мира является случайность. Вот где мы вступаем; мы профессионалы в области компьютеров. Мы вызываем несчастные случаи.

Натаниэль С. Боренштейн

Это то, что касается людей, которые думают, что ненавидят компьютеры. На самом деле они ненавидят паршивых программистов.

Ларри Нивен

Документация - касторовое масло программирования

Джеральд М. Вайнберг

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

Батлер Лэмпсон

Любой человек может ошибаться, но только идиот упорствует в своей ошибке.

Марк Цицерон

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

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

Майкл Фезерс



Легче написать неправильную программу, чем понять правильную.

Алан Дж. Перлис



Квалифицированные и мотивированные программисты могут преодолеть неадекватные процессы, но совершенные процессы никогда не могут компенсировать неадекватных программистов или плохих менеджеров по программному обеспечению.

Дик Фэрли

Ключ к эффективному развитию - совершать новые интересные ошибки

Том Лав

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

Уилл Райт

Использование COBOL калечит ум; поэтому его обучение следует рассматривать как уголовное преступление.

Эдсгер Дейкстра

«Не чини, если он не сломался» - предполагал, что вы не можете улучшить то, что уже работает достаточно хорошо. Если бы мировые изобретатели верили в это, мы бы по-прежнему ездили на Фордах модели А и использовали бытовые постройки.

Х. У. Кентон

Структура данных - это просто глупый язык программирования.

Билл Госпер



У Sun Microsystems были нужные люди, чтобы превратить Java в первоклассный язык, и я считаю, что именно маркетологи Sun выбросили эту идею до того, как она должна была выйти.

Алан Кей

Есть только два типа языков: те, на которые люди жалуются, и те, которые никто не использует.

Бьярн Страуструп

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

Витсе Венема

Инкапсулируйте концепцию, которая меняется.

Эрих Гамма



Если вы не можете объяснить это просто, значит, вы недостаточно хорошо это понимаете.

Альберт Эйнштейн

Программа никогда не завершается менее чем на 90% и никогда не более чем на 95%.

Терри Бейкер

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

Майкл Найгард

Любая достаточно сложная ошибка неотличима от функции.

Брюс Браун

Сначала подумайте, каким будет окончательное. Затем сделайте шаг от этого и еще один, пока не получите что-то, что можно построить.

Мэтт Риди

Мы не должны забывать, что колесо так часто изобретают заново, потому что это очень хорошая идея; Я научился больше беспокоиться о правильности идей, которые были изобретены только однажды.

Дэвид Л. Парнас

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

Роб Пайк

Построение программы состоит из последовательности шагов уточнения.

Никлаус Вирт

Хорошая инженерия - это разница между запуском кода за восемь минут или восемь часов. Это реально влияет на реальных людей. Это не «вопрос мнения». больше, чем полет птицы, - это «вопрос мнения».

Х. У. Кентон

В 2031 году юристы обычно войдут в состав большинства команд разработчиков.

Грейди Буч

Все дело в том, чтобы знать, что не делать.

Освальд Чемберс

Хорошие программисты никогда не пишут, что они могут украсть или одолжить.

Джефф Этвуд

Искусство отладки - это выяснить, что вы на самом деле сказали своей программе, а не то, что, как вы думали, вы ей приказывали.

Эндрю Сингер

Если вы выбираете библиотеку JavaScript исключительно на основе популярности, я думаю, вы заслуживаете того, что получаете.

Том Дейл

Так почему же так сложно было заставить компьютер делать что-то несложное? Что ж, у меня проблемы возникли не из-за «умеренно сложной» части; это была часть «скажи компьютеру».

Крис Пайн

Я думаю, что люди неизбежно плохо программируют. Обучение существенно не поможет. Мы должны научиться жить с этим.

Алан Перлис

Тесты - это камень программиста, превращающий страх в скуку.

Кент Бек

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

Майкл Фезерс

Намного проще спроектировать класс для обеспечения потоковой безопасности, чем модифицировать его позже для обеспечения безопасности потоков.

Брайан Гетц

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

Карл Саган

Генерация кода, как и употребление алкоголя, хороша в умеренных количествах.

Алекс Лоу

Программированию обычно обучают на примерах.

Никлаус Вирт

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

Мартин Фаулер

Что произойдет, если вы позволите ошибке проскользнуть через модуль, и это будет стоить вашей компании 10 000 долларов? Непрофессионал пожимал плечами, говорил «всякое бывает» и начинал писать следующий модуль. Профессионал выпишет компании чек на 10 000 долларов!

Боб Мартин

Шаблоны проектирования не следует применять без разбора. Часто они достигают гибкости и вариативности, вводя дополнительные уровни косвенности. Шаблон проектирования следует применять только тогда, когда гибкость, которую он предоставляет, действительно необходима.

Эрих Гамма

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

Фрэнсис Глассбороу

Разгадывать тайны убийства - это нормально, но вам не нужно разгадывать код. Вы должны уметь это прочитать.

Стив МакКоннелл



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

Билл Кертис

Мы все еще находимся в зачаточном состоянии в определении того, что на самом деле происходит в проектах разработки программного обеспечения.

Алистер Кокберн

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

Пол Грэм

Никакой кризис внутри компьютера не стоит унижать человека.

Алан Купер

Временные переменные могут быть проблемой. Они полезны только в их собственном распорядке дня и поэтому поощряют длительные и сложные распорядки.

Мартин Фаулер

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

Эдсгер Дейкстра



У нас есть постоянные объекты, они называются файлами.

Кен Томпсон

Для нас настоящая цель - сделать экосистему программного обеспечения максимально здоровой.

Джеймс Гослинг

В организации, которая относится к своим программистам как к идиотам, скоро появятся программисты, которые захотят и смогут вести себя только как дебилы.

Бьярн Страуструп

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

Гипо-Хилл



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

Дональд Э. Кнут



Проблема с быстрым и грязным заключается в том, что грязное остается еще долго после того, как быстрое было забыто.

Стив К. МакКоннелл

Конечно, плохой код можно исправить. Но это очень дорого

Роберт К. Мартин

Рабочие и профессионалы всего мира скоро будут разделены на две отдельные группы. Тех, кто будет управлять компьютерами, и тех, кто будет контролироваться компьютерами. Было бы лучше, если бы вы были в первой группе.

Льюис Д. Эйген

Программируемый разум включает в себя умственную ловкость, чтобы постоянно практиковать «разучивание» и «повторное обучение».

жемчужный чжу

Есть только одна вещь более болезненная, чем обучение на собственном опыте, - это не обучение на собственном опыте.

Арчибальд Маклиш

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

Деннис Ричи

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

Фредерик П. Брукс

Сложность - признак технической незрелости. Простота использования - реальный признак удачно спроектированного продукта, будь то банкомат или ракета Patriot.

Дэниел Т. Линг

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

Альфред Норт Уайтхед

Правильное использование комментариев - это компенсировать нашу неспособность выразить себя в коде.

Роберт К. Мартин

Если вы солгаете компилятору, он отомстит.

Генри Спенсер



Планирование / Управление

Стоимость добавления функции - это не только время, необходимое для ее написания. В стоимость также входит добавление препятствия для будущего расширения. Уловка состоит в том, чтобы выбрать элементы, которые не борются друг с другом.

Джон Кармак

Эйнштейн неоднократно утверждал, что должны быть упрощенные объяснения природы, потому что Бог не капризен или деспотичен. Такая вера не утешает разработчика программного обеспечения.

Фред Брукс



Нет серебряной пули
Фраза« Нет серебряной пули
широко используется в отрасли. В этой статье мы вернемся к классической статье Фреда… medium.com »



Вы можете производить оборудование серийно; вы не можете производить программное обеспечение массово; вы не можете производить человеческий разум массово.

Мичио Каку

Достаточно сложно найти ошибку в коде, когда вы ее ищете; это еще сложнее, когда вы предполагаете, что ваш код не содержит ошибок.

Стив МакКоннелл

Качество никогда не бывает случайным; это всегда результат разумных усилий.

Джон Раскин

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

Т. Демарко и Т. Листер

Я думаю, что мое программное обеспечение станет настолько распространенным, настолько важным, что, если оно перестанет работать, начнутся бунты.

Майкл Дж. Сэйлор

Нет ничего более бесполезного, чем эффективно делать то, чего не следует делать вообще.

Питер Друкер

Программное обеспечение со временем и обязательно получило такое же уважение, как и любая другая дисциплина.

Маргарет Х. Гамильтон

Нет кода настолько большого, запутанного или сложного, что обслуживание не могло бы сделать его хуже.

Джеральд М. Вайнберг

Ученые-информатики до сих пор работали над созданием мощных языков программирования, которые позволяют решать технические проблемы вычислений. Мало усилий было направлено на разработку языков взаимодействия.

Дон Норман

Решая проблемы, копайте корни, а не просто рубите листья.

Энтони Дж. Д’Анджело

Глупцы игнорируют сложность. Прагматики терпят это. Некоторые могут этого избежать. Гении это снимают.

Алан Перлис

Маленькие умы интересуются необычными, великие - обычными.

Блез Паскаль

Основная причина сложности заключается в том, что поставщики программного обеспечения некритично принимают практически любую функцию, которую хотят пользователи.

Никлаус Вирт

Наследование, безусловно, хороший ответ, но кто знает вопросы?

Мишель Готье

Программирование без общей архитектуры или дизайна похоже на исследование пещеры только с фонариком: вы не знаете, где вы были, вы не знаете, куда идете, и вы не знаете, где вы находятся.

Дэнни Торп

Программа, которая в два раза быстрее дает неверные результаты, бесконечно медленнее.

Джон Остерхаут



Программисты столь же эмоциональны и иррациональны, как и нормальные люди.

Дуглас Крокфорд

Плохая система каждый раз побеждает хорошего человека.

В. Эдвардс Деминг

Гибкие методы во многом основаны на их гибкости, полагаясь на неявные знания, заложенные в команде, вместо того, чтобы записывать эти знания в планы.

Барри Бём

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

Фрэнк Герберт

Изменения в дизайне программного обеспечения в конечном итоге означают «шаг вперед, два шага назад». Это неизбежно.

Салман Аршад

Чем раньше вы начнете кодировать, тем больше времени займет программа.

Рой Карлсон

Достаточно хорошая первая версия потребует больше времени для производства за 170 тысяч долларов, чем за 0 тысяч долларов.

Джейсон Фрид

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

Витсе Венема

Написание на C или C ++ похоже на запуск бензопилы со снятыми защитными приспособлениями.

Боб Грей

Будьте осторожны, чтобы сохранить ортогональность вашей системы, когда вы вводите сторонние наборы инструментов и библиотеки. Выбирайте технологии с умом.

Энди Хант

Не исправляйте плохой код - переписывайте его.

П. Дж. Плаугер

Преимущества действительно эффективной новой технологии теряются, когда в спешке, чтобы опробовать следующий блестящий мощный инструмент, мы отказываемся от существующего.

Скотт Гатри

Если у вас слишком много особых случаев, вы делаете это неправильно.

Крейг Зеруни

Мой компьютер настолько быстр, что завершает бесконечный цикл за 5 минут.

Чизел Райт

Есть два способа создания дизайна программного обеспечения. Один из способов - сделать его настолько простым, чтобы явно не было недостатков. А другой способ - сделать его настолько сложным, чтобы не было явных недостатков.

С. А. Р. Хоар

Нет ничего труднее, чем работать в сжатые сроки и при этом уделять время уборке по ходу дела.

Кент Бек

Иногда именно люди, о которых никто не может вообразить, делают то, что никто не может представить.

Алан Тьюринг

Вы не освоите инструмент, пока не поймете, когда его не следует использовать.

Келси Хайтауэр

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

Бьярн Страуструп

Избыточные комментарии - это просто места для сбора лжи и дезинформации.

Роберт Мартин

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

Майкл Фезерс

Программа, которая идеально соответствует плохой спецификации, - это паршивая программа.

Джем Канер

Бездефектного программного обеспечения не существует.

Витсе Венема

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

Марисса Майер



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

Мартин Фаулер

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

Ребекка Вирфс-Брок



На седьмой день Бог сказал: «Отправьте его! Мы выпустим патчи позже ».

Джош Флэксбарт

Автоматическое тестирование - это подстраховка, защищающая программу от программистов.

Егор Бугаенко

Синтаксический сахар вызывает рак точки с запятой.

Алан Дж. Перлис

Ссылочная прозрачность - очень желательное свойство: это означает, что функции последовательно дают одни и те же результаты при одинаковых входных данных, независимо от того, где и когда они вызываются.

Эдвард Гарсон



Качество - союзник графика и стоимости, а не их противник. Если нам приходится жертвовать качеством ради соблюдения графика, то это потому, что мы делаем работу неправильно с самого начала.

Джеймс А. Уорд

Люди склонны переоценивать то, что можно сделать за один год, и недооценивать то, что можно сделать за пять или десять лет.

Джозеф Ликлайдер

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

Роберт Ферт

Методологии и лучшие практики, используемые для разработки программного обеспечения, могут быть успешно применены к любой жизненной задаче.

Уолтер О’Брайен

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

Борис Бейзер

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

Эрик Гамма

Удача - это остаток дизайна.

Уэсли Бранч Рики

Наиболее важным свойством программы является то, выполняет ли она намерения своего пользователя.

К.А.Р. Хоар

Мы знаем о проблемах качества программного обеспечения столько же, сколько они знали о Черной чуме 1600-х годов. Мы видели мучения жертв и помогали сжигать трупы. Мы не знаем, что его вызывает; мы действительно не знаем, есть ли только одна болезнь. Мы просто страдаем - и продолжаем сливать сточные воды в водопровод.

Том Ван Влек

Не стоит знать язык, который не влияет на ваше представление о программировании.

Алан Перлис

Дублирование намного дешевле неправильной абстракции.

Санди Мец

Следите за мелочами; небольшая утечка потопит большой корабль.

Бенджамин Франклин

Успешное программное обеспечение всегда меняется.

Фред Брукс

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

Роберт К. Мартин



Любая организация, разрабатывающая систему (в широком смысле), создаст проект, структура которого является копией коммуникационной структуры организации.

Мелвин Конвей

Мы вступаем в новый мир, в котором данные могут быть важнее программного обеспечения.

Тим О’Рейли

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

Алан Кей

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

Мартин Фаулер

Сначала решите проблему. Затем напишите код.

Джон Джонсон

Иногда лучше остаться в постели в понедельник, чем тратить остаток недели на отладку кода понедельника.

Дэн Соломон

Идея Scrum об отделенном Scrum Master хороша для Scrum, но не подходит для большинства проектов. Для хорошего развития нужны не только болтуны, но и деятели.

Бертран Мейер

Это больше о достаточно хорошем, чем о правильном или неправильном.

Джеймс Бах

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

Эрик Рэймонд

Легко кричать «ошибка», когда правда в том, что у вас сложная система, и иногда требуется время, чтобы все компоненты мирно сосуществовали.

Д. Варгас

Статическая типизация - это то же самое, что проверка орфографии для хорошего писателя для надежного программирования.

Питер Ван Рой

Оптимизм - это профессиональная опасность программирования: обратная связь - это лечение.

Кент Бек

Чистый код

Всегда программируйте так, как будто парень, который в конечном итоге поддерживает ваш код, будет жестоким психопатом, который знает, где вы живете.

Джон Вудс



Любой дурак может написать код, понятный компьютеру. Хорошие программисты пишут код, понятный людям.

Мартин Фаулер

Проблема с программистами в том, что вы никогда не можете сказать, что делает программист, пока не станет слишком поздно.

Сеймур Крей

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

Кент Бек



Если вы автоматизируете беспорядок, вы получите автоматический беспорядок.

Род Майкл

Нет абсолютно никаких причин делать компьютеры такими же глупыми, как люди.

Найджел Джейкоб

Программы предназначены для чтения людьми и только случайно для выполнения компьютерами.

Дональд Кнут



Вы разоритесь, потому что считаете, что исключения из правила создают новые правила.

Пирс Браун



Соотношение времени, затрачиваемого на чтение (код) и на запись, значительно превышает 10 к 1… (поэтому) облегчение чтения облегчает запись.

Роберт Мартин

Не беспокойтесь о дизайне, если вы прислушаетесь к своему коду, появится хороший дизайн ... Слушайте техников. Если они жалуются на трудности с внесением изменений, отнеситесь к таким жалобам серьезно и дайте им время исправить ситуацию.

Мартин Фаулер

Люди думают, что информатика - это искусство гениев, но на самом деле все обстоит наоборот: многие люди делают вещи, которые дополняют друг друга, например, стену из миниатюрных камней.

Дональд Кнут

Код должен быть в высшей степени выразительным, чтобы избежать большинства комментариев. Будет несколько исключений, но мы должны рассматривать комментарии как «невыражение», пока не будет доказано, что их ошибочность.

Роберт Мартин

Если для объяснения того, что вы делаете, требуется нечто большее, чем предложение, это почти всегда признак того, что то, что вы делаете, слишком сложно.

Сэм Альтман



Примите разумные меры, чтобы протестировать, задокументировать и иным образом привлечь внимание к предположениям, сделанным в каждом модуле и подпрограмме.

Дэниел Рид

Основным недостатком метода Wrap является то, что он может привести к плохим именам. В предыдущем примере мы переименовали метод оплаты в dispatchPay () только потому, что нам нужно было другое имя для кода в исходном методе.

Майкл Фезерс



Мы следуем эвристике: всякий раз, когда мы чувствуем необходимость что-то прокомментировать, мы вместо этого пишем метод.

Мартин Фаулер

При отладке новички вставляют корректирующий код; специалисты удаляют дефектный код.

Ричард Паттис



В программировании, если кто-то говорит вам, что «вы слишком усложняете», он либо на 10 шагов отстает от вас, либо на 10 шагов опережает вас.

Эндрю Кларк

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

Дэйв Мун

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

Чак Паланик



Язык программирования - это низкоуровневый язык, когда его программы требуют внимания к несущественному.

Алан Перлис

Независимо от того, насколько медленно вы пишете чистый код, вы всегда будете медленнее, если создадите беспорядок.

Роберт Мартин



Последней хорошей вещью, написанной на C, была Симфония № 9 Франца Шуберта.

Эрвин Дитрих

Самый красивый код, самые красивые функции и самые красивые программы иногда вообще отсутствуют.

Джон Бентли



Проблема с использованием C ++ ... в том, что в языке уже существует сильная тенденция требовать от вас знания всего, прежде чем вы сможете что-либо сделать.

Ларрей Уолл

Язык, на котором мы выражаем наши идеи, оказывает сильное влияние на наши мыслительные процессы.

Дон Кнут

То, что оптимизирует одну часть системы, обязательно подрывает систему в целом.

Эрик Райс

Есть два способа написать код: написать код настолько простым, чтобы в нем явно не было ошибок, или написать код настолько сложный, чтобы в нем не было очевидных ошибок.

Тони Хоар



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

Никлаус Вирт

Мы должны прекратить оптимизацию для программистов и начать оптимизацию для пользователей.

Джефф Этвуд



Обработка ошибок важна, но если она затрудняет понимание логики, это неправильно.

Роберт Мартин



Я нанял финишеров, потому что я хороший стартер и плохой финишер.

Алан Кей

Если вам надоело писать для циклов, сделайте перерыв и продолжите позже.

Дэвид Уокер



В стандартах хорошо то, что есть из чего выбирать.

Эндрю С. Танненбаум



Удаленный код - это отлаженный код.

Джефф Сикел

Хороший программист - это тот, кто всегда смотрит в обе стороны, прежде чем перейти улицу с односторонним движением.

Дуг Линдер

Чем чище и приятнее программа, тем быстрее она будет работать. А если этого не произойдет, будет легко сделать это быстро.

Джошуа Блох

Лучшие программисты пишут только простые программы.

Майкл А. Джексон

Совсем не важно делать все правильно с первого раза. Жизненно важно сделать все правильно в последний раз.

Эндрю Хант и Дэвид Томас

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

Джозеф Вайценбаум

Продуктивные разработчики не всегда пишут много кода, вместо этого они решают множество проблем. Это не одно и то же.

Дж. Камеры

Программное обеспечение и соборы во многом похожи. Сначала мы их строим, а потом молимся.

Сэм Редвин

По сути, инженерия делает то, что вы хотите, с тем, что у вас есть.

Дж. Кармак

Я люблю программное обеспечение, потому что, если вы можете что-то вообразить, вы можете это построить.

Рэй Оззи

Копирование и вставка - это ошибка дизайна.

Дэвид Парнас



Если у вас есть три собаки, дайте им имена. Если у вас 10 000 голов крупного рогатого скота, не беспокойтесь. В наши дни идея давать имя каждому файлу на вашем компьютере просто смешна.

Дэвид Гелернтер



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

Мартин Фаулер



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

Каролина Щур



Кэш с плохой политикой - это еще одно название утечки памяти.

Рико Мариани

Компании должны создавать свои собственные корпоративные системы так же часто, как компании, занимающиеся сетевой безопасностью, производят собственный аспирин.

Фил Саймон

Простота - залог эффективности.

Остин Фриман



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

Роберт Мартин

Ценность прототипа заключается в образовании, которое он дает вам, а не в самом коде.

Алан Купер



Некоторые люди, столкнувшись с проблемой, думают: «Я знаю, я буду использовать регулярные выражения». Теперь у них две проблемы.

Джейми Завински

Пишите застенчивый код - модули, которые не раскрывают ничего лишнего для других модулей и не зависят от реализации других модулей.

Дэйв Томас

Это не язык, который делает программы простыми. Именно программист делает язык простым.

Роберт Мартин

Если вам нужно потратить усилия на изучение фрагмента кода и выяснение того, что он делает, вам следует извлечь его в функцию и назвать функцию после того, что.

Мартин Фаулер



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

Брайан Керниган

Без требований или дизайна программирование - это искусство добавления ошибок в пустой текстовый файл.

Луи Срайгли

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

Билл Брайсон

Никогда не проводите 6 минут, делая что-то вручную, если вы можете потратить 6 часов на то, чтобы это не автоматизировать.

Чжуовэй Чжан

Сделайте это правильно, сделайте ясным, сделайте это кратким, сделайте это быстро. В этой последовательности.

Уэс Дайер

Программирование - это не игра с нулевой суммой. Если научить чему-то другого программиста, это не лишит вас этого.

Джон Кармак

Это не язык, который делает программы простыми. Именно программист делает язык простым!

Роберт Мартин



Программирование может быть интересным, так же как и криптография; однако их не следует сочетать.

Крайцберг и Шнейдерман.



Инженер-любитель всегда в поисках волшебства.

Грейди Буч



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

Закон Иглсона

Не комментируйте плохой код - перепишите его.

Брайан Керниган



Код похож на юмор. Когда приходится объяснять, это плохо.

Кори Хаус

Истину можно найти только в одном месте: в коде.

Роберт К. Мартин

Если вы говорите: «Я же сказал вам», вы потерпели неудачу. Потому что вы знали, но не смогли остановить крушение поезда.

Роберт Мартин

Читать код сложнее, чем писать.

Джоэл Спольски



Так много сложностей в программном обеспечении возникает из-за того, что одна вещь выполняет две задачи.

Райан Сингер



Однажды моя дочь вошла, посмотрела через мое плечо на какой-то код Perl 4 и спросила: «Что это, ругань?»

Ларри Уолл

Длинное описательное имя лучше, чем короткое загадочное имя. Длинное описательное имя лучше, чем длинный описательный комментарий. -

Роберт Мартин



Обсуждение дешево. Покажи мне код.

Линус Торвальдс

Качество программного обеспечения

Устаревший код - это код без тестов.

Майкл Фезерс



Тестирование программного обеспечения - это не только гарантия отсутствия ошибок, но и наличие ценности.

Амит Калантри

Легче изменить спецификацию под программу, чем наоборот.

Алан Перлис

Остерегайтесь ошибок в приведенном выше коде; Я только доказал, что это правильно, а не пробовал.

Дональд Кнут



Перестаньте называть их« ошибками
Давайте назовем вещи правильно mcsee.medium.com»



Независимо от ваших планов, производственная среда - это идеальная среда для тестирования.

Джей Ти Уолл

У одного паршивое программное обеспечение - работа другого на полную ставку.

Джессика Гастон



Хорошее программное обеспечение, такое как вино, требует времени.

Джоэл Спольски

Обратите внимание на нули. Если есть ноль, кто-то разделит на него.

Джем Канер

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

Дональд Кнут

Бета-тестирование - это признак слабой практики тестирования и плохого взаимодействия с клиентами.

Кент Бек

Открывать неожиданное важнее, чем подтверждать известное.

Джордж Э. П. Бокс

Вставка кода из Интернета в производственный код похожа на жевательную резинку, которую можно найти на улице.

Майк Джонсон

Самым важным аспектом разработки программного обеспечения является четкое понимание того, что вы пытаетесь создать.

Бьярн Страуструп

Программа на Perl является правильной, если она выполняет свою работу до того, как ваш босс уволит вас.

Ларри Уолл



Если отладка - это процесс удаления программных ошибок, то программирование должно быть процессом их внесения.

Эдсгер Дейкстра



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

Алан Пейдж

Парадокс пестицидов. Каждый метод, который вы используете для предотвращения или поиска ошибок, оставляет остаток более тонких ошибок, против которых эти методы неэффективны.

Борис Бейзер



Я стараюсь думать в основном с точки зрения предварительных условий и проверки конструктора и начала функции.

Брэд Фицпатрик

Тестирование разработчиков - важный шаг на пути к ответственности. Это дает разработчикам возможность продемонстрировать качество производимого ими программного обеспечения.

Кент Бек

Роль тренера или консультанта заключается в расширении возможностей клиента, а не в том, чтобы делать себя незаменимым.

Бертран Мейер

Совершенно очевидно, что правильность - это главное качество. Если система не делает то, что должна делать, все остальное в ней мало что значит.

Бертран Мейер



Качество бесплатное, но только для тех, кто готов за него дорого платить.

ДеМарко и Листер

Ничто не делает систему более гибкой, чем набор тестов -

Роберт Мартин



С помощью тестов мы можем быстро и достоверно изменить поведение нашего кода.

Без них мы действительно не знаем, становится ли наш код лучше или хуже ».

Майкл Фезерс



Есть два способа писать безошибочные программы; работает только третий.

Алан Дж. Перлис

Как правило, программные системы плохо работают до тех пор, пока они не использовались и неоднократно выходили из строя в реальных приложениях.

Дэвид Парнас

По мере того, как тесты становятся более конкретными, код становится более универсальным.

Роберт Мартин

Рефакторинг

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

Мартин Фаулер



Объектно-ориентированный

Пусть не будет никаких сомнений в том, что объектно-ориентированное проектирование фундаментально отличается от традиционных подходов к структурированному проектированию: оно требует различных подходов к декомпозиции и создает программные архитектуры, которые в значительной степени выходят за рамки культуры структурированного проектирования.

Грейди Буч

Я придумал термин «объектно-ориентированный», и C ++ был не тем, что я имел в виду.

Алан Кей

Компьютеры хорошо следуют инструкциям, но не умеют читать ваши мысли.

Дональд Кнут



Частично цель этой серии статей - создать пространство для дебатов и дискуссий по дизайну программного обеспечения.



Ждем комментариев и предложений по этой статье.

Эта статья также доступна на испанском здесь.

Оригинальная тема в Twitter