Daily Coding 🔥
8.74K subscribers
1.83K photos
6 videos
1 file
1.68K links
Канал, который научит вас программировать лучше и эффективнее.

Интересные задачи, обучающие статьи, советы по стилю кода и многое другое.

Ссылка: @Portal_v_IT

Сотрудничество: @oleginc, @tatiana_inc

Канал на бирже: telega.in/c/dailycoding
Download Telegram
💡 Используйте значение по умолчанию, избегайте NULL

Данный совет вытекает из предыдущего. Старайтесь при создании таблицы задавать значения по умолчанию, чтобы избавиться от NULL, так как если Вы этого не будете делать, то могут возникать такие значения как NULL, а следует помнить, что NULL — это не значение, а это состояние ячейки, т.е. отсутствие значения. Чем так плохо это значение, а тем, что при написании запросов, Вам придется помнить, что у Вас могут встречаться такие значения и соответственно принимать их во внимание. Так как если Вы забудете или попросту не знаете, что в какой-то таблице есть значения NULL, то в дальнейшем Вы можете выводить неправильные данные, а это не есть хорошо.

#советы #coding #sql
💡 Используйте имена столбцов в ORDER BY

▍Часть 1

При сортировке (ORDER BY) лучше использовать имена столбцов, а не их позиции (номера), так как могут возникнуть проблемы. Например, Вы использовали сортировку по их номеру и отдали запрос разработчику приложения, затем через некоторое время возникла необходимость изменить данный запрос путем добавления или удаления некоторых полей, а про сортировку забыли и снова отдали запрос разработчику. И теперь при выводе данных будет использоваться неправильная сортировка, а со стороны пользователя вообще может возникнуть мнение, что выводятся неправильные данные, он об этом скажет Вам, а Вы будете не понимать, ведь все же работало, что же не так. А все потому, что никакой ошибки не возникнет, чтобы ее можно было отследить, а все банально и просто, Вы использовали сортировку по номеру столбца.

В следующей части рассмотрим примеры кода.

#советы #coding #sql
💡 Используйте имена столбцов в ORDER BY

Перед прочтением рекомендуем ознакомиться с первой частью.

▍Часть 2

Не нужно так делать
:

   SELECT col, col2, col3
FROM table
ORDER BY 2, 1

А лучше так:

   SELECT col, col2, col3
FROM table
ORDER BY col2, col

#советы #coding #sql
💡 Используйте имена столбцов в ORDER BY

Перед прочтением рекомендуем ознакомиться с первой частью.

▍Часть 2

Примеры кода:

▍Не нужно так делать:

   SELECT col, col2, col3
FROM table
ORDER BY 2, 1

А лучше так:

   SELECT col, col2, col3
FROM table
ORDER BY col2, col

#советы #coding #sql
💡 Сохраняйте SQL запросы

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

#советы #coding #sql
💡 Не создавайте много курсоров

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

#советы #coding #sql
💡 Проверяйте и тестируйте условия при UPDATE и DELETE

Совет на собственную проверку. Иногда, когда требуется что-то массово обновить (UPDATE), всегда тестируйте запрос на тестовой базе, иначе, например, одно не верное условие может быть практически необратимо. Поэтому всегда под рукой должна быть тестовая база.

#советы #coding #sql
💡 Используйте понятные названия

Создавайте понятные названия столбцов в таблицах, а также используйте понятные название переменных, данный совет относится не только к SQL, но и к программированию в целом.

#советы #coding #sql
💡 Визуализация моделей

Установите Django Command Extensions и pygraphviz и затем используйте следующую команду чтобы получить удобную визуализацию моделей проекта в Django:

./manage.py graph_models -a -g -o my_project.png

Daily Coding #советы #coding #python #django #web
💡 Virtualenv

Virtualenv + Python = палочка-выручалочка. Virtualenv будет изолировать настройки Python/Django для каждого отдельного проекта. Это значит, что изменения одного сайта не затронут другие сайты. Также это может оказаться удобным, когда на сервере необходимо держать разные версии Django или python.

Daily Coding #советы #coding #python #django #web
💡 Используйте Memcache

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

Daily Coding #советы #coding #python #django #web
💡 Автозагрузка кастомных тегов, которые можно использовать во всех шаблонах

from django import template
template.add_to_builtins('project.app.templatetags.custom_tag_module')

Если добавить это в модуль который загружается по умолчанию (settings.py,urls.py,every app models.py), у вас будут доступны все теги и фильтры из вашего кастомного модуля в любом шаблоне, без использования {% load custom_tag_module %}.

Аргументом к template.add_to_builtins() может быть путь к любому модулю; ваш кастомный модуль не обязательно должен быть привязан к какому то определенному приложению.
Например, это так же может быть модуль расположенный в корневом каталоге проекта (например: 'project.custom_tag_module').

Daily Coding #советы #coding #python #django #web
💡 Стоит ли изучать Django?

Если вы начинающий программист, и задаетесь вопросом: должен ли я изучить Django? Короткий ответ — да.

Если вам потребуется реализовать вашу идею с минимальными затратами и быстро — Django подходящий инструмент. Он бесплатен, свободен и позволяет сделать разработку web-проектов еще проще. Django лучшее решение для разработки прототипов приложений, поскольку он включает все необходимое для создания необходимого функционала прямо из коробки. Например, админка может быть подключена одной строчкой кода.

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

Daily Coding #советы #coding #python #django #web
💡 Команды для Python по работе с файлами и файловой системой

Начинаем новую серию советов: команды для Python по работе с файлами и файловой системой, которые обязательно нужно знать.

▍Показать текущий каталог

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

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

Так вот, для того чтобы показать текущий каталог, нужна встроенная в Python OS-библиотека:

import os
os.getcwd()

Ее легко запомнить, так что лучше выучить один раз, чем постоянно гуглить. Это здорово экономит время.

Daily Coding #советы #coding #python
💡 Команды для Python по работе с файлами и файловой системой

▍Проверяем, существует файл или каталог

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

Функция os.path.exists () принимает аргумент строкового типа, который может быть либо именем каталога, либо файлом.

В случае с Google Colab при каждом запуске создается папка sample_data. Давайте проверим, существует ли такой каталог. Для этого подойдет следующий код:

os.path.exists('sample_data')

Эта же команда подходит и для работы с файлами:

os.path.exists('sample_data/README.md')

Если папки или файла нет, команда возвращает false.

Daily Coding #советы #coding #python
1
💡 Команды для Python по работе с файлами и файловой системой

▍Объединение компонентов пути

В предыдущем примере был намеренно использован слеш "/" для разделителя компонентов пути. В принципе это нормально, но не рекомендуется. Если вы хотите, чтобы ваше приложение было кроссплатформенным, такой вариант не подходит. Так, некоторые старые версии ОС Windows распознают только слеш "\" в качестве разделителя.

Но не переживайте, Python прекрасно решает эту проблему благодаря функции os.path.join(). Давайте перепишем вариант из примера в предыдущем совете, используя эту функцию:

os.path.exists(os.path.join('sample_data', 'README.md'))

Daily Coding #советы #coding #python
💡 Команды для Python по работе с файлами и файловой системой

▍Создание директории

Ну а теперь самое время создать директорию с именем test_dir внутри рабочей директории. Для этого можно использовать функцию os.mkdir():

os.mkdir('test_dir')

Рекомендуется всегда проверять наличие каталога с определенным названием перед созданием нового:

if not os.path.exists('test_dir'):
os.mkdir('test_dir')

Еще один совет по созданию каталогов. Иногда нам нужно создать подкаталоги с уровнем вложенности 2 или более. Если мы все еще используем os.mkdir (), нам нужно будет сделать это несколько раз. В этом случае мы можем использовать os.makedirs (). Эта функция создаст все промежуточные каталоги так же, как флаг mkdir -p в системе Linux:

os.makedirs(os.path.join('test_dir', 'level_1', 'level_2', 'level_3'))

Daily Coding #советы #coding #python