Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 15.11.2017, 19:44
Аватар для destus
Профессор
Отправить личное сообщение для destus Посмотреть профиль Найти все сообщения от destus
 
Регистрация: 18.05.2011
Сообщений: 1,207

Сообщение от DynkanMaclaud Посмотреть сообщение
destus,
можно пример того как вызов JSON.parse именно в этом коде, может выдать ошибку ... ? другими словами что пользователь может написать что код не отработает... ?)
Он может банально через инструменты разработчика изменить сохраненный json и сделать его невалидным.
Ответить с цитированием
  #12 (permalink)  
Старый 15.11.2017, 23:35
Аватар для DynkanMaclaud
Профессор
Отправить личное сообщение для DynkanMaclaud Посмотреть профиль Найти все сообщения от DynkanMaclaud
 
Регистрация: 08.08.2014
Сообщений: 261

destus,
и многих вы рядовых пользователей знаете которые через инструменты разработчиков правят json ???)))))

destus,
ничего не имею против, хочется увидеть именно сногсбивающую аргументацию...)))
Ответить с цитированием
  #13 (permalink)  
Старый 15.11.2017, 23:53
Аватар для DynkanMaclaud
Профессор
Отправить личное сообщение для DynkanMaclaud Посмотреть профиль Найти все сообщения от DynkanMaclaud
 
Регистрация: 08.08.2014
Сообщений: 261

destus,
касательно архитектуры что скажите?? господа вам не кажется что когда в задании вас просят

Задача: отрефактировать код без использования сторонних библиотек.
Исправить баги, улучшить качество, maintainability, читабельность.
CSS писать не нужно.

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

и тут я юзаю паттерн, паттерн который например использовался на моей работе как взаимодействие компонентов... да это сейчас он маштабируем а когда 20 компонентов взаимодействует между собой, он не поддерживаем...
Ответить с цитированием
  #14 (permalink)  
Старый 15.11.2017, 23:55
Аватар для DynkanMaclaud
Профессор
Отправить личное сообщение для DynkanMaclaud Посмотреть профиль Найти все сообщения от DynkanMaclaud
 
Регистрация: 08.08.2014
Сообщений: 261

ну а кто мне минус кармы дал то отпишите аргументы...
Ответить с цитированием
  #15 (permalink)  
Старый 16.11.2017, 10:05
Аватар для destus
Профессор
Отправить личное сообщение для destus Посмотреть профиль Найти все сообщения от destus
 
Регистрация: 18.05.2011
Сообщений: 1,207

Цитата:
и многих вы рядовых пользователей знаете которые через инструменты разработчиков правят json ???)))))
Смысл в том, что нужно предусмотреть все возможные ситуации, и грамотно их обрабатывать. Это может быть json с нашего сервера, со стороннего апи. Не важно. Что более важно, так это написать гибкое приложение, которое будет обрабатывать по-возможности все возможные ошибки и грамотно на них реагировать. JSON.parse, как и обращение к localStorage всегда с try...catch.
Цитата:
касательно архитектуры что скажите??
Далее, у вас не получился компонент как таковой.
Во-первых, он наследуется от модели, что является очень плохим решением.
Во-вторых, компонент должен получать кусок состояния через биндинги сверху и отрисовывать UI. Это если мы говорим о stateless компонентах. Для statefull - источником данных могут быть сервисы. Под капотом взаимодействие с DOM событиями, но опять же, компонент сам не меняет состояние. Нужно либо генерировать событие и просить это сделать внешний код (EventEmitter), либо просить это сделать сервисы, складывая всю ответственность на них.
Ну и в-третьих, в коде есть баги. Если, например, открыть несколько записей для редактирования, и нажать Save / Remove по любой из них, то все открытые записи выйдут из режима редактирования.
Ответить с цитированием
  #16 (permalink)  
Старый 16.11.2017, 10:12
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,794

Сообщение от destus
как и обращение к localStorage всегда с try...catch
Можете объяснить почему?
Если обернуть взаимодействие с localStorage в класс, который будет проверять доступно ли оно или нет и преобразовывать все данные в строку перед записью, то есть ли смысл оборачивать localStorage во wrapper'е в try catch?
Ответить с цитированием
  #17 (permalink)  
Старый 16.11.2017, 10:27
Аватар для destus
Профессор
Отправить личное сообщение для destus Посмотреть профиль Найти все сообщения от destus
 
Регистрация: 18.05.2011
Сообщений: 1,207

Nexus,
https://developer.mozilla.org/en-US/...eb_Storage_API
пункт "Testing for availability".
Цитата:
Если обернуть взаимодействие с localStorage в класс
скорее в функцию, которая проверяет доступность хранилища.
Ответить с цитированием
  #18 (permalink)  
Старый 16.11.2017, 11:28
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,794

destus,
Сообщение от destus
пункт "Testing for availability".
благодарю за информацию.
Сообщение от destus
скорее в функцию, которая проверяет доступность хранилища
Можно, конечно, в коде постоянно проверять доступно ли хранилище, но, по-моему, удобнее реализовать класс.
Ответить с цитированием
  #19 (permalink)  
Старый 16.11.2017, 12:11
Аватар для destus
Профессор
Отправить личное сообщение для destus Посмотреть профиль Найти все сообщения от destus
 
Регистрация: 18.05.2011
Сообщений: 1,207

Nexus,
Можете и через класс, но просто проверить доступно оно или нет, этого мало. Установка нового значения может упереться в отсутствие памяти и выбросом исключения QuotaExceededError https://www.w3.org/TR/webstorage/#storage
Ответить с цитированием
  #20 (permalink)  
Старый 16.11.2017, 12:30
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,794

destus, я понял, что доступность хранилища не гарантирует корректного с ним взаимодействия.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите сделать задание malin Общие вопросы Javascript 4 16.08.2016 11:00
Тестовое задания Front-end разработчику Имя Работа 19 08.12.2011 12:31
Тестовое задание Yandex mycoding Оффтопик 71 06.07.2011 15:46
Тестовое задание. Дайте идею. FINoM Оффтопик 14 28.03.2011 10:09
Помогите сделать тестовое задание начального уровня по js makregistr Работа 1 16.12.2010 14:26