Javascript-форум (https://javascript.ru/forum/)
-   Оффтопик (https://javascript.ru/forum/offtopic/)
-   -   Срочно нужна помощь (https://javascript.ru/forum/offtopic/47618-srochno-nuzhna-pomoshh.html)

kobezzza 03.06.2014 11:02

Цитата:

Спасибо дошло, чат - не REST
Ну, это как реализуешь :) Если обновляющийся ифрейм или интервайльный аякс, которых дёргает какойнить getMessages, то REST :)

***

Посмотри Meteor, там используется специальный протокол, который позволяет удалённо выполнять JS функции на сервере, это полная противоположность REST.

Gozar 03.06.2014 11:04

Цитата:

Сообщение от kobezzza
это как реализуешь

Да я понял, поправил в мессаге выше. Спасибо, что разжевал, а то бы так и думал что рест это put,get,post,delete :)

melky 03.06.2014 11:52

ну я и оффтопер :haha:

Цитата:

Сообщение от kobezzza (Сообщение 314520)
Говоря, что Angular гавно - я имею ввиду, что он гавно для SPA

поэтому ты пишешь свой фреймворк ? :)

Цитата:

Сообщение от kobezzza (Сообщение 314520)
Я уже писал выше, там просто ничего нет для SPA. При разработке SPA мы начинаем сталкиваться с такими проблемами и вещами, которые раньше были инкапсулированы в браузере и мы о них даже не думали.

пока не приходилось, но интересно послушать про такие штуки. скоро буду их разрабатывать


Цитата:

Сообщение от Gozar (Сообщение 314522)
REST - это усложнение. Он влияет на архитектуру программы сервера.

на NodeJS - я разницы не увидел

Цитата:

Сообщение от Gozar (Сообщение 314522)
Только я ломаю себе голову уже год, со времени пробы бэкбоне и до меня не допирает в чем преимущество?

я даже не стал его изучать, когда он вышел. не понравился :)
а теперь, правда, догонять приходится

Цитата:

Сообщение от Gozar (Сообщение 314522)
Код:

block=comment&action=get
block=comment&action=delete&id=3


а могло бы быть так:

Код:

GET /block
DELETE /block/3

просто смотрится лучше :) KISS ...

... если я вообще правильно понял, что такое REST

Цитата:

Сообщение от kobezzza (Сообщение 314523)
REST - это как раз супер простая схема. И мне сложно представить что-то проще чем REST :)

хорошо сказано!

Цитата:

Сообщение от kobezzza (Сообщение 314537)
Посмотри Meteor, там используется специальный протокол, который позволяет удалённо выполнять JS функции на сервере, это полная противоположность REST.

нагуглил Gist: https://gist.github.com/nachiket-p/2964422
неплохо. отличный старт для приложух, но не представляю, сколько потребуется времени на изучение всего этого дела (я про Derby, Meteor...)

kobezzza 03.06.2014 11:58

Цитата:

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

Gozar 03.06.2014 12:19

Цитата:

Сообщение от melky
а могло бы быть так:

Я уже писал выше, что вариант возможен, но мне так думать неудобно. У себя я сначала определяю, к кому я обращаюсь, а затем что я делаю.

В моем случае один блок = один файл. Все в одном месте то, что касается этого блока. Выкинул файл, нет блока. А в другом случае, мне что нужно лазить по файлам get, put, delete - выискивать там то, что относиться к блоку?

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

Цитата:

Сообщение от melky
KISS ...

Вот сам и не усложняй! У меня один POST, а у тебя 4 вида метода ломания мозга: PUT, DELETE, GET, POST.

Gozar 03.06.2014 12:38

http://habrahabr.ru/post/38730/
Цитата:

Сообщение от habr
PUT /book/ — добавить книгу (данные в теле запроса)
POST /book/3 – изменить книгу (данные в теле запроса)

Вот каким местом очевидно, что POST это изменить? Тогда уж нужно вводить CHANGE и понеслась ...

Таким образом мы скатываемся от абстрагирования к низкоуровневым протоколам. Зачем?

В чем очевидный плюс? Я вижу минус - искусственное ограничение с неизвестной причиной. Почему взяли 4 типа, почему не 24, не 2, не 100500? Зачем об этом вообще думать?

Что делать, когда нужно сделать PUT + CHANGE + GET? На это тоже нужно правило придумывать? PUG или PUCH например :)

kobezzza 03.06.2014 12:46

а я использую подход, когда тип операции является названием файла, а для отправки данных только GET и POST

getUser?...
deleteUser?...


:)

При этом физически файл может и не существовать, т.е. вместо action=getUser просто getUser.

ЗЫ: все предложенные варианты являются REST :)

Gozar 03.06.2014 12:50

Цитата:

Сообщение от kobezzza
GET и POST

Я раньше тоже использовал GET, оказалось без него проще. Проще о протоколе не думать.

POST позволяет и GET и POST, а вот GET это просто урезанный POST, хотя по сути одинаковы. Если нет веской причины использования того или иного протокола(оптимизация, архитектура ...) зачем заморачиваться?

kobezzza 03.06.2014 12:54

Gozar, мне казалось это очевидно: get позволяет делать ссылки, т.к. данные передаются через URL :)

Gozar 03.06.2014 12:55

Цитата:

Сообщение от kobezzza
отправки данных только GET и POST

Наверное и правила какие-нибудь придуманы, где кошернее GET, а где POST? :)

Но по сути POST приходиться, а GET это типа когда "правильнее" :D

kobezzza 03.06.2014 12:56

Цитата:

Наверное и правила какие-нибудь придуманы, где кошернее GET, а где POST?
Конечно, данные для получения GET, данные для изменения POST. Да и проблемы я не вижу в этом :)

Gozar 03.06.2014 12:57

Цитата:

Сообщение от kobezzza
Конечно, данные для получения GET, данные для изменения POST. Да и проблемы я не вижу в этом

Да и я не вижу проблемы в том, чтобы использовать POST, вместо искусственно добавленного GET, где он не нужен.

kobezzza 03.06.2014 12:59

Цитата:

ссылки в одностраничном приложении бессмысленны.
Пруф или не было :)

С точки зрения пользователя современный SPA (т.е. с использованием history API) ничем не отличается от простого сайта. Т.е. там также меняются урлы, загружаются странички и т.д.

Gozar 03.06.2014 12:59

Цитата:

Сообщение от kobezzza
проблемы я не вижу в этом

Смысл в том, чтобы встать над протоколом, а не придумывать хитрые правила, смысл которых не очевиден.

Gozar 03.06.2014 13:00

Цитата:

Сообщение от kobezzza
Пруф или не было

Небыло,
Цитата:

Сообщение от kobezzza
history API

Я подумал ты про другое, поэтому и написал ... т.к. не понятно при чем тут GET и хистори?

kobezzza 03.06.2014 13:03

Цитата:

т.к. не понятно при чем тут GET и хистори?
Пользователь вводит в поле поиска инфы строку, происходит поиск, затем найденный результат кидает как ссылку другому пользователю с фразой "забанили в гугле?" :)

И ему глубоко по барабану, что реального "релоуда" страницы не было. Кстати что гугл, что яндекс работают именно так :)

Gozar 03.06.2014 13:08

Цитата:

Сообщение от kobezzza
Пользователь вводит в поле поиска инфы строку, происходит поиск, затем найденный результат кидает как ссылку другому пользователю с фразой "забанили в гугле?"

И ему глубоко по барабану, что реального "релоуда" страницы не было. Кстати что гугл, что яндекс работают именно так

Это как-то объясняет зачем ты используешь GET для отправки данных? ;)
Цитата:

Сообщение от kobezzza
для отправки данных только GET

Я не понял.

Gozar 03.06.2014 13:10

kobezzza,
Я пытаюсь понять зачем использовать два протокола, когда достаточно одного? В чем необходимость? Почему не 3, 10, 100500?

kobezzza 03.06.2014 13:12

Цитата:

Это что-то объясняет зачем ты используешь GET для отправки данных?
Кажись понял к чему ты ведёшь, мол зачем при отправке ставить тип?

Но дело в том, что я этого не делаю, я пишу просто ajax({ ... }), а фреймворк сам решает как и что отправить, и в случае если изменился URL, то он будет иметь ввиду GET, но ещё более вероятно, что он для транспорта использует WebSocket, т.к. у меня используется адаптор WebSoket который предоставляет интерфейс XMLHttpRequest.

Gozar 03.06.2014 13:17

Цитата:

Сообщение от kobezzza
мол зачем при отправке ставить тип?

Да. Верно. Нет необходимости, нефиг и юзать. Именно эта часть вынесла мне мозг в Backbone.

Ждем реакцию melky.

monolithed 03.06.2014 15:46

Цитата:

Сообщение от Gozar
Хочу использовать es6-transpiler, а он подружиться с LMD? Их подружить возможно?

А как они должны дружить? Бери да используй. :)

melky 03.06.2014 17:41

Цитата:

Сообщение от Gozar
Я уже писал выше, что вариант возможен, но мне так думать неудобно. У себя я сначала определяю, к кому я обращаюсь, а затем что я делаю.



то бишь вот так
Код:

POST /site?block=order&action=create&name=julia
 "эй, API! Заказ, добавляю тебя на имя Юли. точка."

а не так
Код:

PUT /order?name=julia
"Добавляю заказ на имя Юли"?

?

второй вариант даже можно прочитать как "положить (put) заказ (order) на имя (name) Юля (julia)"

Цитата:

Сообщение от Gozar
Я пытаюсь понять зачем использовать два протокола, когда достаточно одного? В чем необходимость? Почему не 3, 10, 100500?

потому что у CRUD всего 4 операции - Create, Read, Update, Delete. и соотв. методы HTTP получаются: PUT, GET, POST, DELETE. это выглядит просто?

то бишь их всего 4. ни больше ни меньше. о всяких HEAD, и других я не хочу думать... как будто их нет вовсе :)

Цитата:

Сообщение от Gozar
Именно эта часть вынесла мне мозг в Backbone.

"не знаю, не использовал". если там нельзя менять способ отправки данных, то это ... это плохо :) У PHP насчёт метода PUT свои приколы, например.

это просто говорит о том, что, возможно, искомый инструмент не подходит для решения задачи.

Gozar 03.06.2014 18:13

melky,
объедини операции, не можешь? на этом все, надоело расписывать очевидные вещи. Зачем вставлять себе палки в колеса ради какой-то неясной идеи мне не понятно.

Почему POST это UPDATE? Почему нет UPDATE? Почему я должен ограничиваться только 4 методами? Это искусственное никому не нужное ограничение. По сути бред.

В идеале я не должен думать о протоколе совсем, ни минуты. Это не мое дело как оно там внутри передается, так же как не должен думать о том какие провода куда подключены и что там за материнская плата на промежуточном сервере.

Цитата:

Сообщение от melky
это просто говорит о том, что, возможно, искомый инструмент

слишком хитрожопый и лезет туда куда лезть не должен! Либо тогда уж предоставляй и серверную часть.

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

monolithed 03.06.2014 18:37

REST полная шляпа ИМХО.

kobezzza 03.06.2014 18:52

Цитата:

Сообщение от monolithed (Сообщение 314638)
REST полная шляпа ИМХО.

Round 2. Fight!

:D

monolithed 03.06.2014 19:04

http(s)://domain/api/v1/method

Пример запроса:

https://e.mail.ru/api/v1/collectors/add?

collect = [
   {
      email        : 'test@mail.ru'
      type          : 'ftp',
      password  : '******'
   }
]


Пример ответа:

{
   "body" : [
      {
         "type" : {
              "error":  "invalid",
               "value": "ftp"
          }
      }
   ],
   "email" : "test@corp.mail.ru",
   "status" : 400,
   "htmlencoded" : true
}

kobezzza 04.06.2014 11:01

Цитата:

Сообщение от Maxmaxmaximus1001 (Сообщение 314743)
ты ни разу не говорил что в ангуляре нет автоочистки памяти

Всё с тобой понятно, вместо того чтобы сказать "спасибо", ты опять начинаешь "а я знал, а ты не сказал ключевое слово Angular...". Делай как считаешь нужным.

Gozar 04.06.2014 11:09

Цитата:

Сообщение от kobezzza
вместо того чтобы сказать "спасибо"

Спасибо!

Не за макси-са, от себя.

l-liava-l 04.06.2014 15:25

Цитата:

Вопрос ко всем: какая у вас файловая структура в проекте? (очередной холиварный вопрос
_public //сюда собирается бранчем
app ->
  assets ->
    templates ->
       //разделени по сущностям
    fonts
    style 
    ...
  scripts ->
    controllers -> 
      //тут тож разделение папок по сущностям
      //контроллеры страниц, модальных окон и тд
    services
    ...//в том же духе


Часовой пояс GMT +3, время: 16:46.