🧑💻 Управление тем, что может быть импортировано из модуля, а что — нет
В некоторых языках имеются предельно чёткие механизмы экспорта из модулей переменных, методов, интерфейсов. Например — в Golang экспортируются лишь сущности, имена которых начинаются с большой буквы. В Python же экспортируется всё. Но лишь до тех пор, пока не используется атрибут __all__.
Продолжение следует...
Clean Code #совет #Python #cleancode
В некоторых языках имеются предельно чёткие механизмы экспорта из модулей переменных, методов, интерфейсов. Например — в Golang экспортируются лишь сущности, имена которых начинаются с большой буквы. В Python же экспортируется всё. Но лишь до тех пор, пока не используется атрибут __all__.
Продолжение следует...
Clean Code #совет #Python #cleancode
🧑💻 Управление тем, что может быть импортировано из модуля, а что — нет
...В примере кода экспортирована будет лишь функция
Продолжение следует...
Clean Code #совет #Python #cleancode
...В примере кода экспортирована будет лишь функция
bar
. А если оставить атрибут __all__
пустым, то из модуля не будет экспортироваться вообще ничего. При попытке импорта чего-либо из такого модуля будет выдана ошибка AttributeError
.Продолжение следует...
Clean Code #совет #Python #cleancode
🧑💻 Упрощение создания операторов сравнения
Существует немало операторов сравнения. Например — __lt__, __le__, __gt__, __ge__. Мало кому понравится перспектива их реализации для некоего класса. Можно ли как-то упростить эту скучную задачу? Да, можно — с помощь декоратора functools.total_ordering.
Продолжение следует...
Clean Code #совет #cleancode
Существует немало операторов сравнения. Например — __lt__, __le__, __gt__, __ge__. Мало кому понравится перспектива их реализации для некоего класса. Можно ли как-то упростить эту скучную задачу? Да, можно — с помощь декоратора functools.total_ordering.
Продолжение следует...
Clean Code #совет #cleancode
🧑💻 Упрощение создания операторов сравнения
...Декоратор functools.total_ordering используется здесь для упрощения процесса реализации упорядочения экземпляров класса. Для обеспечения его работы нужно лишь чтобы были объявлены операторы сравнения lt и eq. Это — тот минимум, который нужен декоратору для конструирования остальных операторов сравнения.
Продолжение следует...
Clean Code #совет #cleancode #python
...Декоратор functools.total_ordering используется здесь для упрощения процесса реализации упорядочения экземпляров класса. Для обеспечения его работы нужно лишь чтобы были объявлены операторы сравнения lt и eq. Это — тот минимум, который нужен декоратору для конструирования остальных операторов сравнения.
Продолжение следует...
Clean Code #совет #cleancode #python
🧑💻 Комментируйте при необходимости, но не постоянно
...Примером служит комментарий (на картинке) из кодовой базы фреймворка Electron на GitHub.
Однако излишние комментарии могут усложнить код. Вот почему многие программисты, как правило, не пишут Javadoc.
Продолжение следует...
Clean Code #совет #cleancode
...Примером служит комментарий (на картинке) из кодовой базы фреймворка Electron на GitHub.
Однако излишние комментарии могут усложнить код. Вот почему многие программисты, как правило, не пишут Javadoc.
Продолжение следует...
Clean Code #совет #cleancode
🧑💻 Используйте единые правила форматирования
В процессе форматирования кода программисты часто пользуются различными методами. Некоторые включают автоформатирование. А другие любят делать это вручную. Форматирование кода характеризует стиль его написания. Другими словами, оно показывает, как программист руководствуется синтаксисом языка, как структурирует исходный код с помощью пробелов и разбиения на строки. Набор правил для форматирования кода определяет используемый стиль.
Продолжение следует...
Clean Code #совет #cleancode
В процессе форматирования кода программисты часто пользуются различными методами. Некоторые включают автоформатирование. А другие любят делать это вручную. Форматирование кода характеризует стиль его написания. Другими словами, оно показывает, как программист руководствуется синтаксисом языка, как структурирует исходный код с помощью пробелов и разбиения на строки. Набор правил для форматирования кода определяет используемый стиль.
Продолжение следует...
Clean Code #совет #cleancode
🧑💻 Используйте единые правила форматирования
...Посмотрите, как разбивка с помощью строк и пробелов меняет ситуацию. Более того, если добавить между операторами несколько пустых строк, чтобы концептуально сгруппировать логику, то другим программистам будет легче разобраться в сегменте кода, который нужно изменить или изучить.
Продолжение следует...
Clean Code #совет #cleancode
...Посмотрите, как разбивка с помощью строк и пробелов меняет ситуацию. Более того, если добавить между операторами несколько пустых строк, чтобы концептуально сгруппировать логику, то другим программистам будет легче разобраться в сегменте кода, который нужно изменить или изучить.
Продолжение следует...
Clean Code #совет #cleancode
🧑💻 Написание чистого кода
Поддерживать чистоту кода необходимо в каждом проекте. Все языки программирования и фреймворки мотивируют использовать четко сформулированные соглашения или методы присвоения имен. Крупные технологические компании создают собственные руководства по стилю, чтобы гарантировать качество баз кода.
Продолжение следует...
Clean Code #совет #cleancode
Поддерживать чистоту кода необходимо в каждом проекте. Все языки программирования и фреймворки мотивируют использовать четко сформулированные соглашения или методы присвоения имен. Крупные технологические компании создают собственные руководства по стилю, чтобы гарантировать качество баз кода.
Продолжение следует...
Clean Code #совет #cleancode
🧑💻 Написание чистого кода
...Крупные технологические компании создают собственные руководства по стилю, чтобы гарантировать качество баз кода:
— руководство от Google для многих языков;
— руководство от Airbnb для JavaScript.
Код будут читать компилятор и программисты. На компилятор стоит произвести впечатление оптимизированным кодом, а на других программистов — чистым.
Clean Code #совет #JavaScript #cleancode
...Крупные технологические компании создают собственные руководства по стилю, чтобы гарантировать качество баз кода:
— руководство от Google для многих языков;
— руководство от Airbnb для JavaScript.
Код будут читать компилятор и программисты. На компилятор стоит произвести впечатление оптимизированным кодом, а на других программистов — чистым.
Clean Code #совет #JavaScript #cleancode
🧑💻 По возможности применяйте метапрограммирование
...Предположим, что вам нужно сгенерировать SQL-запрос с объектом под названием person. Некоторые выбирают долгий путь, обращаясь к каждой базовой переменной по имени ключа:
Если вам нужно добавить еще одно поле SQL, придется изменить функцию генератора SQL-запросов. По мере увеличения количества полей может потребоваться много времени для явного ввода имен полей.
Продолжение следует...
Clean Code #совет #SQL #cleancode
...Предположим, что вам нужно сгенерировать SQL-запрос с объектом под названием person. Некоторые выбирают долгий путь, обращаясь к каждой базовой переменной по имени ключа:
person.name, person.age, person.country
Если вам нужно добавить еще одно поле SQL, придется изменить функцию генератора SQL-запросов. По мере увеличения количества полей может потребоваться много времени для явного ввода имен полей.
Продолжение следует...
Clean Code #совет #SQL #cleancode
🧑💻 По возможности применяйте метапрограммирование
...Но если относиться к person как к данным и извлекать всю информацию (поля и значения), необходимую для генерации SQL-запроса во время выполнения программы, можно быстро написать высокодинамичный код. Эта техника называется “метапрограммирование”, и при работе с большинством популярных языков вы можете применять ее с помощью Reflection API.
Продолжение следует...
Clean Code #совет #API #SQL #cleancode
...Но если относиться к person как к данным и извлекать всю информацию (поля и значения), необходимую для генерации SQL-запроса во время выполнения программы, можно быстро написать высокодинамичный код. Эта техника называется “метапрограммирование”, и при работе с большинством популярных языков вы можете применять ее с помощью Reflection API.
Продолжение следует...
Clean Code #совет #API #SQL #cleancode
🧑💻 Изучайте новейшие возможности языка, но используйте их с осторожностью
Каждый популярный язык программирования периодически обновляется. Вместе с новыми версиями появляется новый инструментарий, улучшается структура языка и совершенствуется стандартный API. Помимо этого, из языка могут исключаться некоторые существующие функции.
Продолжение следует...
Clean Code #совет #API #cleancode
Каждый популярный язык программирования периодически обновляется. Вместе с новыми версиями появляется новый инструментарий, улучшается структура языка и совершенствуется стандартный API. Помимо этого, из языка могут исключаться некоторые существующие функции.
Продолжение следует...
Clean Code #совет #API #cleancode
🧑💻 Изучайте новейшие возможности языка, но используйте их с осторожностью
...Подобные изменения часто затрагивают функции, ускоряющие написание кода. Так, работа с большими многострочными строками в JavaScript с обычным строковым синтаксисом (с одинарными или двойными кавычками) занимает много времени, поскольку необходимо добавлять множество операторов конкатенации строк. Но с новыми шаблонными литералами ES вы можете выполнять манипулирования строками любой сложности.
Продолжение следует...
Clean Code #совет #JavaScript #cleancode
...Подобные изменения часто затрагивают функции, ускоряющие написание кода. Так, работа с большими многострочными строками в JavaScript с обычным строковым синтаксисом (с одинарными или двойными кавычками) занимает много времени, поскольку необходимо добавлять множество операторов конкатенации строк. Но с новыми шаблонными литералами ES вы можете выполнять манипулирования строками любой сложности.
Продолжение следует...
Clean Code #совет #JavaScript #cleancode