Size: a a a

Библиотека программиста

2020 June 13
Библиотека программиста
Поведенческий паттерн проектирования, позволяющий сохранять и восстанавливать прошлые состояния объектов, не раскрывая подробностей их реализации. Его также используют с паттерном Команда для реализации отмены операций.
Анонимная викторина
7%
Прототип (Prototype)
81%
Хранитель (Снимок, Memento)
6%
Посредник (Mediator)
2%
Нет правильного ответа
4%
Посмотреть результаты
Проголосовало: 2753
источник
2020 June 14
Библиотека программиста
Речь идёт о паттерне Хранитель, который ещё называют Снимок (Memento). На практике данный паттерн может использоваться вместе с Итератором (Iterator), чтобы сохранить текущее состояние обхода структуры данных и вернуться к нему в будущем, если потребуется, а также с паттерном Команда (Command) для реализации отмены операций.

Его также можно заменить Прототипом (Prototype), если объект, состояние которого требуется сохранять в истории, довольно простой, не имеет активных ссылок на внешние ресурсы либо их можно легко восстановить.

Применяйте Хранитель, когда:
✔️Необходимо сохранять мгновенные снимки состояния объекта (или его части), чтобы впоследствии объект можно было восстановить в том же состоянии. Паттерн позволяет создавать любое количество снимков объекта и хранить их, независимо от объекта, с которого делают снимок.
✔️Прямое получение состояния объекта раскрывает приватные детали его реализации, нарушая инкапсуляцию. Паттерн предлагает изготовить снимок самому исходному объекту, поскольку ему доступны все поля, даже приватные.
источник
Библиотека программиста
Команда Git, которая позволяет получить изменения с удалённой ветки, НЕ СЛИВАЯ их с текущей веткой. Эта команда никогда не изменяет текущую ветку и безопасна для выполнения при наличии текущих изменений в рабочей области.
Анонимная викторина
74%
git fetch <remote>
13%
git pull <remote>
5%
git merge <remote>
4%
Нет правильного ответа
4%
Посмотреть результаты
Проголосовало: 3626
источник
2020 June 15
Библиотека программиста
Предположим, что вы работаете в команде еще с одним разработчиком и используете Git для управления версиями. Если вы сделаете что-то в своей локальной ветке <branch>, а тем временем ваш коллега отправит изменения на ваш рабочий (<remote>) сервер и обновит там ветку <branch>, то ваши истории продолжатся по-разному. Пока вы не свяжетесь с сервером <remote> ваш указатель <remote>/<branch> останется на месте.

Для синхронизации изменений с удаленным сервером вы можете выполнить команду git fetch <remote>, которая извлекает оттуда данные, которых у вас ещё нет, и обновляет локальную базу данных, сдвигая указатель <remote>/<branch> на новую позицию.

Иными словами, эта команда получает изменения с удалённого сервера и сохраняет их в каталог refs/remotes/. Это никак не влияет на локальные ветки и текущие изменения.
источник
Библиотека программиста
Учитесь предотвращать киберугрозы на практике🔥

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

На интенсиве вы научитесь:
— Устанавливать и настраивать сеть на Linux-системах
— Настраивать сеть и понимать особенности ее работы
— Понимать взаимодействие между виртуальной и физической машиной
— Осуществлять ряд сетевых атак и выстраивать защиту от них
— Анализировать безопасность ОС

Интенсив ведет: Ильдар Садыков, действующий руководитель отдела ИБ Федерального бюро МСЭ Министерство труда и социальной защиты РФ. Управляет 2 000 системами в 85 регионах РФ.

Читайте подробности и оставляйте заявку на сайте: https://is.gd/T0LfzC
источник
Библиотека программиста
Порождающий паттерн проектирования, позволяющий создавать сложные объекты пошагово, т. е. он предоставляет возможность использовать один и тот же код для получения разных представлений объектов. О каком паттерне идёт речь?
Анонимная викторина
19%
Прототип (Prototype)
4%
Одиночка (Singleton)
73%
Строитель (Builder)
1%
Нет правильного ответа
3%
Посмотреть результаты
Проголосовало: 3182
источник
2020 June 16
Библиотека программиста
Описание, представленное в викторине, соответствует паттерну Строитель (Builder). Его идея заключается в том, чтобы вынести конструирование объекта за пределы его собственного класса, поручив это дело отдельным объектам, называемым строителями.

Что касается применения, то наиболее подходящими являются следующие случаи:
✔️Когда требуется собирать объекты пошагово, вызывая только те шаги, которые вам нужны
✔️Когда код должен создавать разные представления какого-то объекта
✔️Когда необходимо конструировать сложные составные объекты, например, деревья Компоновщика
источник
Библиотека программиста
​​Информационная безопасность web и мобильных приложений, что нужно менять?

18 июня в 17:00 Эльдорадо, Philip Morris, Mail.ru и AGIMA проведут круглый стол по информационной безопасности.

Обсудят:
— как бороться с фродом и DDoS-атаками,
— как защитить конфиденциальные данные пользователей,
— с какими новыми проблемами уже пришлось столкнуться или, возможно, еще предстоит.

Регистрируйтесь: https://is.gd/NZTJCc
источник
Библиотека программиста
​​Puppeteer: парсинг сайтов с JavaScript

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

https://proglib.io/sh/fRqXMj7LEA
источник
2020 June 17
Библиотека программиста
Онлайн-мероприятия второй половины июня (🔥 ― надо поторопиться)

Конференция по компьютерной лингвистике «Диалог», 17 июня 🔥
Путь в ИТ: лекция о дизайне, 17 июня 🔥
Online Ruby Meetup №12, 18 июня 🔥
3D-моделирование на JavaScript, 18 июня 🔥
Online Monitoring Meetup: мониторинг СУБД, 18 июня 🔥
Solution Architecture Webinar, 18 июня 🔥
Я.Железо: цифровая обработка сигналов, 19 июня
Онлайн-воркшоп по созданию навыков Алисы на Node.js, 20 июня
Онлайн-интенсив «Лёгкий старт в профессию тестировщика», 22 июня
Вебинар «Создание игры BlackJack на Python», 22 июня
Путь в ИТ: лекция о продуктовой аналитике, 22 июня
Вебинар «Введение в k6 load testing tool», 24 июня
Начало пути в GameDev, 25 июня
Создание SPA на Vue.js с нуля, 25 июня
BugsBusters: встреча об инструментах тестирования, 25 июня
Дзен-митап: видеорекомендации. Онлайн, 26 июня
Alfa Battle – онлайн-чемпионат по прикладному программированию для Java-разработчиков, 27 июня
источник
Библиотека программиста
С помощью какой команды в Git можно посмотреть историю коммитов таким образом, чтобы вывести каждый коммит в одну строку?
Анонимная викторина
16%
git log oneline
52%
git log --pretty=oneline
22%
git log --shortstat
4%
Нет правильного ответа
7%
Посмотреть результаты
Проголосовало: 3091
источник
Библиотека программиста
Команда, которая позволяет посмотреть историю коммитов таким образом, чтобы каждый коммит был выведен в одну строку, выглядит следующим образом:

$ git log --pretty=oneline

Опция --pretty меняет формат вывода. Вывод каждого коммита в одну строку может быть очень полезен в случае, если вы просматриваете большое количество коммитов. Также --pretty поддерживает опции short, full и fuller, которые делают вывод приблизительно в том же формате, но с меньшим или большим количеством информации соответственно.
источник
Библиотека программиста
​​30 YouTube-каналов и плейлистов о Data Science

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

https://proglib.io/sh/4cmQXnkBCO
источник
2020 June 18
Библиотека программиста
Активно пользуетесь Авито? Ребята из команды Антифрода сделали статью про то, как они борются с мошенниками: https://proglib.io/w/a7e5483e
источник
Библиотека программиста
Паттерн Прототип (Prototype) не основан на наследовании, но ему требуется сложная операция инициализации. Противоположный ему паттерн под названием … , наоборот, построен на наследовании, но не требует сложной инициализации.
Анонимная викторина
33%
Фабричный метод (Factory Method)
35%
Абстрактная фабрика (Abstract Factory)
26%
Строитель (Builder)
6%
Посмотреть результаты
Проголосовало: 2757
источник
2020 June 19
Библиотека программиста
Речь идёт о паттерне Фабричный метод (Factory Method), ведь именно он делегирует создание объектов наследникам родительского класса.

Паттерн предоставляет следующие преимущества:
✔️Избавляет класс от привязки к конкретным классам продуктов.
✔️Выделяет код производства продуктов в одно место, упрощая поддержку кода.
✔️Упрощает добавление новых продуктов в программу.
✔️Реализует принцип открытости/закрытости: «программные сущности (классы, модули, функции и т. п.) должны быть открыты для расширения, но закрыты для изменения».

В связи с тем, что для каждого класса продукта надо реализовать свой подкласс создателя, это может привести к созданию больших параллельных иерархий классов. Данная проблема является основным недостатком Фабричного метода.
источник
Библиотека программиста
​​👨‍💻️ Как выбрать сервер для 1С

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

https://proglib.io/sh/bL4TeHxcQy
источник
2020 June 20
Библиотека программиста
Как называются ссылки, указывающие на определенные точки в истории Git? Обычно они служат для захвата некой точки в истории, которая используется для релиза нумерованной версии (например, v1.0.1).
Анонимная викторина
17%
Ветки
71%
Теги
5%
Псевдонимы
3%
Нет правильного ответа
4%
Посмотреть результаты
Проголосовало: 3589
источник
Библиотека программиста
Git имеет возможность помечать определённые моменты в истории как важные с помощью тегов. Как правило, эта функциональность используется для отметки моментов выпуска версий (например, v1.1).

Теги похожи на неизменяемые ветки, но они, в отличие от веток, не имеют истории коммитов после создания.

Для создания нового тега выполните следующую команду:
$ git tag <tagname>

Замените <tagname> семантическим идентификатором состояния репозитория на момент создания тега. Общеупотребительный шаблон для указания номеров версий выглядит как git tag v1.1.

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

В аннотируемых тегах хранятся дополнительные метаданные, такие как имя создателя тега, адрес электронной почты и дата. Это важные данные для публичного релиза. Облегченные теги по сути являются «закладками» к коммитам, это просто имя и указатель на коммит, что удобно для создания быстрых ссылок на соответствующие коммиты.
источник
2020 June 21
Библиотека программиста
​​🚴 Паттерны Go-кода на все случаи жизни

Cортировки и битовые маски, обработка ошибок и создание изображений, генерация перестановок и работа с хэш-суммами, запуск HTTP-сервера, юнит-тесты и другие распространенные задачи, решаемые с помощью Go.

https://proglib.io/sh/tAslm0UR9V
источник