IT Kniga
Интернет-магазин компьютерной литературы

HTML, CSS, Javascript

[Из песочницы] От var b до собеседования

JavaScript - habr.ru - Сб, 17/11/2018 - 16:07
Вы почти закончили универ или колледж? Вас пригласили на собеседования, но вы идете туда без подготовки? У вас нет образования (высшего), но хотите работать программистом или в сфере IT? Речь пойдёт по большей степени о поиске работы, я буду говорить лишь за свой город (Челябинск) т.к. искал работу именно здесь.


Читать дальше →
Категории: HTML, CSS, Javascript

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

JavaScript - habr.ru - Пт, 16/11/2018 - 13:39
В предыдущей статье я подробно рассказал о нашем опыте создания веб-сервиса/мобильного приложения для ведения личного дневника. Актуальная версия приложения (минимальная работоспособная версия уже выложена в Google Play) разрабатывается на React Native, и вот на нем мы и остановимся подробно сегодня.

Рассказываем о собственном опыте работы с фреймворком, способах расширения функционала, «подводных камнях» (куда ж без них!) и как мы их обошли.

О фреймворке в целом
Немного о виновнике торжества — React Native. Он все-таки хорош!

Для тех, кто в достаточной степени знает JavaScript и тем более NodeJS — он очень хорош. Если же есть опыт с React, ну или хотя бы есть понимание ее идеи, механизма — он просто великолепен!

Главное, что на выходе получается действительно нативное приложение. Расширения и плагины покрывают практически 99% типовых задач. Оставшийся процент при острой необходимости можно дописать на родных языках (java, object-c) и подключить к React Native приложению.

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

Сначала ему не понравилась версия NodeJS. Потом версия npm. Потом версия Android SDK, потом версия Android tools, потом… Писать про то, как все проблемы решились, смысла нет, ибо с того момента все вышеперечисленное ПО обновило свои версии и инструкции будут неактуальны.

Просто знайте: узкое место React Native — среда сборки. Будьте готовы к штудированию google, чтению форумов и stackoverflow. На развертывание в итоге потратили: Ubuntu 12.6 — 3 дня, Win10 — 2 дня. Как ни странно, на «винде» все оказалось проще, ну, или просто на ubuntu «шишек набили» и уже понимали, что и куда подсовывать.

На заметку, вдруг кому пригодится: код, представленный ниже, решил все проблемы с совместимостью версий sdk у дополнений при компиляции проекта.
Читать дальше →
Категории: HTML, CSS, Javascript

[Перевод] Руководство по JavaScript, часть 3: переменные, типы данных, выражения, объекты

JavaScript - habr.ru - Чт, 15/11/2018 - 09:00
Сегодня, в третьей части перевода руководства по JavaScript, мы поговорим о разных способах объявления переменных, о типах данных, о выражениях и об особенностях работы с объектами.

Часть 1: первая программа, особенности языка, стандарты
Часть 2: стиль кода и структура программ
Часть 3: переменные, типы данных, выражения, объекты


Читать дальше →
Категории: HTML, CSS, Javascript

[Из песочницы] Как строить и построить

JavaScript - habr.ru - Ср, 14/11/2018 - 18:29
Предыстория

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


  • валидировать типы данных;
  • задавать дефолтные значения вместо невалидных полей или элементов;
  • удалять невалидные части объекта или массива;
  • получать сообщение об ошибке;

В основе которой будет:


  • Легкость в освоении
  • Читабельность получаемого кода.
  • Легкость модификации кода

Для достижения этих целей была разработана библиотека валидации quartet.

Читать дальше →
Категории: HTML, CSS, Javascript

Оптимизация обработки событий в Angular

JavaScript - habr.ru - Ср, 14/11/2018 - 15:11
Введение

Angular предоставляет удобный декларативный способ подписки на события в шаблоне, с помощью синтаксиса (eventName)="onEventName($event)". Вместе с политикой проверки изменений ChangeDetectionStrategy.OnPush подобный подход автоматически запускает цикл проверки изменений только по интересующему нас пользовательскому вводу. Иными словами, если мы слушаем (input) событие на <input> элементе, то проверка изменений не будет запускаться, если пользователь просто кликает по полю ввода. Это значительно улучшает
производительность, по сравнению с политикой по умолчанию (ChangeDetectionStrategy.Default). В директивах мы также можем подписаться на события на хост-элементе через декоратор @HostListener('eventName').


В моей практике нередко встречаются случаи, когда обработка конкретного события требуется только при выполнении какого-либо условия. т.е. обработчик выглядит примерно так:

Читать дальше →
Категории: HTML, CSS, Javascript

Меню для меню, гриды или Бутстрап, целесообразность удобства


Привет, Хабр! Давно я сюда ничего не писал, со времён моего золотого поста про переход Opera на WebKit прошло уже пять лет. Но тут появился повод: завёл себе блог на Ютубе. Чтобы понять, зачем и что это такое — смотрите пилот. Если коротко: чтобы разбирать сайты и отвечать на вопросы. А сейчас перед вами 9-й выпуск с ответами на вопросы. Под катом подробности, ссылки, почта для связи и спойлер с остальными видео. Если меня здесь не съедят живьём — буду продолжать постить сюда раз в неделю новые.

Читать дальше →
Категории: HTML, CSS, Javascript

[Из песочницы] CI для фронтенда: Gitlab, Traefik, Docker

JavaScript - habr.ru - Ср, 14/11/2018 - 07:44
В каждом уважающем себя проекте должны участвовать QA инженеры. Ежедневно перед ними будет стоять задача проверки выполнения задач в отдельных ветках. Очень часто процесс перехода на нужную ветку, сборки и тестирования занимает много времени, к тому же, локально не всегда возможно полностью воссоздать максимально идентичное боевому окружение.

Цель данной статьи — показать простую технику настройки стенда на несколько веток. Данная статья написана разработчикам от разработчика, поэтому вряд ли будет представлять существенный интерес для профессиональных DevOps инженеров.
Читать дальше →
Категории: HTML, CSS, Javascript

Рассылай и властвуй: инструменты для создания и тестирования рассылки



Верстать электронные письма — это боль. Верстать и тестировать адаптивные письма с интерактивом (например, с формами и слайдерами) — боль в квадрате. Однако, не всё не так плохо, если выбрать правильные инструменты. В статье расскажу об email-фреймворках — MJML и Foundation for Emails — и моих любимых ресурсах для тестирования рассылки — Litmus и Email On Acid.
Победить Outlook
Категории: HTML, CSS, Javascript

Как настроить установку переменных окружения Nuxt.js в рантайме, или Как сделать всё не как все и не пожалеть

JavaScript - habr.ru - Втр, 13/11/2018 - 15:11

(Иллюстрация)

Senior web developer’ы Антон и Алексей продолжают рассказ о непростой борьбе с Nuxt. В предыдущем раунде битвы с этим фреймворком они показали, как запустить проект на Nuxt так, чтобы все были счастливы. В новой статье поговорим о реальном применении фреймворка.

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

После пары раундов обсуждения решили не полагаться на традиционный подход с только серверным рендерингом — но и не загонять себя в ловушку клиентского рендеринга. Как итог мы начали строить решение на базе Nuxt.js.
Читать дальше →
Категории: HTML, CSS, Javascript

Частичка программы HolyJS 2018 Moscow

JavaScript - habr.ru - Втр, 13/11/2018 - 12:39


HolyJS 2018 Moscow уже совсем скоро. Конференция состоится 24–25 ноября.

В этот раз программа получилась весьма разнообразной, однако несложно выделить главные тенденции:

  • Доклады из первых рук (#firsthand) — доклады о инструментах/решениях от их авторов. Мы особенно тщательно подошли к выбору выступающих в этом направлении.
  • Доклады о фундаментальных вещах (#fundamentals). Такие доклады необходимы всегда, особенно в нашей юной экосистеме.
  • Доклады, затрагивающие Node.js (#node). С каждой конференцией в отзывах мы видим призыв «еще больше про nodejs!», мы это слышим и пытаемся искать действительно качественные доклады в данном направлении.
  • Также получилось немало докладов про IoT (#iot) и инструменты (#tools).

Направления направлениями, но основа любой конференции — крутые спикеры, давайте взглянем на треть наших спикеров и познакомимся с ними поближе. Читать дальше →
Категории: HTML, CSS, Javascript

[Перевод] Введение в React Hooks

JavaScript - habr.ru - Втр, 13/11/2018 - 12:38


Если вы читаете Twitter, вы, вероятнее всего, знаете что Hooks  -  это новая фича React, но вы можете спросить, как мы на практике можем их использовать? В этой статье мы покажем вам несколько примеров использования Hooks.
Одна из ключевых идей для понимания заключается в том, что Hooks позволяют использовать state и другие возможности React без написания классов.
Читать дальше →
Категории: HTML, CSS, Javascript

[Перевод] Руководство по JavaScript, часть 2: стиль кода и структура программ

JavaScript - habr.ru - Втр, 13/11/2018 - 09:00
Сегодня мы публикуем перевод следующей части руководства по JavaScript. Здесь мы поговорим о стиле кода и о лексической структуре программ.

Часть 1: первая программа, особенности языка, стандарты
Часть 2: стиль кода и структура программ
Часть 3: переменные, типы данных, выражения, объекты


Читать дальше →
Категории: HTML, CSS, Javascript

Занимательный JavaScript: Без фигурных скобок

JavaScript - habr.ru - Втр, 13/11/2018 - 07:20


Меня всегда удивлял JavaScript прежде всего тем, что он наверно как ни один другой широко распространенный язык поддерживает одновременно обе парадигмы: нормальные и ненормальное программирование. И если про адекватные best-практики и шаблоны прочитано почти все, то удивительный мир того, как не надо писать код но можно, остается лишь слегка приоткрытым.


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

Читать дальше →
Категории: HTML, CSS, Javascript

[Перевод] Руководство по JavaScript, часть 1: первая программа, особенности языка, стандарты

JavaScript - habr.ru - Пнд, 12/11/2018 - 10:00
Недавно мы провели опрос, посвящённый целесообразности перевода этого руководства по JavaScript. Как оказалось, около 90% проголосовавших отнеслись к данной идее положительно. Поэтому сегодня публикуем первую часть перевода.



Это руководство, по замыслу автора, рассчитано на тех, кто уже немного знаком JavaScript и хочет привести свои знания в порядок а также узнать о языке что-то новое. Мы решили немного расширить аудиторию этого материала, включить в неё тех, кто совершенно ничего не знает о JS, и начать его с написания нескольких вариантов «Hello, world!».

Часть 1: первая программа, особенности языка, стандарты
Часть 2: стиль кода и структура программ
Часть 3: переменные, типы данных, выражения, объекты
Читать дальше →
Категории: HTML, CSS, Javascript

«Я просто энтузиаст проекта и пользователь языка Dart» — интервью с Ari Lerner, автором знаменитой ng-book

JavaScript - habr.ru - Пнд, 12/11/2018 - 09:25


Как написать девять книг по совершенно разным технологиям, включая Angular, Vue, React, React Native и другим? Что самое важное в обучении, что такое «hallway chat» и вообще, при чём тут Dart и Flutter?

Сегодня у нас в гостях автор множества книг и статей по программированию, включая ng-bookAri Lerner. Какой будет дальнейшая книга, что автор думает о таком… противоречивом языке, как Dart, и почему на конференциях так важно общаться, спрашивают ребята из программного комитета конференции HolyJS (Дмитрий DmitryMakhnev Махнёв и Евгений bunopus Кот).
Читать дальше →
Категории: HTML, CSS, Javascript

Самодокументированные микросервисы (ArangoDB + swagger)

JavaScript - habr.ru - Пнд, 12/11/2018 - 00:14
Поддержание документации к микросервисам в актуальном состоянии по прежнему требует предельной дисциплины при разработке, ну и больших трудозарат. Очень разумный подход к созданию документации предлагает, например, GraphQL, где документация неразрывно связана с программным кодом и этим гарантируется 100% соответствие документации и документируемых сервисов. Однако, непривычность подхода GraphQL для разработчиков, привыкших к REST-API, все еще затрудняет продвижение этой технологии в практическую разработку приложений. Тут же можно вспомнить и SOAP, который уже давно решил проблему соответствия документации и сервисов, но из-за переусложненности не прижился в широких массах разработчиков.

Хотелось бы найти такой стек технологий для разработки микросервисов, который обеспечил такую же самодокументируемость программного кода при разработке «традиционных» REST-API микросервисов. И он, как оказалось, уже существует.
Читать дальше →
Категории: HTML, CSS, Javascript

Дайджест свежих материалов из мира фронтенда за последнюю неделю №338 (5 — 11 ноября 2018)

Предлагаем вашему вниманию подборку с ссылками на новые материалы из области фронтенда и около него.


Читать дальше →
Категории: HTML, CSS, Javascript

Дайджест свежих материалов из мира фронтенда за последнюю неделю №338 (5 — 11 ноября 2018)

JavaScript - habr.ru - Вс, 11/11/2018 - 22:31
Предлагаем вашему вниманию подборку с ссылками на новые материалы из области фронтенда и около него.


Читать дальше →
Категории: HTML, CSS, Javascript

Заглядываем под капот нового Gmail

JavaScript - habr.ru - Вс, 11/11/2018 - 20:12

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


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

Читать дальше →
Категории: HTML, CSS, Javascript

Как я делал анимации Солнечной системы для сына-второклассника

JavaScript - habr.ru - Вс, 11/11/2018 - 10:35
Когда-то давно я получил высшее образование по физике. Позже еще самостоятельно выучился на веб-программиста. С тех пор я преимущественно работаю программистом, но продолжаю уделять время и физике, и технике (что-нибудь рассчитываю или конструирую), и науке в целом. Подобное «раздвоение» приносит интересные результаты. Оказалось, что некоторые факты в физике можно хорошо объяснить с помощью программирования.

Откуда вообще возник такой вопрос? У старшего ребенка в школе было занятие про планеты Солнечной системы. В целом, он их знает, и на вечернем небе мы видели некоторые (Юпитер, Марс, Сатурн). Но многие интересные факты остаются за пределами понимания. Не хватает наглядности, движения, может быть, интерактивности. Вот именно этот пробел в подаче материала я и захотел заполнить с помощью веб-программирования, следуя известной мудрости «лучше один раз увидеть, чем сто раз услышать».

Как вы уже догадались, в статье речь пойдет о фактах, касающихся Солнечной системы (не только о планетах). Давайте посмотрим, что есть такого любопытного в нашем галактическом уголке.
Читать дальше →
Категории: HTML, CSS, Javascript
RSS-материал