Этот репозитарий содержит систематизированную коллекцию материалов о составляющих различных экосистем (основные концепции, ОС, языки и среды разработки, фреймворки, API, различные утилиты, базы данных, безопасность, тестирование и пентест и др.), с которыми сталкиваются современные разработчики. Руководство подойдет как для начинающих, так и для продвинутых специалистов.
Репозитарий изначально создавался для личных нужд как справочник, но, возможно, будет полезен широкому кругу специалистов. Большая часть материалов касается работы на ОС стека MacOS и Linux, поскольку автору они ближе, чем остальные. Репозитарий не является полным справочником по всему и вся и пополняется автором по мере личной необходимости.
В репозитории я постарался собрать максимальное количество ссылок на полезные ресурсы по интересующим меня темам, не вдаваясь в длинные описания технологий и холивары по поводу их использования.
Некоторые книги и мануалы в формате PDF для удобства выложены в репозитарий programming-books, ссылки на них отмечены меткой pb
По части материалов в данной документации ссылка ведет в репозитарий oh-my-backend (fork на roadmap по современным технологиям backend). Ссылки на такие материалы отмечены меткой [omb]
- Общие знания
- Операционные системы
- Виртуальные машины
- Протоколы и стандарты передачи данных
- Базы данных
- Проектирование и разработка
- Языки программирования
- Сервера приложений
- Библиотеки и фреймворки
- Frontend
- Backend
- Мобильная разработка
- Популярные IDE
- Пентестинг, безопасность и защита
- Логи и метрики
- Полезные утилиты
- Разное
- Об авторе
-
Linux
[omb]
-
Oh My Zsh- платформа с открытым исходным кодом для управления вашей конфигурацией Zsh. Поставляется в комплекте с тысячами полезных функций, помощников, плагинов, тем
-
Explain Shell, объясняет команды терминала и ключи к ним
-
watch, команда watch
-
Уведомления через Shell:
- Работа с файлами в терминале Linux
- Работа с файлами по SSH на Linux
- Права доступа к файлам в Linux
- Утилита PM2 для развертывания беперебойной работы Node.js на сервере
- Утилиты top, htop, atop и др.
- Базовая работа с Git
[omb]
- Официальный сайт и документация
- Блог GitHub
- Setting your commit email address
- Token authentication requirements for Git operations
- Генерация открытого SSH-ключа
- Как создать ключ SSH в macOS
- Connecting to GitHub with SSH
- Why are my contributions not showing up on my profile?
- Git за полчаса - руководство для начинающих
- Интерактивный курс по Git
- Oh shit! Git, подскажет, что делать, если вы допустили ошибку в гите
- Git Explorer, справочник по командам и возможностям гита
- О файле .gitignore
- Сеть
[omb]
- Traceroute
-
Obsidian - мощный редактор для работы с Markdown:
- Grip - утилита для автономного просмотра разметки MD
- White Spaces, список всех существующих пробелов и рекомендации по использованию каждого
- Типограф, правит пунктуацию, ставит неразрывные пробелы и проч.
- Markdown Cheatsheet, справочник по MD
- Markdown Editor, визуальный редактор MD
- Polacode, скриншоттер для фрагментов кода
- Vale: a command-line tool that brings code-like linting to prose
- Regex 101, редактор и тестер регулярных выражений с объяснениями каждого символа и примерами
- Regular Excpressions Cheat Sheet
[pb]
- Криптография
[omb]
- Полнотекстовый поиск
[omb]
- Официальное руководство пользователя MacOS
- MacAppStore - Search and Install any app on MacOS
- Homebrew Formulae - online package browser for Homebrew
- MacBug- хороший сайт о программировании под MacOs, iOS
- Яблык - все про Apple
- Официальный сайт и документация, Debian
- В чём разница между Debian и Ubuntu? Что и когда лучше выбрать
- Официальный сайт и документация, Kali Linux
- Перевод официальной документации, Kali Linux
- Небольшая вводная статья, Kali Linux
- Официальный сайт и документация, Oracle VM VirtualBox
- Образы Windows
- Образы Ubuntu
- Образы Kali Linux
- Образ MacOS High Sierra
- Полный список стандартов RFC
- Наиболее популярные RFC
- IETF Data Tracker, поиск полного описания RFC по номеру
- Простое описание протокола DNS
- Записи DNS
- Типы ресурсных записей DNS
- MX
- Как проверить MX-запись домена
- Команда dig (domain information groper), многофункциональный инструмент для опроса DNS-серверов
- Протокол HTTP
[omb]
- HTTP Statuses, список HTTP статусов ответа с их значениями;
-
Электронная почта
[omb]
-
(Описание протокола от ICANN](http://www2.icmm.ru/~masich/win/lexion/mail/smtp.html#relay)
-
Catch-all:
https://ru.wikipedia.org/wiki/Catch-all
https://golb.hplar.ch/2019/08/catch-all-smtp.html
How to detect if domain has catch all policy to accept email
- Reacher, Open-Source Email Verification API:
- Базы данных
[omb]
- List of tz database time zones
- Checklist for Changing Data Model, чеклист для миграции данных и схем данных.
- Официальный сайт и документация, MySQL
- Документация на русском, MySQL
- Руководство по MySql на Metanit
- Оригинальный API для MySQL- PHP
- Официальный сайт и документация, MariaDB
- MariaDB foundation
- История проекта MariaDB, MariaDB
- Установка MariaDB на MacOS
- Официальный сайт и документация, PostgreSQL
- Установка и настройка PostgreSQL на Linux
- Установка и настройка PostgreSQL на MacOS
- Setting up a PostgreSQL Database on Mac
- Настройка PostgreSQL под Linux
- Утилита psql
- How to change PostgreSQL user password?
- PostgreSql Software Catalogue - Administration/development tools
- 11 Best PostgreSQL Monitoring Tools
- Руководство по PostgreSQL на Metanit
- Хорошие туториалы по PostgreSQL на английском
- Psycopg, PostgreSQL adapter for Python
- PostgreSQL Notes For Professionals
[pb]
- Шпаргалка по основным командам PostgreSQL
- Запускаем PostgreSQL в Docker: от простого к сложному
Pgpool-II:
- Официальный сайт и документация, SQLite
- Официальный сайт и документация, MongoDB
- MongoDB Twitter account
- Руководство по MongoDB на Metanit
- Руководство по mongoDB на CoderLessons
- Примеры работы с MongoDB на Node.js
- Бредшоу Ш., MongoDB: Полное руководство
[pb]
- Знакомство с InfluxDB и базами данных временных рядов
- Installing InfluxDB OSS
- The Definitive Guide To InfluxDB In 2019
- Influx Admin Panel
- Проектирование и разработка
[omb]
- highload.today, большой сайт, посвященный highload, backend, frontend и всякому остальному
-PencilTests [pb]
, копия моей нашумевшей в свое время на Хабре статьи о тестировании карандаша ))
- Метриалы по JS, спецификация и учебник от Mozilla
- JavaScript.COM
- JavaScript.RU, исчерпывающая информация по JavaScript на русском
- Learn JavaScript, современный учебник по JavaScript
Илья Кантор - JavaScript, полное руководство [pb]
:
-
Вот этот парень у себя в LinkedIn делает классные мануалы/примеры кода по JS: https://www.linkedin.com/in/sam-shpakov/
- Официальный сайт стандарта C++
- Большой сайт по C++, документация
- Туториалы по C++
- Бьерн Страуструп, Язык программирования C++, 2 издание
[pb]
- Кувшинов Д., Язык C++: Основы программирования
[pb]
- Официальный сайт и документация, Rust
- Rust в примерах
- Русскоговорящее сообщество Rust
- Разбор особенностей Rust и некоторые ссылки
- Официальный сайт Java
- Официальная документация по Java
- Java на русском
- Хаб на Habr, Java
- Раздел по Java на Metanit
- Официальный сайт и документация, Scala
- Хаб на Habr, Scala
- Официальный сайт и документация, Python
- David Beazley, Python: подробный справочник
[pb]
- Васильев А, Программирование на Python в задачах и примерах
[pb]
- Материалы по Python на TProger
- Хаб на Хабре, Python
- Find, install and publish Python packages with the Python Package Index, поисковик по библиотекам
- Awesome Python, курс молодого бойца
- Абстрактные классы и интерфейсы в Python
- Работа с конфигурационными файлами в Python
- Антипаттерн settings.py
- Logging facility for Python
- Логгирование в Python
- Настройка логирования в Python, повышаем информативность лога
- Модуль Queue
- Библиотеки для работы с SQLite
- Работа с JSON в Python
- Celery: см. отдельный раздел ниже
- Официальный сайт и документация, GoLang
- Материалы по Go, egorsmkv
- GoLang Training, GoesToEleven
- Эффективный Go, Konstantin8105
- Bulid applications with GoLang
Книги:
- Введение в программирование на Go, GitHub: https://github.com/maxpoletaev/golang-book
- Максим Жашкевич, Язык Go для начинающих
[pb]
- Мэтью А. Титмус, Облачный Go
[pb]
- Cloud Native Go examples
- Маленькая книга о Go
Разное:
- Шпаргалка по структурам данных в Go
- Парсинг файлов CSV в Go
- Vegeta, GoLang HTTP Load Testing Tool and Library
- Официальный сайт и документция, Ruby
- RubyOnRails ORG
- Чем хорош RubyOnRails и как он ускоряет разработку
- Хороший сайт про Ruby на русском
- Официальный сайт и документация, Lua
- Lua за 15 минут
- Learn Lua
- Хороший мануал по Lua на русском
- Хаб на Хабре, Lua
- Официальный сайт и документация, Erlang
- Краткое руководство на CoderLessons
- Руководство по программированию на языке Erlang
- Специфика Erlang
- Программирование на языке Erlang
[pb]
- Официальный сайт и документация, Redis is an open source in-memory data structure store, used as a database, cache, and message broker
- Маленькая книга о Redis, оно же тут
[pb]
- Команды Redis
- Redis для начинающих
- Вводная по Redis на AWS
- Шпаргалка по Redis на Хабре
- Redis в Python, полная документация на примерах
- Redis Queue в Python
- Официальный сайт и документация, Memcached is a distributed memory object caching system
- Маленькая вводная по Memcached
- Описание Memcached от AWS, сравнение с Redis
- Официальный сайт и документация, RabbitMQ message broker
- Введение в RabbitMQ
- Установка и настройка RabbitMQ в MacOS
- Маленькое руководство по старту на Habr: часть 1 и часть 2
- Коротко о работе с RabbitMQ из Python
- Cloud AMQP Blog, хороший блог про AMQP, RabbitMQ и все, связанное с протоколом
- Pika, pure Python implementation of the AMQP 0-9-1 protocol
- Pika Examples, official
- Using the Pika client
- Простые примеры на Pika Python для работы со статичными (reject) очередями RabbitMQ
- aio-pika, AsyncIO Pika library
- Мониторинг сообщений в RabbitMQ
- Building microservices for Telegram bot using Node.js, RabbitMQ, MongoDB and Docker from scratch
RabbitMQ for Beginners - Sample code for Python:
-
Официальный сайт и документация, Celery Async Message Queue
-
GitHub, Celery
-
Введение в Celery, оно же на русском
-
Celery Python, основы и примеры
-
Django и Celery, в связке
-
Flask & Celery, Асинхронные задачи с Celery в Python
-
# Creating a click counter using Kombu and celery, и тут примерно оно же на русском
-
Flower, web based tool for monitoring and administrating Celery clusters
-
Kombu, messaging library for Python
-
celery-message-consumer, Tool for using the bin/celery worker to consume vanilla AMQP messages (i.e. not Celery tasks)
Автоматический веб-скрапинг с помощью Python и Celery:
- Официальный сайт и документация, Tarantool, платформа in-memory вычислений
Управление ботами в Telegram:
- Telegram на русском, очень много всякой информации
- Telegram-боты: информация для разработчиков (официальная документация)
- Telegram API
- Модуль Telegram, создание чат-бота и канала, минимальные настройки компонентов
- Всё, о чём должен знать разработчик Телеграм-ботов
- Пишем ботов для Telegram на языке Python
- Неплохой разбор полетов с ботами для Telegram
- [Python telegram.ext package](https://python-telegram-bot.readthedocs.io/en/stable/telegram.ext.html_
- Лимиты, существующие в Telegram
Async.IO:
AIOgram async framework:
- AIOgram GitHub
- Официальная документация по AIOgram
- Быстрый старт
- Telegram-бот на Python за полчаса с AIOgram
- Знакомство с AIOgram
- AIOgram Broadcaster Library
- aiojobs, Jobs scheduler library for managing background task
Платежи в Telegram:
-
Официальный сайт и документация, Django
-
Хаб по Django на Хабре, Django
К сожалению, мертвый уже сайт (не пингуется) dbbook.ru:
- Исчерпывающая книга про Django, неплохая документация на русском
- DJBook, и тут всего остального про Django навалом
тут Адекватная копия но информация только по старым версиям!
!!! Документация по последней версии тут
- Официальный сайт и документация, Tornado web server
- Небольшая вводная в Tornado
- Docker - Официальный сайт и документация
- Установка и настройка Docker в Ubuntu
- Docker - быстрый старт
- Полное практическое руководство по Docker, на русском
- Виртуализация Docker `[omb]``
- Иан Милл, Docker на практике
[pb]
- Основные команды Docker
- 10 команд для Docker, без которых вам не обойтись
- Learn React.js, полное руководство по React
- Пацианский М., React.js для начинающих
[pb]
- Пацианский М., React Router
[pb]
- Пацианский М., Reduх
[pb]
- Официальный сайт и документация, Go Hugo
- Creating Hugo Themes
- Create Your Own Hugo Theme, большое полное видео
- Легкое создание сайтов на Hugo
- Squoosh, приложение, CLI и API для оптимизации графики;
- SVG URL Encoder, кодирует SVG в URL-строку, чтобы использовать его в
background
без base64 - SVG OMG, оптимизатор SVG;
- Social Image Preview, предпросмотрщик изображений для соцсетей
- Facebook Debug, дебагер соц-изображений для Facebook
- Figmachine, Convert Figma to React Code
- HTML Tutorials
- Документация от Mozilla
- Справочник по HTML
- Emmet, генератор HTML-кода из «CSS-селекторов»
- Can I Include, ответит на вопрос «Можно ли класть один тег в другой?»
- HTML head, поможет найти нужный элемент для
<head>
страницы - Logical Content Flow, найдёт проблемы с заголовками, их порядком и отображением
- Better Mobile Inputs, поможет подобрать
<input>
и атрибуты для него так, чтобы им было удобно пользоваться на мобильных - Weblind, рекомендации по разработке сайтов для людей с нарушениями зрения
- Inclusive Components, примеры реализации слайдеров, аккордеонов и других компонентов с упором на доступность
- Axe, браузерный плагин для комплексной проверки доступности страниц
- Good Email Code, справочник и набор рекомендаций для пуленепробиваемой вёрстки писем
- How to Favicon in 2021, статья-чеклист о том, как добавлять фавиконку на сайт без лишнего кода
- W3C Validator, валидатор HTML-кода
- CSS Tutorials
- Документация от Mozilla
- CSS для начинающих
- Самоучитель CSS
- Can I Use, поможет проверить браузерную поддержку свойства
- Can I Use CMD, CLI для Can I Use;
- Nth Tester, поможет проверить, так ли работает ваш
nth-child
селектор - Flexbox Playground, визуализирует работу флекс-свойств
- Grid by Example, шпаргалка по CSS grid;
- Grid Lover, конструктор вертикального ритма и отступов для заголовков и параграфов
- Specificity Calc, калькулятор специфичности селекторов
- Colord, конвертер цветов между разными цветовыми схемами
- CSS Gradient, конструктор CSS градиентов
- Easings, справочник по easing-функциям с примерами
- Cubic Bezier, конструктор и редактор кривых Безье
- CSS Patterns, коллекция фоновых узоров на чистом CSS
- CSS Shapes, набор часто используемых фигур на чистом CSS
- CSS Triggers, подскажет, какие свойства запускают layout, paint и composite
- Официальный сайт и документация
- Создание быстрых отзывчивых сайтов с Bootstrap, документация на русском
- Официальный сайт и документация, Material UI
- [Reactjs, Material-UI with JSS])(https://habr.com/ru/post/492378/), крайткий гайд
- MUI React templates & tools satore
- Material Design
- Material Design Components
- UX Club, самое большое российское коммьюнити по UX
- Официальный сайт и документация по Nest.js
- Гайд по Nest.js: что это такое и как написать свой первый код
- Официальный сайт и документация по Node.js
- Официальные руководства
- Руководство по Node.js на Habr
- Install Node.js via Package Manager
- Управление версиями Node.js и NPM с помощью NVM
- Полная версия руководства по Node.js на Habr + PDF
- Сайт для разработчиков Node.js, на русском
- Node.js. Официальное руководство
[pb]
- Руководство на Metalint
- Управление версиями Node.js и NPM, с помощью NVM
- Using Node in JetBrains WebStorm
- Многопоточность в Node.js
- Как работает Event Loop в Node.js
- Докеризация приложения Node.js
Книги:
Express Framework:
-
Fastify, краткий обзор: https://habr.com/ru/post/555668/
Async Framework:
Passport.js:
Push notifications:
Lodash:
- Lodash, краткий обзор: https://habr.com/ru/post/217515/
Nest.js:
- Официальный сайт Nest.js
- Nest.js documentation
- Гайд по Nest.js: что это такое и как написать свой первый код
- NestJS - тот самый, настоящий бэкенд на nodejs
Разное:
-
json2md, JSON to Markdown converter
-
Node-fetch, XMLHttpRequest emplementation library
-
Chalk, раскраска терминала
-
Debug, библиотека для отладки
-
Moment, библиотека для работы с датой и временем
-
Puppeteer - скрапинг web-сайтов:
- Lerna, A tool for managing JavaScript projects with multiple packages
Socket.IO
Swagger:
-
Node.js: документирование и визуализация API с помощью Swagger
-
Setting Up Automated Semantic Versioning For Your NodeJS Project
-
Модули node для работы с SQLite:
-
Серверное программирование web-сайтов, официальные рекомендации от Mozilla
API является платным.
Обсуждение автоматического определения языков: https://habr.com/ru/post/52239/
На данный момент самый "крутой" способ определить язык и сделать относительно точный перевод - использовать translate.google.com через Puppeteer или другую библиотеку, подставляя нужные значения. Еще интересный вариант - переводить с помощью функции GOOGLETRANSLATE в таблице Google: https://shagabutdinov.ru/translate_sheets/
- GetData.io Web Scraper
- OSINTGram, собираем данные из Instagram
- Web Scrapping with Go
- Райанн Митчелл, Современный скраппинг веб-сайтов с помощью Python
[pb]
Objective C:
Swift:
- Официальный сайт и документация, Swift
- Официальная документация по Swift от Apple
- Хаб на Habr, Swift
Cocoa:
Flutter:
Android Core:
- Android Official Documentation
- Android Developers Community
- Android Studio
- Android JetPack
- Про Android на русском, Android.com
- Хаб на Habr, Android
Kotlin:
- Официальный сайт и документация, JetBrains
- Официальный сайт и документация, Eclipse IDE
- Безопасность
[omb]
- Эндрю Хоффман, Безопасность web-приложений: разведка, защита, нападение
[pb]
- Application Security, интерактивный чеклист по уязвимостям веб-приложений с объяснениями и рекомендациями к защите
- SecurityLab - Soft, огромная подборка всякого разного софта
Maltego Sources:
-
Maltego. Часть 1. 4 релиза Maltego. Принципы работы и возможности
-
Maltego. Часть 3. Facebook плачет, Social Links смеется, Maltego кури
-
Maltego. Часть 4. ВК, Instagram, LinkedIN и другие фантастические твари
"Mac на службе у хакера" - хорошая серия статей для начинающих пентестеров:
- Часть 1 - Шифрование диска
- Часть 2 - Создание образа шифрованного диска
- Часть 3 - Управление паролями
- Часть 4 - Установка iTerm2
- Часть 5 - Использование Git
- Часть 6 - Настройка Homebrew
- Часть 7 - Установка RVM для работы с Ruby
- Часть 8 - Установка Kali Linux на виртуальной машине
- Часть 9 - Установка Metaspoloit Framework
- Часть 10 - Упорядочивание утилит
-
Ciphey, Input encrypted text, get the decrypted text back
-
Wireshark:
- Telnet:
- NMap:
Vulscan nmap -sV --script vulners domain.com
nmap-vulners nmap -sV --script=vulscan.nse domain.com
Несколько интересных статей:
https://habr.com/ru/post/88064/
https://losst.ru/kak-polzovatsya-nmap-dlya-skanirovaniya-seti
https://antiddos.biz/kak-polzovatsya-nmap-dlya-poiska-uyazvimostej-servera/
Metasploit Framework:
-
[Гид по Metasploit Framework от SecurityLab](https://www.securitylab.ru/blog/personal/Informacionnaya_bezopasnost_v_detalyah/323370.php_
-
Обзоры Metasploit:
https://habr.com/ru/company/varonis/blog/528578/
https://vc.ru/life/136613-metasploit-framework-kratkoe-prakticheskoe-rukovodstvo
- [theHarvester](https://github.com/laramies/theHarvester, a very simple to use, yet powerful tool and effective tool designed to be used in the early stages of a penetration test or red team engagement
- hydra, most powerfulcrack password tool
- Nikto (Nikto2), an Open Source (GPL) web server scanner which performs comprehensive tests against web servers for multiple items
- Vulners Perimeter Scanner, Vulnerability Assessment Platform
- Log4j Detection, on server
- WPScan, мощный фреймворк для пентеста WordPress, обзор: https://habr.com/ru/company/alexhost/blog/527612/
- Логи и метрики
[omb]
- Retrace, log analyzing platform
- Официальный сайт и документация, Prometheus - metrics and alerting with the leading open-source monitoring solution
- Введение в мониторинг серверов с помощью Prometheus и Grafana
- Полное руководство по Prometheus в 2019 году
- Официальный сайт и документация, Grafana - operational dashboards
- GitHub
- Пример внедрения
- GitHub, Chipmunk - утилита для работы с большими логами
- Описание на Habr, Chipmunk
Bookmarklets - simple Javascript code features:
- Использование bookmarklets
- Содание букмарклетов - правильный путь
- bookmarklets.com collection
- Favelets
- squarefree.com bookmarklets collection
Balena Etcher - создание образов дисков на MacOS:
Calibre - управление электронной библиотекой:
- You Might Not Need JS, набор фич, некоторые их которых действительно можно сделать без JS
- HTML DOM, набор нативных функций для работы с DOM-деревом
- Does it Mutate, подскажет, какие методы изменяют массив, а какие нет
- Keycode Info, покажет код нажатой клавиши
- Tmstmp, переводит даты в таймштампы и обратно
- Generating Random Integers, пример генерации случайного целого с подробным объяснением работы
- Jest Mocking Strategies, мои моки в Jest никогда не работают с первого раза
- Debounce / Throttle, показывает разницу между
debounce
иthrottle
- Anything to Anything Transformer, конвертирует что угодно во что угодно
- List of Chrome URLs
- Умные и честные заметки от Виталия Шароватова, вынесено в отдельный репозиторий, форк
- [Заметки о найме и российскрм HR](https://github.com/bormaxi8080/bormaxi-about-hiring, текст в процессе создания
- Resume.io, конструктор CV
Обо всех пожеланиях по поводу содержимого данного репозитария и найденных ошибках можно сообщить в Issues или в Telegram: @bormaxi
Донаты в благодарность принимаются на Etherium: 0xe29685d6f0032bccac08b0e745a1a69ef9803973