• Как нужно делать рассылку со своего сайта (сервера)?

    Это только стимулирует верстать годные письма.
  • Как создать простейшую интерактивную 3D анимацию под iOs?

    KIVagant
    @KIVagant Автор вопроса
    О, спасибо, это мне нравится. Буду изучать!
  • Как создать простейшую интерактивную 3D анимацию под iOs?

    KIVagant
    @KIVagant Автор вопроса
    Спасибо, но мне нужно не псевдо, а "взрослое 3D", просто не монструозные движки для реализации игр, а простая физика - движение, гравитация. На флеше я когда-то нашел маленький проект под эти цели и на его основе отлично решал мелкие задачки анимации. Сейчас вот пытаюсь найти что-то похожее для iOs.
  • Как писать API?

    Приводить пример хороших опасаюсь, т.к. может вызвать баттхёрт в ветке. :)
    Как по мне — есть лишь один очевидный критерий отличного API. Его можно сформулировать примерно так: клиент должен быть абсолютно уверен в том, какие варианты ответов он получит от сервиса ещё до того, как отправит запрос. Т.е. никогда не должно возникать ситуации, когда API возвращает неожиданную структуру данных, не тот формат или странные ошибки.

    Возвращаясь к Facebook — дело не в переусложнённости. Приведу один из примеров поведения их API, от которого я впадал в ступор: если вы запрашиваете данные объекта event, который был удалён на стороне сервера (истёк срок, отменено и т.п.) — интуитивно ожидаете что-то типа массива JSON с кодом ошибки и текстом а-ля «Объект удалён (не найден, отменён, ...». Но Facebook вернёт строку «ошибочный запрос». Т.е. мало того, что ошибка вообще не адекватна, так ещё и формат возврата — текст! Про такие «мелочи», как непредсказуемые данные внутри свойств одних и тех же типов объектов — можно и не упоминать. Не делайте так никогда! :)
  • Неожиданно правильное поведение программ

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