Как стать автором
Обновить
4
0.2
Отправить сообщение

Лучшие стратегии разработки фронтенда в 2022 году

Время на прочтение13 мин
Количество просмотров25K
Эта статья специально написана так, чтобы ставить перед читателями неоднозначные задачи, вызывать у них противоречивые чувства и давать им пищу для размышлений. Речь здесь пойдёт о множестве свежих идей, о которых вы, вероятнее всего, пока не слышали.

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



Ещё я постараюсь выражать свои мысли как можно проще — так, чтобы даже люди, не являющиеся разработчиками, смогли бы, хотя бы в общих чертах, меня понять.
Читать дальше →
Всего голосов 31: ↑26 и ↓5+31
Комментарии35

Как правильно верстать 2, или зачем я написал еще одну UI-библиотеку, мой первый npm-модуль?

Время на прочтение26 мин
Количество просмотров11K

Это работа является логическим продолжением моего первого подробного текста для сообщества об актуальных подходах к верстке Как верстать веб-интерфейсы быстро, качественно и интересно. Но, если в первом трактате, внимание уделялось, прежде всего, стилю кода, его качеству и эффектным современным возможностям различных препроцессоров и фреймворков, что демонстрировалось на некоторых конкретных специфических задачах, теперь хочется сфокусироваться на архитектурных или даже организационных аспектах веб-производства. Если вы не читали мой первый текст, но собираетесь при этом прочесть этот — не поленитесь перейти по ссылке и пробежать глазами самые последние разделы каждой из двух частей первого пособия: «Готовые решения» и «Песочницы». Этот текст начинает прямо с этих мест и развивает именно эти идеи: и о пагубности применения раскрученных-популярных «на все готовых» UI-«дизайн-систем»-фреймворков для создания кастомизированных веб-морд любой сложности и, о, по сути, полезности использования хотя бы минимального документирования и явных соглашений при разработке веб-GUI на фронтенде. Но я не стану тратить время, доказывая, что «ни в коем случае нельзя использовать Vuetify или AntDesign» для создания крупных UI-систем с полностью кастомным оформлением. Вам не нужно прикручивать себе огромный геморрой непроницаемый слой плохо кастомизируемого готового GUI для того чтобы написать кнопку или поле ввода! Если вам нужен датапикер — найдите и допилите что-нибудь под себя. Это понимание может только прийти или так и не придти с годами тяжелого опыта, когда вы будете постоянно тратить непростительно много своего времени на то, чтобы написать очевидно отвратительный CSS — «кряки с !important`ами поверх стилей библиотеки», выдумывать чудные костыли на javascript чтобы изменить дефолтное поведение виджетов на кастомное и хитрое-нестандартное затребованное вашими дизайнерами... И при этом ваши шаблоны, стили и js-обвязки будут превращаться во все менее читаемые запутанные нагромождения разнообразно оформленного кода, с различным подходом к наименованию и прочими бедами… Этот текст и написанный для него проект призваны наглядно показать «а как надо?».

Читать далее
Всего голосов 7: ↑4 и ↓3+3
Комментарии15

Как работает JavaScript [Объясняю визуально]

Время на прочтение4 мин
Количество просмотров44K

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

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

Читать далее
Всего голосов 7: ↑5 и ↓2+3
Комментарии12

TypeScript Native (AOT) Compiler

Время на прочтение2 мин
Количество просмотров6.9K

TypeScript Native (AOT) Compiler

Имплементация нативного Ahead-of-Time компилятора для языка TypeScript

Читать далее
Всего голосов 15: ↑9 и ↓6+5
Комментарии25

Переписка со спамерами: избранное

Время на прочтение4 мин
Количество просмотров69K

Конец XIV века, неизвестный автор: Комиссия ФАС изучает отмазки спамера.

Я радуюсь, получая спам – ведь у меня появляется новая возможность пополнить бюджет любимой страны (откуда берутся деньги на пенсии старикам, больницы, школы, домики для уточек и вот это вот все). Каждое полученное от спамеров сообщение я аккуратно пересылаю в ФАС, давая ей возможность пополнить бюджет на лишние 100-500 тысяч рублей, а потом наслаждаюсь материалами «расследований», проливающих свет на грязную подноготную «солидного бизнеса» и его подельников. Вранье, подтасовка документов и далее со всеми остановками – наслаждайтесь!
Читать дальше →
Всего голосов 361: ↑360 и ↓1+444
Комментарии187

30 сентября: Let's Encrypt и конец срока действия IdenTrust DST Root CA X3

Время на прочтение7 мин
Количество просмотров245K

30 сентября 2021 14:01:15 GMT оканчивается срок действия корневого сертификата IdenTrust DST Root CA X3.

Это событие достойно вашего внимания по той причине, что после наступления этого момента ряд устаревших систем перестанут доверять сертификатам, выпущенным центром сертификации Let’s Encrypt. С учётом того, что на текущий момент Let's Encrypt предоставляет бесплатные криптографические сертификаты примерно для 250 миллионов доменных имен, а "устаревшие системы" - это порой системы возрастом всего 5-6 лет, вряд ли окончание срока действия сертификата DST Root CA X3 пройдёт для всех гладко и незаметно. В чём причина, кого конкретно это затронет, и что можно сделать?

Читать далее
Всего голосов 82: ↑81 и ↓1+101
Комментарии245

Автоматизация для самозанятых: как интегрировать налог с IT проектом

Время на прочтение4 мин
Количество просмотров21K
С 1 января 2019 года для четырёх субъектов Российской Федерации (Москвы, Московской и Калужской областей, а также республики Татарстан) был принят закон, внедряющий пилотным проектом новый Налог на Профессиональную Деятельность (НПД). Если вкратце, его главная задача — избавить профессиональных деятелей от всех трудностей малого бизнеса: налога 6% (в случае с ИП), обязательных пенсионных взносов, сумма которых с каждым годом лишь за одного себя приближается к отметке 50 тысяч рублей, налоговой декларации. Тем самым государство поддерживает малый бизнес, предоставляя начинающим предпринимателям невысокий налог (4% за доход от физических лиц и 6% — от юридических). Если желаете больше подробностей — можете посмотреть детальную информацию в интернете.

НПД вправе пользоваться даже физические лица, которые работают в сфере IT. Как это может помочь? Например, вы разработали сервис, который работает в интернете, вы хотите принимать платежи. Вам не придётся ради такой предпринимательской деятельности регистрировать юрлицо и с самого старта решать кучу вопросов. Достаточно лишь зарегистрироваться как самозанятый и на честном слове вручную забивать каждую услугу или товар. В тот же миг разработчик сервиса задумывается: «А можно ли этот процесс автоматизировать?». И ответ здесь — «Разумеется, можно!». Статья, собственно, и заключается в том, чтобы рассказать вам, как это делается.
Читать дальше →
Всего голосов 12: ↑12 и ↓0+12
Комментарии22

Обход блокировки РКН с помощью магии Service Worker'ов

Время на прочтение6 мин
Количество просмотров24K


Приветствую, Хабр!

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

TL;DR


Суть способа в обыгрывании возможности Service Worker'ов проверять контент на подконтрольных ему страницам. Если воркер не находит определённого текста на странице — происходит редирект. Таким образом вместо заглушки провайдера о том, что сайт заблокирован пользователь переходит на незаблокированный домен.
Читать дальше →
Всего голосов 31: ↑28 и ↓3+34
Комментарии33

ML5.JS — это как TensorFlow только без нижних уровней

Время на прочтение7 мин
Количество просмотров6.4K

На Хабре есть уже множество статей об крутой библиотеке TensorFlow.js, но я так и не смог найти что-то об ml5.js - это как TensorFlow, только здесь не надо заботиться об нижних уровнях нейросети. К слову ml5.js не хуже TensorFlow, просто эта библиотека уже больше подходит для каких-то упрощенных проектов где не требуется внедрять нейронную сеть с контролем например: тензоров или оптимизитаров. Да и сама библиотека ещё хорошо подойдет для тех кто ещё свой путь в машинном обучении.

И об этом сегодня и пойдет речь в нашей статье, где мы рассмотрим функционал ml5.js, рассмотрим какие примеры уже есть и как вообще работает код библиотеки. Поэтому, начинаем кодить.

Читать далее
Всего голосов 13: ↑12 и ↓1+14
Комментарии11

Шрифты для графического дисплея? Это же очень просто

Время на прочтение6 мин
Количество просмотров21K

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

Но это лирическое начало, а рассмотрим мы в статье вопрос создания растровых шрифтов для графических дисплеев.

Читать далее
Всего голосов 45: ↑45 и ↓0+45
Комментарии75

Websocket API на nodejs по новому

Время на прочтение5 мин
Количество просмотров20K

О чем эта статья?

1. uWebsockets.js - высокопроизводительная реализация http/websocket сервера для nodejs

2. AsyncAPI - спецификация для асинхронного API, с помощью которой можно создать описание Websocket API

3. Простой пример websocket API с использованием библиотеки wsapix:
- создадим websocket сервер, используя uWebsockets.js
- настроим валидацию получаемых и отправляемых сообщений
- добавим генерацию документации из кода

Читать далее
Всего голосов 11: ↑9 и ↓2+7
Комментарии9

Что такое v9s, и почему потребовалось писать еще одну библиотеку валидации?

Время на прочтение13 мин
Количество просмотров5K

Примерно год назад фронтенд нашего проекта, в качестве фреймворка для которого используется Vue.js 2, дошел до состояния, хорошо описываемого словами "проще сжечь".

К тому времени наш нетипизированный корабль уже трещал по всем швам, и решено было убить сразу нескольких зайцев одним выстрелом: полностью перевести проект на TypeScript, внедрить Vue Composition API и решить проблемы валидации сложных форм.

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

Читать далее
Всего голосов 6: ↑6 и ↓0+6
Комментарии25

Что стоит знать при переходе на Mac

Время на прочтение9 мин
Количество просмотров95K

Вчера на Хабре вызвал шумиху пост об ужасных неудобствах Mac. В комментариях много было сказано о неинтуитивности macOS: мол, зачастую без гугления не поймёшь, как что-то сделать. И даже не узнаешь, что это вообще возможно сделать. И всё это значит, что с UX что-то не так.

Тут возникает вопрос «а поняли бы мы Windows без гугления, если бы не были знакомы с ней с детства?» Но я хочу не ввязываться в бесконечные споры «какая ОС лучше» а подойти конструктивнее. Действительно, при переходе с Windows возникает ряд неинтуитивных моментов. И чтобы при этом не приходилось гуглить кучу разных вопросов или читать длиннющие пользовательские руководства, я решил описать в одном тексте самые главные вещи, которые приходят мне в голову.

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

Читать далее
Всего голосов 147: ↑130 и ↓17+151
Комментарии403

Эффективный поиск XSS-уязвимостей

Время на прочтение21 мин
Количество просмотров45K


Про XSS-уязвимости известно давным-давно — казалось бы, нужен ли миру ещё один материал о них? Но когда Иван Румак, занимающийся тестированием безопасности, поделился методологией их поиска на нашей конференции Heisenbug, реакция зрителей оказалась очень положительной.


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


Под катом — и текст, и видео. Далее повествование идет от лица Ивана.

Всего голосов 23: ↑23 и ↓0+23
Комментарии4

Кольчуга снова на вооружении солдат

Время на прочтение5 мин
Количество просмотров8.5K
image

«Война. Война никогда не меняется…»

Знaкoмaя фpaзa? Boт тoлькo кaк-тo странно oнa звучит. Kaк жe вoйнa нe мeняeтcя, если вceгo лишь 60 лeт нaзaд чeлoвeк нaучилcя уничтoжaть цeлыe гopoдa oднoй нeбoльшoй бoмбoй? A каких то лeт 200 нaзaд пpo скорострельность и тoчнocть oгня, типичную для coвpeмeнныx бoeвыx систем, дaжe мeчтaть нe мoгли. Но фундаментально, вoйнa конечно нe мeняeтcя – мeняютcя тoлькo cpeдcтвa eё вeдeния. Пpичём инoгдa – oчeнь дaжe непредсказуемо. Oднaкo директор по исследованиям внешней политики Института Брукингса — Maйкл O’Xэнлoн, cчитaет, чтo мoжнo спрогнозировать, кaк будут мeнятьcя вoeнныe тexнoлoгии в ближaйшиe 20-25 лeт, и пpeдcтaвить, кaкими в результате cтaнут apмии будущeгo.
Читать дальше →
Всего голосов 2: ↑1 и ↓10
Комментарии12

7 причин почему вам не стоит переходить на Mac, или как справиться с этой демонической машиной

Уровень сложностиПростой
Время на прочтение12 мин
Количество просмотров215K

Mac наступает со своим чипом M1. Новичков в этой экосистеме должно заметно прибавиться. Сам я многие годы с уважением смотрел на эти интерфейсы. Слушая какой же Mac удобный, плавный и интуитивный. Какой там великолепный Trackpad, что даже мышь не нужна и бла бла бла. И вот, после 15 лет работы CAD разработчиком, я решил поменять профиль и стать программистом. А чтобы не терять мотивацию в процессе обучения, выбрал для себя наиболее наглядное направление, как мне показалось — iOS разработка. Сказано — сделано. MacBook Pro 16” уже год мой основной компьютер.

Так что же с ним не так?
Всего голосов 339: ↑260 и ↓79+259
Комментарии1164

Генерация документации с использованием JSDoc

Время на прочтение8 мин
Количество просмотров51K

JSDoc - это язык разметки, используемый для аннотирования исходного кода JavaScript с использованием комментариев. Аннотации обрабатывается различными инструментами для создания документации в доступных форматах, таких как HTML и Rich Text Format.

Читать далее
Всего голосов 7: ↑6 и ↓1+8
Комментарии6

Повышение скорости написания кода: Emmet и его использование в VSCode

Время на прочтение6 мин
Количество просмотров77K

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

Читать далее
Всего голосов 11: ↑9 и ↓2+10
Комментарии23

JavaScript: об очистке данных, хранящихся на стороне клиента, по сигналу сервера и немного о карте импортов

Время на прочтение13 мин
Количество просмотров12K


Введение


Привет, друзья!


Представляю вашему вниманию результаты небольшого исследования, посвященного очистке данных, хранящихся на стороне клиента по сигналу сервера. Речь идет об относительно новом HTTP-заголовке Clear-Site-Data. Также в этой статье мы немного поговорим про карту импортов (imports map).


Статья состоит из двух частей: теоретической и практической.


В теоретической части мы кратко рассмотрим карту импортов и более подробно Clear-Site-Data.


В практической части мы поднимем два сервера — один будет запускаться локально и, помимо прочего, обслуживать статические файлы нашего приложения, другой мы развернем на Heroku. Сначала мы запросим данные (включая куки) от серверов, сохраним эти данные в браузере с помощью трех наиболее популярных механизмов (локальное хранилище, индексированная база данных и интерфейс кеширования), затем попробуем очистить их с помощью заголовков Clear-Site-Data. Для разрешения путей импортируемых в приложении модулей мы будем использовать карту импортов.


Исходный код проекта находится здесь.

Читать дальше →
Всего голосов 2: ↑1 и ↓10
Комментарии0

6 хороших практик по HTML и CSS

Время на прочтение4 мин
Количество просмотров25K

Можно легко найти хорошие практики по любой технологии, но, к сожалению, по HTML и CSS это сделать не так просто. Недолго думая, я написал свой список из 6 кейсов, когда вы можете сделать удобный или не удобный интерфейс для пользователя только через HTML и CSS.

Читать далее
Всего голосов 10: ↑9 и ↓1+11
Комментарии18

Информация

В рейтинге
2 643-й
Зарегистрирован
Активность