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

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

Ссылка: @Portal_v_IT

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

Канал на бирже: telega.in/c/dailycoding
Download Telegram
💡 Статическая типизация в Python.

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

 Declaring a function using normal dynamic typing, without mypy
def iter_primes():
# code here#

Declaring the same function with mypy static typing
from typing import Iterator

def iter_primes() -> Iterator[int]:
# code here

Это самый простой пример из целого списка. Если вам нужно больше информации, переходите по ссылке. Кроме того, в документации Mypy есть обширный FAQ.

#советы #coding #python
🔥 Лучшее на канале за неделю

1)
Четыре новых продукта GitHub, которые изменят код.

2) MVP.css — CSS-фреймворк без классов, который упрощает стилизацию веб-страниц без написания CSS или дополнительной разметки.

3) Статическая типизация в Python.
🥳 Рады представить нашего нового бота!

Craftwork Bot предоставляет альтернативный доступ к сайту craftwork.design, но намного дешевле. Работает так же, как и @ui8_bot:

1. Присылаете в бота ссылку с сайта
2. Бот присылает файл для скачивания

Первым 50 покупателем делаем шикарный подарок. Купленная подписка увеличивается в 2 раза, например вы купили подписку на 6 месяцев, а получили целый год подписки. Новости и обновления публикуем на канале Digital Dealers.
🛠 Kite — быстрый доступ к документации и автозаполнение на основе ИИ. Kite способен помогать не только с именами функций, но и с часто используемыми кусками кода. А ещё он анализирует данные репозиториев GitHub и предлагает нужные подсказки.

#инструменты #python
Выберите правильный вариант 👇🏼 #test
📑 Flutter.dev: Простое управление состоянием приложения

В статье рассказывается о простом управлении состоянием приложения. Мы будем использовать пакет provider. Если вы новичок во Flutter и у вас нет веских причин для выбора другого подхода (Redux, Rx, хуков и т. д.), это, вероятно, самый лучший подход для старта. Пакет provider прост в освоении и не требует большого количества кода. Он также оперирует концепциями, которые применимы во всех других подходах.

#статьи
🛠 SonarLint — инструмент, который проводит динамический анализ и в фоновом режиме запускает/компилирует код, проверяя правильность его работы. И если что-то идет не так, сообщает о возможной ошибке. SonarLint предупреждает об закомментированном коде и неиспользуемых функциях, оставленных по всей кодовой базе, показывая, где что находится. Без SonarLint поиск проблем и отладка может занять многие часы. У SonarLint есть большая обновляемая база данных с перечнем уязвимостей, которая позволяет плагину вовремя предупреждать разработчика о найденных в коде проблемах. SonarLint предупреждает о чрезмерном усложнении кода, объясняя суть проблемы. Это может быть, например, слишком большая вложенность операторов if.

#инструменты #python
💡 Использование __main__.py

Давайте сначала разберёмся: как большинство людей запускают свои скрипты на Python?

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

 __name__ == '__main__':
main(sys.argv)

Когда вы скармливаете скрипт интерпретатору, магическая глобальная переменная name получает значение main. Таким образом мы узнаём, что это не импорт, а именно запуск. Например:

 myapp.py

И это прекрасно работает для одиночного файла.

Проблема

Но вы не захотите, чтобы всё ваше приложение теснилось в единственном файле. Разбиение логики по разным файлам упрощает редактирование и поддержку. Например:

├── README.me
├── requirements.txt
├── setup.py
└── src
├── __init__.py
├── client.py
├── logic.py
├── models.py
└── run.py

Но пользователю, который склонировал проект из репозитория будет непонятно — какой из этих файлов главный? Неужели run.py? А может client.py? Где же искать знакомую строку if name == 'main'? Вот здесь-то main.py и способен проявить себя.

__main__.py

Файл main.py вызывается при запуске проекта с флагом модуля — -m. И это весьма удобно, если код предназначен и для использования в качестве модуля, и для запуска из консоли. Думайте об этом файле, как о месте куда можно класть всё, что вы обычно кладёте внутрь if name == 'main'. Давайте изменим проект из примера выше соответственно:

├── README.me
├── requirements.txt
├── setup.py
└── myapp
├── __init__.py
├── __main__.py
├── client.py
├── logic.py
├── models.py

И, вуаля! Теперь можно просто запускать проект как обычный модуль.

 -m myapp

main.py будет выполняться автоматически. Это идеальное место для размещения интерфейса командной строки и обработки входных аргументов!

#советы #coding #python
📑 Как приложение Reface завоевало мир

На прошлой неделе приложение украинских разработчиков Reface заняло первое место в американском App Store в категории "Развлечения". На этой неделе приложение стало лидером уже всего американского App Store. Приложение появилось в App Store и Google Play семь месяцев назад, и уже успело побывать в топе скачиваемых в сотне разных стран. Но успех на американском рынке — самый значимый, признают в компании.

Роман Могильный, CEO Reface, рассказал о том, как вывести приложение в топ всего App Store и сколько можно на этом заработать.

#статьи
Выберите правильный вариант 👇🏼 #test
📑 Ответ
Anonymous Quiz
27%
ParseError
58%
php
16%
callable {...}
💡 Уменьшите количество глобальных переменных

«Сведением количества глобальных переменных к одному, вы значительно снижаете шансы нежелательного взаимодействия с другими приложениями, виджетами или библиотеками.»
— Douglas Crockford

Вместо

var name = 'Jeffrey';  
var lastName = 'Way';

function doSomething() {...}

console.log(name); // Jeffrey -- or window.name

Лучше

var DudeNameSpace = {  
name : 'Jeffrey',
lastName : 'Way',
doSomething : function() {...}
}
console.log(DudeNameSpace.name); // Jeffrey

Мы уменьшили количество глобальных переменных до одного, странным образом названного, обьекта «DudeNameSpace».

#советы #coding #js
Интересуешься компьютерными технологиями, но все ещё плохо в них разбираешься? Переходи в @zametkiitshnika!

На канале ты найдёшь:

- Обучение различным IT-процессам
-Обучение хакингу
- Информацию об обмане в сети и как не стать жертвой интернет-мошенников

Подписывайся и мы научим быть продвинутым IT пользователем!

@zametkiitshnika
🔥 Лучшее на канале за неделю

1.
Как приложение Reface завоевало мир

2. Kite — быстрый доступ к документации и автозаполнение на основе ИИ.

3. Использование __main__.py.
🛠 μPlot — быстрая библиотека с эффективным использованием памяти для создания великолепных 2D-диаграмм на основе Canvas. μPlot предлагает множество типов графиков, вариантов настройки и другие интересные функции.

#инструменты #js
📑 JavaScript: область видимости простыми словами

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

В этой статье постараемсяь простыми словами объяснить, что такое область видимости в JavaScript.

#статьи #js
Выберите правильный вариант 👇🏼 #test