Как стать автором
Обновить
6
0
Егор @gor2991

Программист

Отправить сообщение

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

Тут стоит уточнить, что мемоизация (реселектом или нет не важно) для mapStateToProps нужна всегда, когда вы генерируете что-нибудь новое. Даже если это что-нибудь новое это просто создание простого объекта

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

Признаться не упирались в такое. Выпадет свободная минута — попробую побэнчить это дело. Умозрительно контейнеры выглядят даже большей проблемой — их точно больше 200 на странице, и каждый со своим mapStateToProps и возможностью перерисовать часть дерева под собой.


Сейчас глянул на одной из тяжелых страниц: около 100ни коллекций, редюсеров на вскидку 50-70. Возможно, дело в том, что мы очень сильно нормализуем данные. Вложенных структур почти не встречается в стейте: всё плоское и связано через айдишники. Следовательно, не получается и глубокой вложенности редюсеров. Они выходят очень точечными и работают на крайне небольшое количество экшенов. Как следствие, отрабатывают мгновенно: быстро понимают, что экшн не про них, и отдают текущий кусок стейта. Самый толстый редюсер (по памяти) штук 10 экшенов обрабатывает.

Только Вы забыли упомянуть, что


  • собеседуют тебя твои будущие коллеги
  • необязательно показать себя молодцом на каждой из 4 секций
  • окончательное решение принимается после беседы с твоим будущим тимлидом

В контексте статьи, мне кажется, это важные уточнения

Позволю себе поспорить=)

1) У них вроде API есть для заказов, личный кабинет и телефония. Причем тут email'ы и баба Нюра?

2) А с личным сайтом-магазином такого нет? Уверен, что претензию по заказу в 100 т.р. не робот рассматривать будет. И кажется, что в Яндексе не дураки сидят, чтобы не посмотреть, откуда лавина мелких заказов пришла. В любом случае это становится головной болью Яндекса, который не заинтересован просто так магазины банить, равно как и делать плохо клиентам. Опять же — у яМаркета есть арбитраж. Слитые заказы без недовольных клиентов — че-то подозрительно

3) Если Вам так важны бонусные программы конкретного магазина, вам не запрещают им пользоваться. По-моему, опыту все бонусные программы начинают приносить пользу, когда ты третий раз в течение короткого времени там что-то покупаешь. Т.е. ты, вроде как, их постоянный клиент. Зачем тогда мне яМаркет? Насчет ценовых спецпредложений — они отображаются на маркете
Да, цена действительно ушла ниже экрана.

На мой вкус, не так критично, чтобы сервисом стало неудобно пользоваться, но у Вас вкус, очевидно, другой.
Специально пошел проверил в дебагере хрома различные разрешения экрана. Краткая характеристика всегда на первом экране вместе с фотографией. Равно как и огромные кнопки «Характеристики» и «Цены». Иногда в район одного скрола выпадает средняя цена с графиком. Кажется, что некритично. Да и средняя цена, это ведь как средняя температура по больнице — все равно надо идти и на продавцов смотреть
Кажется, что «серый» у трех производителей будет назван по-разному, а фильтровать товары их всех хочется. ИМХО в большее замешательство меня иногда вводят именно названия производителей
А можете конкретный пример модели/товара привести, когда такой сценарий не сработал?

Меня тоже немного расстроило, что прямого пути уйти на магазин не осталось, но кажется, что, кроме этого, сценарий остался такой же.

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

На картинке в статье это прямоугольники в нижней части
Вот лично для меня найти консультанта в Икее квест почище поиска секретной срезки. Полмагазина обойдешь прежде чем кого-то встретишь. А, чтоб срезку найти надо просто голову поднять и смотреть по сторонам в поисках таблички. Так кстати видишь меньше ненужного товара (с поднятой головой в смысле).
По-видимому, Вы правы. Результаты совсем не идентичными получаются.
jsFiddle
Вместо значения свойства переносится его дескриптор. По-видимому надо вызывать в этом месте Object.defineProperties… для которого тоже нужен будет полифил=)
Чтобы совсем исправиться за глупый вопрос, добавлю, что на MDN есть супер-продвинутый пример полифила Object.create по сравнению с канторовским, который упомянул wentout, и который использовал автор.

Полифил
if (typeof Object.create != 'function') {
  // Production steps of ECMA-262, Edition 5, 15.2.3.5
  // Reference: http://es5.github.io/#x15.2.3.5
  Object.create = (function() {
    // To save on memory, use a shared constructor
    function Temp() {}

    // make a safe reference to Object.prototype.hasOwnProperty
    var hasOwn = Object.prototype.hasOwnProperty;

    return function (O) {
      // 1. If Type(O) is not Object or Null throw a TypeError exception.
      if (typeof O != 'object') {
        throw TypeError('Object prototype may only be an Object or null');
      }

      // 2. Let obj be the result of creating a new object as if by the
      //    expression new Object() where Object is the standard built-in
      //    constructor with that name
      // 3. Set the [[Prototype]] internal property of obj to O.
      Temp.prototype = O;
      var obj = new Temp();
      Temp.prototype = null; // Let's not keep a stray reference to O...

      // 4. If the argument Properties is present and not undefined, add
      //    own properties to obj as if by calling the standard built-in
      //    function Object.defineProperties with arguments obj and
      //    Properties.
      if (arguments.length > 1) {
        // Object.defineProperties does ToObject on its first argument.
        var Properties = Object(arguments[1]);
        for (var prop in Properties) {
          if (hasOwn.call(Properties, prop)) {
            obj[prop] = Properties[prop];
          }
        }
      }

      // 5. Return obj
      return obj;
    };
  })();
}

Вопрос снят. Оказывается в IE8- Object.Create нет.
Не холивара ради, но меня интересует третья строчка в функции extend:
    function extend(Child, Parent) {
           var F = function() { }
           F.prototype = Parent.prototype // 
           Child.prototype = new F() // при создании Child в __proto__ запишется наш родитель prototype 
           Child.prototype.constructor = Child // задаём конструктор, должен ссылаться на самого себя.
           Child.superclass = Parent.prototype // чтобы иметь доступ к методам Parent
    };


Чем Вам не угодил Object.create?
А мне вот настолько этого не хватает, что это чуть ли не единственная фича, ради которой я готов перелезть на образный «Вивальди». При условии нетормозящего браузера само собой
Спасибо за статью! Надеюсь эта техника мне поможет)
Пошел качать себе помодор

Для Chrome и Opera: chrome.google.com/webstore/detail/strict-workflow/cgmnfnmlficgeijcalkgnnkigkefkbhd?hl=ru

Ну или вот все помодоры для chrome:
chrome.google.com/webstore/search/pomodoro?hl=ru
Я бы пошел дальше и разрешил бы в плашку свою картинку вставлять или текст. А то у меня теперь на экспресс-панели образовалась папка Sharepoint, в которой среди 10-ки закладок 5 одинаковы надписей: msdn. Приходится наводить на каждую, чтобы посмотреть, что там.
image

Причем при создании закладок подобное можно провернуть (хоть варианты предлагает), а вот исправить потом нельзя.
От автора статьи=)
На фото участок с покрытием смотрится так, как будто часть кадра просто залили 100% черным цветом в графическом редакторе

Лично мне напомнило вот такую вещь:

image

Информация

В рейтинге
Не участвует
Откуда
Россия
Зарегистрирован
Активность