Хекслет
✔
7.97K subscribers
4.21K photos
46 videos
1 file
2.86K links
Программы обучения - https://ru.hexlet.io/courses
Сообщество @hexletcommunity AI Клуб @hexletclub
Поддержка @hexlet_help_bot
Download Telegram
Какие зарубежные источники читать, если хочется быть в теме происходящего в программировании? Собрали для вас подборку полезных сервисов. Пишите в комментариях, где вы еще сидите и ищите информацию.
👍17💩2
Что такое GitHub и зачем он нужен?

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

На Github можно не только выкладывать собственные проекты, но и просматривать чужие и даже вносить в них собственный вклад, комментировать их, фолловить разработчиков и ставить лайки, создавать issues , если вдруг наткнулись на баг. Здесь также развита система бейджиков — можно получать награды за разные активности.

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

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

Github также дает достаточно мощный инструмент для код-ревью с помощью pull request. Когда ваша ветка готова, вы создаете запрос (пулл-реквест, или PR) на слияние: то есть вы хотите, чтобы ваши изменения попали в основную ветку (как правило, но необязательно, слияние может происходить с любой веткой). После PR владелец репозитория или любой ответственный может сделать ревью вашего кода и оставить комментарии прямо в интерфейсе Github — получается очень наглядно и понятно. После того как ваш PR одобрили, его сливают с нужной веткой.

Если же вы хотите внести вклад в какие-то опенсорсные проекты, то вам поможет fork. Этот механизм создаст в вашем профиле копию репозитория, в который вы хотите внести изменения. Эта копия (origin fork) будет синхронизирована с изменениями в основном репозитории (upstream). Вы можете свободно в него пушить, а после окончания также создается PR в основной репозиторий.

Еще один мощный инструмент при работе с репозиториями, который дает нам Github — Actions. Это способ настройки вашего CI — с помощью YAML конфигов мы можем вызывать любые действия при определенной активности в нашем репозитории. Например, мы можем вызывать запуск тестов при пуше в любую ветку, или пулл докер-образа при пуше определенного тега — вариантов бесчисленное количество. Если же что-то пошло не так и какое-то действие выдало ошибку, мы узнаем об этом моментально (в том числе, получим уведомление на почту) и сможем быстро решить проблему. Кроме того, в каждом репозитории также есть возможность хранить секреты — пароли от баз данных, доступы на сторонние сервисы. Таким образом, вы можете скрыть все конфиденциальные данные из вашего проекта, используя вместо них переменные окружения, которые можно вставить в конфиги.

Помимо удобной совместной разработки, Github также дает возможность бесплатного хостинга наших проектов. Конечно, какие-нибудь сложные большие вещи мы не сможем туда задеплоить, но для пет-проектов это отлично подходит. С помощью github pages мы можем развернуть наши небольшие приложения (особенно фронтовые) и выложить их в интернете по адресу имя_пользователя.github.io/имя_репозитория.

Иметь профиль на Github очень полезно, как для начинающего разработчика, так и для опытного. Github дает нам отличный способ расширить круг наших знакомств, смотреть и разбираться, как другие пишут код и какие решения они принимают, а также обмениваться опытом. Кроме того, если добавить ссылку на Github в резюме, это может повысить шансы пройти первичный отбор, поскольку работодатели сразу смогут оценить ваш уровень, ваши идеи и решения.
👍18💩2
Использовать для входа в систему только имя пользователя и пароль опасно. Есть тысячи причин — от фишинга до вредоносных программ, по которым юзернейм и пароль могут оказаться в руках злоумышленников.

Эту проблему частично решает двухфакторная аутентификация. Это использование двух факторов проверки подлинности пользователя.

Фактором в данном контексте называют способ аутентификации. Например, юзернейм и пароль, который вы используете для входа на сайт — это один фактор проверки. Чтобы аутентификация была двухфакторной, для входа в систему нужно использовать два фактора проверки.

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

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

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

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

Важные нюансы и практические рекомендации
Эффективность двухфакторной аутентификации частично зависит от пользователей. Описанные ниже факты и рекомендации помогут пользоваться 2FA корректно.

1. Информацию для второго шага аутентификации можно получать с внешнего сервера или с помощью вашего девайса
В первом случае код или одноразовый пароль генерируется удалённо, а вы получаете его в sms, электронном письме, с помощью звонка и так далее.
Во втором случае пароль генерирует ваш девайс, например, смартфон с помощью специального приложения или аппаратный токен.

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

2. 2FA не отменяет необходимости использовать надёжные уникальные пароли
Использование одинаковых юзернеймов и паролей для разных сайтов создаёт дополнительные угрозы. Если злоумышленник получит комбинацию «юзернейм-пароль» от вашего аккаунта в социальной сети, с её помощью он может попытаться войти в ваши учётные записи в других соцсетях, платёжных сервисах, интернет-магазинах.

Рекомендация: используйте уникальный пароль для каждого сервиса.

3. Из-за двухфакторной аутентификации можно потерять доступ к данным
Простой пример: вы не сможете пройти проверку и войти в систему, если потеряете аппаратный токен или смартфон с приложением для аутентификации.

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

4. Двухфакторную аутентификацию можно отключить случайно
Например, это можно сделать, если вы отметите девайс как безопасный при авторизации в системе. При входе на соответствующий сайт система не будет требовать ввести код безопасности. Если кто-то получит доступ к вашему компьютеру или мобильному девайсу, ему будет проще получить завладеть вашими данными.

Рекомендация: регулярно проверяйте статус 2FA — она должна быть включена.
👍17❤4💩2🤮1
Джуниор-разработчикам очень важно составлять не только красивое резюме, но и писать классные сопроводительные письма. Рассказываем, что стоит включать в такие письма и как их вообще делать.
👍15💩2🔥1🤮1
Поделимся откровением: в Хекслете очень сильно топят за написание тестов 🙂

Поэтому в этом выпуске мы будем разбираться в Unit-тестировании, а в этом нам поможет Георгий Бузин, Frontend Team Lead в Junehomes:
– узнаем, зачем программистам писать Unit-тесты
– пройдёмся по инструментам тестирования — от простых к более сложным
– посмотрим, какие инструменты помогут в тестировании frontend
– напишем 6 тестов с помощью разных подходов и на практике поймём отличия

https://youtu.be/GcwK0vbTf_s
👍6💩6🤮1🤡1
Python — отличный выбор для старта в IT. Его легко учить, он применяется в области машинного обучения и искусственного интеллекта, в разработке веб-приложений, аналитике данных, программировании игр.

А начать погружение рекомендуем 17 и 18 января на нашем двухдневном интенсиве.

На нем вы освоите базовые знания синтаксиса языка, сможете прописывать логику, запускать и поддерживать простые Telegram-боты.

Спикер Грегори Салиба, Backend разработчик в компании Spectr, ответит на все вопросы: в каких сферах применяется Python, какие карьерные пути могут быть у разработчика, как продолжить обучение и многое другое.

Начало в 19:00, записаться можно по ссылке:
https://ru.hexlet.io/link/bs9cxb
👍5💩4❤1
Media is too big
VIEW IN TELEGRAM
18 января стартует новый поток Подготовительного курса по Frontend.

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

На 8 день обучения под руководством опытного наставника ребята пишут игру «Четное-нечетное» на JavaScript. Весь процесс осуществляется при помощи CodePen — популярной платформы для редактирования и хранения кода. А результат получаем сразу в браузере.

Хотите с нами? 18 января стартует новый поток Подготовительного курса по Frontend-разработке. Присоединяйтесь!
https://ru.hexlet.io/link/12htOU
👍5💩2