Библиотека программиста | программирование, кодинг, разработка
82.2K subscribers
3.11K photos
146 videos
88 files
6.34K links
Все самое полезное для программиста в одном канале.

Список наших каналов: https://t.me/proglibrary/9197
Учиться у нас: https://proglib.io/w/a32a0d94

Обратная связь: @proglibrary_feedback_bot

По рекламе: @proglib_adv
Прайс: @proglib_advertising
Download Telegram
#fundamental #patterns #cheatsheet

📌 Состояние (англ. State) — поведенческий паттерн, позволяющий объектам менять поведение в зависимости от своего состояния.

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

Проблема: машину состояний чаще всего реализуют с помощью условных операторов (if/switch), проверяющих текущее состояние объекта. Набор возможных состояний бывает трудно предопределить заранее, поэтому они добавляются в процессе развития программы, что впоследствии может вызвать проблемы.

Решение: создать отдельные классы для каждого состояния, в котором может пребывать объект, а затем вынести туда поведения, соответствующие этим состояниям.

Паттерн применяется, когда:
✔️Есть объект, поведение которого кардинально меняется.
✔️Код класса содержит множество похожих условных операторов.
​​Как правильно общаться с удаленным сервером через SSH

О правилах безопасного SSH-подключения и способах его улучшения с примерами для систем на основе RHEL/CentOS и Ubuntu.

https://proglib.io/sh/0gQwGSZrpB
​​Суперменом может стать каждый: разделяем дизайн и данные в React

Забавный рассказ с интерактивными иллюстрациями (и соответствующим кодом) о ментальной модели, которая поможет новичкам в React запомнить, как правильно с ним работать.

https://proglib.io/sh/Az5o9VJyhd
#fundamental #patterns #cheatsheet

📌 Стратегия (англ. Strategy) — поведенческий паттерн, опредяющий семейство схожих алгоритмов и помещающий каждый из них в собственный класс, после чего алгоритмы можно взаимозаменять во время исполнения программы.

Идея: использовать различные бизнес-правила или алгоритмы исходя из контекста.

Проблема: по типу клиента (или по типу обрабатываемых данных) выбрать подходящий алгоритм, который следует применить.

Решение: определить семейство схожих и часто изменяющихся/расширяющихся алгоритмов, и вынести их в собственные классы-стратегии.

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

Паттерн применяется, когда:
✔️Необходимо использовать разные вариации какого-то алгоритма внутри одного объекта.
✔️Есть множество похожих классов, отличающихся только некоторым поведением.
✔️Не хотитите обнажать детали алгоритмов для других классов.
​​Менеджмент игровых проектов: от идеи до релиза

Как грамотно организовать рабочие процессы в геймдев-команде, какие инструменты использовать и на что обратить внимание в процессе создания продукта.

https://proglib.io/sh/XVdukb9x0J
​​Пишем бота для Instagram на Python

Пошаговое руководство по созданию бота для Instagram на Python, который будет всё делать за вас: лайки, подписки, комментарии, анализ постов... Остаётся лишь фотографировать!

https://proglib.io/sh/GqdZ8bFv3t
Нечасто встретишь в интернете материалы про информационную безопасность, раскрывающие внутреннюю кухню организации. На Хабре появился очень любопытный текст, где специалист по информбезопасности Газпромбанка развеивает популярные мифы о защите персональных данных в банках и даёт представление о том, как устроена ИБ в финансовой организации.
​​«Контейнер дал течь»: проверьте безопасность Docker-образа

Установленные в контейнере Docker пакеты, используемые библиотеки и даже базовый образ – любой компонент может создать уязвимость. Рассказываем, как вовремя найти и устранить течь.

https://proglib.io/sh/DAzwckGt08
​​Нейросети в помощь геймдев-художнику: машинное обучение для создания игрового пиксель-арта

О том, как генеративно-состязательные нейросети с Pix2Pix-архитектурой помогают художникам ускорить создание игрового дизайна.

https://proglib.io/sh/YO0C7fVusE
FirstVDS запустили инициативу #SaveFirst на время пандемии

Чтобы облегчить жизнь людей в период самоизоляции, многие компании снизили цены на услуги, а некоторые и вовсе помогают бесплатно. В FirstVDS считают, это правильный путь, и не хотят оставаться в стороне, поэтому создали инициативу #SaveFirst.

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

🔸 предоставление ПО для организации процессов удалённой работы;
🔸 онлайн-образование;
🔸 решения в области здравоохранения;
🔸 организация культурного досуга.

Узнать больше об инициативе и подать заявку можно на сайте https://bit.ly/2UYQIbp
​​#tools #frontend #library

Darkmode.js

Библиотека позволяет добавить темный/ночной режим на ваш сайт за несколько секунд.

Статья, которой был вдохновлен проект: https://proglib.io/w/847b44f2
Ссылка на репозиторий: https://proglib.io/w/8e6a3d86
​​Когда антивирус бессилен: распознавание вредоносных программ методами компьютерного зрения

Небольшая заметка про отображение бинарных файлов в виде картинок и применение средств computer vision для обнаружения троянов и вирусов.

https://proglib.io/sh/tsCQgE6hXy
Во время самоизоляции многие работодатели наконец-то признали, что удалённые работники вполне эффективны. Пути назад нет — бизнес идёт туда, где ему выгодно, и скоро всё меньше рабочих мест будут требовать физического присутствия работника в офисе.

Мы предлагаем встретить эти перемены во всеоружии. С 14 по 16 апреля GeekBrains проводит серию бесплатных вебинаров «Все об удалёнке: как работать эффективно и зарабатывать»

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

Переходите по ссылке, чтобы узнать больше и записаться: https://proglib.io/w/f9ed33d1
Большинство из нас уже дико устали от карантина: готовка как будто 24/7 или поглощение фаст-фуда, сложности с заказом продуктов (а выходить всё-таки не хочется!), риск закончить карантин с лишними кг на боках.
Трать время на то, в чём ты профессионал, а не на оладьи. А мы возьмём готовку на себя!

Почему тебе нужно попробовать justfood:

4 линейки питания. Два варианта для спортсменов, а также премиальная и вегетарианская линейки

+500 блюд во всех линейках. Есть супы, салаты, курица и говядина, правильные десерты, фрукты и овощи

У каждой линейки дневная калорийность от 1300 ккал до 2500 ккал. На каждый день 5-7 блюд

Привозим по всей Москве и даже до Бетонки

Антисептик в подарок. Безопасная доставка и абсолютное соблюдение мер предосторожности на производстве

Месяц питания от 21 384 ₽. Пробный день от 990 ₽!

По промокоду Biblioprog дополнительная скидка на заказ от 5 дней.

Заказывай по ссылке: https://bit.ly/2XhLOYD
​​Бесплатный видеокурс «Язык R для пользователей Excel»

Курс по языку R для пользователей Microsoft Excel: 12 уроков об архитектуре tidyverse и входящих в неё пакетах: readr, vroom, dplyr, tidyr и ggplot2.

https://proglib.io/sh/wmjQxCs70V
Чтобы активировать на сайте proglib.io темную тему, нужно полайкать и добавить в закладки любую из статей
#fundamental #patterns #cheatsheet

📌 Шаблонный метод (англ. Template Method) — поведенческий паттерн, определяющий основу алгоритма и позволяющий подклассам переопределять некоторые шаги алгоритма, не меняя его общей структуры.

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

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

Паттерн применяется, когда:
✔️Подклассы должны расширять базовый алгоритм, не меняя его структуры.
✔️Есть несколько классов, реализующих одно и то же с незначительными отличиями.
​​Ускоряем загрузку сайта с помощью Chrome DevTools

В этом подробном туториале показываем, как использовать Chrome DevTools, чтобы ускорить загрузку сайта, используя вкладки Audits, Network и Performance.

https://proglib.io/sh/iRbyk6ujzQ
ТОП-10 лучших игр для программистов 🧩

10. В TIS-100 игроки должны решать различные типы головоломок, соревнуясь друг с другом в оптимизации кода на игровом многопотоковом ассемблере. Игра выполнена в необычной и стильной эстетике компьютерных руководств 80-х годов.

9. Human Resource Machine — игра про программирование с увлекательным набором головоломок, где игрок использует свои навыки кодинга, чтобы управлять маленькими офисными работниками, которые должны перемещать объекты между различными областями.

8. Screeps — это MMO стратегия, в которой игрок должен использовать JavaScript для управления игровыми сущностями и построения собственной империи.

Узнать про остальные игры, а заодно и получить 50% скидку на годовую подписку JavaRush, можно воооот здесь.
Перевод статьи под названием «10 Extraordinary GitHub Repos for All Developers», в которой содержатся ссылки на полезные репозитории для всех разработчиков.

https://proglib.io/w/5f3b3092