Pull to refresh
5
0
Леонид @LFedorov

Software Engineer

Send message

Визуальный редактор писем на React+Redux. Обзор, пример использования и расширения

Reading time12 min
Views8.9K

Введение


Всем привет! Не так давно мне поступила задача встроить визуальный редактор email в наш сервис внутренней рассылки, ибо людям надоело набирать html руками и компоновать валидные шаблоны для писем. Побродив по интернету, я нашёл 2 редактора, которые, как мне тогда казалось, прекрасно подойдут для этих целей. Ссылки на них приведу в конце топика. Изучив их более внимательно (EmailEditor написан с использованием jQuery, который я в своё время неплохо изучил, а Mosaico был на KnockoutJS, с ним я знаком лишь поверхностно), я остановился на EmailEditor, и снова окунулся в то дерьмо из которого год назад так успешно выбрался с помощью Angular и Ionic, а именно — файлы по 2-3к строк, повсеместное и рандомное изменение DOM различными способами из различных мест и т.д., ну вы меня понимаете).


Потратив больше месяца на попытки пофиксить все баги, запилить нужные нам для рассылки строительные блоки и прочее, я сдался… Решил попробовать Mosaico и даже начал активно изучать Knockout, но проблема в том, что этот монстр (я про Mosaico) был настолько сложно написан, что EmailEditor показался не таким уж и плохим. Плюс ко всему, а точнее минус, у Mosaico практически нет вменяемой документации и если в первом я интуитивно понимал как всё работает и как создать свои блоки, то тут никакая интуиция мне не помогла. Возможно, просто не хватило мозга, терпения и желания разбираться, не знаю, просто гляньте на досуге исходники этих редакторов… А сроки поджимали...


Что же делать?!

Читать дальше →
Total votes 8: ↑6 and ↓2+4
Comments8

Простой туториал React Router v4

Reading time8 min
Views413K
image

Автор @pshrmnОригинальная статьяВремя чтения: 10 минут

React Router v4 — это переработанный вариант популярного React дополнения. Зависимые от платформы конфигурации роутов из прошлой версии были удалены и теперь всё является простыми компонентами.
Total votes 25: ↑24 and ↓1+23
Comments14

Динамический Angular или манипулируй правильно

Reading time16 min
Views103K
image

Любой создаваемый проект не обходится без динамического создания элементов. Рано или поздно вам понадобится либо создать tooltip для элемента, показать модальное окно, или вовсе сформировать некоторые блоки динамически подгружая их с сервера. При решении таких задач я зачастую определяю зрелость фреймворка, который использую: насколько просто я могу в нем создавать динамический контент, и какие возможности он мне для этого предлагает. В этой статье мы поговорим о динамическом создании контента в новом Angular и рассмотрим различные подходы, которые он нам предоставляет.

Читать дальше →
Total votes 14: ↑12 and ↓2+10
Comments17

«Готовимся к переходу на Angular 4»: Tinkoff.ru о JS-разработке

Reading time4 min
Views17K

Как известно, клиенты Tinkoff.ru видят перед собой не отделение банка, а интерфейс сайта или мобильного приложения — так что для компании две эти вещи особенно важны. О мобильной разработке мы её недавно уже расспрашивали. А теперь в преддверии конференции HolyJS, где разработчик Tinkoff.ru Алексей Носов выступит с докладом, задали вопросы о JS/фронтенде: и самому Алексею, и руководителю HR-проектов компании Ольге Шпунтенко.
Читать дальше →
Total votes 29: ↑21 and ↓8+13
Comments24

11 вещей которые я узнал, читая спецификацию flexbox

Reading time8 min
Views100K

Я всегда считал, что с flexbox довольно легко работать — глоток свежего воздуха после стольких лет float'ов и clearfix'ов.


Правда недавно я обнаружил что борюсь с ним; что-то растягивалось, когда я не думал, что оно должно тянуться. Я поправил здесь, другой элемент сжался. Я починил это, что-то другое ушло за экран. Какого Джорджа Буша тут происходит?


В конце концов, все заработало, но солнце село, а мой процесс был привычной игрой с CSS. Или… как называется та игра, где надо ударить крота, а затем другой крот выпрыгивает и надо ударить и его тоже?


Как бы там ни было, я решил что пора вести себя как взрослый разработчик и выучить flexbox должным образом. Но вместо того, чтобы прочитать 10 очередных блог-постов, я решил отправиться прямиком к исходнику и прочитать The CSS Flexible Box Layout Module Level 1 Spec


Вот хорошие отрывки.


Читать дальше →
Total votes 66: ↑62 and ↓4+58
Comments33

Node.js и cote: простая и удобная разработка микросервисов

Reading time17 min
Views32K
Многие считают, что микросервисы — это очень сложно. На самом же деле, при правильном подходе, это совсем не так.

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

image
Читать дальше →
Total votes 24: ↑21 and ↓3+18
Comments15

Технологии технологиями, а главное — код

Reading time3 min
Views11K
Так зачем же мы пишем этот плохой код, который изо дня в день замедляет нашу работу?
Потому, что мы тогда вынуждены были сделать что-то быстрее!
Я оставлю вас наедине с это логической несостыковкой…
На одной из лекций Роберта Мартина

У нас на DevConf будет не самый обычный мастер-класс. Там не будут рассказывать о новых технологиях или хайлоаде. Будут говорить о коде. Хорошем, плохом. Называется он Принципы хорошего кода на реальных примерах. Расспросим немного автора.

Кто ты и чем занимаешься?

Меня зовут Адель. Я фрилансер. Обычно занимаюсь backend-разработкой. Еще иногда пишу и дописываю плагины для PhpStorm. Из популярных Laravel plugin и .env files support.

Что тебя побудило на такой мастер-класс?

Удрученность текущей ситуации в отрасли. Все одержимы технологиями. В последнее время облачными. Читаешь вакансию, перечисляют используемые технологии, необходимый опыт (который почти никогда, на самом деле, не нужен). Очень круто звучит на собеседованиях. Приходишь на проект. Смотришь на код… и он печально говорит тебе: «Пристрели меня». Смотришь глубже и понимаешь всю его печаль. Он смертельно болен. Как раковые опухоли разрослись классы, которые кто-то, словно в шутку, назвал контроллерами. Как метастазы везде расползлись копипасты. На психологию кода давит то, что он лишь жалкая обвязка для крутых облачных технологий. Но пристрелить дорого.
Читать дальше →
Total votes 41: ↑37 and ↓4+33
Comments55

Chrome победил

Reading time5 min
Views77K
Примечание: Я семь лет работал в Mozilla и был техническим директором, прежде чем два года назад ушёл ради основания стартапа в области ИИ

Неделю назад Mozilla опубликовала блог-пост, где подчеркнула свои усилия, чтобы сделать десктопный Firefox снова конкурентоспособным. В своё время я внимательно следил за рынком браузеров, но уже пару лет не изучал его. Пришло время посмотреть на некоторые цифры:



Диаграмма вверху показывает рыночную долю в процентах каждого из четырёх основных браузеров за последние шесть лет. Это данные StatCounter, и вы можете поспорить, что данные искажены множеством разных способов, но в глобальном смысле придётся с уверенностью сказать, что Chrome захватывает рынок браузеров, а всё кроме Safari уничтожается.
Читать дальше →
Total votes 43: ↑35 and ↓8+27
Comments286

Google Chrome «поедает» рынок браузеров

Reading time2 min
Views31K
Два года назад Internet Explorer от Microsoft удерживал лидирующие позиции на рынке браузеров. Во многом так получилось благодаря распространенности старых версий операционных систем компании. Google Chrome и другие браузеры оставались позади и «держались» на приличном расстоянии.

Но ситуация в корне изменилась.

Читать дальше →
Total votes 34: ↑19 and ↓15+4
Comments156

У вас есть право на анонимность. Часть 2. Законодательство против анонимности

Reading time8 min
Views25K
image

Первые попытки ликвидировать анонимность в Сети на законодательном уровне в России начали появляться в 2013 году.

Так, Федеральным законом №97-ФЗ от 05.05.2014 («Закон о блогерах и организаторах распространения информации», разработан годом ранее) владельцам страничек в социальных сетях или личных сайтов с суточной аудиторией более трех тысяч пользователей было запрещено анонимное использование собственных блогов в сети. Согласно дополненной ст.10.2 Федерального закона №149-ФЗ «Об информации» лицо, признанное Роскомнадзором блогером обязано разместить на своих сайте или странице сайта в сети «Интернет» свои фамилию и инициалы, электронный адрес для направления ему юридически значимых сообщений. На текущий момент в соответствующий реестр блогеров внесено со стороны надзорного ведомства более 2000 пабликов и личных страниц во ВКонтакте, YouTube, Instagram, Facebook, Google Plus и др. Да и обычных, личных небольших сайтов тоже внесено в данные реестр nn-ое количество.

Но в этом же законе есть еще и статья про «организаторов распространения информации» — это владельцы сетевых сервисов, веб-сайтов и разработчики ПО, которых обязали ФСБ и Роскомнадзор осуществлять сбор метаданных своих пользователей (все действия и взаимодействия), их хранение и предоставление по первому требованию компетентным органам. А с 1 июля 2018 года, с момента вступления в силу «пакета Яровой» (№374-ФЗ от 06.07.2016), точнее — тех пунктов этого закона, которые касаются внедрения тотальной телефонной и интернет-слежки за гражданами, организаторы распространения информации (как и операторы связи) обязаны будут собирать, хранить и делиться со спецслужбами не только метаданными пользователей, но и всей их перепиской, звонками, осуществленным файлообменом — всем генерируемым на их площадках или через их ПО трафиком.
Читать дальше →
Total votes 20: ↑18 and ↓2+16
Comments38

Путь к трансдьюсерам на чистом JavaScript

Reading time13 min
Views18K
Если вы наслышаны о так называемых «трансдьюсерах», но до сих пор не применяете их в JavaScript-разработке, сегодня у вас есть шанс найти ответы на вопросы: «Что такое трансдьюсеры?» и «Как ими пользоваться?». Это позволит вам понять, нужны ли они в ваших проектах, и, если нужны — поможет приступить к их использованию.



Речь пойдёт о том, как писать код, который предназначен для построения хорошо подходящих для компоновки конвейеров преобразований данных, не потребляющий слишком много памяти. Для того, чтобы как следует разобраться в концепции трансдьюсеров, начнём мы с более простых механизмов, редьюсеров, или функций для свёртки данных.
Читать дальше →
Total votes 31: ↑25 and ↓6+19
Comments12

React Native с колокольни Android-разработки часть 1

Reading time7 min
Views31K
На хабре есть множество статей про react native, но я не могу понять кем и для кого они написаны. Почти все имеют такой посыл: «Ну, это такой же React как в вебе, только на мобилках». А вот люди, которые занимаются нативной разработкой под мобильные устройства в пролете, ведь разобраться в реакте после Android без двух литров без глубокого изучения никак не получится. А я расскажу за реакт опираясь, внезапно, не на веб разработку, а на Android. Всем заинтересованным добро пожаловать под кат.
Читать дальше →
Total votes 26: ↑25 and ↓1+24
Comments28

Как организовать большое React-приложение и сделать его масштабируемым

Reading time9 min
Views49K


Одной из лучших особенностей React является то, что он не накладывает каких-либо ограничений на файловую структуру проекта. Поэтому на StackOverflow и аналогичных ресурсах так много вопросов о том, как структурировать React-приложения. Это очень спорная тема. Не существует единственного правильного пути. Предлагаем разобраться в этом вопросе с помощью статьи Джека Франклина, в которой он рассказывает о подходе к структурированию больших React-приложений. Здесь вы узнаете, какие решения можно принимать при создании React-приложений: о выборе инструментов, структурировании файлов и разбивки компонентов на более мелкие части.
Читать дальше →
Total votes 35: ↑32 and ↓3+29
Comments16

JavaScript: элементы стиля

Reading time16 min
Views26K
В 1920-м году вышла книга Уильяма Странка-младшего «Элементы стиля». Рекомендации из неё, касающиеся английского языка, актуальны и сегодня. Те же принципы, применённые к коду, позволяют повысить качество программ.

image

Надо заметить, что речь не идёт о жёстких правилах. То, о чём мы сегодня поговорим — лишь рекомендации. Даже если вы решите следовать им, вполне могут найтись веские причины для того, чтобы от них отклониться, например, если это поможет сделать код понятнее. Однако, поступая так, будьте бдительны и помните о том, что люди подвержены когнитивным искажениям. Например — выбирая между обычными и стрелочными функциями в JavaScript, тот, кто не очень хорошо знаком с последними, предпочтёт обычные функции, в силу привычки считая их понятнее, проще, удобнее.
Читать дальше →
Total votes 35: ↑32 and ↓3+29
Comments32

Онлайн-кассы: первые итоги

Reading time4 min
Views45K
Итак, ФЗ №54 скоро вступит на полную мощь, а пока лишь 30% онлайн-предпринимателей смогли выполнить его условия (да и то, не все из них — в полном объёме). Если говорить точнее: то из примерно 1 200 000 касс, которые должны пройти перерегистрацию, прошли её — 420 000.

Во-первых, о затратах: очень многие утверждают, что малый (а особенно — микро) бизнес никак не пострадает от новаций. Но так ли это?


Читать дальше →
Total votes 20: ↑19 and ↓1+18
Comments228

2017: Автостопом по галактике JavaScript

Reading time7 min
Views30K

Расшифровка доклада Ильи Климова на конференции JavaScript fwdays.


Мы с вами попробуем отследить некоторые тренды в развитии JS, как сообщества, как движения, в 2017-ом году. Я очень постараюсь избежать оценочных суждений. Хотя кого я обманываю, все равно не получится. И где-то через год вы сможете с радостью открыть эту презентацию на YouTube, и понять, насколько я был не прав.


Поэтому давайте перенесёмся в 2015 год. Посмотрим, как развивался JS.



Читать дальше →
Total votes 51: ↑46 and ↓5+41
Comments239

Развёрнутый комментарий Дэна Абрамова к статье «Вещи, о которых никто вам не расскажет про React»

Reading time6 min
Views25K

Всем привет! Недавно Дэн Абрамов, создатель Redux, оставил довольно массивный комментарий к статье на Medium Things nobody will tell you about React.js, который очень быстро разошёлся популярностью и довольно скоро набрал раза в 3 больше рекомендаций, чем сама статья :)
Собственно, текущая статья является моим переводом его комментария, так как последняя содержит ценные замечания по поводу актуального и будущего состояния React / React Router.
Надеюсь, кому-то это будет полезным.




Привет, спасибо за обратную связь! :)


Я ценю, что вы поделились своим неприятным опытом работы с React.


Ваш пост содержит широко распространенные в React сообществе заблуждения, поэтому мне захотелось воспользоваться моментом и разъяснить их для любого, у кого имеются те же проблемы.


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

Читать дальше →
Total votes 36: ↑32 and ↓4+28
Comments3

Information

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