Search
Write a publication
Pull to refresh
0

Java backend developer

Send message

Эволюция SAAS конструкторов сайтов

Reading time5 min
Views40K
Первые конструкторы появились около 15 лет назад. Не так давно, но и не недавно, учитывая, что первый сайт появился в девяносто первом. С тех пор они претерпели немало изменений и сейчас большинство конструкторов работают по SaaS модели (англ. Site as a Service — сайт как сервис/услуга). Это значит, что сайт можно создать с помощью веб-приложения, которое разрабатывается и поддерживается поставщиком услуг, который сам следит за его работоспособностью и занимается обновлением ПО и оборудования. Поддержание работоспособности системы, техническая поддержка и иногда некоторые другие работы входят в оплату, которая обычно взимается с клиентов помесячно. При этом конечный пользователь не приобретает лицензию на программу, что позволяет ему значительно сэкономить. Но при этом нужно понимать, что конструктор – это, по сути, аренда сайта, а не его покупка.


Читать дальше →

Проведение аудита CSS: Таблицы стилей не должны быть ужасными

Reading time4 min
Views12K
Когда мы начинаем работу над существующей базой кода, в первую очередь нужно провести аудит CSS. Основной вред от плохо организованных и запущенных CSS-таблиц заключается в замедлении процесса разработки, так как команде разработчиков приходится пробираться через дебри кода, и в нерабочем сайте, в случае если неверно определенные селекторы становятся причиной коллизий и наложения стилей.

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

Доклад по CSS за 2014 год: Проверка использования CSS в «полевых условиях»

Reading time8 min
Views11K
CSS – это инструмент, при помощи которого HTML превращается в полностью сверстанную страницу. CSS – это язык, полный странностей и непредсказуемых поворотов, и поэтому чаще всего создание таблиц стилей представляет собой наименее любимую работу для разработчика. В течение последних нескольких лет наблюдалось значительное повышение в количестве программных оболочек и инструментов, позволяющих облегчить написание CSS и уменьшить вероятность ошибок. SASS и LESS правят бал в сфере предварительной обработки, а такие оболочки, как Bootstrap, Foundation, Bourbon, Susy, и Unsemantic (а также множество других) используются для ускорения получения сверстанной страницы.

Браузеры также изменяются, так что многие современные версии браузеров более не требуют префикса поставщика для правил CSS3. То, что несколько лет назад было передовой методикой, теперь уже не требуется, смотря, конечно, какие браузеры поддерживает ваш веб-сайт. В ходе нашего исследования мы загрузили CSS-файлы более чем с 8 000 доменов, и собрали некоторые данные о написании и использовании CSS. Я думаю, что это может быть полезным для дальнейшего развития дискуссии об организации, осмыслении и управлении крупными CSS-проектами, а также позволит наблюдать за развитием Сети.
Читать дальше →

Как писать отличные пулл-реквесты

Reading time3 min
Views22K
С ростом компании, люди и проекты меняются. Для продолжения развития культуры, которую мы хотим иметь в GitHub, мы сочли полезным напомнить самим себе цели, которые преследуем в коммуникациях. Мы недавно представили эти гайдлайны, чтобы помочь самим себе быть лучше, когда мы взаимодействуем через пулл-реквесты.
Читать дальше →

WebSocket RPC или как написать живое WEB приложение для браузера

Reading time4 min
Views63K


В статье речь пойдет о технологии WebSocket. Точнее не о самой технологии, а о том, как ее можно использовать. Я давно слежу за ней. Еще когда в 2011 году один мой коллега прислал мне ссылку на стандарт, пробежав глазами, я как-то расстроился. Выглядело настолько круто, и я думал, что в момент, когда это появится в популярных браузерах, я уже буду планировать, на что потратить свою пенсию. Но все оказалось не так, и как гласит caniuse.com WebSocket не поддерживается только в Opera Mini (надо бы провести голосование, как давно кто-либо видел Opera Mini).

Кто трогал WebSocketы руками, тот наверняка знает, что работать с API тяжело. В Javascript API достаточно низкоуровневый (принять сообщение — отправить сообщение), и придется разрабатывать алгоритм, как этими сообщениями обмениваться. Поэтому и была предпринята попытка упростить работу с вебсокетами.

Так и появился WSRPC. Для нетерпеливых вот простое демо.
Читать дальше →

Бесплатный https сертификат + интеграция в Apache–TomCat

Reading time3 min
Views18K
Доброго времени суток, дорогие друзья. У меня возникла необходимость настроить https на сервере, который используется в онлайн-игре. Для этого мне понадобится бесплатная регистрация на StartSSL и немного времени. Инструкции на самом сайте StartSSL довольно туманные. Эта публикация призвана пролить свет на детали.
Читать дальше →

Пишем быстрый и экономный код на JavaScript

Reading time16 min
Views69K
Такой движок JS, как V8 (Chrome, Node) от Google, заточен для быстрого исполнения больших приложений. Если вы во время разработки заботитесь об эффективном использовании памяти и быстродействии, вам необходимо знать кое-что о процессах, проходящих в движке JS браузера.

Что бы там ни было — V8, SpiderMonkey (Firefox), Carakan (Opera), Chakra (IE) или что-то ещё, знание внутренних процессов поможет вам оптимизировать работу ваших приложений. Но не призываю вас оптимизировать движок для одного браузера или движка – не делайте так.

Задайте себе вопрос:
— можно ли что-то в моём коде сделать более эффективным?
— какую оптимизацию проводят популярные движки JS?
— что движок не может компенсировать, и может ли сборка мусора подчистить всё так, как я от неё ожидаю?



Есть много ловушек, связанных с эффективным использованием памяти и быстродействием, и в статье мы изучим некоторые подходы, которые хорошо показали себя в тестах.
Читать дальше →

Список YouTube-каналов для обучения веб-разработке

Reading time2 min
Views218K
image


Привет, хабражители!

Представляю вам список YouTube-каналов для обучения веб-разработке. Список доступен на гитхабе, там он будет пополняться и редактироваться. В планах — создание отдельной странички для фильтрации каналов по тегам и рубрикам.

Также хочу попросить вас о небольшой услуге: если вы знаете канал, не вошедший в список — опубликуйте ссылку на него в комментариях или отправьте pull request. Сообщество будет благодарно вам.

Под катом — текущая версия списка.
Читать дальше →

Простой парсинг сайтов с помощью SlimerJS

Reading time2 min
Views68K
В виду отсутствия хорошего материала по парсингу с помощью скриптового браузера SlimerJS и наличия свободного времени решил написать небольшую статью.


Читать дальше →

Задача коммуникации между вкладками и выявления активной вкладки

Reading time4 min
Views20K
Наглядный пример задачи — сайт vk.com. Каждый раз, когда вы воспроизводите музыку или видео в одной вкладке, в других вкладках воспроизведение останавливается. И если вы обратитесь в интернет за помощью в решении данной задачи, то наверняка найдете описание Storage Events или Page Visibility API или даже готовые решения, к примеру Visibility.js.

На хабре уже был обзор этих вещей, к примеру вот и ещё.



Я прошел по этому пути, но не одно из решений меня не устроило. Мне хотелось чего-нибудь простого, легковесного и не требующего глубокого изучения деталей.
Под катом обзор решения, которое я в итоге сам и написал. Спасибо phpdude за наводку

58 признаков хорошего интерфейса

Reading time16 min
Views382K
У хорошего интерфейса пользователя высокая конверсия и его просто использовать. То есть, он хорош и для бизнеса, и для использующих его людей. Вот список опробованных нами идей.

1 Один столбец вместо нескольких


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

image
Читать дальше →

Легковесная библиотека для Warning сообщений от javac через аннотацию

Reading time1 min
Views5.6K
Java разработчикам привет.

Делюсь легковесной (3kb) библиотекой, единственная и основная задача которой — кидать ворнинги от Java компилятора.

Использование очень простое: пишите аннотацию Warning(«Reason text here») и при компиляции будет выдан ворнинг (сборка при этом не останавливается).

// some code...

@Warning("Refactor as soon as possible please")
public void someCodeWhichYouNeedAtTheMomentButYouWantToRefactorItLater() {
    // bad stuff going on here...
}

Использован Annotation Processor API.

Гитхаб: https://github.com/pushtorefresh/javac-warning-annotation (опубликовано в mavenCentral)

Надеюсь, будет полезно.

P.S. В большинстве случаев лучше заводить задачу в тасктрекере вместо использования данной аннотации, но для некоторых вещей такой вариант вполне уместен.

Облачные IDE для веб-программистов

Reading time8 min
Views75K


Здравствуйте, уважаемые коллеги и друзья! Меня зовут Евгений, в начале данной статьи я расскажу Вам о 4-ех облачных IDE для веб-разработчиков, а потом о новой online среде разработки, цель которой объединить возможности самых мощных IDE (например: webstorm), простой дизайн Sublime Text и новые решения.
Читать дальше →

Распознавание лиц в 4 строки на JQuery

Reading time3 min
Views25K


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

Я расскажу о том, как в несколько строк реализовать распознавание любого количества лиц на любой фотографии или видео в браузере с помощью JavaScript и JQuery плагина FaceDetection.

Кому интересно, прошу под кат.
Читать дальше →

Пишите компараторы правильно

Reading time5 min
Views151K
В Java для введения порядка среди определённых объектов можно написать компаратор — класс, содержащий функцию compare, которая сравнивает два объекта. Альтернативой компаратору является естественный порядок объектов: объект реализует интерфейс Comparable, который содержит метод compareTo, позволяющий сравнить этот объект с другим. Сравнивающая функция должна вернуть 0, если объекты равны, отрицательное число (обычно -1), если первый объект меньше второго, и положительное число (обычно 1), если первый больше. Обычно реализация такой функции не представляет сложностей, но имеется один случай, о котором многие забывают.

Сравнение используется различными алгоритмами от сортировки и двоичного поиска до поддержания порядка в сортированных коллекциях вроде TreeMap. Эти алгоритмы завязаны на три важных свойства сравнивающей функции: рефлексивность (сравнение элемента с самим собой всегда даёт 0), антисимметричность (сравнение A с B и B с A должны дать разный знак) и транзитивность (если сравнение A с B и B с C выдаёт одинаковый знак, то и сравнение A с C должно выдать такой же). Если сравнивающая функция не удовлетворяет этим свойствам, алгоритм может выдать совершенно непредсказуемый результат. Причём скорее всего вы не получите никакого исключения, просто результат будет неверный.

Как обнаружилось, несоблюдение этих свойств — не такая уж редкая ситуация. Проблема возникает при сравнении вещественных чисел — float или double.
Читать дальше →

Реализация Sunburst Chart на JavaScript и HTML5 Canvas

Reading time7 min
Views18K

Всем привет! Сегодня хотелось бы рассказать про то, как можно сделать собственные графики на js + canvas буквально в пару сотен строк кода. А заодно вспомнить школьный курс геометрии.
Читать дальше →

15 лучших JavaScript-библиотек для построения диаграмм и сводных таблиц

Reading time6 min
Views310K
Практически невозможно представить себе информационную панель без диаграмм и графиков. Они быстро и эффективно отображают сложные статистические данные. Более того, хорошая диаграмма также улучшает общий дизайн вашего сайта.

В этой статье я покажу вам некоторые из лучших JavaScript библиотек для построения диаграмм/схем (и сводных таблиц). Эти библиотеки помогут вам в создании красивых и настраиваемых графиков для ваших будущих проектов.

Хотя большинство библиотек являются бесплатными и свободно распространяемыми, для некоторых из них есть платные версии с дополнительным функционалом.

Читать дальше →

6 способов: как добавить security для Rest сервиса в Java

Reading time10 min
Views128K

В данной статье я попытаюсь описать несколько способов, а точнее 6, как добавить security для rest сервиса на Java.



Перед нашей командой была поставлена задача найти все возможные способы добавить security к rest сервису. Проанализировать все за и против и выбрать наиболее подходящий для нашего проекта. Когда я начал искать такую статью в Гугле ничего подходящего не нашел, а были лишь фрагменты и мне пришлось собирать эту информацию по крупицам. Так что думаю, данная статья будет полезна и другим Java разработчикам, пишущим back-end. Я не буду утверждать, что какой-то из этих способов лучше или хуже, все зависит от поставленной задачи и конкретного проекта. Поэтому какой из шести способов подходит больше всего вашему проекту решать только Вам. Я постараюсь описать принцип каждого из подходов и дать небольшой пример с использованием Java и Spring Security.

6 способов

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Registered
Activity