Как стать автором
Обновить
-9
0
syncro @syncro

Пользователь

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

Перед коммитом

Время на прочтение 1 мин
Количество просмотров 7.3K

Бывают определенные действия, которые надо обязательно выполнить до того как код попадет в коммит и репозиторий, чтобы, как минимум, не мучиться потом с rebase каждый раз. Решение, которое я опишу короткое и простое, но оно весьма упрощает жизнь разработчика.

Самое очевидное назначение - это выполнение тестов, но для меня это также и сборка бандла. Поскольку я не использую watch и регулярно забываю запускать команду билда руками, в коммит частенько заезжают неактуальные версии бандлов, а актуальные приходится коммитить следом. Выходит не очень опрятно. Для javascript нам поможет утилита pre-commit. Она использует hook гита, но дает возможность не лезть во все эти внутренности.

Читать далее
Всего голосов 23: ↑5 и ↓18 -13
Комментарии 68

Web Components и IoC

Время на прочтение 7 мин
Количество просмотров 1.5K

Замечательной особенностью веб-компонентов или скорее даже языка разметки HTML является возможность прозрачно оборачивать существующий контент новым. Благодаря этому, вы можете практически неинвазивно дорабатывать существующий legacy код, а так же изящно структурировать новый.

Говоря конкретно, если вы обернете какую-то верстку своим кастомным элементом (гугл. Custom Elements), в хуке connectedCallback(), то ваш элемент может определить какие у него внутри есть подэлементы и настроить свою и их работу соответствующим образом если надо приспособить их к новым требованиям и это будет вполне себе архитектурно грамотным решением. Также он будет получать всплывающие события от своих подэлементов и если вы включили изоляцию теневого дерево, он станет их безальтернативным брокером (а если не включили - прозрачным прокси), т.к. за его пределы они всплывать не будут и вся ответственность ляжет на него. 

Читать далее
Всего голосов 5: ↑5 и ↓0 +5
Комментарии 2

Разработка тем для портала Liferay 7

Время на прочтение 5 мин
Количество просмотров 2.4K

Разработка сайтов на таких порталах как Liferay в наше время является делом пожалуй таким же простым как использование конструкторов сайтов и даже может быть еще более легким и быстрым нежели использование популярных цмсок на PHP. При этом у вас сохраняется как контроль за всеми своими данными со свободой размещать их где угодно и не зависеть от провайдера услуг, так и возможность делать доработку любой сложности с использованием качественных библиотек не слишком разбиваясь об самостийные особенности “легких” технологий.

Читать далее
Всего голосов 6: ↑3 и ↓3 0
Комментарии 0

Разработка веб-приложений на встраиваемом портале

Время на прочтение 12 мин
Количество просмотров 2.6K

Java порталы это особый класс веб-приложений позволяющий разрабатывать достаточно сложные и при том модульные информационные системы, которые напоминают Системы Управления Содержимым (CMS), но для корпоративного сектора. Это подразумевает, что в них обычно заложена возможность работы с иерархиями страниц, приложений, пользователей, процессов, поддерживается интернационализация и есть средства интеграции в корпоративную информационную инфраструктуру. 

На рынке этих систем существуют коммерческие продукты от таких известных компаний как Oracle, SAP, IBM (теперь HCL Technologies Ltd), Red Hat JBoss, и кроме того есть также портал Liferay имеющий приличную опенсорс версию, а также образовательные и другие тематически-ориентированные портальные системы, есть и не вполне порталы, но информационные системы, поддерживающие технологии порталов такие как DMS Alfresco. Поддерживающие означает даже, что в теории приложения разработанные для одной системы можно устанавливать в другую, но на деле это было не совсем так. Производители добавляли свои возможности несовместимые с другими, что оставляло эту не имеющую аналогов фичу в нереализованных.

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

Читать далее
Всего голосов 3: ↑3 и ↓0 +3
Комментарии 0

Проверяем формы по стандартам с Validation API

Время на прочтение 7 мин
Количество просмотров 8.5K
В свое время мне почти всем нравился Angular 2+, это хорошо спроектированный фреймворк, который на голову выше остальных популярных фронтенд фреймворков по инженерному уровню исполнения. Но были у него и весьма странные недоработки. Одна из них это невозможность ручного вызова валидации или ревалидации формы, которая наблюдалась как минимум, до 8ой версии. Нельзя сказать чтобы там сильно увлекаются реактивностью, но вот в этой подсистеме похоже какие-то реактивные соображения побудили разработчиков реализовать валидацию только через привязку, вынудив разработчиков прикладных решений обращаться к костылям навроде установки состояния “нетронуто” для полей и вообще усложняя написание сложных валидаторов с продвинутой логикой и участием нескольких полей сразу. Опыт борьбы с ангуляровским валидатором и некоторыми другими особенностями фреймворка усилил мое впечатление от того насколько элегантным и простым оказалось после этого использование HTML5 API для валидации форм, которое “просто работает” в любом современном браузере даже без подключения фреймворков и библиотек.
Читать дальше →
Всего голосов 6: ↑4 и ↓2 +2
Комментарии 3

Роутинг для веб-компонентов

Время на прочтение 3 мин
Количество просмотров 5.3K
Иногда кажется, что веб компоненты не дотягивают до фреймворка, особенно если сравнивать их с наиболее популярными представителями. Но многое самое насущное, что не закрывается реализацией стандартов входящих в понятие веб компонентов, достаточно легко прикрутить с помощью библиотек или небольшого объема своего изящного кода. Одной из таких возможностей является роутинг на стороне фронтенда. Фича не всегда необходимая, возможно даже спорная, но в большинстве фреймворков она присутствует и многими используется. Что же в веб-компонентах? А мы попробуем реализовать роутинг с помощью библиотеки navigo.
Читать дальше →
Всего голосов 3: ↑2 и ↓1 +1
Комментарии 4

Респонзивлесс

Время на прочтение 2 мин
Количество просмотров 2K
Понадобилось мне тут узнать перевод одного слова. Открыл первый попавшийся онлайн переводчик от Яндекса и результат, надо сказать, не очень удовлетворил, благо в нем же были ссылки на варианты от конкурентов, однако и они оказались тоже не очень. Возможно гипотеза первого была наилучшей или это название не имеет практического значения вовсе.
Переводчиком от Микрософт я воспользовался, наверное, впервые и не смог не заметить, что его интерфейс сиротливо прижимается к левому краю будто сайт из 90-х, хотя при этом рисует какие-то эффекты, т.е. по остальным признакам работает (и тормозит:) как современный. Нет, сначала я, конечно, обратил внимание на тухло выглядящие шрифты, а уже потом глаз начал цеплять остальные особенности.
Читать дальше →
Всего голосов 15: ↑4 и ↓11 -7
Комментарии 6

Английский код

Время на прочтение 1 мин
Количество просмотров 5.5K
Английский язык — пожалуй единственный подходящий для записи кода. Слова записанные на нем относительно коротки и почти не меняют форму в зависимости от контекста. Но главное — это та особенность, что в английском императивное наклонение высказываний мало отличается от изъявительного. Это важно потому, что в парадигме объектно-ориентированного программирования имя метода называет поведение сущности, а согласно устройству динамических языков, вызов метода это посылка сообщения целевой сущности, которая сама решает что с ним делать.
Читать дальше →
Всего голосов 42: ↑6 и ↓36 -30
Комментарии 42

Material как WebComponents

Время на прочтение 11 мин
Количество просмотров 3.6K
В последнее время, как я уже отмечал в предыдущей статье, вполне себе активно ведутся разработки WebComponents оберток для популярных фреймворков позволяющий использовать их через браузерное API. Это значит, что если вы хотите использовать готовые компоненты созданные на том или ином фреймворке, то вам не обязательно разворачивать проект и собирать его. Также это значит, что вы можете использовать разработки на разных фреймворках связывая их между собой посредством взаимодействия через API браузера.

Не очень давно я пытался найти приличный грид для веб-компонент, на тот момент такового, полноценного, но при том не обязывающего использовать какой-либо фреймворк, особенно если он представляет собой что-то типа Polymer не оказалось. В недалеком прошлом у меня был до того достаточно успешный опыт с material/cdk. Тогда мне относительно легко удавалось серьезно кастомизировать фильтры и пейджер для таблицы, локализовать подсказки и все это без переписывания библиотечного кода или мрачных хуков, использовав механизмы переопределения. На момент рассмотрения оказалось, что биндингов конкретно для компонента таблицы еще не успели сделать, но вот пару недель назад я заметил, что в репозитории на эту тему что-то появилось и решил в рамках эксперимента попробовать подключить их как веб-компоненты.
Всего голосов 12: ↑12 и ↓0 +12
Комментарии 0

WebComponents как фреймворки, взаимодействие компонентов

Время на прочтение 8 мин
Количество просмотров 5.5K
Когда разговор заходит о веб-компонентах, часто говорят: «Ты что хочешь без фреймворков? Там же все готовое». На самом деле есть фреймворки созданные на основе реализаций стандартов входящих в группу веб-компонентов. Есть даже относительно неплохие, такие как X-Tag. Но сегодня мы все равно будем разбираться насколько простым, элегантным и мощным стало браузерное API для решения повседневных задач разработки в том числе организации взаимодействия компонентов между собой и с другими объектами из контекста выполнения браузера, а использовать фреймворки вместе с веб-компонентами всегда можно, даже те, которые разрабатывались поперек стандартов в том числе через механизмы, которые мы сегодня разберем, по крайней мере так утверждается на сайте.
Читать дальше →
Всего голосов 13: ↑11 и ↓2 +9
Комментарии 34

Быстрый старт с WebComponents

Время на прочтение 8 мин
Количество просмотров 8.1K
Веб-компоненты это набор стандартов определяющих программные интерфейсы для организации компонентной архитектуры. Все они реализованы в современных версиях браузеров, т.е. не требуют подключения библиотек или транспиляторов кода, однако, если нужна совместимость например с Internet Explorer 11, то и библиотеки и транспиляторы использовать видимо все-таки придется.

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

Все эксперименты приводимые далее проверялись в Chrome и Firefox может быть даже не самых новых версий.
Читать дальше →
Всего голосов 24: ↑24 и ↓0 +24
Комментарии 22

Майндмапы в Google Wave

Время на прочтение 1 мин
Количество просмотров 1K
С не очень давних пор я использую заметки не только чтобы собирать интересные ссылки и куски текста, но и в работе. Сначала это был просто листочек, на котором я записывал, рисовал, вобщем, делал все чтобы, когда я пришел в понедельник на работу или переключился с другого таска мне для погружения в эту еще не завершенную задачу не потребовалось мучительно вспоминать как я хотел ее реализовать или проходить все сначала, а просто глянуть на свои заметки и все вспомнить. Однажды, от использования бумаги я перешел к диаграммам связей (Mindmaps). Несмотря на то что есть в своем роде более навороченные XMind, Freemind и др. для рисования таких диаграмок почему-то приглянулся Semantik. Потеряв в удовольствии порисовать на бумаге, я приобрел преимущества в виде унифицированности подхода, мобильности и возможно даже удобстве. Тут можно было и удобно и хранить ссылки и блоки информации не теряя в наглядности доступности. Получив инвайт на Wave, я начал думать как бы его полезно употребить и тут один из коллег обратил внимание на гаджет который позволяет добавлять диаграмки в волны. Оформил текущую задачу в волну: там ссылка на таск в багтрекере, немного информации, и карта с подзадачами, заметками и вопросами. Сегодня придя на работу я открыл волну вместо семантика, надеюсь мой менеджер и коллеги научатся пользоваться этой штукой и сама по себе штука станет более функциональной и удобной.
Всего голосов 12: ↑10 и ↓2 +8
Комментарии 0

Удаленный рабочий стол в Linux

Время на прочтение 1 мин
Количество просмотров 697
Оказывается существует кросс-платформенное решение для удаленного доступа к рабочему столу, которое работает в том числе и в Линуксе. Называется jrdesktop, в базовой, несколько ограниченной комплектации можно пользоваться бесплатно. Но главное — оно присутствует в репозитории моего дистрибутива, заводится с полпинка и просто работает без всяких заморочек и неудобств (навроде необходимости подымать отдельные сессии иксов как в VNC).

Сайт проекта
Всего голосов 14: ↑5 и ↓9 -4
Комментарии 15

Информация

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