Search
Write a publication
Pull to refresh
0

Java backend developer

Send message

jQuery Events изнутри

Reading time9 min
Views59K
Статья написана в рамках конкурса среди студентов Технопарка Mail.ru.
image

Думаю, JavaSript-библиотека jQuery в представлении не нуждается, но на всякий случай напомню, что jQuery призвана ускорить разработку, предоставить синтаксический “сахар” для нативного js и избавить разработчиков от проблем, связанных с кроссплатформенностью.
Прежде чем говорить о том, как устроена обработка событий в jQuery, нельзя не упомянуть об истории обработки событий в браузере.
Читать дальше →

Web Components — будущее Web

Reading time12 min
Views116K
Спустя какое время стало ясно, что основная идея Prototype вошла в противоречие с миром. Создатели браузеров ответили на возрождение Javascript добавлением новых API, многие из которых конфликтовали с реализацией Prototype.

— Sam Stephenson, создатель Prototype.js, You Are Not Your Code

Создатели браузеров поступают гармонично. Решение о новых API принимают с учётом текущих трендов в opensource сообществах. Так prototype.js способствовал появлению Array.prototype.forEach(), map() и т.д., jquery вдохновил разработчиков на HTMLElement.prototype.querySelector() и querySelectorAll().

Код на стороне клиента становится сложнее и объёмнее. Появляются многочисленные фреймворки, которые помогают держать этот хаос под контролем. Backbone, ember, angular и другие создали, чтобы помочь писать чистый, модульный код. Фреймворки уровня приложения — это тренд. Его дух присутствует в JS среде уже какое-то время. Не удивительно, что создатели браузеров решили обратить на него внимание.
Читать дальше →

Трюки с CSS-анимациями: мгновенные изменения, отрицательные задержки, анимация transform-origin и другое

Reading time14 min
Views221K
Применяя CSS-анимации в повседневной работе, я постепенно выработал привычку экспериментировать с ними в свободное время. Постоянно пытаясь реализовать очередную интересную задумку с использованием как можно меньшего числа элементов HTML, я обнаружил немало способов сделать с помощью CSS довольно неочевидные вещи. В этой статье я хочу поделиться некоторыми из них.

Быстрое изменение состояния посреди анимации

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

@keyframes toggleOpacity {
  50% { opacity: 1; } /* Turn off */
  50.001% { opacity: 0.4; }

  /* Keep off state for a short period */

  52.999% { opacity: 0.4; } /* Turn back on */
  53% { opacity: 1; }
}

Вот как я использовал этот приём для имитации мигающей неоновой вывески с помощью прозрачности и свойства text-shadow:


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

Масштабировать просто

Reading time8 min
Views21K
От B2C-порталов ожидается прежде всего масштабирование. К сожалению, масштабирование слишком часто объявляется вопросом Технологии — достаточно выбрать модную технологию и все проблемы решены. То, что это не так, может проявиться, позднее всего, уже в production mode (на рабочей системе).
Вместо того, чтобы махать технологической булавой, расскажу о том, как при помощи продуманной архитектуры и сознательного отказа от модели данных разработать высоко доступный (highly available), масштабируемый (scalable) портал. Первая часть опишет общие концепты, а возможные сценарии и их решения последуют.
Читать дальше →

Проектирование графического интерфейса пользователя

Reading time6 min
Views184K


Введение


В современном мире миллиарды вычислительных устройств. Еще больше программ для них. И у каждой свой интерфейс, являющийся «рычагами» взаимодействия между пользователем и машинным кодом. Не удивительно, что чем лучше интерфейс, тем эффективнее взаимодействие.

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

Для себя я начал с постановки вопросов: общие принципы, какие элементы интерфейса(ЭИ) создать, какой у них должен быть дизайн, где их правильно размещать и как они должны себя вести.
Ниже я постараюсь ответить на эти вопросы.
Читать дальше →

Дайджест интересных материалов из мира веб-разработки и IT за последнюю неделю № 91 (5 — 11 января 2014)

Reading time6 min
Views58K
Предлагаем вашему вниманию подборку с ссылками на полезные ресурсы, интересные материалы и IT-новости


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

45 Типсов-Триксов и Практик JavaScript

Reading time17 min
Views18K
Одним вечером делать нечего, листая белые страницы интернета, в поисках чего бы такого мне почитать на сон грядущий, наткнулся я на одну занимательную статейку – на неизвестном мне ресурсе, от автора которого знать не знаю, слыхать не слыхал. Чтиво оказалось довольно интересным, с учетом того, что близко по роду деятельности, по форме и ее содержанию.

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

Естественно, что все ниже изложенное отнюдь не есть истина последней инстанции, как на библии, на ней клясться я бы не советовал. Но может быть кто-то откроет какие вещи с новой стороны, а кто – то покритикует, высказав свое ЧСВешное: «Фи фи фи, фа фа фа!».
Однако обо всем по порядку в моем своевольном от лица первого…
Читать дальше →

Опыт установки ownCloud 6 на Debian 7 wheezy

Reading time8 min
Views84K
image

Здравствуйте, хабравчане! Сегодня я хотел бы рассказать о персональном облачном хранилище ownCloud и его установке.

Для нас уже стало обыденным использование таких сервисов как Dropbox, Google Drive, SkyDrive или даже Облако Mail.Ru, мы пользуемся их услугами каждый день не обращая внимание на явные недостатки тех или иных серверов. На одном, сервисе мало места, на другом нет локализации, на третьем ненадежное хранилище, на четвертом кривой интерфейс и так далее, но у всех этих сервисов есть общий существенный недостаток — ваши данные всегда хранятся на неконтролируемых вами серверах. В случае когда необходимо использовать сервисы для размещения данных не имеющих для вас большой ценности — этих сервисов должно полностью хватить. В случае если, необходима защита контента, полная конфиденциальность, безопасность, неограниченное количество свободного места, возможность организовать многопользовательский доступ для работы в группах, контроль версий, синхронизация, возможность просматривать документы, таблицы, изображения, видеоматериалы, аудиозаписи, заметки из любой точки мира без необходимости их загрузки — ownCloud это то что вам нужно.

Давайте подробнее рассмотрим ownCloud и попробуем его установить
Читать дальше →

NinjaMock — бесплатное приложение для прототипирования интерфейсов

Reading time6 min
Views179K
Привет %username%! У нас отличные новости: вышла официальная версия NinjaMock — онлайн-сервиса для создания прототипов. Теперь ты можешь рисовать отличные прототипы веб- и мобильных приложений совершенно бесплатно!

Узнай, как это возможно и почему NinjaMock лучше всех!

Как выбрать название для IT продукта и IT компании

Reading time9 min
Views107K
Мне было немного странно видеть, что в таком замечательном ресурсе мало обсуждения и самой темы о торговых марках, то есть наименовании IT продуктов и компаний (“торговой марки”, “торгового наименования”, “ТМ”, “trademark”). Очевидно, что любой программист и участник IT рынка (а особенно те, кто пишут свои продукты), рано или поздно столкнется с этим вопросом. Поэтому, чем раньше IT-шники об этом будут задумываться, тем меньше будет проблем в их бизнесе в будущем.

Итак, постараемся восполнить пробел и открыть тему торговых марок. Очевидно, что с точки зрения программирования легко повторить и tetris, и facebook, и любые «фермы». Но попробуйте раскрутить свой продукт (клон он или нет) с похожими на эти продукты названиями — тут же владельцы (вернее их юристы) вас закроют со всех ресурсов. С другой стороны, если ваш продукт становится популярным, то тут же назревает необходимость защитить его от клонов и сделать так, чтобы другие не использовали и не забивали вашу марку в свои ключевые слова. Если коротко — это и есть причина, по которой торговая марка выступает одним из основных параметров оценки и стоимости любого IT проекта при его финансировании, продаже и заключении солидных контрактов.
Читать дальше →

10 потенциальных SQL ошибок, которые делают программисты

Reading time6 min
Views234K
Оригинал статьи носит название «10 SQL ошибок, которые делают Java разработчики», но, по большому счёту, приведённые в ней принципы можно отнести к любому языку.



Java программисты мешают объектно-ориентированное и императивное мышление в зависимости от их уровня:
— мастерства (каждый может программировать императивно)
— догмы (шаблон для применения шаблонов где-либо и их именование)
— настроения (применять истинный объектный подход немного сложнее чем императивный)

Но всё меняется, когда Java разработчики пишут SQL код.
Читать дальше →

Собираем проект на RAM-диск при помощи Maven

Reading time3 min
Views12K
За 10 лет разработки веб-приложений с использованием технологий Java я успел повидать огромное число коллег-программистов и познакомиться с их методами организации рабочего процесса. И, к моему удивлению, абсолютное меньшинство когда-либо задумывалось над использованием RAM-диска для сборки проектов. Я думаю, что такая элементарная оптимизация просто не приходит в голову, постоянно занятую текущими задачами, дедлайнами и просто жизненными проблемами.

А между тем, сборка в память обладает двумя очень значительными преимуществами:
  • Значительное увеличение скорости сборки за счет отсутствия операций ввода-вывода на жесткий диск (в большей степени это касается классических жестких дисков, особенно со скоростью вращения 5400 оборотов в минуту)
  • Увеличение времени жизни вашего SSD за счет перемещения интенсивных операций записи в память

Если учесть, что в последние годы сильно вырос объем оперативной памяти на компьютере среднестатистического разработчика и повсеместно начинают применяться SSD, то аргументов «против» практически не остается.

Главная цель этой небольшой статьи — вызвать мысль: «А ведь действительно! И как я раньше об этом не подумал?».

Я опишу пример реализации такого подхода в Linux. Действия в других операционных системах будут практически идентичными, за исключением методов создания самого RAM-диска.

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

Использование generic wildcards для повышения удобства Java API

Reading time6 min
Views157K
Доброго времени суток!

Этот пост для тех, кто работает над очередным API на языке Java, либо пытается усовершенствовать уже существующий. Здесь будет дан простой совет, как с помощью конструкций ? extends T и ? super T можно значительно повысить удобство вашего интерфейса.
Читать дальше →

7 способов улучшения процесса разработки адаптивного дизайна

Reading time10 min
Views45K
image

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

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

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

16 инструментов для создания прототипов

Reading time5 min
Views496K


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

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

16 инструментов со ссылками и их краткое описание

Хитрые задачи по Java

Reading time7 min
Views117K
Совсем недавно я сдал OCA Java SE 7 Programmer I. За время подготовки успел решить огромное количество задач и извлечь из них много тонких моментов языка. Самые интересные и ловкие — сохранял на будущее. И вот у меня накопилась небольшая личная коллекция, лучшую часть которой я здесь и опишу.

В замечательной статье Знаешь ли ты JAVA, %username% и её второй части автор тоже поделился опытом после подготовки. Однако я пришёл к выводу, что могу добавить что-то своё. Так и зародилась эта статья.

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

Как мы выбирали инструмент прототипирования. Часть I

Reading time6 min
Views23K

Между разработчиками ПО и пользователями ситуации непонимания имеют место достаточно часто. Пользователь хочет получить эффективный инструмент для решения тех или иных задач, к тому же простой в освоении и удобный в использовании, но имеет весьма приблизительное представление о специфике работы программиста. Программист же зачастую имеет весьма и весьма приблизительное представление о круге задач, с которыми имеет дело пользователь. То, что разработчику кажется блестяще реализованным, конечному пользователю может показаться неудобным. На вещи, которые представляются вполне очевидными пользователю, программист может вообще не обратить внимания. (Подробный анализ этих проблем см., например, в книге Дэвида Платта с провокационным, но выразительным названием «Софт — отстой! И что с этим делать?»). Как избежать ситуаций непонимания и помочь программисту и пользователю найти общий язык? (Данная тема уже не раз становилась предметом исследования представителей самых разных областей знаний — программистов, психологов, специалистов в области эргономики. Подробный и интересный обзор литературы по теме — здесь)

Создание приложений и веб-сайтов представляет собой сложный процесс, в который вовлечены люди разных профессий и разного склада мышления: программисты, дизайнеры, менеджеры. Перед каждым из этих людей стоит строго определенная задача: программист пишет код, дизайнер заботится о визуальной привлекательности, менеджер осуществляет контакт с клиентом. Как привести их работу, что называется, к общему знаменателю? Как обеспечить взаимопонимание всех участников процесса разработки?

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

Прототипы JavaScript — программистам на C/C++/C#/Java

Reading time10 min
Views31K
JavaScript отличается от многих других «объектно-ориентированных» языков программирования тем, что в нём объекты есть, а классов — нет. Вместо классов в JavaScript есть прототипные цепочки и некоторые другие хитрости, которые требуют времени на осмысление. Перед профессиональными программистами в других языках при переходе на JavaScript встаёт проблема быстрого вхождения в его объектную модель.

Этот текст написан для того, чтобы дать начинающему или эпизодическому разработчику на JavaScript представление о способах создания объектов в JavaScript, от простого «структурного», как в языке C, к более «объектно-ориентированному», как в C++/C#/Java.

Статья может быть рекомендована как новичкам в программировании, так и бэкенд-программистам, пишущим на JavaScript только эпизодически.
Читать дальше →

Инструменты быстрого прототипирования

Reading time9 min
Views206K
Прототипы, как инструменты дизайна, находятся на подъёме, и вот почему. Я твёрдо верю, что прототипирование помогает нам в процессе создания качественных пользовательских интерфейсов. Мы работаем в мире богатых, обладающих динамикой интерфейсов пользователя как в сети, так и на наших устройствах. Интерфейсы, которые мы создаём, интерактивны, откликаются на воздействие пользователя и обладают эмоциями. Прототипы позволяют сформулировать чувства и функции дизайна так, как этого не могут сделать простые экранные формы. Но как выбрать лучший инструмент прототипирования для работы?
Много текста. Читать дальше

Java-программист в Петербурге. Обзор рынка труда с точки зрения соискателя. Часть 3/3. Какие бывают работодатели

Reading time6 min
Views35K
Часть 1/3. Какие бывают 'плюшки'.
Часть 2/3. Подводные камни для «новичка».

Какие бывают работодатели. Характерные особенности.


Вместо краткого вступления, одну закономерность можно назвать сразу: чем длиннее и крупнее проект, тем древнее технологии. Хотите на практике освоить новые технологии — участвуйте в стартующих проектах длиной 3-6 месяцев.

  • Фирмы, работающие на Министерство обороны и подобные структуры.
    Секретность, используется относительно узкий набор технологий — которые сертифицированы в ФСБ. Например, Java 1.6 и Tomcat сертифицированы, а EJB-контейнеры не сертифицированы, вместо них может использоваться самописная недо-пародия. Что хорошего в самописных недо-пародиях — разработчик, что обычно рядом и доступен для общения, что плохого — какая-то мелкая функция, которая есть, но её пока (почти год) не использовали, но которая внезапно понадобилась тебе, — может просто тупо не работать (но можно заставить разработчика быстро починить).
Читать дальше →

Information

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