Daily Coding 🔥
رفتن به کانال در Telegram
Канал, который научит вас программировать лучше и эффективнее. Интересные задачи, обучающие статьи, советы по стилю кода и многое другое. Ссылка: @Portal_v_IT Сотрудничество: @oleginc, @tatiana_inc Канал на бирже: telega.in/c/dailycoding
نمایش بیشتر8 031
مشترکین
-524 ساعت
-287 روز
-11730 روز
آرشیو پست ها
8 028
📑 Вышел новый релиз «Python для браузеров», встречаем Brython 3.9
Разработчики проекта Brython Python выпустили новый релиз, Brython 3.9. Сам проект позиционируется, как «Python для браузера». Он основан на Python 3 и выполняется на стороне браузера, причем для разработки веб-скриптов вместо JavaScript используется Python. Код проекта написан на Python и распространяется под лицензией BSD. Новый релиз совместим с Python 3.9, плюс обновлена стандартная библиотека.
#статьи #python
8 028
💡 Не храните в коде секретные данные
Часть 2
Перед прочтением рекомендуем ознакомиться с первой частью.
Правильно: реквизиты хранятся в переменных окружения
Перенести реквизиты для доступа к базе данных в переменные окружения совсем несложно:
import os
from flask import Flask
app = Flask(__name__)
app.config["SQLALCHEMY_DATABASE_URI"] = os.getenv("SQLALCHEMY_DATABASE_URI")
Теперь нужно, перед запуском приложения, инициализировать переменные окружения:
export SQLALCHEMY_DATABASE_URI=postgresql://user:secret@localhost:5432/my_db flask runПравильно: реквизиты хранятся в файле .env Хранение данных в файле
.env будет в следующей части.
#советы #coding #python8 028
🛠 VoxelSpace — интересный репозиторий на GitHub для генератора бесконечного ландшафта, созданного с нуля. Исходный код содержит множество комментариев, а сам алгоритм рендеринга очень хорошо объяснен в readme. Вы можете посмотреть демо здесь .
#инструменты
8 028
📑 7 практик отличных разработчиков
Мы все хотим достичь наших самых больших карьерных целей, но слишком часто мы слишком концентрируемся на цели, а не на методе, который мы используем для достижения этой цели.
Часто это приводит к бесконечному циклу возбуждения, мотивации, неудач, выгорания и сдачи, только чтобы начать цикл снова, когда у нас появляется новое представление о вновь возникшей мотивации.
Когда дело доходит до начала и построения успешной карьеры разработчика, так же важно сосредоточиться на мелочах, которые вы делаете каждый день, как и на своих целях.
#статьи
8 028
🔥 Лучшее на канале за неделю
1. Разбираемся в рекурсии.
2. Flowy — библиотека, которая позволяет быстро интегрировать красивые блок-схемы в ваше приложение.
3. Уберите из репозитория ненужные файлы.
8 028
💡 Не храните в коде секретные данные
Часть 1
В репозитории не должно быть никаких паролей к базам данных, ключей к внешним API, секретных ключей систем шифрования! Подобные вещи надо хранить в конфигурационных файлах или в переменных окружения. Ещё один вариант — их чтение из защищённого хранилища. А включать их в код — это в высшей степени неправильно. Вот — отличное руководство на тему хранения конфигурационных данных, подготовленное в рамках проекта The Twelve-Factor App (другие материалы этого проекта тоже весьма полезны).
Неправильно: реквизиты базы данных хранятся в коде
Ниже приведён фрагмент Flask-приложения. Автор хранит реквизиты для доступа к базе данных в коде.
from flask import Flask app = Flask(__name__) app.config["SQLALCHEMY_DATABASE_URI"] = "postgresql://user:secret@localhost:5432/my_db"Правильно: реквизиты хранятся в переменных окружения. Примеры кода, а также хранение данных в файле
.env будут в следующей части.
#советы #coding #python8 028
📑 Как генерируются UUID
Вы наверняка уже использовали в своих проектах UUID и полагали, что они уникальны. Давайте рассмотрим основные аспекты реализации и разберёмся, почему UUID практически уникальны, поскольку существует мизерная возможность возникновения одинаковых значений.
Современную реализацию UUID можно проследить до RFC 4122, в котором описано пять разных подходов к генерированию этих идентификаторов. Мы рассмотрим каждый из них и пройдёмся по реализации версии 1 и версии 4.
#статьи
8 028
💡 Уберите из репозитория ненужные файлы
Выкладывая код на GitHub следует придерживаться правила, в соответствии с которым в репозиторий не должно попадать ничего такого, что создано не владельцем репозитория. Вот хорошее руководство по
.gitignore, в котором даётся обзор того, что обычно не стоит включать в репозитории.
Начальный вариант файла .gitignore для Python-проектов
Следующий текст можно рассматривать в качестве начального варианта содержимого .gitignore. Добавьте такой файл в свой проект в самом начале работы над ним.
*.pyc *.egg-info # Если вы программируете на Mac .DS_Store # Если вы пользуетесь виртуальными окружениями # в проектах. Я, например, обычно ими пользуюсь. /env # Настройки и хранение секретных данных /.envЕсли вам нужен более масштабный пример
.gitignore — взгляните на этот файл из коллекции GitHub. Используйте его как источник вдохновения и как базу для вашего .gitignore.
#советы #coding #python8 028
🛠 Magic — отличная коллекция из более чем 50 настраиваемых CSS-анимаций, которые очень простые в использовании. Просто добавьте соответствующие классы к элементам страницы с помощью JS и готово!
#инструменты
8 028
📑 Разбираемся в рекурсии
Про рекурсию ходит много шуток, и она традиционно считается одной из сложных для понимания тем в computer science, поэтому давайте сегодня немного о ней поговорим. А именно, давайте обсудим, как выражать доказуемо завершимые вычисления.
#статьи
8 028
🛠 Flowy — библиотека, которая позволяет быстро интегрировать красивые блок-схемы в ваше приложение. Flowy не просто отображает блок-схемы - на самом деле это целый редактор перетаскивания с отличным интерфейсом, множеством параметров настройки, прослушивателями событий жестов и другими функциями.
#инструменты
اکنون در دسترس! پژوهش تلگرام ۲۰۲۵ — مهمترین بینشهای سال 
