Pull to refresh
-9
0
syncro @syncro

User

Send message

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

Reading time 1 min
Views 7.3K

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

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

Читать далее
Total votes 23: ↑5 and ↓18 -13
Comments 68

Web Components и IoC

Reading time 7 min
Views 1.5K

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

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

Читать далее
Total votes 5: ↑5 and ↓0 +5
Comments 2

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

Reading time 5 min
Views 2.4K

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

Читать далее
Total votes 6: ↑3 and ↓3 0
Comments 0

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

Reading time 12 min
Views 2.6K

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

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

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

Читать далее
Total votes 3: ↑3 and ↓0 +3
Comments 0

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

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

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

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

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

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

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

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

Material как WebComponents

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

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

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

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

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

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

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

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

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

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

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

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

Сайт проекта
Total votes 14: ↑5 and ↓9 -4
Comments 15

Information

Rating
Does not participate
Registered
Activity