Как стать автором
Обновить
0
0

Пользователь

Отправить сообщение

Как не ошибиться с конкурентностью в Go

Время на прочтение12 мин
Количество просмотров34K

Почему мы вообще хотим писать конкурентный код? Потому что процессоры перестали расти по герцовке и начали расти по ядрам. С каждым годом увеличивается количество ядер процессора, и мы хотим их эффективно утилизировать. Go — тот язык, который создан для этого. В документации так и написано.


Мы берём Go, начинаем писать конкурентный код. Конечно, ожидаем, что легко сможем обуздать мощь каждого ядра нашего процессора. Так ли это?


Меня зовут Артемий. Этот пост — вольная расшифровка моего доклада с GopherCon Russia. Он появился как попытка дать толчок людям, которые хотят разобраться, как писать хороший, конкурентный код.



Видео с конференции GopherCon Russia

Всего голосов 62: ↑58 и ↓4+54
Комментарии16

Лог файлы Linux по порядку

Время на прочтение6 мин
Количество просмотров487K

Невозможно представить себе пользователя и администратора сервера, или даже рабочей станции на основе Linux, который никогда не читал лог файлы. Операционная система и работающие приложения постоянно создают различные типы сообщений, которые регистрируются в различных файлах журналов. Умение определить нужный файл журнала и что искать в нем поможет существенно сэкономить время и быстрее устранить ошибку.




Журналирование является основным источником информации о работе системы и ее ошибках. В этом кратком руководстве рассмотрим основные аспекты журналирования операционной системы, структуру каталогов, программы для чтения и обзора логов.

Читать дальше →
Всего голосов 31: ↑27 и ↓4+23
Комментарии28

Как работать с Postgres в Go: практики, особенности, нюансы

Время на прочтение10 мин
Количество просмотров137K


Неожиданное поведение приложения в отношении работы с базой приводит к войне между DBA и разработчиками: DBA кричат: «Ваше приложение роняет базу», разработчики — «Но ведь до этого всё работало!». Хуже всего, что DBA и разработчики не могут помочь друг другу: одни не знают про нюансы работы приложения и драйвера, другие не знают про особенности, связанные с инфраструктурой. Было бы неплохо такой ситуации избежать.


Надо понимать, часто недостаточно полистать go-database-sql.org. Лучше вооружиться чужим опытом. Еще лучше, если это будет опыт, полученный кровью и потерянными деньгами.

Всего голосов 76: ↑73 и ↓3+70
Комментарии29

Подводные камни использования сессий в PHP

Время на прочтение13 мин
Количество просмотров146K
image
Приветствую, уважаемое сообщество.

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

Цель этой статьи — осветить подводные камни использования сессий в PHP. Конечно, есть документация по PHP и масса примеров, и данная статья не претендует на полное руководство. Она призвана раскрыть некоторые ньюансы работы с сессиями и оградить разработчиков от ненужной траты времени.

Читать дальше →
Всего голосов 56: ↑30 и ↓26+4
Комментарии74

Хранение php-сессий в Redis с блокировками

Время на прочтение5 мин
Количество просмотров29K
Стандартный механизм хранения данных пользовательских сессий в php — хранение в файлах. Однако при работе приложения на нескольких серверах для балансировки нагрузки, возникает необходимость хранить данные сессий в хранилище, доступном каждому серверу приложения. В этом случае для хранения сессий хорошо подходит Redis.

Наиболее популярное решение — расширение phpredis. Достаточно установить расширение и настроить php.ini и сессии будут автоматически сохраняться в Redis без изменения кода приложений.

Однако такое решение имеет недостаток — отсутствие блокировки сессии.
Читать дальше →
Всего голосов 28: ↑20 и ↓8+12
Комментарии10

Асинхронное параллельное исполнение в PHP

Время на прочтение14 мин
Количество просмотров62K
Много пик сломано в мире на тему того, можно ли и как создавать многопоточность в PHP. Чаще всего все сводится к тому, что так делать нельзя или дискуссия материализуется в какие-то ужасные костыли (ох, сколько я их уже повидал). Я хочу изложить свою точку зрения на этот вопрос. Легко догадаться, что если бы моя позиция была “так нельзя” или “это зло”, то я бы не писал эту статью. Вот только погодите, не спешите доставать тухлые яйца и вооружаться мелкими бытовыми предметами для рукопашной схватки. Я постараюсь дипломатично изложить тему и максимально объективно раскрыть ситуацию. Так что самые смелые из моих читателей могут прочитать молитву от ереси и открыть статью.


Читать дальше →
Всего голосов 25: ↑13 и ↓12+1
Комментарии23

Простая настройка взаимной проверки подлинности клиента и сервера с использованием TLS

Время на прочтение14 мин
Количество просмотров30K
Это руководство посвящено настройке защиты приложений с помощью TLS-аутентификации. При таком подходе возможность работы пользователей с приложением зависит от имеющихся у них сертификатов. То есть — разработчик может самостоятельно принимать решения о том, каким пользователям разрешено обращаться к приложению.



В учебном проекте, который будет здесь разобран, показаны основные настройки сервера и клиента. Их взаимодействие изначально осуществляется посредством HTTP. А это значит, что данные между ними передаются в незашифрованном виде. Наша задача заключается в том, чтобы обеспечить шифрование всего того, чем обмениваются клиент и сервер.

Мы рассмотрим следующие вопросы:

  1. Запуск сервера
  2. Отправка приветствия серверу (без шифрования)
  3. Включение HTTPS на сервере (односторонний TLS)
  4. Аутентификация клиента (двусторонний TLS)
  5. Установление двустороннего TLS-соединения с использованием доверенного удостоверяющего центра.
  6. Автоматизация различных подходов к аутентификации

Читать дальше →
Всего голосов 29: ↑29 и ↓0+29
Комментарии13

Откуда что берется: интеграция с ЕСИА на языке PHP

Время на прочтение9 мин
Количество просмотров12K

Как мы в банке внедряли интеграцию с Единой системой идентификации и аутентификации (ЕСИА) на PHP и какие проблемы пришлось решать.

Читать далее
Всего голосов 15: ↑14 и ↓1+14
Комментарии9

Xdebug в качестве Php консоли  —  чем заменить Python/JS консоль в Phpstorm | Запуск Xdebug после установки за 30 секунд

Время на прочтение5 мин
Количество просмотров3K

Перешли с Python на Php, а привычной интерактивной консоли из PyCharm нет? Пользуетесь JS-консолью в инструментах разработчика браузера, а для Php такого нет? Не беда, ведь в качестве интерактивной оболочки можно использовать консоль Xdebug! И мало того, что она интегрирована с Phpstorm, и там работает автодополнение кода прямо из проекта, так еще там есть такие фичи, которых и вовсе нету ни в Python Console , ни в подобных REPL-интеграциях других языков программирования. Более того, с этими фичами сама консоль будет практически не нужна. А настроить нужную конфигурацию для запуска можно буквально за 10 секунд.

Читать далее
Всего голосов 7: ↑7 и ↓0+7
Комментарии11

Имплементируем WebSocket протокол на Go

Время на прочтение9 мин
Количество просмотров24K

Статья для тех, кто хочет познакомиться с устройством технологии WebSocket или языком программирования Go.

Или узнать с какой простотой Go стал одним из самых популярных языков программирования для написания сетевых приложений.

Читать далее
Всего голосов 35: ↑34 и ↓1+37
Комментарии9

Меняем стек с PHP на Golang, или Разработка под Kubernetes

Время на прочтение12 мин
Количество просмотров14K

Привет, Хабр!

На связи Паша Емельянов, тимлид в AGIMA. В этой статье расскажу, как на одном из проектов мы переписывали старый функционал, разработанный когда-то на PHP, на Golang, с какими проблемами столкнулись и как их решали. Статья будет интересна и начинающим, и миддлам, а еще системным архитекторам, т. к. здесь затронем как инфраструктурные вопросы, так и вопросы реализации конкретного сервиса под потребности бизнес-заказчика.

Читать далее
Всего голосов 26: ↑19 и ↓7+12
Комментарии13

«Битрикс24». Играемся с настройками и оптимизируем проект

Время на прочтение3 мин
Количество просмотров16K
В этой статье мы расскажем, как оптимизировать крупный проект в «Битрикс24» и увеличить его производительность в 3 раза, изменяя настройки MySQL и режим питания CPU.

Дано


Корпоративный портал в «Битрикс24», рассчитанный на несколько сотен пользователей, c ~300 Гб файлов и ~80 Гб БД на выделенном сервере с BitrixVM.
Читать дальше →
Всего голосов 12: ↑6 и ↓6+4
Комментарии7

От Bitrix до Golang, к монолиту и обратно: как мы растили СберМегаМаркет и к чему пришли

Время на прочтение8 мин
Количество просмотров7.9K

Привет, мы команда СберМегаМаркета, и это обзорная статья о нашей площадке, пробный камень для блога Хабре. За нашими плечами спешный переезд с PHP на GO, ребрендинг и решение таких задач, с которыми большинство разработчиков не сталкивается. Например, мы сделали высоконагруженную платформу для управления заказами на 1С. А вам слабо?

Мы пришли поделиться опытом, и для начала расскажем, как превратились из локального маркетплейса в высоконагруженный e-commerce сервис, и что интересного входит в IT-инфраструктуру современного маркетплейса. 

Читать далее
Всего голосов 8: ↑7 и ↓1+14
Комментарии5

Как сделать онлайн просмотр документов

Время на прочтение6 мин
Количество просмотров57K
Первый рабочий день. Первая задача в Redmine. Первая спецификация в формате doc. На новой рабочей машине. К чтению спецификации удалось приступить часа через 3. Пока скачался и установился MS Office. Вспоминая этот случай, я был уверен, что в нашей системе управления задачами надо сделать онлайн просмотр документов. Вот только идей по реализации за разумное время и трудозатраты не было. Недавно мы нашли способ – Microsoft Office Web Apps.

В этой статье пойдет речь о том, как добавить онлайн просмотр документов в любой продукт.
Читать дальше →
Всего голосов 18: ↑15 и ↓3+12
Комментарии36

Быстрый старт работы со Смарт-процессами в коробке Битрикс24 для разработчика. Часть 1. Базовые операции

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров8.3K
Представляю вашему вниманию цикл статей по работе с пока еще мало знакомым многим битрикс-разработчикам инструментом оперирования данными с CRM Битрикс24 через абстрактные фабрики. В первой статье рассмотрим базовые операции с элементами сущностей CRM — создание, изменение, удаление.

Читать дальше →
Всего голосов 9: ↑8 и ↓1+9
Комментарии7

Быстрый старт работы со Смарт-процессами в коробке Битрикс24 для разработчика. Часть 2. Элемент, список, связи

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров5.2K

Представляю вашему вниманию цикл статей по работе с пока еще мало знакомым многим битрикс-разработчикам инструментом оперирования данными с CRM Битрикс24 через абстрактные фабрики. В первой статье мы рассмотрели базовые операции с элементами сущностей Смарт-процессов — создание, изменение, удаление.

Ознакомиться с первой частью:

Быстрый старт работы со Смарт-процессами в коробке Битрикс24 для разработчика. Часть 1. Базовые операции

Сейчас же рассмотрим прочие операции с элементом и списком элементов Смарт-процессов, а именно:

Читать далее
Всего голосов 7: ↑6 и ↓1+7
Комментарии1

Проблемы и принципы кастомизации коробочной версии Битрикс24

Время на прочтение7 мин
Количество просмотров23K


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

Для этой цели есть разные платформы, Битрикс24 — одна из самых популярных. Скорость развития и появления новых фич, качественная поддержка и богатый набор инструментов, который даже с минимальной кастомизацией покрывает базовые потребности большинства разных компаний, делает эту платформу практически идеальным решением для бизнеса.

Но, увы, не для разработчиков, особенно начинающих.

Специалисты пишут обучающие статьи по 1С-Битрикс и разным модулям системы, но после их прочтения у новичков все равно нет общей картинки и понимания, как же все устроено на этой платформе. В интернете есть статьи про best practice разработки на фреймворках, но разработку на Б24 обходят стороной. Есть и компании, которые научились делать качественный продукт, но они держат свои наработки в тайне.

Если хотите узнать, как можно работать с Битрикс24, сохранив при этом исходный цвет волос, добро пожаловать под кат.
Читать дальше →
Рейтинг0
Комментарии5

1С-Битрикс. Массовая загрузка элементов в Highload-блоки

Уровень сложностиСредний
Время на прочтение4 мин
Количество просмотров2.9K

При загрузке данных в Highload-блоки возможна ситуация, когда объем загружаемых данных очень велик.

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

На самом деле, основных пути три (привет старым добрым былинам): добавление в цикле, добавление прямым запросом и добавление массово через ORM-коллекции

При этом информации о записи данных в Highload через коллекции практически нет, что и побудило нас к написанию данной статьи.

Рассмотрим каждый из способов подробнее. Подчеркиваем, что речь идет именно о массовой записи.

Читать далее
Всего голосов 7: ↑7 и ↓0+7
Комментарии5

Vue.js для проекта на Bitrix

Время на прочтение6 мин
Количество просмотров20K

Привет, Хабр!

Меня зовут Дмитрий Матлах. Я тимлид в AGIMA. Мы с коллегами обратили внимание, что в сообществе часто возникает вопрос о том, как совместить на одном проекте Bitrix-компоненты и реактивные фронтовые движки. Мы неоднократно сталкивались с подобными задачами, и поэтому я решил подробно рассказать, как мы их решаем. Думаю, если вы используете Bitrix-фреймворк в своих проектах, прочитать будет интересно. Ну и забегая вперед, если вы решаете те же задачи по-другому, то интересно в комментариях узнать поподробнее.

Читать далее
Всего голосов 18: ↑17 и ↓1+16
Комментарии11

Отдаем файлы эффективно с помощью PHP

Время на прочтение3 мин
Количество просмотров283K
Если Вам потребовалось отдавать файлы не напрямую веб сервером, а с помощью PHP (например для сбора статистики скачиваний), прошу под кат.
Три способа отправить пользователю файл и не повесить сервер
Всего голосов 132: ↑108 и ↓24+84
Комментарии59
1

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность