Pull to refresh
9
0

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

Send message

Django ORM — медленный? Оптимизируем (хардкорно)

Reading time7 min
Views15K

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

Читать дальше →
Total votes 13: ↑11 and ↓2+9
Comments25

Сравнение производительности иерархических моделей Django и PostgreSQL

Reading time3 min
Views10K

Добрый день, уважаемые читатели.


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

Читать дальше →
Total votes 12: ↑10 and ↓2+8
Comments19

Поиск в Django REST Framework с помощью Elasticsearch

Reading time3 min
Views23K

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


Для работы с elasticsearch используется библиотека elasticsearch-py или elasticsearch-dsl-py. elasticsearch-dsl-py это надстройка над elasticsearch-py, она проста в использовании и поддерживает elasticsearch версии 5.x. На базе этой библиотеки была создана библиотека django-rest-elasticsearch, которая основана на идеологии существующего поиска в Django REST Framework. Ниже я детально распишу как реализовать поиск в Django REST Framework с помощью elasticsearch используя данную библиотеку.


Читать дальше →
Total votes 11: ↑11 and ↓0+11
Comments14

10 основных ошибок, совершаемых Django-разработчиками

Reading time12 min
Views102K


В этом руководстве мы рассмотрим основные ошибки Django-разработчиков и узнаем, как их избежать. Статья может быть полезна даже опытным разработчикам, потому что и они совершают такие ошибки, как поддержка неподъёмно больших настроек или конфликтов имён в статических ресурсах.

Читать дальше →
Total votes 52: ↑50 and ↓2+48
Comments62

Основы Elasticsearch

Reading time12 min
Views684K

Elasticsearch — поисковый движок с json rest api, использующий Lucene и написанный на Java. Описание всех преимуществ этого движка доступно на официальном сайте. Далее по тексту будем называть Elasticsearch как ES.


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


В этой статье я расскажу про основы ES на примере индексации постов блога. Покажу как фильтровать, сортировать и искать документы.

Читать дальше →
Total votes 39: ↑38 and ↓1+37
Comments78

Kibana-мать или Зачем вам вообще нужны логи?

Reading time9 min
Views237K
Вы можете сказать, что “иногда бывает нужно...” Но на самом деле, вы хотите всегда видеть, что у вас в логах, через графический интерфейс. Это позволяет:

  • Облегчить жизнь разработчикам и сисадминам, время которых просто жалко и дорого тратить на написание grep-конвейеров и парсеров под каждый отдельный случай.
  • Предоставить доступ к информации, содержащейся в логах, умеренно-продвинутым пользователям — менеджерам и техподдержке.
  • И видеть динамику и тенденции появления залогированых событий (например, ошибок).

Так что сегодня вновь поговорим о стэке ELK (Elasticsearch+Logstash+Kibana).
Но на этот раз — в условиях json-логов!

Такой use case обещает наполнить вашу жизнь совершенно новыми красками и заставит испытать полную гамму чувств.


Читать дальше →
Total votes 20: ↑19 and ↓1+18
Comments24

Подходы к проектированию RESTful API

Reading time17 min
Views142K

Автор: Вячеслав Михайлов, Solutions Architect.

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

Часть 1. Теория


Итак, как мы все знаем, API — application programming interface (интерфейс программирования приложений), набор правил и механизмов, с помощью которых одно приложение или компонент взаимодействует с другими

Почему хороший API — это важно?

  • Простота использования и поддержки. Хороший API просто использовать и поддерживать.
  • Хорошая конверсия в среде разработчиков. Если всем нравится ваш API, к вам приходят новые клиенты и пользователи.
  • Выше популярность вашего сервиса. Чем больше пользователей API, тем выше популярность вашего сервиса.
  • Лучше изоляция компонентов. Чем лучше структура API, тем лучше изоляция компонентов.
  • Хорошее впечатление о продукте. API — это как бы UI разработчиков; это то, на что разработчики обращают внимание в первую очередь при встрече с продуктом. Если API кривой, вы как технический эксперт не будете рекомендовать компаниям использовать такой продукт, приобретая что-то стороннее.


Теперь посмотрим, какие бывают виды API.

Виды API по способу реализации:
  • Web service APIs
    • XML-RPC and JSON-RPC
    • SOAP
    • REST

  • WebSockets APIs
  • Library-based APIs
    • Java Script

  • Class-based APIs
    • C# API
    • Java



Виды API по категориям применения:

  • OS function and routines
    • Access to file system
    • Access to user interface

  • Object remoting APIs
    • CORBA
    • .Net remoting

  • Hardware APIs
    • Video acceleration (OpenCL…)
    • Hard disk drives
    • PCI bus



Читать дальше →
Total votes 26: ↑24 and ↓2+22
Comments37

Правильное использование Exception’ов в PHP

Reading time16 min
Views121K
Я рад бы написать что “эта статья предназначена для новичков”, но это не так. Большинство php-разработчиков, имея опыт 3, 5 и даже 7 лет, абсолютно не понимают как правильно использовать эксепшены. Нет, они прекрасно знают о их существовании, о том что их можно создавать, обрабатывать, и т.п., но они не осознают их удобность, логичность, и не воспринимают их как абсолютно нормальный элемент разработки.

В этой статье не будет мануала по эксепшенам — это все отлично описано в документации php. Здесь я я расскажу о преимуществах использования эксепшенов, и о том, где их, собственно говоря, надо использовать. Все примеры будут для Yii, но это не особо важно.
Читать дальше →
Total votes 46: ↑42 and ↓4+38
Comments70

О проблемах осанки. Почему корректоры осанки редко помогают

Reading time5 min
Views78K
Читая Geektimes, я регулярно нахожу для себя что-то новое и интересное, обращая особое внимание на все, что связано с медициной и здоровьем. Так уж сложилось, что основной интерес у меня в технологичных протезах конечностей — я врач травматолог-ортопед по образованию. По второму образованию я — врач мануальный терапевт. А еще я зануда и люблю разбираться в том, чем занимаюсь. Именно из-за моего профильного образования, занудства, а так же из-за возрастающего интереса аудитории geektimes к корректорам осанки (достаточно часто встречаю статьи на эту тематику) я понял, что мне есть что рассказать, поделиться своим видением коррекции осанки, а так же рассказать, почему корректоры осанки в том виде, в котором они существуют сейчас, будут помогать лишь в очень ограниченном количестве случаев, а в отдельных ситуациях могут и вредить.
Читать дальше →
Total votes 34: ↑34 and ↓0+34
Comments86

Nginx — уходим на технические работы

Reading time3 min
Views50K
image

Совсем недавно возникла интересная задача: реализовать закрытие доступа к веб-сайту из вне, на время технических работ. Мне показалось, что это довольно распространенная задачка, решение которой заинтересует многих.
Один из возможных вариантов решения — ниже.
Читать дальше →
Total votes 80: ↑67 and ↓13+54
Comments69

Полмегаватта чистой энергии в частные руки — отечественная новинка автономной энергетики

Reading time5 min
Views23K
В прошлом году я описывал свой путь в преобразовании дарового солнечного света в электрическую энергию. Перепробовав немало оборудования для автономной энергетики, я остановился на продукции российской компании «МикроАРТ». А в этом году отечественные разработчики порадовали выходом совершенно нового устройства, которое является сердцем любой автономной энергосистемы — инвертора МАП DOMINATOR. Заявлена масса новых функций: наращивание мощности путем добавления инверторов, организация трехфазной сети, встроенный микрокомпьютер. В конце концов, было обещано, что система позволяет генерировать более полумегаватта энергии, а это уже заявка!
Пользуясь акцией на сайте, которая повествует о возможности апгрейда инвертора с небольшой доплатой, я решил этой возможностью воспользоваться и сам оценить заявленные характеристики.

image

Читать дальше →
Total votes 23: ↑22 and ↓1+21
Comments108

Поняв Docker

Reading time14 min
Views222K

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


К вашему сведению! В этой статье мы рассматриваем само явление docker-контейнеров, а не составляем список микросервисов, которые гнездятся внутри. Этим мы займемся в следующей серии, во имя справедливости!


UPDATE: пришлось заменить «докер» на «docker», иначе статья не ищется. Заранее прошу прощения за все «docker'ы» в тексте. Селяви.


Что мы имеем сегодня


  • Зоопарк дубовых VPS-хостингов.
  • Дорогие IaaS и PaaS с гарантированным vendor lock in.
  • Уникальные сервера-снежинки.
  • Ворох устаревших зависимостей на неподдерживаемой операционке.
  • Скрытые связи частей приложения.
  • Незаменимый админ полубог на скейтборде.
  • Радуга окружений: development, testing, integration, staging, production.
  • Генерация конфигов для системы управления конфигами.
  • Feature flagging.
docker run docker
Total votes 92: ↑83 and ↓9+74
Comments245

Information

Rating
Does not participate
Registered
Activity