Size: a a a

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

2020 May 13
Библиотека программиста
​​50 YouTube-каналов для разработчиков игр

🕹️Подборка YouTube-каналов, плейлистов и подкастов о различных аспектах геймдева: программирование в Unity и Unreal Engine, игровые механики, дизайн, арт и продвижение игр.

https://proglib.io/sh/m6RYxucK7t
источник
Библиотека программиста
Верно ли высказывание: различие между паттернами посредник (Mediator) и наблюдатель (Observer) в том, что наблюдатель распределяет обмен информацией между объектами, а посредник наоборот, инкапсулирует взаимодействие между другими объектами.
Анонимная викторина
28%
Нет
54%
Да
17%
Не знаю
Проголосовало: 3231
источник
2020 May 14
Библиотека программиста
Действительно, наблюдатель распределяет обмен информацией между объектами, а посредник наоборот, инкапсулирует взаимодействие между другими объектами.

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

Цель посредника — убрать обоюдные зависимости между компонентами системы. Вместо этого они становятся зависимыми от самого посредника. Наблюдатель обеспечивает динамическую одностороннюю связь, в которой одни объекты косвенно зависят от других.

Популярной является реализация посредника при помощи наблюдателя, когда объект посредника будет выступать издателем, а все остальные компоненты станут подписчиками и смогут динамически следить за событиями, происходящими в посреднике.
источник
Библиотека программиста
Интенсив-практикум «Старт в кибербезопасности»🔥
от международной школы IT и кибербезопасности HackerU

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

— Практика без «воды» и размытой теории
— Домашние задания с поддержкой ведущего эксперта
— Виртуальные "живые" классы, а не вебинары и лекции в записи.
— Кейс в портфолио:  вы создадите виртуальный стенд, осуществите сетевые атаки и выстроите защиту от них.

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

Читайте подробности и оставляйте заявку на сайте: https://is.gd/RLRkst
источник
Библиотека программиста
Как в Git перейти из ветки master в ветку dev?
Анонимная викторина
7%
git move dev
11%
git change master dev
69%
git checkout dev
13%
git branch master dev
Проголосовало: 5942
источник
2020 May 15
Библиотека программиста
Команда git checkout позволяет переключаться между различными версиями целевого объекта и работает с тремя различными объектами: файлами, коммитами и ветками.

Переключение веток

Команда git checkout позволяет перемещаться между ветками, созданными командой git branch. При переключении ветки происходит обновление файлов в рабочем каталоге в соответствии с версией, хранящейся в этой ветке, а Git начинает записывать все новые коммиты в этой ветке.

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

Если предположить, что ваш рабочий репозиторий уже содержит существующие ветки, вы можете переключаться между этими ветками с помощью команды git checkout.

Чтобы узнать, какие ветки доступны и как называется текущая ветка, выполните:
$ git branch
master
another_branch


Для переключение веток используйте:
$
git checkout another_branch

Для создания новой ветки необходимо выполнить команду, которая позволяет создать новую ветку и сразу переключиться на нее:
$ git checkout -b <new-branch>

Для переключения на удаленную ветку необходимо сначала извлечь содержимое этой ветки:
$ git fetch --all

В современных версиях Git переключение на удаленную ветку не отличается от переключения на локальную ветку.
$ git checkout <remotebranch>
источник
Библиотека программиста
​​«Цифровой прорыв» 2020 открывает прием заявок на масштабный IT-марафон с призовым фондом 5.000.000 руб.! ⚡️

В режиме онлайн ты сможешь реализовать свою идею, создать действительно классный продукт, который будет менять жизни людей. 🚀

💥 Регистрируйся по ссылке: https://proglib.io/w/15770386

Тебя ждут два онлайн-хакатона, которые пройдут 5-7 июня и 19-21 июня. 👨🏻‍💻👩🏼‍💻

- 36 часов кодинга/400 команд;
- Крутые кейсовые задания  от Росатома, Сбербанка, Глобального русскоговорящего технологического сообщества Rutech;
- Образовательная программа;
- Трекеры и эксперты , которые будут помогать тебе на каждом этапе.  

🌏 25 июня - 25 июля состоится онлайн-чемпионат на технологической платформе Mail.ru:

- Индивидуальное участие;
- Задачи по Machine Learning и Data Science;
- Возможность попасть на финал Цифрового Прорыва!

🎯 Проверь свои силы и разработай крутой проект для решения реальных бизнес-задач, регистрируйся по ссылке: https://proglib.io/w/15770386
источник
Библиотека программиста
​​Динамическое выполнение выражений в Python: eval()

О встроенной функции eval(), вопросах ее безопасного и эффективного использования в Python. В конце статьи пишем программу, обобщающую полученные знания.

https://proglib.io/sh/MkmvoPAJSY
источник
Библиотека программиста
Выберите верное утверждение про отношения паттернов Фасад (Facade) и Адаптер (Adapter)

*3 правильных ответа
Анонимный опрос
24%
Фасад задаёт новый интерфейс, а Адаптер повторно использует старый
16%
Фасад можно сделать Адаптером, так как обычно нужен только один объект-фасад
27%
Фасад оборачивает подсистему, а Адаптер оборачивает только один класс
24%
Адаптер позволяет двум существующим интерфейсам работать сообща, вместо задания нового как Адаптер
2%
Нет правильного ответа
8%
Не знаю
Проголосовало: 5317
источник
2020 May 16
Библиотека программиста
Большинство подписчиков ответили верно. Паттерн Фасад  ― это структурный паттерн проектирования, предоставляющий простой интерфейс к сложной системе классов, библиотеке или фреймворку, а Адаптер позволяет объектам с несовместимыми интерфейсами работать вместе.

Фасад задаёт новый интерфейс, тогда как Адаптер повторно использует старый. Адаптер оборачивает только один класс, а Фасад оборачивает целую подсистему. Более того, Адаптер позволяет двум существующим интерфейсам работать сообща, вместо того, чтобы задать полностью новый.

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

Применяйте Фасад, когда необходимо представить простой или урезанный интерфейс к сложной подсистеме и необходимо разложить подсистему на отдельные слои.
источник
Библиотека программиста
Ozon научит Go бесплатно! Важная новость для всех, кто связывает своё будущее с написанием кода: самый быстрорастущий российский e-commerce запускает бесплатную школу Go. Это возможность за два месяца стать middle-специалистом с опытом решения реальных задач и проектом в портфолио — а лучшие выпускники получат предложение о работе в Ozon. Что нужно, чтобы поступить? Опыт в написании кода, сделанное тестовое задание и, конечно, заявка. Подробности тут: http://ozon.dev/goschool
источник
Библиотека программиста
Как в Git добавить все изменения в индекс?
Анонимная викторина
13%
git commit add .
7%
git commit .
6%
git add -u
6%
git push -a
57%
git add .
6%
Нет правильного ответа
6%
Не знаю
Проголосовало: 5812
источник
2020 May 17
Библиотека программиста
Основной задачей команды git add является фиксирование состояния рабочей директории для последующего коммита. Коммит выполняется на основании индекса, «индекс» ― это снимок содержания рабочей директории, и именно этот snapshot, будет использован при выполнения коммита.

Путь . обозначает текущую директорию, т.е. ту, в которой была запущена команда. Следовательно, команда git add . позволяет сделать все измененные файлы в текущей директории готовыми для коммита.
источник
Библиотека программиста
​​50 бесплатных ресурсов для создания веб-интерфейсов

Представляем список полезных бесплатных ресурсов для создания веб-интерфейсов: иллюстрации, фото и видео, шрифты, цветовые палитры, иконки, анимации и прочие элементы 🐕

https://proglib.io/sh/W2gf70NwAE
источник
Библиотека программиста
Паттерн Состояние рассматривают как надстройку над паттерном ... . Оба используют композицию, чтобы менять поведение основного объекта, делегируя работу вложенным объектам-помощникам, но в паттерне ... эти объекты не знают друг о друге и никак не связаны.
Анонимная викторина
32%
Декоратор
10%
Шаблонный метод
13%
Команда
30%
Стратегия
4%
Нет правильного ответа
11%
Не знаю
Проголосовало: 2752
источник
2020 May 18
Библиотека программиста
Речь идет о паттерне Стратегия, который представляет из себя поведенческий паттерн проектирования, определяющий семейство схожих алгоритмов и помещающий каждый из них в собственный класс, после чего алгоритмы можно взаимозаменять прямо во время исполнения программы. Паттерн Состояние позволяет объектам менять поведение в зависимости от своего состояния. Извне создаётся впечатление, что изменился класс объекта.

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

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

Паттерн Состояние целесообразно применять, если есть объект, поведение которого кардинально меняется в зависимости от внутреннего состояния, причём типов состояний много, и их код часто меняется, а также если код класса содержит множество больших, похожих друг на друга, условных операторов, которые выбирают поведения в зависимости от текущих значений полей класса.
источник
Библиотека программиста
Ближайшие онлайн-мероприятия (🔥 ― надо поторопиться)

Вебинар «Документирование REST-сервисов», 18 мая 🔥
Вебинар «C++ и системное программирование с нуля», 18 мая 🔥
Вебинар-интервью «Иду в тестировщики: советы, рекомендации, план действий», 18 мая 🔥
Вебинар «Зачем учить PHP в 2020-м?», 18 мая 🔥
Agile не работает. Что с этим сделать?, 18 мая 🔥
Вебинар “Flutter for Junior”, 19 мая 🔥
Laravel + Docker. Настройка окружения для разработки, 19 мая 🔥
PM meetup #3, 20 мая
ITEA Online MeetUp: Как и с чего начать карьеру фрилансера, 20 мая
Firebase. Организация удаленной работы с данными, 20 мая
Yet Another Meetup для продакт-менеджеров, 21 мая
Как искать первую работу в IT?, 21 мая
Использование Bazel для CI/CD в Яндекс.Облаке, 22 мая
Онлайн-хакатон #ХакниCOVID19 22-23 мая (прием заявок: до 20 мая), 22 мая
Вебинар "Как создать прорывной продукт с нуля и без инвестиций и привлечь более 15 миллионов пользователей”, 22 мая
Unreal Meetup #2, 23 мая
Онлайн-хакатон «Интеллектуальные транспортные системы и элементы ситуационных центров» 23.05–30.05, 23 мая
Онлайн-марафон: IT-English, 25 мая
Online-митап LoGeek Night для аналитиков интерфейсов, 26 мая
Онлайн-митап о MongoDB, 26 мая

Персонализированную рассылку мероприятий можно получать в нашем боте: @event_listener_bot
источник
Библиотека программиста
Вы работаете с Git и допустили ошибку в сообщении коммита, или, например, забыли добавить в него несколько файлов.

Как можно отредактировать сообщение, если коммит ещё не был запушен?
Анонимная викторина
8%
git diff -m "Новое сообщение коммита", после чего git push <репозиторий> <ветка>
61%
git commit --amend -m "Новое сообщение коммита", после чего git push <репозиторий> <ветка> --force
14%
git reset -m "Новое сообщение коммита", после чего git push <репозиторий> <ветка> --force
6%
Нет правильного ответа
11%
Не знаю
Проголосовало: 4159
источник
2020 May 19
Библиотека программиста
Исправление сообщения самого последнего коммита:

$ git commit --amend

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

$ git commit --amend -m "Новое сообщение коммита"

Перед выполнением необходимо убедиться, что все изменения в состоянии staged (подготовлены к коммиту) перед тем как выполнять эту команду, в противном случае все изменения, включая те, что были в состоянии unstaged, будут также закоммичены.

Таким образом, для исправления сообщения коммита, который уже был отправлен на удаленный репозиторий, следует выполнить предыдущую команду, затем воспользоваться командой:

$ git push <репозиторий> <ветка> --force
источник
Библиотека программиста
В журнале «Код»  помимо вездесущих новостей про нейросетки есть реально работающие проекты, которые можно понять, применить и чему-то научиться. Прямо сейчас.

Ребята угорели по простому программированию. Го: @thecodemedia
источник