🛠 jExcel - VanillaJS библиотека без внешних зависимостей, которая упрощает создание электронных таблиц в стиле Excel. Интерактивные таблицы предлагают множество функций, параметров настройки и отличную поддержку браузера.
#инструменты #js
#инструменты #js
💡 Поиск заданного шаблона в каждом файле в терминале
Команда grep осуществляет поиск заданного шаблона в каждом файле. Она также ищет шаблоны, разделенные символами новой строки, и выводит каждую строку, совпадающую с шаблоном.
Опция -i делает текущий поиск нечувствительным к регистру. То есть, в нашем случае, с заданным шаблоном совпадут «REACT», «REact» и «react».
При помощи команды grep можно делать очень много всего. Если хотите изучить ее получше, обратитесь к документации.
#советы #coding
Команда grep осуществляет поиск заданного шаблона в каждом файле. Она также ищет шаблоны, разделенные символами новой строки, и выводит каждую строку, совпадающую с шаблоном.
grep "нужная строка" fileРассмотрим команду на примере поиска всех слов «React» в файле index.js.
Опция -i делает текущий поиск нечувствительным к регистру. То есть, в нашем случае, с заданным шаблоном совпадут «REACT», «REact» и «react».
grep -i "REact" fileМожно вывести просто число строк, где содержится заданный шаблон — при помощи опции -c (count).
grep -c "react" index.jsЕсть следующие вариации команды grep: egrep и fgrep, являющиеся, по сути, той же командой grep, только с опциями -E и -F соответственно. Эти вариации уже устарели, но предоставляются с целью поддержки обратной совместимости.
При помощи команды grep можно делать очень много всего. Если хотите изучить ее получше, обратитесь к документации.
#советы #coding
💡 Статическая типизация в Python.
Бесплатный инструмент Mypy внедряет статическую типизацию в код. Он позволяет находить ошибки несоответствия типов в коде. Если обнаружено несоответствие значение переменной присвоенному типу, выводится ошибка.
#советы #coding #python
Бесплатный инструмент Mypy внедряет статическую типизацию в код. Он позволяет находить ошибки несоответствия типов в коде. Если обнаружено несоответствие значение переменной присвоенному типу, выводится ошибка.
Declaring a function using normal dynamic typing, without mypyЭто самый простой пример из целого списка. Если вам нужно больше информации, переходите по ссылке. Кроме того, в документации Mypy есть обширный FAQ.
def iter_primes():
# code here#
Declaring the same function with mypy static typing
from typing import Iterator
def iter_primes() -> Iterator[int]:
# code here
#советы #coding #python
🔥 Лучшее на канале за неделю
1) Четыре новых продукта GitHub, которые изменят код.
2) MVP.css — CSS-фреймворк без классов, который упрощает стилизацию веб-страниц без написания CSS или дополнительной разметки.
3) Статическая типизация в Python.
1) Четыре новых продукта GitHub, которые изменят код.
2) MVP.css — CSS-фреймворк без классов, который упрощает стилизацию веб-страниц без написания CSS или дополнительной разметки.
3) Статическая типизация в Python.
🥳 Рады представить нашего нового бота!
Craftwork Bot предоставляет альтернативный доступ к сайту craftwork.design, но намного дешевле. Работает так же, как и @ui8_bot:
1. Присылаете в бота ссылку с сайта
2. Бот присылает файл для скачивания
Первым 50 покупателем делаем шикарный подарок. Купленная подписка увеличивается в 2 раза, например вы купили подписку на 6 месяцев, а получили целый год подписки. Новости и обновления публикуем на канале Digital Dealers.
Craftwork Bot предоставляет альтернативный доступ к сайту craftwork.design, но намного дешевле. Работает так же, как и @ui8_bot:
1. Присылаете в бота ссылку с сайта
2. Бот присылает файл для скачивания
Первым 50 покупателем делаем шикарный подарок. Купленная подписка увеличивается в 2 раза, например вы купили подписку на 6 месяцев, а получили целый год подписки. Новости и обновления публикуем на канале Digital Dealers.
🛠 Kite — быстрый доступ к документации и автозаполнение на основе ИИ. Kite способен помогать не только с именами функций, но и с часто используемыми кусками кода. А ещё он анализирует данные репозиториев GitHub и предлагает нужные подсказки.
#инструменты #python
#инструменты #python
📑 Flutter.dev: Простое управление состоянием приложения
В статье рассказывается о простом управлении состоянием приложения. Мы будем использовать пакет provider. Если вы новичок во Flutter и у вас нет веских причин для выбора другого подхода (Redux, Rx, хуков и т. д.), это, вероятно, самый лучший подход для старта. Пакет provider прост в освоении и не требует большого количества кода. Он также оперирует концепциями, которые применимы во всех других подходах.
#статьи
В статье рассказывается о простом управлении состоянием приложения. Мы будем использовать пакет provider. Если вы новичок во Flutter и у вас нет веских причин для выбора другого подхода (Redux, Rx, хуков и т. д.), это, вероятно, самый лучший подход для старта. Пакет provider прост в освоении и не требует большого количества кода. Он также оперирует концепциями, которые применимы во всех других подходах.
#статьи
🛠 SonarLint — инструмент, который проводит динамический анализ и в фоновом режиме запускает/компилирует код, проверяя правильность его работы. И если что-то идет не так, сообщает о возможной ошибке. SonarLint предупреждает об закомментированном коде и неиспользуемых функциях, оставленных по всей кодовой базе, показывая, где что находится. Без SonarLint поиск проблем и отладка может занять многие часы. У SonarLint есть большая обновляемая база данных с перечнем уязвимостей, которая позволяет плагину вовремя предупреждать разработчика о найденных в коде проблемах. SonarLint предупреждает о чрезмерном усложнении кода, объясняя суть проблемы. Это может быть, например, слишком большая вложенность операторов if.
#инструменты #python
#инструменты #python
💡 Использование __main__.py
Давайте сначала разберёмся: как большинство людей запускают свои скрипты на Python?
Однажды вы напишете программу, которую захотите использовать и как импортируемый модуль, и как инструмент запускаемый из командной строки. Вы скорей всего в курсе, как обычно поступают в этом случае:
Проблема
Но вы не захотите, чтобы всё ваше приложение теснилось в единственном файле. Разбиение логики по разным файлам упрощает редактирование и поддержку. Например:
__main__.py
Файл main.py вызывается при запуске проекта с флагом модуля — -m. И это весьма удобно, если код предназначен и для использования в качестве модуля, и для запуска из консоли. Думайте об этом файле, как о месте куда можно класть всё, что вы обычно кладёте внутрь if name == 'main'. Давайте изменим проект из примера выше соответственно:
#советы #coding #python
Давайте сначала разберёмся: как большинство людей запускают свои скрипты на Python?
Однажды вы напишете программу, которую захотите использовать и как импортируемый модуль, и как инструмент запускаемый из командной строки. Вы скорей всего в курсе, как обычно поступают в этом случае:
__name__ == '__main__':Когда вы скармливаете скрипт интерпретатору, магическая глобальная переменная name получает значение main. Таким образом мы узнаём, что это не импорт, а именно запуск. Например:
main(sys.argv)
myapp.pyИ это прекрасно работает для одиночного файла.
Проблема
Но вы не захотите, чтобы всё ваше приложение теснилось в единственном файле. Разбиение логики по разным файлам упрощает редактирование и поддержку. Например:
├── README.meНо пользователю, который склонировал проект из репозитория будет непонятно — какой из этих файлов главный? Неужели run.py? А может client.py? Где же искать знакомую строку if name == 'main'? Вот здесь-то main.py и способен проявить себя.
├── requirements.txt
├── setup.py
└── src
├── __init__.py
├── client.py
├── logic.py
├── models.py
└── run.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 myappmain.py будет выполняться автоматически. Это идеальное место для размещения интерфейса командной строки и обработки входных аргументов!
#советы #coding #python
📑 Как приложение Reface завоевало мир
На прошлой неделе приложение украинских разработчиков Reface заняло первое место в американском App Store в категории "Развлечения". На этой неделе приложение стало лидером уже всего американского App Store. Приложение появилось в App Store и Google Play семь месяцев назад, и уже успело побывать в топе скачиваемых в сотне разных стран. Но успех на американском рынке — самый значимый, признают в компании.
Роман Могильный, CEO Reface, рассказал о том, как вывести приложение в топ всего App Store и сколько можно на этом заработать.
#статьи
На прошлой неделе приложение украинских разработчиков Reface заняло первое место в американском App Store в категории "Развлечения". На этой неделе приложение стало лидером уже всего американского App Store. Приложение появилось в App Store и Google Play семь месяцев назад, и уже успело побывать в топе скачиваемых в сотне разных стран. Но успех на американском рынке — самый значимый, признают в компании.
Роман Могильный, CEO Reface, рассказал о том, как вывести приложение в топ всего App Store и сколько можно на этом заработать.
#статьи
💡 Уменьшите количество глобальных переменных
«Сведением количества глобальных переменных к одному, вы значительно снижаете шансы нежелательного взаимодействия с другими приложениями, виджетами или библиотеками.»
— Douglas Crockford
Вместо
#советы #coding #js
«Сведением количества глобальных переменных к одному, вы значительно снижаете шансы нежелательного взаимодействия с другими приложениями, виджетами или библиотеками.»
— 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
На канале ты найдёшь:
- Обучение различным IT-процессам
-Обучение хакингу
- Информацию об обмане в сети и как не стать жертвой интернет-мошенников
Подписывайся и мы научим быть продвинутым IT пользователем!
@zametkiitshnika
🔥 Лучшее на канале за неделю
1. Как приложение Reface завоевало мир
2. Kite — быстрый доступ к документации и автозаполнение на основе ИИ.
3. Использование __main__.py.
1. Как приложение Reface завоевало мир
2. Kite — быстрый доступ к документации и автозаполнение на основе ИИ.
3. Использование __main__.py.
🛠 μPlot — быстрая библиотека с эффективным использованием памяти для создания великолепных 2D-диаграмм на основе Canvas. μPlot предлагает множество типов графиков, вариантов настройки и другие интересные функции.
#инструменты #js
#инструменты #js