Сколько раз случалось, что, узнав о новой концепции, вы внезапно осознавали ее существование вокруг вас до такой степени, что вы склонны переоценивать это новое знание? Это происходит со мной постоянно, я узнаю о рынках, и все вокруг меня ведет себя как единое целое, я начинаю новый вид спорта и из ниоткуда начинаю замечать, что то или иное движение было бы хорошо для этого вида спорта, в то же время занимаясь чем-то совершенно не связанным. . Я внезапно осознал, что кое-что, о чем я даже не подозревал, произошло несколько мгновений назад.
Изменился ли мир? Возможно нет. Что действительно изменилось, так это то, что мы приобрели новый словарный запас, и этот словарь позволяет нам говорить и видеть мир так, как мы не могли раньше. Он формирует то, как информация поступает к нам и от нас, поскольку состоит в основном из письменных слов и устного общения. Но при чем здесь программирование?
Суть программирования заключается в том, чтобы поток информации оставался как можно более ясным и выразительным. Программисты с первого дня стремились выразить правильное знание предметной области. Эти знания состоят из таких слов, как клиенты, транзакции, скидки и т. Д. И формируют повседневное общение внутри вашей команды и базы пользователей.
Когда мы программируем, очень легко написать, что это происходит, но не то, что это на самом деле означает, мы загрязняем наш язык и удивляемся, почему следующий программист, который изменит этот код, ошибся. Например:
if (condition_a && condition_b) || (condition_a && !condition_c) # ... end
против
if subscribed_through_marketing_channel? # ... end def subscribed_through_marketing_channel? subscribed_through_google? || subscribed_through_facebook? end def subscribed_through_google? condition_a && condition_b end def subscribed_through_facebook? condition_a && !condition_c end
Какой проще получить правильно? Осмысленный код превосходит умный код в любое время дня.
Но разве это единственное, о чем мы должны знать? Не совсем так, язык также формирует поведение. Команда, которая говорит только о производительности, но не понимает или не знает концепции устойчивости, может пропустить тесты или обзоры кода. Очень важно определить правильный словарный запас, чтобы добиться желаемого поведения.
Поскольку наши разговорные языки, наши знания в предметной области постоянно меняются, постоянно развиваются в соответствии с потребностями нашего бизнеса. Попытка сохранить его чистым и выразительным - это постоянная борьба, но она очень полезна, если команда не хочет в конечном итоге получить унаследованный код, заваленный старыми определениями, которые никто не может объяснить с течением времени.
Осторожно используйте язык, обогащайте свой код и поведение правильными концепциями.
Спасибо за чтение. Я всегда готов к хорошему разговору на эту тему, вы можете найти меня в Твиттере как bernardo_amc.