All streams
Search
Write a publication
Pull to refresh
381
0

Разрабатываю API более 10 лет

Send message

Проблема статус-кодов HTTP

Reading time6 min
Views33K

Ситуацию с использованием кодов ответов HTTP можно заносить в палату мер и весов: вот что происходит, когда благие намерения разработчиков спецификации сталкиваются с жестокой реальностью. Даже с двумя жестокими реальностями.


Как мы обсудили в Главе 10, одна из целей существования семантических ошибок — помочь клиенту понять, что стало причиной ошибки. При разработке спецификации HTTP (в частности, RFC 7231) эта цель очевидно была одной из главных. Более того, архитектурные ограничения REST, как их описал Фьелдинг в своей диссертации, предполагают, что не только клиенты должны понимать семантику ошибки, но и все сетевые агенты (прокси) между клиентом и сервером в «многослойной» архитектуре. И, в соответствии с этим, номенклатура статус-кодов HTTP действительно весьма подробно описывает почти любые проблемы, которые могут случиться с HTTP-запросом: недопустимые значения Accept-*-заголовков, отсутствующий Content-Length, неподдерживаемый HTTP-метод, слишком длинный URI и так далее.

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

A Book on the API Design

Reading time1 min
Views1.9K

This year, each of us seeks a special way to pass the time. I am writing a book, for example. A book about one thing I love dearly: the API. (You may read who am I and what expertise got in APIs in my LinkedIn profile.)


I've just finished the first large section dedicated to the API design. You may read it online, or download either pdf or epub version, or take a look at the source code on Github.


The book is distributed for free under a CC-BY-NC license. Enjoy!

Книга: проектирование API

Reading time1 min
Views23K

Приветики. Каждый из нас в этом этом чудесном году находит свой способ скоротать время. Я вот, например, пишу книгу. Книгу о том, что знаю и люблю — про API. (Кто я такой и какой опыт имею в разработке можно посмотреть здесь)

Пока что написал первую часть — о принципах проектирования API «сверху вниз»

PDF-версию можно скачать отсюда

Вопросы, пожелания и предложения принимаются. Книга распространяется бесплатно на условиях CC-BY-NC. You're welcome!

Читать далее

Почему умер Хабр. Что делать и куда бежать

Reading time2 min
Views66K
Disclaimer. Этот пост — развёрнутый ответ на пост Хабр умирает?.

В исходном посте я дал ссылку на свою дискуссию с deniskin от ноября 2014 года (чуть позднее точки на графике ТС, когда Хабр начал умирать): habrahabr.ru/post/278325/#comment_8789143

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

Исходный тезис звучит следующим образом: Хабр убило прежде всего непонимание Тематическими Медиа, что такое Хабрахабр и почему он взлетел — в отличие от прочих ТМ проектов, половину из которых уже закопали, а другая половина летит низенько-низенько.

Дело в том, что Хабр в том его виде, в котором он существовал в 2010 году, был вовсе не «сайтом про IT» типа 3dnews и Ferra. Хабр был, в первую очередь, кружком по интересам. Собралась кучка гиков и обсуждала, в общем, то, что им самим интересно — включая, но не ограничиваясь, космос, настолки, вещества, теорию эволюции, жадность копирастов, гребёнку Чурова и прочая. Периодически ТМ устраивала набеги и банила особо жестокий флейм, но, в целом, ситуация всех устраивала.
В принципе, основную мысль я изложил, под катом хроника борьбы слона с посудной лавкой

15 тривиальных фактов о правильной работе с протоколом HTTP

Reading time7 min
Views242K
Внимание! Реклама! Пост оплачен Капитаном Очевидность!

Ниже под катом вы найдёте 15 пунктов, описывающих правильную организацию ресурсов, доступных по протоколу HTTP — веб-сайтов, «ручек» бэкенда, API и прочая. «Правильный» здесь означает «соответствующий рекомендациям и спецификациям». Большая часть ниженаписанного почти дословно переведена из официальных стандартов, рекомендаций и best practices от IETF и W3C.



Вы не найдёте здесь абсолютно ничего неочевидного. Нет, серьёзно, каждый веб-разработчик теоретически эти 15 пунктов должен освоить где-то в районе junior developer-а и/или второго-третьего курса университета.

Однако на практике оказывается, что великое множество веб-разработчиков эти азы таки не усвоило. Читаешь документацию к иным API и рыдаешь. Уверен, что каждый читатель таки найдёт в этом списке что-то новое для себя.
Читать дальше →

К вопросу о влиянии золоченых кабелей на восприятие звука

Reading time2 min
Views17K
Навеяно публикацией «Дорогие и дешевые акустические кабели: в чем разница?»

Я не думаю, что открою кому-то Америку, если скажу, что в любой сколько-нибудь заметно коммерциализированной области увлечений в какой-то момент начинаются ожесточенные споры на тему, с какой суммы денег начинается минимально приемлемое качество продукта. Это касается практически всего: аудиотехники, фототехники, вина, сыров, игровых видеокарт, мобильных телефонов, смесителей для ванны, произведений современного искусства, et cetera ad infinitum.

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

И вот, в 2008 году учёные из Калифорнийского технического университета и Стэнфорда провели один эксперимент, который таки пролил свет на природу ожесточенных срачей про вкусовые качества перебродившего сока винограда.

Эксперимент состоял в следующем: группе испытуемых предлагали попробовать разные сорта вина (дорогие и дешёвые) и записать ощущения. Естественно, вино каждый раз было одно и то же (чего испытуемые не заметили), но под видом дорогого оно понравилось, конечно же, гораздо больше, чем под видом дешёвого. Таких экспериментов и раньше проводили множество, но Калтех и Стэнфорд — это вам не гуманитарии какие, они к вопросу подошли основательно.
Читать дальше →

Как правильно разрабатывать API с поддержкой обратной совместимости. Семинар в Яндексе

Reading time7 min
Views36K
Привет! Меня зовут Сергей Константинов, в Яндексе я руковожу разработкой API Карт. Недавно я поделился опытом поддержки обратной совместимости со своими коллегами. Мой доклад состоял из двух неравных частей. Первая, большая, посвящена тому, как правильно разрабатывать API, чтобы потом не было мучительно больно. Вторая же про то, что делать, если вам нужно что-то рефакторить и не сломать по дороге обратную совместимость.



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

Для разработчика обратная совместимость в первую очередь подразумевает, что единожды принятое обязательство предоставлять какую-либо функциональность невозможно отменить, исправить или перестать поддерживать.
Читать дальше →

Предложение

Reading time1 min
Views8.7K
Господа Тематические Медиа!

Сделайте, например, при редактировании комментария возможность прикрепить его в другое место в дереве! Надоели десятки комментариев «промахнулся веткой» в любом сколько-нибудь крупном топике.

IE11: Compatibility List vs. X-UA-Compatible

Reading time2 min
Views84K
Вчера я опубликовал топик, в котором описал некоторые удивительные решения, которые приняла компания Майкрософт при выпуске новых версий своего так сказать браузера Internet Explorer. Если вкратце, это:
  • введение режимов совместимости со всеми ранее выпущенными версиями браузера вплоть до 5.5;
  • решение эмулировать эту совместимость путём тщательного портирирования старых багов;
  • отказ от указания имени браузера в юзер-агенте на фоне заявлений о том, что детектировать IE11 по юзер-агенту не надо;
  • слом обратной совместистимости между последним Developer Preview и RTM релизом;
  • разное поведение, вплоть до падения в некоторых ситуациях, одного и того же браузера под разными версиями операционной системы;
  • поддержание глобального списка совместимости, в который попадают те сайты, которые, по мнению Майкрософт, должны показываться в одном из режимов совместимости IE;
  • формирование этого списка на основе статистики по кликам пользователей preview-версий браузера в кнопку «Compatibility View»;
  • приоритет этого списка над заданной вебмастером метой X-UA-Compatible в RTM-сборке IE11.

Появление этого топика вызвало вал добродушных комментариев, начиная от «автор истеричка» (как будто какой-то из изложенных фактов становится от этого менее весомым) до «Столько бреда, я давно не читал. Смысла даже нет проходиться по всей статье и указывать на ошибки автора». На просьбу таки указать ошибки в изложении было почему-то только отмечено, что последний из приведённых пунктов — а именно, приоритет списка совместимости над X-UA-Compatible — не соответствует действительности (странно, почему же тогда «ошибки» во множественном числе, уважаемый SowingSadness?). Далее в треде от меня потребовали предоставить доказательства этого пункта, заявив, что я либо ошибся, либо просто его придумал.

Хорошо, привожу

Почему Microsoft Internet Explorer 11 — худшее, что могло случиться с нами

Reading time5 min
Views405K


Я давеча написал комментарий о том, что компании Майкрософт давно пора перестать издеваться над веб-разработчиками и перейти на движок Gecko. Многие, видимо, посчитали это неуместной шуткой; тем не менее, это таки вовсе не шутка, а констатация факта. Те, кто с этим не согласен, видимо не пытались ещё разрабатывать под этот замечательный браузер.

Давайте я расскажу вам, какой это замечательный процесс.

Настало время ошеломительных историй

Диванным аналитикам на заметку

Reading time3 min
Views67K
За последние пару недель Хабр разродился несколькими постами (и парой десятков истерик в комментариях) про покупку Нокии Майкрософтом и роль Элопа в этом процессе (например: 1, 2, 3). В результате многочисленных обсуждений, а также анонимных сливов из супернадёжных источников, ведущие мобильные аналитики окончательно утвердились в мнении, что Элопа заслали в Нокию, чтобы развалить её и продать Майкрософту подешевле.

В последнем из указанных топиков некто iliabvf поинтересовался моим мнением по данному вопросу — очевидно, ввиду того, что полгода назад я публиковал пост, в котором, как показалось многим, я защищал Элопа.

Дорогие диванные аналитики! Под катом две таблицы, которые вас, несомненно, заинтересуют.

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

Язык до Кембриджа доведёт, или Как я перестал волноваться и полюбил W3C

Reading time5 min
Views38K
Посвящается Чарльзу, sine qua non.


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

Сегодня я расскажу тебе, %username%, именно такую детективную историю. И завязкой в этой истории будет внезапное возникновение вот здесь, под номером 5, одной подозрительно русской фамилии:

www.w3.org/2001/tag

История эта начинается в дождливом марте 2013 года, когда я узнал, что рабочая группа W3C Pointer Events собирает последние комментарии к своей спецификации. (Честно говоря, я совершенно не помню, какая была погода в марте, но мне почему-то хочется, чтобы она была дождливой.)

So far the story goes

Не все полимеры?.

Reading time1 min
Views18K
Любопытные дела творятся на рынке «частной» космонавтики.

Компания Orbital Sciences (это та самая, которая на пару со SpaceX Элона Маска выиграла тендер НАСА на космический челнок следующего поколения) пожаловалась в Федеральную комиссию США по торговле на своих конкурентов — «Боинг» и «Локхид-Мартин», которые незаконно ограничивают доступ Orbital Sciences к важным компонентам.

Речь идёт о ракетных двигателях РД-180 производства российского НПО «Энергомаш», которые Orbital Sciences собирается устанавливать на свои ракеты-носители следующего поколения поскольку, по словам представителя Orbital Sciences, эти двигатели являются оптимальными для данного класса ракет и без них Orbital Sciences просто неконкурентноспособна.

Особую пикантности ситуации придаёт тот факт, что конкуренты Orbital Sciences — United Launch Alliance (совместный проект Локхид-Мартина и Боинга) — уже используют пресловутые РД-180 для ракет «Атлас», а сама Orbital Sciences в текущих прототипах ракеты «Антарес» использует другой двигатель российского производства — НК-33 производства СНТК имени Кузнецова (под именем Aerojet AJ-26).

Пруфлинки

Стоимость модернизации спутниковой системы возросла в 2.5 раза

Reading time1 min
Views6.1K
Свежие новости: стоимость модернизации наземной системы управления навигационными спутниками возросла с 1.4 млрд долларов (именно эту сумму насчитала Счётная Палата) до 3.4 млрд. Сроки модернизации сдвинуты как минимум на год. Представитель министерства обороны заявил, что эта сумма является «базовой», и может корректироваться по ходу выполнения работ.

Проблемы с функционированием наземной части глобальной навигационной системы возникли практически сразу после её запуска, и на её «модернизацию» уже потрачено более миллиарда долларов. Фактически, речь идёт о том, чтобы переделать текущую систему с нуля — в феврале 2010 года частная компания выиграла конкурс на проектирование новой системы на сумму 888,4 млн долларов.

Как сообщается, большая часть этих денег будет потрачена на разработку программного обеспечения, а вовсе не на оборудование. Изначально предполагалось, что спутники третьего поколения начнут запускать в апреле 2014 года, однако теперь только ПО к ним будет готово не раньше октября 2016 года.

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

Корпорация добра в ударе

Reading time1 min
Views192K
Одной строкой: вчера Google закрыл петербургский и харьковский офис разработки купленного им год назад QuickOffice, более 100 разработчиков и тестировщиков ищут работу. Мои знакомые подтверждают, что так оно и есть — без предупреждений и без выплат разорваны все контракты.

www.ewdn.com/2013/05/16/google-shuts-down-quickoffice-rd-offices-in-russia-and-ukraine
roem.ru/2013/05/17/quickoffice71810
thenextweb.com/google/2013/05/16/google-shutters-quickoffice-rd-offices-in-russia-and-ukraine-affecting-more-than-100-people
twitter.com/DenZhadanov/status/334766595555590144
watcher.com.ua/2013/05/17/kompaniya-google-zvilnyla-60-ukrayinskyh-prohramistiv
rsdn.ru/forum/job/5169768.flat
vk.com/yshubin?w=wall88613_1210%2Fall
tea-cutter.livejournal.com/292021.html

Смысл действий Google остаётся для меня загадкой. Единственное предположение — вся операция была проведена для устранения конкурента Google Docs.

Корпорация добра, говорите?

RE: Как бороться с низкокачественными Android приложениями

Reading time2 min
Views104K
В ответ на: habrahabr.ru/post/178673

Я год просидел на Windows Phone и избавился от этого телефона при первой возможности. Теперь у меня Nexus 4.
Windows Phone функционально ужасен. Да и стиль Metro мне не то, чтобы близок.

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

И, знаете что? Я не понимаю, как такой компании, с такими ресурсами и таким опытом проектирования интерфейсов, хватает совести брать за это деньги.

Обратите внимание на скрин слева. Это стартовый экран LG Nexus 4. Небольшое упражнение:

1) найдите две иконки в одинаковом стиле
2) найдите иконку, которая хорошо смотрится на ярко-оранжевом фоне
3) попробуйте прочитать текст
4) найдите две иконки, выравненные по нижней границе.

Серьёзно. По-моему, это вовсе не разработчики превратили платформу Андроид в кучу яркого хлама без всякого намёка на интерфейсную общность. Это всё сделал сам Гугл.

Под катом ещё дюжина скринов

RE: У Вас много денег? Тогда мы идем к Вам!

Reading time1 min
Views120K
Вчера на mail.ru появилось любопытное исследование: corp.mail.ru/press/news/1691
Вкратце: среди студентов технических специальностей МГТУ имени Баумана провели опрос о том, как они видят свою работу после выпуска из университета. Там много разного, но одна цифра заслуживает отдельного упоминания.

Почти треть (32.8%) опрошенных рассчитывает по окончании университета на зарплату 150 тысяч рублей.

«Скока-скока?!?!» — воскликнул я вслух, прочитав эту строчку.
Читать дальше →

RE: Возможны ли путешествия во времени?

Reading time9 min
Views66K
Вчера на Хабре появился потрясающий по своей безграмотности пост "Возможны ли путешествия во времени". В ответ на моё замечание о незнакомстве с базовыми научными представлениями о пространстве и времени автор припечатал меня вот так:
Если для Вас википедия — главный оплот истины и знаний, а физические законы непоколебимы — Вам пора на работу в инквизицию. Еще столько людей, опровергающих теоретические выдумки физиков 18 века, не сожжено!

Такого уровня воинствующего невежества я давно не видал, и уж на Хабре-то его видеть вдвойне странно.

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

Время



В классической механике время считается абсолютным и неизменным в том смысле, что при переходе от одной системы отсчёта к другой временные интервалы не изменяются:






Здесь (x, y, z, t) — координаты в старой системе, (x', y', z', t') — координаты в новой системе. Здесь и далее предполагается (для упрощения формул), что одна система движется относительно другой параллельно оси x со скоростью v.

Это т.н. преобразования Галилея — что происходит с координатами при смене системы отсчета. В галилеевом смысле «поток времени» один на всю Вселенную, и временные координаты у всех объектов одинаковы. При этом классическая механика никак не трактует уникальность стрелы времени; более того, само понятие движения времени в ньютоновы формулы не входит никак.

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

Однако «путешествие во времени» — т.е. перемещение одного конкретного объекта по шкале t в прошлое — ньютоновой механикой запрещено (см. выше — временной поток один на всю Вселенную).

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

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

Ещё раз о статистике, Nokia, Элопе и burning memo

Reading time3 min
Views57K
Вчера на Хабре опубликовался топик любви к Элопу: Nokia, Эффект Элопа и горящая платформа.

В котором убедительно, с привлечением статистики доказывалось, что Элоп развалил Нокию. Конкретно, с помощью вот этого графика:



Типа — вот, смотрите, Элоп пришел в сентябре 2010 и все разломал.

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

Ок, попробуем с другой стороны. Под катом — другой, не менее интересный график.

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

Information

Rating
Does not participate
Location
Россия
Registered
Activity