Грепабельность — важная метрика кода

При работе над поддержкой незнакомой мне кодовой базы я трачу кучу времени на поиск строк при помощи grep. Даже в проектах, полностью написанных мной, мне нужно много искать: имена функций, сообщения об ошибках, имена классов и тому подобное. Если я не могу найти нужное, то я буду как минимум расстроен, а как максимум могу создать опасную ситуацию, если предположу, что какой-то элемент больше не нужен, ведь я не могу найти ссылок на него в кодовой базе. На основании этих ситуаций я выработал правила, которые позволяют повысить грепабельность кода. Оказалось, что разбиение или динамическое создание идентификаторов — это плохая идея. Может показаться абсолютно нормальным решением создавать имя таблицы динамически по порядковому типу. То же самое относится к именам столбцов, полям объектов и, упаси боже, именам методов/функций (в Javascript можно создавать имена классов динамически). Не переименовывайте поля на границах приложений, чтобы соответствовать схемам наименований. Postgres в код на Javascript, а затем преобразуем их в camelCase. Это усложняет поиск — теперь чтобы найти все вхождения, вам нужно использовать grep для двух строк вместо одной! Я взял этот совет из Дзена Пайтона: при работе с пространствами имён уплощение структур папок/объектов обычно лучше, чем вложенность. Тогда вы с лёгкостью можете находить ключи, ссылки на которые предположительно будут выглядеть так: t(‘auth.login.title’).

На Android приложения могут запускать локальное VPN -подключение с собственной возможностью фильтрации хостов и DNS, не требуя root-доступа. Этот подход позволяет приложению, блокирующему рекламу, загружать хост-файлы для блокировки рекламы и использовать их для фильтрации рекламных сетей по всему устройству. Блокировка рекламы активна только при включении локального VPN и полностью прекращается при отключении VPN-соединения. Удобство такого метода в том, что он позволяет легко получить доступ к контенту, заблокированному скриптами, блокирующими рекламу. Этот подход оптимизирует использование батареи, увеличивает скорость работы в Интернете, вызванный использованием внешней блокировки рекламы через DNS или VPN, и в целом требует меньше настроек. PiHole, используют аппаратное обеспечение для блокировки рекламы. PiHole действует как локальный DNS для блокировки рекламных серверов, останавливая подключенные устройства от показа большинства объявлений. Ещё одно такое решение для блокировки рекламы на сетевом уровне для телекоммуникационных компаний предлагает израильский стартап Shine. Интернет-провайдеры, особенно операторы мобильной связи, часто предлагают прокси-серверы, предназначенные для снижения использования сетевого трафика. Даже если они не нацелены конкретно на фильтрацию рекламы, эти механизмы на основе прокси будут блокировать многие типы рекламы, которые слишком велики или потребляют трафик, или иным образом считаются неподходящими для конкретного соединения или устройства.

В погоне за краткостью, которой должен был требовать Лейкин по характеру своего изданьица, Чехову иногда приходилось черкать и обескровливать, может быть, лучшие вещицы. Иногда, по собственному признанию, он уничтожал «самую суть» пьески. «Я писал и то и дело херил, боясь пространства. Вычеркнул вопросы экзаменаторов-уездников и ответы почтового приемщика — самую суть экзамена». Эти внешние условия работы, в какие Лейкин несколько лет ставил Чехова, практически видя в нем полезную силу и не имея высокого благородства — отказаться от своей личной выгоды ради выгод будущего таланта, — порою переходили в чистое издевательство, в угашение духа, и надо было быть толстокожим, чтобы не внимать истинным воплям хрупкого таланта, впряженного в телегу, таскающую груз. Подыскивая возможно легкие выражения, Чехов стонал перед Лейкиным (1883): «Сознаюсь, рамки „от сих и до сих“ приносят мне немало печали. Мириться с этими ограничениями бывает иногда очень нелегко. Например, вы не признаете статей выше ста строк, что имеет свой резон. У меня есть тема. „100 и не больше“ толкает меня под руку с первой же строчки.

Иногда сюжетом вестерна является байопик известных исторических личностей, преступивших закон. Популярные фильмы-вестерны фокусируются на жизни полубродячего искателя, обычно ковбоя или стрелка (gunfighter или gunslinger). Прототипом героя вестерна стал Даниэль Бун. Он имеет атрибуты одежды соответствующего исторического периода — ковбойскую шляпу, шейный платок, сапоги, шпоры, оружие — револьвер или винтовку, седло и, конечно, лошадь. Верный конь и сам по се
бе может быть важным персонажем в сюжете. Произведения в стиле вестерн часто изображают завоевание диких пространств и подчинение природы во имя цивилизации, или конфискацию территорий, по праву принадлежащих исконным обитателям приграничных территорий. Вестерны чаще описывают общество, организованное на основе кодекса чести, чем на основе законодательства, члены которого не имеют иного социального окружения, кроме своих ближайших коллег, родственников, или, возможно, вообще находятся в одиночестве. В некоторых случаях эти персонажи могут восприниматься как литературные потомки средневековых странствующих рыцарей, которые и стояли у истоков развития приключенческого жанра. Как ковбой или стрелок на Диком Западе, странствующий рыцарь в европейской литературе раннего периода путешествовал со своим конём от города к городу, сражаясь со злодеями разнообразных мастей и опираясь не на развитые социальные механизмы, а на свой собственный кодекс чести.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *