Search
Write a publication
Pull to refresh
0
0
Send message

Глава 5: API-аутентификация, часть 2 (OAuth)

Level of difficultyEasy
Reading time7 min
Views8.2K

В Главе 4 мы упомянули, что большинство веб-сайтов используют имя пользователя и пароль для аутентификации учетных данных. Мы также обсудили, что повторное использование этих учетных данных для доступа к API небезопасно, поэтому API часто требуют другой набор учетных данных, нежели те, которые используются для входа на веб-сайт. Распространенным примером являются ключи API. В этой главе мы рассмотрим другое решение — открытую авторизацию (OAuth), которая становится наиболее широко используемой схемой аутентификации в Интернете.

Читать далее

5 основополагающих советов по управлению базами данных Greenplum

Level of difficultyMedium
Reading time9 min
Views1.6K

Greenplum — это массивно‑параллельная (MPP) база данных с открытым исходным кодом, предназначенная для организации хранилищ данных и высокопроизводительной аналитики. Как и в случае с другими MPP‑СУБД, она требует регулярной оптимизации запросов, корректировки распределения ресурсов и защиты данных. В этой статье мы рассмотрим пять рекомендаций, обязательных для эффективного управления Greenplum.

Читать далее

Путь к масштабированию PostgreSQL: от теории к практике

Level of difficultyMedium
Reading time4 min
Views6.1K

"Postgres масштабируется" - нет других двух слов, которые вызывали бы больше споров. По крайней мере, в кругах, где я общаюсь, в подвале компании, где инфраструктурные эльфы заставляют Rails-приложение работать. Многие верят, вопреки всему и маркетинговым кампаниям Big NoSQL, что знакомая технология лучше, чем новый неизвестный инструмент, о котором только что рассказали на совещании руководства.

Честно говоря, я понимаю их позицию. Заставить Postgres писать больше данных может быть сложно. Вам нужно больше оборудования. В большинстве случаев его можно получить, просто нажав кнопку "Обновить". Но когда вы дошли до экземпляра r5.24xlarge с 5 репликами такого же размера, и ваши процессы vacuum всё ещё отстают от графика, ситуация становится довольно пугающей.

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

А базовый принцип говорит нам, что нам нужно. У Postgres закончилась пропускная способность для записи. Либо из-за блокировок при работе с WAL, либо что-то застопорило vacuum. Вероятно, это та неактивная транзакция, которая открыта уже 45 секунд, пока приложение делает запрос к Stripe, но это не наша забота. Мы - инфраструктурная команда, и наша задача - заставить базу данных работать.

Читать далее

Кто сообщает картам, где едет ваш транспорт

Level of difficultyMedium
Reading time8 min
Views25K
Приветствую всех!
Когда-то давно здесь уже был пост про то, как работает отображение движения транспорта на Яндекс-Картах. С тех пор мне не раз предлагали рассказать про то, что происходит на «транспортной» стороне: что вообще за устройства установлены на подвижном составе, в каком формате они передают положение и что с этими данными делают дальше. Самое время восполнить это упущение.



Итак, в сегодняшней статье поговорим про то, что за девайсы используются на транспорте, позволяя нам знать, когда приедет наш маршрут. Заодно попробуем их запустить, посмотрим на них в работе и узнаем, как работают информаторы в новых автобусах и трамваях.
Читать дальше →

Что такое XML

Reading time13 min
Views452K
Если вы тестируете API, то должны знать про два основных формата передачи данных:

  • XML — используется в SOAP (всегда) и REST-запросах (реже);
  • JSON — используется в REST-запросах.

Сегодня я расскажу вам про XML.

XML, в переводе с англ eXtensible Markup Language — расширяемый язык разметки. Используется для хранения и передачи данных. Так что увидеть его можно не только в API, но и в коде.

Этот формат рекомендован Консорциумом Всемирной паутины (W3C), поэтому он часто используется для передачи данных по API. В SOAP API это вообще единственно возможный формат входных и выходных данных!

См также:
Что такое API — общее знакомство с API
Что такое JSON — второй популярный формат
Введение в SOAP и REST: что это и с чем едят — видео про разницу между SOAP и REST.

Так что давайте разберемся, как он выглядит, как его читать, и как ломать! Да-да, а куда же без этого? Надо ведь выяснить, как отреагирует система на кривой формат присланных данных.


Читать дальше →

Критерии качества требований с примерами (Часть 1)

Level of difficultyEasy
Reading time6 min
Views19K

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

В этой статье рассказывается про 7 самых часто встречающихся критериев качества c с примерами.

Читать далее

Введение в OpenAPI: ёмко и полезно о важном

Level of difficultyEasy
Reading time7 min
Views8.7K

В современном мире разработка программного обеспечения и интеграция различных сервисов становятся всё более сложными задачами. Программистам приходится работать со множеством HTTP API, которые могут отличаться по структуре, способу передачи данных и документированию. В таких условиях становится критически важно иметь унифицированный подход к созданию, использованию и описанию HTTP API, чтобы снизить затраты времени и ресурсов на их поддержку и интеграцию. Ответом на эти запросы является OpenAPI.

Меня зовут Лев Лейман. Я ведущий бэкенд-разработчик в MedTech-компании СберЗдоровье. В этой статье я постараюсь подсветить всё то, что нужно знать об OpenAPI перед началом работы. 

Читать далее

Книга: «Промт-инжиниринг для GenAI»

Reading time18 min
Views10K
Привет, Хаброжители!

В эпоху стремительного развития искусственного интеллекта (ИИ) каждый, кто профессионально использует эту технологию, сталкивается с вызовом: качество результатов напрямую зависит от качества входных данных. Именно поэтому сегодня невозможно обойтись без промт-инжиниринга — набора методов, которые повышают надежность, эффективность и точность работы моделей ИИ.

Книга «Промт-инжиниринг для GenAI. Паттерны надежных запросов для качественных результатов» Джеймса Феникса и Майка Тейлора станет практическим руководством для тех, кто хочет освоить эту дисциплину и эффективно внедрить генеративный ИИ в свои рабочие процессы.
Читать дальше →

Путешествие из проджекта в продакты: какие навыки помогут построить карьеру

Level of difficultyEasy
Reading time5 min
Views2.9K

Привет! Я Стас, уже больше года работаю продактом в ITSM 365. В эту ИТ-профессию попал не сразу, ранее строил карьеру в проджект-менеджменте: собирал требования, делал ТЗ и брифы, реализовывал проекты. Но мне стало скучно — слишком много рутины, нет места творчеству и возможности влиять на продукт. Тогда определил, что может принести удовольствие в работе: новые задачи, реализация идей и возможность принимать решения. Продуктовая разработка подошла по всем пунктам. Так началось мое путешествие из проджекта в продакты.

Я понимал, что меня ждет много трудностей. Однако скиллы проджекта сильно пригодились. Благодаря им за год достиг неплохих успехов в продуктовой разработке. Например, сократил «time to market» фич релиза в три раза и уменьшил трудозатраты команды на их выпуск на 20%. В статье расскажу о сложностях, с которыми столкнулся при смене роли, и как их преодолел. Также поделюсь, какие навыки помогли стать менеджером продукта.

Читать далее

WebSocket для начинающих системных аналитиков: просто о сложном. Часть 1

Level of difficultyEasy
Reading time6 min
Views18K

Меня зовут Юля, я системный аналитик в компании EvApps. Эта статья для начинающих системных аналитиков, которые хотят понять основы WebSocket.

В своей работе мне иногда приходится сталкиваться с веб-приложениями, которые обмениваются данными в реальном времени: чаты, колл-центры, финансовые приложения. Часто за этим стоит технология WebSocket.

В этой статье, я простыми словами расскажу, что такое WebSocket, и почему вам, как начинающему системному аналитику, важно знать о них.

Читать далее

Диаграмма последовательности (sequence-диаграмма)

Level of difficultyEasy
Reading time8 min
Views144K

Что такое диаграмма последовательности? Из чего она состоит? Где и как пользоваться?

Простым языком о sequence диаграммах.

А еще тут есть интересные возможности, о которых ты мог не знать.

Читать далее

Идемпотентность: больше, чем кажется

Level of difficultyEasy
Reading time10 min
Views76K

image


Друзья, всем привет! Идемпотентность в проектировании API — не просто формальность. Это свойство, часто рассматриваемое как способ получения одинакового ответа на повторяющийся запрос, на самом деле означает гораздо больше...

Читать дальше →

Уильям Гибсон: киберпанк-пророк, предсказавший наш мир

Level of difficultyEasy
Reading time10 min
Views9.2K

Через 40 лет после выхода книги «Нейромант» разбираем, какие из придуманных американским фантастом технологий будущего воплотились в нашем мире, а какие нет — и почему.

Читать далее

Как устроено индексирование баз данных

Level of difficultyEasy
Reading time12 min
Views138K

Индексирование баз данных — это техника, повышающая скорость и эффективность запросов к базе данных. Она создаёт отдельную структуру данных, сопоставляющую значения в одном или нескольких столбцах таблицы с соответствующими местоположениями на физическом накопителе, что позволяет базе данных быстро находить строки по конкретному запросу без необходимости сканирования всей таблицы. Применяются разные типы индексов, однако они занимают пространство и должны обновляться при изменении данных. Важно тщательно продумывать стратегию индексирования базы данных и регулярно её оптимизировать.
Читать дальше →

База, которую нужно знать про JSON Schema

Level of difficultyEasy
Reading time7 min
Views38K

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

Сегодня мы рассмотрим одну из тем, которая, как ни странно, остаётся недооценённой — JSON Schema. Если ты аналитик (или хочешь им быть) и в твоей работе часто мелькают JSON-файлы, то наверняка знаешь, как сложно порой бывает держать всё это под контролем. В этой статье мы разберём всё, что тебе нужно знать про JSON Schema.

Читать далее

[По полочкам] Кэширование

Level of difficultyEasy
Reading time12 min
Views80K

Всем привет! Меня зовут Илья Денисов, я занимаюсь backend разработкой уже более пяти лет и сейчас пишу на языке go. Сегодня я предлагаю вам поговорить о кэшировании. Постараюсь рассказать о базовых концепциях, а также затронуть ряд особенностей, неочевидных на первый взгляд.

Читать далее

Подходы к контролю доступа: RBAC vs. ABAC

Reading time5 min
Views188K
В этой теме хотелось бы познакомить читателей с относительно новым подходом к контролю доступа под названием Attribute-based access control. Знакомство будет происходить на примере сравнения с популярным нынче Role-based access control.
Читать дальше →

Горизонтальное масштабирование базы данных. Репликация. Партицирование. Шардирование

Level of difficultyEasy
Reading time11 min
Views21K

В современном мире данных нагрузка на базы данных стремительно растёт. Когда один сервер перестаёт справляться с объёмом запросов, встаёт вопрос о масштабировании: как эффективно распределить нагрузку, сохранив высокую производительность и доступность?

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

Читать далее

Первому игроку приготовиться

Level of difficultyEasy
Reading time40 min
Views10K

Электронные игры (аркадными, видео и компьютерными они станут значительно позже) появились не в уютных гостиных и даже не в шумных игровых клубах. Первые игры родились совсем в других местах — в исследовательских лабораториях, университетах и на военных базах чьей-то там минобороны, где военные искали новые способы использования технологий, чтобы внести побольше рацпредложений на одну солдатиковую единицу. На авиастанции корпуса морской пехоты Канеохе, солдатикам предлагали электромеханические игры еще в 1949. Чтобы хоть ненадолго отвлечь молодцев от изнуряющей подготовки и строгой дисциплины, в гулко звучащих казармах новобранцы часами сосредоточенно вертели ручки и нажимали кнопки, стараясь на время забыть тяготы и лишения, пока начальство судорожно решало проблему нехватки брома в части.

Тем временем, в тишине университетских корпусов, среди гудящих cтоек и залежей перфокарт, заспанные и перегруженные учебой студенты, будущие светила программирования и предлагатели новых стандартов превращали огромные дорогущие мейнфреймы в примитивные игровые приставки. Вместо добивания перфокартами сложных математических расчётов или моделей для научных работ, эти люди писали код для первых игр. Не могу их в этом винить, потому что сам в конце 90х прокрадывался в зал, где стоял отцовский комп и тайком запускал SimCity или Цезаря, или пытался накропать морской бой на BASIC руководствуясь исходниками, напечатанными в каком-то журнале и молясь, чтобы скрип жесткого диска и попискивание бипера не были услышаны родителями.

Так, в тени науки и военных технологий, из любопытства, усталости и стремления поиграть, зародилась одна из самых мощных индустрий развлечений современности — видеоигры. Небольшая передышка для одних, вскоре стало культурным феноменом масс и изменила мир развлечений.

Press start

Работа с колонками типа JSON в PostgreSQL (на примере использования отдельных функций)

Level of difficultyEasy
Reading time27 min
Views12K

Содержание

Вступление (и некоторые общие сведения)

Немного теории

Используемые функции PostgreSQL

Описание используемого примера данных

Предварительные шаги

Запросы

Краткий итог

«Задачи»

Читать далее

Information

Rating
Does not participate
Registered
Activity