S
@sovetov
17 posts

Unicode не кодировка

Кодировки — это UTF-8, UTF-16, UCS-2. Они определяют, как записать конкретные код-поинты (номера символов) в байты. А Unicode — это как раз набор символов и частей символов, рекомендации по их сочетаемости и отображению, по тому как работать с разными системами письма.

JSON — это не вложенные дикты, листы и скаляры

JSON — это последовательность байтов. Байты представляют из себя строку текста в в UTF-8. В которую закодированы вложенные дикты, листы, инты, флоаты, строки и наны. Пример:

Хороший код

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

Правилами нельзя пренебрегать

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

Записывай все, что знаешь

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

Как будут ревьюить твой код

Ревьюер (обычно) не несет ответственности за код. Его задача — помочь. Если помогать долго и трудно, никто это делать не будет. Посмотрят поверхностно на код-стайл и махнут рукой. Поэтому надо сделать так, чтобы ревьюер мог легко и комфортно вникнуть в суть изменения. Поэтому:

Какие типы возвращать и принимать

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

Правила должны быть простыми

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

Правила: зачем и какие нужны

Правила нужны не только для того, чтобы код был читаемым или качественным. Читаемость, в конце концов, — субъективная характеристика. У всех свои представления о прекрасном.

Килобиты и килобайты

Сетевые скорости и битрейты аудио и видео измеряются в битах в секунду с десятичными приставками. 100 Мбит/с — это 100000000 бит в секунду. Низкоуровневые сетевые протоколы никак не привязаны к байтам, октетам и, тем более, степеням двойки. Оттуда все и пошло.