Pull to refresh
1
0
Send message

Юнит-тестирование на PHP в примерах

Reading time 31 min
Views 17K

Сегодня юнит-тесты невероятно полезны. Думаю, они есть в большинстве из недавно созданных проектов. Юнит-тесты являются важнейшими в enterprise-приложениях с обилием бизнес-логики, потому что они быстрые и могут сразу сказать нам, корректна ли наша реализация. Однако я часто сталкиваюсь с проблемами, которые связаны с хорошими тестами, хотя те и крайне полезны. Я дам вам несколько советов с примерами, как писать хорошие юнит-тесты.
Читать дальше →
Total votes 27: ↑26 and ↓1 +25
Comments 3

Знакомимся с Event Sourcing. Часть 1

Reading time 5 min
Views 43K
Перевод статьи подготовлен в преддверии старта курса «Java Developer. Professional».




Event sourcing (источники событий, регистрация событий, генерация событий) — это мощный архитектурный шаблон, при котором все изменения, вносимые в состояние приложения, сохраняются в той последовательности, в которой они происходили. Эти записи служат как источником для получения текущего состояния, так и журналом аудита того, что происходило в приложении за время его существования. Event sourcing способствует децентрализованному изменению и чтению данных. Такая архитектура хорошо масштабируется и подходит для систем, которые уже работают с обработкой событий или хотят перейти на такую архитектуру.
Читать дальше →
Total votes 7: ↑7 and ↓0 +7
Comments 5

Как департамент утилизации CPU превратился в департамент экономии железа, выдерживающий нагрузку в 1 млн RPS

Level of difficulty Easy
Reading time 26 min
Views 32K

Привет, меня зовут Мария, когда-то я работала на шахте, потом на заводе, а 3.5 года назад пришла в Ozon Tech. Сейчас я старший Golang-разработчик в команде product-facade. Это самый высоконагруженный сервис маркетплейса, но так было не всегда.

Хотите узнать, что скрывается под витриной маркетплейса? Что держит нагрузку в 1 миллион запросов в секунду? Толстые кэши или нечто большее? Про то, как устроено наше кэширование и как мы к этому пришли, — рассказываю в статье.

Читать далее
Total votes 128: ↑128 and ↓0 +128
Comments 96

Хороший ретрай, плохой ретрай, или История одного падения

Level of difficulty Medium
Reading time 17 min
Views 36K

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

Меня зовут Денис Исаев, и я работаю в Яндекс Go. Сегодня я поделюсь опытом решения проблем с отказоустойчивостью из-за ретраев. Основано на реальных инцидентах в системе из 800 микросервисов.

Этот пост — продолжение вымышленных историй о разработчике Васе, который несколько лет назад разбирался с идемпотентностью в распределённых системах. Теперь перед ним новые задачи — получится ли справиться с ними в этот раз? Давайте узнаем.

Читать далее
Total votes 152: ↑152 and ↓0 +152
Comments 32

Стажёр Вася и его истории об идемпотентности API

Reading time 11 min
Views 220K

Идемпотентность — звучит сложно, говорят о ней редко, но это касается всех приложений, использующих API в своей работе.


Меня зовут Денис Исаев, и я руковожу одной из бэкенд групп в Яндекс.Такси. Сегодня я поделюсь с читателями Хабра описанием проблем, которые могут возникнуть, если не учитывать идемпотентность распределенных систем в своем проекте. Для этого я выбрал формат вымышленных историй о стажёре Васе, который только-только учится работать с API. Так будет нагляднее и полезнее. Поехали.


image

Читать дальше →
Total votes 219: ↑216 and ↓3 +213
Comments 163

Anki — настолько круто, что я даже представить не мог

Reading time 4 min
Views 125K

Если вдруг кто не знает, Anki - это бесплатная opensource программа для запоминания слов (и не только). Есть версии под декстоп и мобилы. Она довольно популярна при этом имеет интуитивно-НЕпонятный интерфейс. Мне понадобилось много лет, чтобы понять, насколько она крута, т.к. базовые статьи и туториалы этого не описывают. А многие люди используют ее даже не понимая ее возможностей.

Впервые про Anki я услышал много лет назад. Может быть 10 или больше, точно сказать сложно. Прочитал здесь на Хабре, что есть такая крутая штука как интервальное повторение, и что Anki как раз такая программа, которая использует этот механизм. Помню что в статье рассказывалось только про версию под декстоп.

Читать далее
Total votes 84: ↑75 and ↓9 +66
Comments 145

Разбираем HTTP/2 по байтам

Level of difficulty Medium
Reading time 24 min
Views 26K

image


Откройте любую статью с обзором HTTP/1.1. Скорее всего, там найдётся хотя бы один пример запроса и ответа, допустим, такие:


GET / HTTP/1.1
Host: localhost

HTTP/1.1 200 OK
Date: Sat, 09 Oct 2010 14:28:02 GMT
Server: Apache
Content-Length: 38
Content-Type: text/html; charset=utf-8

<!DOCTYPE html>
<h1>Привет!</h1>

Теперь откройте статью с обзором HTTP/2 или HTTP/3. Вы узнаете о мультиплексировании запросов, о сжатии заголовков, о поддержке push-технологий, но вряд ли увидите хоть одно конкретное сообщение. Ясно, почему так: HTTP/1.1 — текстовый протокол, тогда как сиквелы к нему бинарные. Это очевидное изменение открывает дорогу ко множеству оптимизаций, но упраздняет возможность просто и доступно записать сообщения.


Поэтому в этой статье предлагаю покопаться в кишках у HTTP/2: разобрать алгоритмы установки соединения, формат кадров, примеры взаимодействия клиента с сервером.

Читать дальше →
Total votes 115: ↑115 and ↓0 +115
Comments 45

Kafka за 20 минут. Ментальная модель и как с ней работать

Level of difficulty Medium
Reading time 19 min
Views 68K

Привет! Меня зовут Глеб Гончаров, и я руковожу подгруппой ИТ-инфраструктуры в СберМаркете. В работе мы широко используем Kafka как шину данных для микросервисов и не раз убедились на практике, что к инструменту важно подобрать правильный подход. Об этом сегодня и поговорим в двух частях — сначала обсудим основы, а в конце статьи будет ссылка на практические задания.

Читать далее
Total votes 41: ↑41 and ↓0 +41
Comments 15

Как сайты определяют ботов? Деобфускация Akamai Bot Manager 2.0

Level of difficulty Medium
Reading time 47 min
Views 20K

Akamai Technologies - американская компания, занимающаяся защитой веб-ресурсов от ботов с помощью своего продукта Bot Manager. В её портфолио числятся такие гиганты ритейла, как Nike, Adidas и Asos, для которых особенно важен контроль за ботами, автоматизирующими процесс выкупа редких/лимитированных товаров с целью их перепродажи по завышенной цене. В данной статье мы взглянем на скрипт антибота Akamai и рассмотрим, какие методы обнаружения через JavaScript в нём используются. Не знаете почему обнаруживается ваш selenium? Добро пожаловать!

Читать далее
Total votes 106: ↑106 and ↓0 +106
Comments 37

Chrome Headless против cloudflare JS challenge

Level of difficulty Medium
Reading time 41 min
Views 20K

Автоматизация сбора информации с различных ресурсов - обычная задача для людей разных сфер деятельности. Жаль, что не всегда бывает достаточно сделать простой GET запрос и разобрать полученный html. Веб-сайты, с которых собираются данные, принимают защитные меры для предотвращения автоматизированных запросов. Одной из таких мер является использование cloudflare. Сегодня мы посмотрим, как cloudflare выявляет ботов через javascript и коснёмся темы деобфускации скриптов.

Читать далее
Total votes 82: ↑82 and ↓0 +82
Comments 6

Парсим сайты с защитой от ботов

Reading time 26 min
Views 33K

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

Речь не идет о каком-либо виде "взлома" или о создании повышенной нагрузки на сайт. Мы будем автоматизировать то, что и так можно сделать вручную.

Читать далее
Total votes 15: ↑15 and ↓0 +15
Comments 16

Вся правда о когнитивных искажениях

Reading time 9 min
Views 60K
Всё чаще на Хабре можно встретить выражения типа «типичная ошибка выжившего» или «эффект Даннинга-Крюгера в действии». Предполагается, что авторы таких высказываний достаточно компетентны, чтобы позволять себе подобного рода суждения. Но так ли это? В этой статье мы попробуем копнуть парочку когнитивных искажений чуть глубже, чем они рассматриваются в википедии.

узнать всю правду
Total votes 159: ↑146 and ↓13 +133
Comments 146

Топ-5 когнитивных искажений при планировании в IT

Reading time 13 min
Views 37K

Эта статья подходит для тимлидов и их подопечных, а также для всех, кто оценивает проекты и задачи. Я расскажу, как и почему мы делаем ошибки из-за когнитивных искажений. Попадаем в них мы почти все, просто потому что мы живые люди. И на примере одного дня из жизни тимлида я хочу показать, в какие искажения чаще всего влетают в IT, и  — самое полезное  —  как из них можно выходить.

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

Читать далее
Total votes 97: ↑96 and ↓1 +95
Comments 44

Метрика Полярной звезды — главная продуктовая метрика. Как ее выбрать?

Reading time 13 min
Views 9K

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

Читать далее
Total votes 6: ↑5 and ↓1 +4
Comments 0

Как вырастить тупого ребёнка (научно обоснованные вредные советы)

Reading time 7 min
Views 265K

Brain of someone described as an «idiot»

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

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

Что мы подразумеваем под умственным развитием


Интеллект (ум) – это способность учиться, делать выводы и решать проблемы. Эти способности закладываются генетически, но развиваются благодаря внешним факторам с момента зачатия до конца жизни.

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

Итак, начнём растить не очень умного ребёнка, пользуясь достижениями современной науки.
Читать дальше →
Total votes 201: ↑178 and ↓23 +155
Comments 480

Kincony KC868-A4: ультимативный гайд. Часть 1. Обзор и железо

Reading time 9 min
Views 17K


Как-то длинным зимним вечером я сидел перед монитором и просматривал интернет на предмет чего-нибудь интересного вообще и чего-нибудь интересного микроконтроллерного в частности. К сожалению, интернет ничем особенным не радовал и на глаза попадались либо уже набившие оскомину стандартные отладочные платы, либо вариации на тему «коробочка с ESP8266/ESP32 c 1–4 реле».

ESP32 c 4-я реле это, конечно, хорошо, но хотелось чего-то большего и тут мне на глаза попалась плата Kincony KC868-A4. Неплохо! подумал я и надел очки, чтобы получше её рассмотреть…
Читать дальше →
Total votes 61: ↑61 and ↓0 +61
Comments 55

Крауд-перевод книги “Мир после капитала” Альберта Венгера (часть 1/7)

Reading time 19 min
Views 15K

Книга Мир после капитала американского инвестора немецкого происхождения Альберта Венгера — один из наиболее значимых текстов об экономике после капитализма.

Этот перевод мы делаем сообществом энтузиастов совершенно бесплатно.

Читать перевод части 1/7
Total votes 12: ↑8 and ↓4 +4
Comments 10

Жизнь замечательной картошки и современные технологии

Reading time 24 min
Views 18K
Поступая в аграрную академию, я не думал, что когда-нибудь стану сотрудником ИТ-компании. Подозреваю, что служба персонала ЛАНИТ тоже не ожидала, что будет собеседовать агрономов. И вот уже в штате «ЛАНИТ-Интеграции» у меня возникло желание написать в блог на Хабре и ближе познакомить коллег с сельскохозяйственной культурой, с которой мне довелось работать не один год и которая по праву называется «вторым хлебом». Хочется немного расширить представление об этом интересном растении, рассказать о современных технологиях, которые помогают получать хорошую урожайность.

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

На примере того, как цифровые технологии влияют на повышение урожайности картофеля, мы сегодня и рассмотрим положительную синергию растениеводства и ИТ.

Источник

Картофель! Что не специалист может сказать об этом растении? Овощ, происходит из Южной Америки, завезен в Россию Петром Алексеевичем из Голландии, нудно и скучно выращивается и собирается на приусадебных участках. На этом познания о картофеле у большинства заканчиваются. 
Total votes 82: ↑81 and ↓1 +80
Comments 56

Как я заработал 30$ на ставках на спорт

Reading time 4 min
Views 87K

Привет, Хабр! В этой статье я расскажу как я заработал на ставках на спорт, используя Python и базовую математику. Кому интересно, добро пожаловать под кат!


1

Читать дальше
Total votes 63: ↑54 and ↓9 +45
Comments 149

Выбираем канал для точки доступа Wi-Fi. Исчерпывающее руководство

Reading time 9 min
Views 286K
2,4 ГГц — это плохо. 5 ГГц — это хорошо. 6 ГГц — это ещё лучше, но послезавтра. Все это знают, кого я тут учу, в самом деле. Всё это хорошо, только делать-то что, когда ты такой, как умный, открываешь какой-нибудь Wi-Fi Explorer, а там сатанизм и этажерки, как на скриншоте?



Шаг первый — поплакать. Шаг второй — нырнуть под кат. Вопрос простой, а ответ — нет.
Когда это нас останавливало?
Total votes 111: ↑110 and ↓1 +109
Comments 234

Information

Rating
Does not participate
Registered
Activity