Search
Write a publication
Pull to refresh
13
0

Frontend (JS, Vue)

Send message

Внедри это полностью. DI-in-JS

Reading time9 min
Views27K

Всем привет! Сегодня я попробую поэкспериментировать с Dependency Injection на чистом JavaScript. Тех кто не в курсе, что это за дичь и как ее готовить, приглашаю ознакомиться. Ну а у тех кто в курсе будет повод написать важный и полезный комментарий. Итак, погнали…

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

Reactjs, Material-UI with JSS. Краткий гайд

Reading time6 min
Views63K
Доброго времени суток, Хабр!

Итак, material-uireactJS's фрэймворк, предоставляющий готовые google решения для быстрой и довольно простой web разработки.

Material-UI достаточно крупная библиотека, где ключевой частью react компонентов и стилизации является @material-ui/core (целью ее использования должен быть немаленький проект).

Этот туториал не включает в себя продвинутое использование material-ui. Это мини мануал по стилизации компонентов.

Использовать material компоненты действительно не сложно, но есть нюансы использования стилизации. Об этом собственно и пойдет речь.

Рассмотрим следующее


  1. JSS и немного о синтаксисе;
  2. Стилизация классовых react, material компонентов;
  3. Стилизация функциональных с использованием хуков react, material компонентов;
  4. Стилизация посредством styledComponent react, material компонентов;
  5. Провайдер theme;
  6. Переопределение material компонентов;

GO под кат!

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

Устройство расширений для браузера Firefox (WebExtensions)

Reading time38 min
Views19K

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


Тому, кто разбирается в веб-разработке, будет несложно создать новое расширение для браузера. Сейчас большинство самых популярных браузеров поддерживает стандартную систему разработки, которая использует в основном только JavaScript, HTML и CSS, — WebExtensions.


Человеку, который никогда раньше не создавал дополнение для браузера на основе WebExtensions, может быть тяжело сразу понять, из каких основных частей оно должно состоять и что может делать. В сети Интернет есть много информации об этой системе, но для того, чтобы создать для себя общую картину, придётся потратить много времени. Эта статья поможет быстро разобраться в устройстве системы WebExtensions и покажет, как лучше ориентироваться в документации к её API. Здесь описывается расширение для браузера Firefox, поэтому почти вся информация, используемая в статье, взята с сайта MDN. Но статья будет полезна и тем, кто хочет создать расширение для других браузеров, поддерживающих WebExtensions, — в первую очередь для Google Chrome и Chromium.


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


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

Правила дизайна иконок, которые стоит запомнить

Reading time2 min
Views17K


Изображение стоит тысячи слов. Хорошо продуманное стоит еще больше. Мы видим их на дорожных знаках, в ресторанах, аэропортах и приложениях. Они могут сэкономить время, а могут создать путаницу.

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

Древности: 50 оттенков ICQ

Reading time9 min
Views46K
Недавно из поста на Хабре я узнал, что в мессенджере ICQ массово удаляют старые неактивные аккаунты. Решил проверить две своих учетки, к которым подключался относительно недавно — в начале 2018 года — и таки да, они тоже удалены. При попытке подключения или входа в аккаунт на сайте с заведомо правильным паролем получил ответ, что пароль неправильный. Получается, что у меня больше «нет аськи». Вроде бы не беда, но ощущение непривычное: больше 20 лет она у меня была, а теперь нет. Я коллекционер ретротехнологий, но не считаю себя активистом, сторонником сохранения вечных ценностей, борцом за всё старое и доброе. Все в этом мире меняется, и нечего горевать ни по седым волосам, ни тем более по последовательности из семи или девяти цифр, которая когда-то была гордо напечатана на моей визитной карточке.



Но есть повод подвести итог. ICQ живет, но меня там больше нет, а значит можно рассказать всю историю формата «я и аська» от начала и до конца. Это пост во имя ностальгии, в моих терминах — рыдалка, но не только. В очень ограниченном виде я восстановил экспириенс двадцатилетней давности, когда на рубеже веков ICQ была мессенджером номер один. Послушал те самые звуки, отправил пару сообщений самому себе. Не буду говорить, что нынче ICQ «не торт»: в конце концов своих конкурентов (AOL Instant Messenger, MSN Messenger, Yahoo Messenger) этот сервис успешно пережил. 15-20 лет назад в ICQ были реализованы почти все фичи современных средств сетевого общения, только произошло это слишком рано. Об этом и поговорим.

Законы программирования

Reading time20 min
Views60K

Законы, теории, принципы и закономерности, полезные для разработчиков


Введение


Перевод репозитория github.com/dwmkerr/hacker-laws

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

Здесь содержатся объяснения некоторых законов, принципов и закономерностей, но нет никакой агитации в их пользу. Применять их или нет – это всегда вопрос спорный, и всё зависит от того, над чем вы работаете.

Законы


Закон Амдала


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

10 отличных Github репозиториев, которые должен знать каждый веб-разработчик

Reading time3 min
Views100K

Кроме огромных репозиториев с источниками для подготовки к интервью, здесь много чего интересного


Я собрал список из десяти отличных репозиториев на Github, которые помогут вам существенно расширить свои знания.


image


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

Нишевый контент: как 10% статей дают 61% конверсий из блога

Reading time10 min
Views4.9K
Нишевый контент: как 10% статей дают 61% конверсий из блога

Раньше у нас был блог и читатели. Теперь у нас есть блог, читатели и клиенты из блога. Свою роль здесь сыграли нишевые статьи. Это статьи, где реклама продукта упакована в решение определенной проблемы в узкой нише. Рассказываем, как мы их делаем и сколько клиентов они нам приносят. И да, вы тоже так можете.

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

Декларативная фильтрация данных на фронте. JS/TS

Reading time7 min
Views9.3K


Часто ли вам приходилось писать обработчики фильтрации для ваших данных? Это могут быть массивы для отрисовки таблиц, карточек, списков — чего угодно.


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


Как же решить проблему возрастающей сложности?

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

Визуализация работы сервис-воркеров

Reading time5 min
Views17K


Доброго времени суток, друзья!

Вероятно, многие из вас слышали о таком новшестве в экосистеме JavaScript, как сервис-воркеры (Service Workers), которые являются ключевым элементом современной веб-разработки. Сервис-воркеры становятся все более востребованными, в первую очередь, благодаря популярности прогрессивных веб-приложений (Progressive Web Applications — PWA).

Когда я впервые услышал о них, я задался вопросом: «Когда мы должны использовать сервис-воркеры? В каким сценариях или контексте мы можем их использовать?»

В данной статье мы рассмотрим несколько практических примеров использования сервис-воркеров, что впоследствии, смею надеяться, сделает счастливыми ваших пользователей.

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

ЛАНИТ запускает Школу тестирования в Москве, Пензе, Сочи и Новороссийске

Reading time2 min
Views4.7K

В прошлом году в группе ЛАНИТ появилась компания, которая занимается тестированием, — «ЛАНИТ Экспертиза». Она открывает школу для тестировщиков. Лучшие выпускники смогут стать частью команды ЛАНИТ. Обучение пройдёт по всем видам тестирования. Всего в этом году планируется запустить 20 курсов. 

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

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

За 4 недели ты научишься:

  • разработке на языке Java в объеме, необходимом для написания автотестов;
  • работать с популярной системой контроля версий исходного кода Git;
  • работать с фреймворком для автоматизации сборки проектов Maven;
  • работать с современным инструментом для автоматизации действий веб-браузера – Selenium.
Читать дальше →

Не пиши одно и то же: как переиспользуемые компоненты React помогут фронтенд-разработчику быстрее создавать приложения

Reading time10 min
Views14K

Вносить однотипные изменения в три-четыре разных места в JS-коде — искусство, требующее концентрации внимания. Если элементов больше, поддержка кода превращается в муку. Поэтому для долгосрочных или крупных проектов следует писать код так, чтобы его можно было вынести в отдельные компоненты.

Я занимаюсь фронтенд-разработкой уже 10 лет и расскажу о применении компонентов для создания элементов фронтенда — это значительно упрощает жизнь фронтенд-разработчика.

Написано при поддержке Mail.ru Cloud Solutions.
Читать дальше →

5 малоизвестных возможностей JSON.stringify()

Reading time4 min
Views33K


Доброго времени суток, друзья!

В этой небольшой заметке я хочу рассказать вам о некоторых редко используемых возможностях JSON.stringify(). Возможно, они окажутся вам полезными.

JSON.stringify() часто используется при отладке для преобразования объекта или обычной строки в строку в формате JSON. Но как данный метод используется, и можем ли мы обойтись toString()? Давайте попробуем это сделать.

// создаем объект user
const user = {
    name: 'Harry Heman',
    age: 29,
    job: 'developer'
}

// преобразуем объект в строку, используя стандартный метод toString(), и выводим результат в консоль
console.log(user.toString()) // [object Object]

[object Object] — это не совсем то, что мы хотели увидеть, не правда ли?

Не спрашивайте, зачем мы вообще используем toString(). Предположим, что нам жизненно необходимо перевести объект в строку.

Теперь попробуем использовать JSON.stringify():

console.log(JSON.stringify(user)) // {"name":"Harry Heman","age":29, "job": "developer"}

Мы сделали это, Карл!

Однако возможности JSON.stringify() этим не исчерпываются.
Читать дальше →

Из разработчика в менеджеры и обратно

Reading time9 min
Views24K
Зимой 2012-го коллега предложил мне, С++ программисту с пятилетним стажем, написать первое приложение под Android. Ещё через год я начал руководить небольшой командой мобильных разработчиков, и с тех пор размеры моих команд стабильно росли. Но в прошлом году, после 2 лет руководства отделом мобильной разработки, я снова сдул пыль с любимой IDE.



Давайте расскажу, как было на той стороне, почему я вернулся в разработчики в возрасте 30+ (спойлер) и не жалею об этом.
Читать дальше →

YouTube — Ошибка. Повторите попытку позже. Идентификатор воспроизведения: <...>

Reading time3 min
Views256K


Чуть больше месяца назад стал замечать, что почти каждая попытка посмотреть видео с YouTube на десктопном компьютере начинается с сообщения об ошибке.

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

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

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

Асинхронное программирование с async/await

Reading time9 min
Views30K
Доброго времени суток, друзья!

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

Условия: базовая компьютерная грамотность, знание основ JS, понимание азов асинхронного кода и обещаний.
Цель: понять, как устроены обещания, и как они используются.
Читать дальше →

Что должен знать тестировщик бэкенда

Reading time7 min
Views103K


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

В компании, где я работаю, есть список тем с вопросами, которые мы задаём кандидатам. Я решил дополнить его, сделать более универсальным, разбить каждую тему по уровням (что нужно знать обязательно и что будет плюсом) и добавить ссылки на статьи и книги, которые можно почитать по этим темам.

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

Полное руководство по HTML-атрибутам data-*

Reading time8 min
Views103K
Представляем вашему вниманию перевод статьи, посвящённой использованию атрибутов data-*. Это — атрибуты, которые можно применять для удобного хранения в стандартных HTML-элементах различной полезной информации. Эта информация, в частности, может применяться в JavaScript и CSS.


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

Хабр Конвертер: чтобы версталось легко

Reading time3 min
Views14K
Наверняка многие из вас хотя бы однажды пользовались хабраконвертером, который официально рекомендован администрацией Хабра — https://shirixae.github.io/habraconverter-v2/. Несколько лет назад его создал хабравчанин meta4, а потом доработал Shirixae. Принцип простой: открываете гуглодок с постом, Ctrl-A, Ctrl-C и вставляете в окно конвертера. Нажимаете кнопку «Конвертировать» и получаете готовый код вёрстки, который можно вставлять в редактор Хабра и публиковать. Только перед этим нужно пройтись и поправить кое-какие мелочи.

И всё бы хорошо, если верстать приходится не слишком часто. Или посты небольшие, несложные. Но если вы верстаете помногу, и в постах есть и картинки, и таблицы, и куски кода, то из раза в раз приходится делать рутину: вставлять нужные пустые строки и убирать лишние, заменять теги <sоurce> на <cоde>, и т.д. и т.п. Мы решили потратить день, чтобы потом долетать за час, и допилили конвертер.

Новая версия лежит тут, а под катом — перечисление доработок.
Читать дальше →

Стилизация Select-Option (почти) без JavaScript

Reading time6 min
Views102K
Стилизация некоторых стандартных элементов — довольно нетривиальная задача.

Разумеется, хороший специалист может стилизовать что угодно, однако всё упирается в сложность этого действия.

Для стилизации радиокнопок и чекбоксов потребуется совсем немного времени — идея стилизации label со скрытыми input не нова, и давно и повсеместно используется.

Для стилизации остального — есть JavaScript.

Сегодня я хочу рассказать Вам о том, как можно относительно просто стилизовать выпадающие списки, с минимальным кодом JavaScript (от 0 до 26 строк) и минимальной дополнительной разметкой HTML.

Easy selects withoud JavaScript (almost)

Information

Rating
Does not participate
Registered
Activity

Specialization

Frontend Developer
JavaScript
HTML
CSS
Adaptive layout
Crossbrowser layout
BEM
Vue.js
Webpack
SCSS
Web development