Задачи и тесты по программированию | proghub
2.4K subscribers
655 photos
16 videos
23 files
915 links
Публикуем задачи и вопросы для подготовки к собесу.

Сотрудничество: @cyberJohnny
Download Telegram
Задачи и тесты по программированию | proghub
Как правильно в данном случае передать массив в описанную ниже функцию? proghub.ru/q/63b3f1 #tests #c
Правильный ответ: Ни один из вариантов не является правильным

Объяснение: Массив представляет собой указатель на первую переменную массива в памяти.
Задачи и тесты по программированию | proghub
Real-time рейтинг Начали пилить на proghub.ru рейтинг юзеров. Сделали вариант на mysql, после прохождения теста, обновляем табличку добавляя или обновляя места пользователей. Вроде неплохой вариант, запустили на деве, при 15к фейковых юзеров уже начал лагать…
Почти доделали рейтинг, ещё недельку тестим и запускаем в общий доступ.

А пока вопрос:
Участвовали ли бы вы соревнованиях на основе наших тестов за некий призовой фонд?

Вопрос для компаний:
Хотели ли бы вы провести подобное соревнование для популяризации себя/своего продукта?
Приснился сегодня страшный сон что прогхаб упал! Проснулся, проверил, все работает, а java все ещё самый популярный раздел.
Забавный проект с попыткой монетизировать опенсорс. Идея такая: вы пишите код который доступен только тем кто будет за него платить.

Сайт: https://xscode.com/

Как вам идея?

#git
Ищем программиста-фотошопера!

Разыскивается человек обладающий минимальными умениями фотошопа и знаниями в программировании и в мире ИТ в целом (достаточно минимальных знаний).

Что нужно делать?

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

За более детальной пишите нам на [email protected]
Когда переходишь с C++ на python
Что будет выведено при выполнении кода:

proghub.ru/q/3e1e0f

#tests
#cpp
Крутая утилита для уменьшения размеров docker-образа без изменения кода, называется docker-slim. Оптимизирует и добавляет защиту для ваших контейнеров, понимая их смысл c помощью различных аналитических средств.

Github: https://github.com/docker-slim/docker-slim
Сайт: https://dockersl.im

#devops #docker
Легковесная утилита для нагрузочного тестирования путем отправки большого кол-ва http-запросов. Неплохая альтернатива ApacheBench (ab). Написана на go, из особых фич - поддержка http2.

Github: https://github.com/rakyll/hey

#utils
​​Третий пост с визуализацией алгоритмов с нашего теста по алгоритмам

На этот раз визуализация пузырьковой сортировки
Очереди сообщений

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

Если какая-либо операция выполняется слишком долго, можно использовать очередь сообщений по такой схеме:

1. Приложение публикует задание в очереди, а затем уведомляет пользователя о статусе обработки.
2. Воркер забирает задание из очереди, обрабатывает его, а затем сообщает, что задание завершено.

Пользователь не ждет отклика страницы, а задание обрабатывается в фоновом режиме. Например у нас на proghub.ru есть задачи отправки всех писем, задача добавления в рейтинг результатов прохождения пользователя. В качестве брокера сообщений мы используем redis. А вообще самые попелярные варианты работы с очередями это:

1. redis - максимально простой вариант
2. rabbitMQ - самый популярный вариант, умеет очень много из коробки, работает на основе протокола AMQP
3. amazon SQS - если у вас проект в амазон, то этот вариант для вас

#devops #backend
Тем временем ВКонтакте выступили против атаки на NGINX в защиту его автора Сысоева.

Надеемся что в этой ситуации выиграет nginx, не хочется переезжать на apache 🌚
Как работает PHP

Мы на апи proghub.ru используем PHP, думаю многие из наших подписчиков так-же пишут на нем. Для вас публикуем короткий пост о том как обрабатывается входящий запрос.

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

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

Но скорее всего никто не использует PHP в голом виде, все его используют с OPcache. Если соберем 100 👍 то опубликуем следующую часть.

#backend #php #api
Как работает PHP 2: OPcache

Продолжаем тему о работе движка php и сегодня поговорим про OPcache.

Главная задача OPcache — избавиться от перекомпиляции скриптов на каждом запросе. Он встраивается в специально предназначенную для него точку, перехватывает все запросы на компиляцию и кэширует скомпилированный байт-код в shared memory.

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

#backend #php #api