Ответы пользователя по тегу Программирование
  • Есть ли у нас аналог DARPA?

    vanxant
    @vanxant
    Если кратко, то нет.
    Если подробнее, то (… много мата...) нет.
    Вообще у истории забавные казусы.
    В СССР была очень грамотная система планирования R&D вообще — государство заказывало не просто отдельные изыскания и проекты, но систему целиком (то есть страна покупала не просто новый самолёт, а завод по производству этих самолётов вместе со всеми патентами, смежными производственными линиями, ремонтными базами и так далее). Американцы очень кусали локти по этому поводу, так как экономия для государства получалась колоссальной.
    С другой стороны, результаты отдельных исследований и патенты, хотя и принадлежали формально государству, охранялись намного строже, чем в странах дикого капитализма — и не из-за режима секретности, а чтобы о них не пронюхали парни из соседнего НИИ. В итоге страна владела кучей изобретений, которые не покидали родной завод.
    Ответ написан
    1 комментарий
  • Как правильно спроектировать протокол обмена данными между клиентом и веб-сервисом?

    vanxant
    @vanxant
    Во-первых, забудьте про XML, его придумали бюрократы. Вот пусть они его и используют в своих банках и налоговых. Для парсинга и кодирования JSON достаточно пары функций по 10 строк каждая. Для парсинга XML, даже если в нем пару значений, нужно подгружать монструозные библиотеки.

    Во-вторых, раз уж вы делаете веб-приложение, используйте возможности протокола HTTP. Это значит идеология REST, а не RPC. То есть вместо каких-то там «процедур» или «функций», вы пляшете от объектов и стандартных действий.
    Например, у вас есть объект с идентификатором obj_id. Для любого доступа к нему используется URL вида

    example.com/path/to/obj_id

    Далее по этому URL-у возможны 4 действия (http verb):
    GET example.com/path/to/obj_id — получить данные объекта
    PUT example.com/path/to/obj_id — изменить объект
    DELETE example.com/path/to/obj_id — удалить объект
    POST example.com/path/to/ — создать новый объект в папке /path/to
    GET example.com/path/to/ — получить все объекты в папке /path/to

    В зависимости от результата операции, вы должны возвращать правильные коды ошибок (200 OK, 404 Not Found, 403 Forbidden и т.п.).

    Параметры более сложных запросов идут как get-параметры, ну например
    GET example.com/path/to/?search=blabla
    — искать объекты
    Или можно часть параметров перенести в урл:
    GET example.com/my/report/01.01.2011-31.12.2011/
    Ответ написан
    4 комментария