Как сейчас устроен RuStore
В конце весны 2022 года был запущен магазин приложений RuStore. Тогда это были около сотни приложений — в основном банковские и государственные продукты.
Сейчас RuStore это 8 тысяч приложений и 10 миллионов пользователей. Есть адаптации витрины для планшетов и TV, собственные SDK и API для загрузки приложений и работы с отзывами и монетизация для самозанятых.
И совсем недавно на Хабре вышла статья с кратким описанием истории проекта и комментариями команды о том, как это было и с чем они столкнулись во время запуска.
#вопросы_с_собесов #easy
В Git можно эффективно отслеживать эволюцию базы кода и вести разработку совместно с коллегами. Но что делать, если необходимо отслеживать огромный репозиторий?
В Git есть две категории больших репозиториев:
1️⃣В них накапливается очень длинная история
2️⃣В них находятся огромные двоичные файлы, которые нужно отслеживать и сопоставлять с кодом
🤷♂️А иногда бывает и то, и другое.
Методы и обходные пути будут разными в каждом сценарии, но в некоторых случаях они могут и дополнять друг друга👇
📌 Клонирование репозиториев с очень длинной историей
1️⃣Простое решение: поверхностное клонирование git
> git clone --depth [глубина] [remote-url]
2️⃣Ювелирная точность
> git filter-branch --tree-filter 'rm -rf [/путь/к/папке/ненужных/файлов]'
3️⃣Альтернатива git shallow-clone: клонирование только одной ветки
> git clone [remote_url] --branch [имя_ветки] --single-branch [папка]
📌 Управление репозиториями с огромными двоичными файлами
4️⃣Решение для больших деревьев папок: git sparse-checkout
5️⃣Решение для управления обновлением больших файлов: подмодуль Git. Подмодули позволяют вам сохранить один Git-репозиторий, как подкаталог другого Git-репозитория. Это даёт вам возможность клонировать в ваш проект другой репозиторий, но коммиты при этом хранить отдельно.
💡А еще можно забыть все, что вы прочитали выше, и воспользоваться Git LFS. Это решение, разработанное Atlassian совместно с GitHub в 2015 году.
Расширение Git LFS позволяет хранить в репозитории не сами большие файлы, а только указатели на них. Сами файлы хранятся на удаленном сервере.
Самые полезные каналы для программистов в одной подборке!
Сохраняйте себе, чтобы не потерять 💾
🔥Для всех
Библиотека программиста — новости, статьи, досуг, фундаментальные темы
Книги для программистов
IT-мемы
☕️Java
Библиотека джависта — полезные статьи по Java, новости и обучающие материалы
Библиотека Java для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Java — код, квизы и тесты
Вакансии для java-разработчиков
👾Data Science
Библиотека Data Science — полезные статьи, новости и обучающие материалы
Библиотека Data Science для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Data Science — код, квизы и тесты
Вакансии по Data Science, анализу данных, аналитике, искусственному интеллекту
🧠C++
Библиотека C/C++ разработчика — полезные статьи, новости и обучающие материалы по C++
Библиотека C++ для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по C++ — код, квизы и тесты
Вакансии по C++
💻Другие профильные каналы
Библиотека фронтендера
Библиотека шарписта
Библиотека Go разработчика
Библиотека мобильного разработчика
Библиотека хакера
Библиотека питониста
Библиотека devops’a
Библиотека тестировщика
Библиотека пхпшника
💼Каналы с вакансиями
Вакансии по питону, Django, Flask
Вакансии по фронтенду, джаваскрипт, React, Angular, Vue
Вакансии по C#, .NET, Unity
Вакансии по Go
Вакансии по PHP, Symfony, Laravel
Вакансии по DevOps & SRE
Вакансии для мобильных разработчиков
Вакансии по QA тестированию
InfoSec Jobs — вакансии по информационной безопасности
#инфографика
🔝Postgres — самая известная и используемая БД, за ней следуют MongoDB и MySQL (левый скрин).
🔝Postgres — лучший выбор для использования при запуске нового проекта, за которым следуют Redis и Planetscale (правый скрин).
📊 Подробности и много интересной статистики читайте в полном отчете «Состояние баз данных 2023».
🐍🎸 Курс Django: Веб-приложение на основе XLSX вместо базы данных
Покажем, как Django работает с файлами JSON, CSV, YAML, XLSX, разберемся с настройками media, и напишем приложение, которое использует XLSX (или Google Sheets) для загрузки данных.
🔗 Читать статью
🔗 Зеркало
Код, задачи и тесты по Java📚
Напоминаем, что мы запустили канал, в котором разбираемся в коде и проверяем свои знания с помощью тестов🤓
👉Подписывайтесь на «Библиотеку задач по Java»
🐼 ТОП-5 функций Pandas 2.0: Data Science специалисты отправятся «в утиль»?
Все новые функции в Pandas 2.0 для анализа данных. Опробуем на популярных пакетах: ydata-profiling, matplotlib, seaborn и scikit-learn.
🔗 Читать статью
🔗 Зеркало
#оффтоп
📌 Ловите подборку «Библиотеки Программиста», пока выходные не закончились:
⚡️🎮 Поиграть в Baldur's Gate 3, которая на днях вышла на ПК спустя шесть лет разработки и три года в раннем доступе.
👉 Если кто не знает, Baldur's Gate 3 — масштабная ролевая игра, основанная на 5-й редакции Dungeons & Dragons. В ней игроки могут взять под своё управление готового героя с детально продуманной историей или же создать собственного персонажа, а затем отправиться в путешествие по Забытым Королевствам.
👉 Неподготовленного пользователя она может ввести в ступор. Но не стоит бояться: ребята из Тинькофф Журнала все объяснили. У них уже вышли материалы о том, как купить Baldur’s Gate 3 в России и что нужно знать перед запуском. А здесь можно прочитать советы, которые помогут новичку сориентироваться в происходящем.
📺 Посмотреть заключительные эпизоды третьего сезона «Ведьмака». Небольшой и не самый радужный спойлер:
1⃣ Действие в сезоне то слишком быстрое, то чересчур медленное
2⃣ Постановка сериала все еще странная
3⃣ В финале «Ведьмака» почти нет самого ведьмака
📺 Заценить трейлер второго сезона «Локи» от Marvel. Новые эпизоды начнут выходить 6 октября.
💡 Начать писать пет-проект. Идеи есть, аж 16 штук!
⌨ ASMR программирование: попробовать закодить клон Agar.io с помощью ChatGPT 4
🎶 Фулстек или 🎻фронтендер: кем стать, чтобы не подвести себя и работать в радость? Часть 1
Для наглядности разберем все тонкости профессий на примере работы мультиинструменталиста и скрипача.
Кто становится мультиинструменталистом?
Исследователи: начинают с гитары — получается, переходят на барабаны — тоже ок. С каким-нибудь гобоем справляются на раз-два, потому что до этого уже освоили несколько духовых инструментов предыдущих версий.
А скрипачи?
Скрипачами рождаются. Но не все обнаруживают в себе талант, потому что не пробуют: «Ну, это не круто — остальные ребята копаются в двигателях игрушечных машинок».
Как работает мультиинструменталист?
Играет на гитаре, ногой отбивает темп на барабане, при этом успевает спрогнозировать, какой следующий инструмент выбрать, чтобы правильно зафиналить произведение.
А скрипач?
Скрипка имеет всего четыре струны: диапазон звучания ограничен, но узкая специализация дает преимущество — быстро набиваешь руку и выдаешь стабильный результат, а с ним приходят и первые гонорары, плюс становишься суперпрофи в своем деле.
Что по зарплатам?
▶️ Медианная ЗП мультиинструменталиста (фулстека):
Джун — 80 000 руб. Мидл — 170 000 руб. Сеньор — 250 000 руб.
▶️ Медианная ЗП скрипача (фронтендера):
Джун — 80 000 руб. Мидл — 180 000 руб. Сеньор — 270 000 руб.
Хорошая ЗП :) Я понял, кем хочу стать, что дальше?
Самый быстрый вариант — пойти учиться, т. к. в условиях высокой конкуренции и цейтнота шансы у самоучек войти в профессию стремительно упали.
Логично. Ок, я в деле!
Яндекс Практикум запустил большое обновление курсов веб-разработки. Начать обучение по каждой из программ можно бесплатно — у каждого курса есть вводная часть, чтобы понять, подходит ли он тебе.
🎶 Курс «Фулстек-разработчик»
🎻 Курс «Фронтенд-разработчик»
Два новых канала от Proglib
Недавно мы запустили два канала для джавистов, которые помогут вам практиковать свои знания и готовиться к собеседованиям 💪
👉Библиотека Java для собеса — канал, в котором мы выкладываем наши уже традиционные вопросы с собеседований
👉Библиотека задач по Java — канал с задачами, тестами, квизами и, конечно, кодом
Бегом подписываться 🏃
#подкасты
В гостях большой и важный айтишный ютубер Алексей Корепанов, который с недавних пор работает в Clickhouse.
🎙 YouTube | Apple Подкасты | Google Подкасты | Яндекс Музыка
❗«Библиотека программиста» в поиске контент-менеджера для ведения телеграм-каналов
Ищем человека, который грамотно пишет, разбирается в контенте и в одной из этих трех тем:
👉Data Science
👉Frontend
👉мобильная разработка
Мы предлагаем частичную занятость и полностью удаленный формат работы — можно совмещать с основной и находиться в любом месте🌴
Подробнее о вакансии и форма для отклика — по ссылке.
Ждем вас в команде!
Разрабатываете игру?
Публикуйте её на веб-площадках с помощью единого SDK от GamePush.
👍 - GamePush - это:
- 800+ разработчиков;
- 100+ миллионов игроков;
- 400 тысяч покупок через сервис, совершенных игроками;
- 1+ миллион человек, играющих в день;
- 10 площадок для распространения вашей игры;
- 500+ тысяч новых игроков, регистрирующихся ежедневно.
Мы предоставляем:
Дистрибуцию
- Распространение вашей игры на площадках
Хостинг
- 200+ серверов по всему миру
Игровая аналитика
- В одном месте для всех площадок
Единый SDK для популярных веб площадок
Автоматическая интеграция с площадками
- Реклама
- Покупки
- Авторизация
- Приглашение друзей
- Публикация постов
Игровой бэкенд
Не требует наличия сервера
- Облачные сохранения
- Синхронизация прогресса
- Таблицы лидеров
- Достижения
- Чаты
- Ежедневные награды
- Мероприятия
Регистрируйтесь, и для новых пользователей - подписчиков ProgLibrary, доступен код GP-PROG-LIBRARY-AUG02 для использования месячного стартового плана, активировать можно в любое время в течение 3 месяцев
#новости
🔥 Дайджест интересных новостей за неделю:
▫️ Создатель Ansible запустил проект jet, в котором переосмысливает свой легендарный инструмент. Как думаете на чем он написан? Конечно на Rust.
▫️ Google опубликовала черновик спецификации Web Environment Integrity и работает над включением её реализации в кодовую базу Chromium и движка Blink. API Web Environment Integrity позволяет владельцам сайтов удостовериться, что окружение клиента заслуживает доверия.
▫️ Выпуск среды разработки PascalABC.NET 3.9.0, предлагающей редакцию Pascal с поддержкой генерации кода для .NET, возможностью использования библиотек .NET и дополнительными возможностями.
▫️ Протокол MLS, предназначенный для организации сквозного шифрования в приложениях, получил статус предложенного стандарта.
▫️ Представлен выпуск языка формирования запросов и преобразования данных PRQL 0.9, развиваемого в качестве более простой и функциональной замены SQL.
▫️ Разработчики Chrome развивают возможность предпросмотра ссылок во всплывающем окне.
▫️ Представлен релиз Firefox 116 и сформированы обновления ветки с длительным сроком поддержки: 115.1.0 и 102.14.0.
▫️ Опубликован план избавления CPython от глобальной блокировки интерпретатора (GIL, Global Interpreter Lock)
💬🦙 LlamaIndex: создаем чат-бота без боли и страданий
В этой статье рассмотрим мощный фреймворк для работы с большими языковыми моделями LlamaIndex: узнаем, как настроить и использовать LlamaIndex, и увидим его в действии на примере поиска ответа в заданном тексте
🔗 Читать статью
🔗 Зеркало
🐛🦋 Свитчеры после 30 лет: кто это, почему их не любят эйчары и как им найти работу в IT
Объясняем, как выжить тем, кто решил вкатиться в мир программирования после 30 лет.
🔗 Читать статью
🔗 Зеркало
📌 Сохраняй в заметки, чтобы не пропустить самое интересное:
🌐 Service Mesh на стероидах, часть 2: Zero Deployment Downtime в корпоративных приложениях / А. Ефимов
🌐 Эволюция распределенных атак в Интернете: 1994 — настоящее время / Георгий Тарасов (Qrator Labs)
🌐 Под красным флагом: как инженер может понять, что в проекте происходит что-то не то / Д. Подольский
🌐 Одна платформа, чтобы править всеми / Михаил Кабищев (Ozon)
🌐 Архитектура: история и будущее на примере ВКонтакте / Александр Тоболь (ВКонтакте)
🌐 История онлайн-видео / Максим Лапшин (Эрливидео)
🌐 Как не провалить импортозамещение / Евгений Лукин (СберТех)
🌐 Без A/B — результат XЗ, или Как мы построили платформу A/B-тестов в Ozon / Евгений Пак (Ozon)
🌐 Развитие и жизненные циклы пайплайна / Александр Обливальный (ГК Иннотех)
🌐 Микросервисы через боль и превозмогание / Филипп Дельгядо (lekton.io)
🌐 Бесшовное внедрение практик безопасности в DevOps-конвейер / Андрей Иванов
🌐 Блокчейн в корпоративной архитектуре — дань моде или необходимость? / Денис Васин (Waves Enterprise)
🌐 OpenSource как источник атаки. Чем опасно? Как лечить? / Алексей Морозов (Тинькофф)
🌐 Контейнеры мертвы. Да здравствуют виртуальные машины! / Виктор Попов (НЛМК)
#холивар
К сертификации в айти-сфере работодатели относятся по-разному. Кто-то уверен, что это лучший способ доказать свою профпригодность, а другие не видят в них никакой практической ценности.
🤷♂️ Некоторые работодатели приветствуют желание разработчиков развиваться и оплачивают сертификаты.
💬 А у вас такое практикуется? Если бы у вас была возможность получить любой сертификат, какой выберете?
🤯Что такое ансамбль методов? А аугментация данных?
Готовимся к собеседованиям по Data Science и проверяем себя на практических задачках: «Библиотека программиста» запустила два канала специально для специалистов по Data Science и тех, кто хочет ими стать👨🏫
Подписывайтесь:
👉Библиотека собеса по Data Science — тут мы готовимся к интервью
👉Библиотека задач по Data Science — тут решаем задачи, проходим тесты и изучаем код
#оффтоп
Прогуляйтесь по тротуару или совершите поездку по переулкам Японии, пешеходным торговым центрам в Праге и живописным улицам ночного Парижа, слушая спокойную музыку в Cityhop Cafe. Отличный вариант, если у вас установлено несколько экранов.
#вопросы_с_собесов
В чем разница между Docker и Kubernetes?
🔸Docker — платформа для быстрой разработки, тестирования и развертывания приложений. Docker упаковывает ПО в контейнеры. Каждый контейнер включает все необходимое для работы приложения: библиотеки, системные инструменты, код и среду исполнения. Благодаря Docker можно быстро развертывать и масштабировать приложения в любой среде и сохранять уверенность в том, что код будет работать.
🔸Kubernetes (K8s) — платформа для автоматизации развёртывания, масштабирования и управления контейнеризированными приложениями.
📌 Чем они отличаются друг от друга?
Docker работает на уровне отдельного контейнера на одном хосте операционной системы.
Вы должны вручную управлять каждым хостом, а настройка сетей, политик безопасности и хранилища для нескольких связанных контейнеров может быть сложной.
Kubernetes работает на уровне кластера. Он управляет несколькими контейнерными приложениями на нескольких хостах, обеспечивая автоматизацию таких задач, как балансировка нагрузки, масштабирование и обеспечение желаемого состояния приложений.
📝 Другими словами, Docker фокусируется на контейнеризации и запуске контейнеров на отдельных хостах, в то время как Kubernetes специализируется на управлении и оркестровке контейнеров в масштабе кластера хостов.
🔗 Источник
Маргарита Мирошниченко, Recruitment Manager в «Лаборатории Касперского», занимается наймом продактов и многое может об этом рассказать.
Её статья будет интересна тем, кто рассматривает должность продакт-менеджера для карьерного перехода, кто уже трудится в ней или кто, как и Маргарита, взаимодействует с продактами по работе.
📌 Вы узнаете, как изменилась работа за последние несколько лет, что теперь может входить в их задачи и что будет дальше👇
🔗 Читать
⚛️ Атомарные операции, безопасность потоков и состояние гонки в C#
В этой статье мы разберем концепции атомарных операций, безопасности потоков и состояния гонки, а также рассмотрим соответствующие примеры.
🔗 Читать статью
🔗 Зеркало
#холивар
Какая информация в описании вакансии может вас оттолкнуть? И на что вы больше всего обращаете внимание:
📝 Условия работы
📝 Описание вакансии
📝 Бренд работодателя
🤩 — главное, чтобы хорошо платили
💯 — для меня важны все перечисленные пункты
🤯Генеалогическое древо и хронология появления разных операционных систем
Как отмечает автор, составить полный список практически невозможно, но ему удалось собрать 1120. В графике можно использовать Ctrl+F для поиска.
Специально для тех, кому не хватало сложностей в жизни.
#проектирование_систем
📝 Наглядная демонстрация распространенных алгоритмов балансировки нагрузки
🔹 Статические алгоритмы
1️⃣ Round Robin, или алгоритм кругового обслуживания, представляет собой перебор по круговому циклу: первый запрос передаётся одному серверу, затем следующий запрос передаётся другому и так до достижения последнего сервера, после чего всё начинается сначала.
📌 Недостаток алгоритма в том, что в нём не учитывается количество активных на данный момент подключений
2️⃣ Sticky Round Robin — вариация алгоритма Round Robin. Если первый запрос Алисы отправляется к сервису А, то и последующие запросы также отправляются к сервису А.
3️⃣ Weighted Round Robin — вариация алгоритма Round Robin. Каждому серверу присваивается весовой коэффициент в соответствии с его производительностью и мощностью.
4️⃣ Хэш — алгоритм, который применяет хэш-функцию к IP-адресу или URL-адресу входящих запросов. Запросы направляются в соответствующие экземпляры на основе результата хэш-функции.
🔹 Динамические алгоритмы
5️⃣ Least connections — алгоритм, при котором новое подключение передается на сервер, на который в данный момент установлено наименьшее число соединений.
6️⃣ Least response time — алгоритм, который учитывает не только количество соединений, но и среднее время. Тогда первым в списке будет сервер с наименьшим количеством подключений и наименьшим временем ответа.
🔗 Источник
❓25 вопросов, которые стоит задать HR-менеджеру на интервью
В этой статье разберемся, что спросить у работодателя, чтобы получить оффер.
🔗 Читать статью
🔗 Зеркало
#холивар
💭 Представьте, что за час вы можете научиться чему угодно. Что вы выберете?👇
#подкасты
Как спокойно выдохнуть, когда мир на тебя бесконечно давит и постоянно подбрасывает новые и новые испытания? Ведущие подкаста «Доктор кот» постарались найти ответы👇
🎙 YouTube | Apple Подкасты | Google Подкасты | Яндекс Музыка