Pull to refresh
10
0
Евгений Гаврилов @Spunreal

Разработчик

Send message
А какие альтернативы HOC'а, которые решают подобные задачи? Миксины в данном случае не подходят, extends тоже. У них своя задача, у HOC своя.
Extends не аналогичен HOC. В extends вы не сможете частично переопределить шаблон (например, сделать обёртку или изменить содержание слота). Вы либо оставляете шаблон такой, какой был у оригинального компонента, либо пишете новый.
Директивы в основном используются для выполнения низкоуровневых операций с DOM. А ещё они так же, как и миксины, регистрируются при определении компонента, т.е. подмешиваются в оригинальный компонент. Можно сделать обёртку, которая будет содержать директивы, но это как раз и будет HOC или аналог.

Всегда будут плохие кейсы использования паттернов. Любой паттерн нужно применять не ради применения, а где это нужно. Иначе любой паттерн может привести к паттерн-hell.

Про какой шаблон идёт речь и почему это лучше не трогать?
В статье пример удачный. За логирование отвечает HOC, а не кнопка.

Миксины модифицируют базовый компонент. HOC же возращает новый, а оригинальный так и останется нетронутым. (с) Расширяй, но не изменяй.


Так же с помощью HOC можно изменить логику работы библиотечных компонентов не сломав оригинал.

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

Ну во-первых, мы социальные существа. Интроверты в принципе могут проигрывать не интровертам, т.к. им для взаимодействия нужно прилагать больше усилий при прочих равных (умения и знания).

Во-вторых, Как бы это не звучало прискорбно, но в каждом удобном случае мы «продаём» себя. Мы такой же товар, как как и то, что лежит на полках в магазинах. Конечно, это не совсем продажа, а больше какой-нибудь обмен или бартер, но суть одна и та же.
Пришли на свидание — мы пытаемся себя продать, а нам пытаются продаться. Устраиваемся на работу — мы пытаемся себя продать, а организация так же пытается продать себя.
А чтобы продать товар, нужно его рекламировать. Статьи, связи, рекомендации — это всё реклама. Без рекламы мало что может продаться. Конечно, есть ещё сарафанное радио, но оно начинает работать при взаимодействии с людьми, а не само по себе. А для этого нужно быть социально активным.
Запад пользуется исключительно своими трекерами;

Так это логично. Российские трекеры вряд ли будут рассматриваться даже если исключить всякую политику. Большинство российских продуктов предназначены для России и СНГ, западные продукты для всего мира.
Есть же лоадер от команды БЭМ — github.com/bem/webpack-bem-loader
Выглядит симпатичней:
import Block from 'b:block';
import Block from 'b:block m:modName';
import Block from 'b:block m:modName=modVal1|modVal2';
import BlockElem from 'b:block e:elem';
import BlockElem from 'b:block e:elem m:modName';
import BlockElem from 'b:block e:elem m:modName=modVal1|modVal2';


А что будет в вашем случае, если добавить динамики? Всё так же в html?
Я первый раз тоже листал так… А потом смог переключиться на выбор года :)
Картинка
image
так смысл в том, что ценник от другой продукции. Просто большинство не прочитают его. Часто так делает Магнолия (Мск). Стоит молоко «Домик в деревне», а под ним акционный ценник. Смотришь на ценник, а там молоко «Простоквашино», которого нигде нет, или объём не тот, или жирность не та. Тут уже сложнее что-то предъявить, т.к. ценник от Домика в деревне где-то рядом. Т.е. ценники реальные, но стоят не в тех местах, но рядом
а теперь если посчитать сколько стоит час вашей работы, то лучше купить готовый софт

При условии, что тратится время, в которое можно было бы заработать, а не свободное. У меня есть 3 часа свободных. Либо я смотрю сериал какой-нибудь/играю/плюю в потолок, либо я делаю табличку
но вы так и не ответили…
За собой часто замечаю, что если нет никакой анимации и действие происходит мгновенно, то я могу даже не понять, что произошло. Особенно с новыми приложениями. Из-за этого у меня может уйти от 2 до 10 секунд на понимание того, что же произошло. А если я не разобрался с приложением, то что я сделаю? Удалю его (если это не супер специфичное приложение, которое в любом случае нужно будет).

У MD хорошие рекомендации и хорошие анимации, которые выглядят естественно. И да, я не дизайнер, я просто пользователь, который пользуется этим и которому это помогает. И я явно не один такой. Иначе бы в MD Style Guide не было столько всего написано про анимации.

Конечно, никто не будет ждать минуту. Покажете реальное приложение, где красиво рисуется меню целую минуту? Вы слишком утрируете.
Если из БЭМ использовать только классы, то да, они могут всё усложнить в некоторых случаях.
Но даже на jquery есть библиотека для работы с DOM в БЭМ-терминах — github.com/zenwalker/jquery-bem
смысл же не конкретно в 20 строчках, а в том, что в файле может быть очень много строк, даже если это всего лишь элемент
Долистайте до конца что-ли:
ru.bem.info/methodology/naming-convention/#%D0%92%D0%B0%D1%88%D0%B0-%D1%81%D1%85%D0%B5%D0%BC%D0%B0-%D0%B8%D0%BC%D0%B5%D0%BD%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F

Верхние правила — это классика. Есть ещё западное именование через "--", есть реактовское через CamelCase. Но самый последний пункт — «Ваша схема именования»
&__menu {
... 20 строк
@media-for-tablet{
...20 строк
}
@media-for-desktop{
...20 строк
}
@media-for-UHD-desktop{
...20 строк
}
@media-for-print{
...20 строк
}
@media-for-tv{
...20 строк
}
}


Итого 132 строки
У реакта есть замечательная библиотека github.com/bem/bem-react-core. Там и сборщики и разработка компонентов в методологии БЭМ. Довольно удобная штука (со своими недостатками декларативности БЭМа, но это уже каждому своё).
Эта библиотека как раз и умеет прописывать всё. Писал аналог на vue, правда только для на простых случаях. Очень сильно сокращался код и всякие условия по генерации классов и т.п.

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity