Home » Напишите глупый код — Мэтью Роклин

Напишите глупый код — Мэтью Роклин

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

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

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

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

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

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

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

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

Read more:  Арена «Майами Хит» будет называться «Касея Центр» после отказа от FTX

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

Программное обеспечение — это затраты

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

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

Сложные технологии труднее поддерживать

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

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

Read more:  Законопроект о «полной занятости» окончательно принят парламентом

Смотреть! Я заменил эту рекурсивную функцию циклом for, и она по-прежнему делает все, что нам нужно. Я знаю, что это не так умно, но я заметил, что у стажеров были проблемы с этим, и подумал, что это изменение может помочь.

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

Но умеренность, конечно

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

2024-02-25 19:14:02


1708891960
#Напишите #глупый #код #Мэтью #Роклин

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.