Search
Write a publication
Pull to refresh
-17
0

Системный архитектор

Send message

Идеальный инструмент для создания прогрессивных веб-приложений или Все, что вы хотели знать о Workbox. Часть 2

Reading time27 min
Views9.3K

image


Что такое Workbox?


Workbox (далее — WB) — это библиотека (точнее, набор библиотек), основной целью которой является "предоставление лучших практик и избавление от шаблонного кода при работе с сервис-воркерами" (далее — СВ).


Если вы впервые слышите о СВ, то перед изучением данного руководства настоятельно рекомендуется ознакомиться со следующими материалами:



WB предоставляет следующие возможности:


  • предварительное кэширование
  • кэширование во время выполнения
  • стратегии (кэширования)
  • обработка (перехват сетевых) запросов
  • фоновая синхронизация
  • помощь в отладке

Это вторая часть руководства. Вот ссылка на первую часть.


Модули, предоставляемые WB

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

Персонализация инвайтов в приложении с использованием AppsFlyer

Reading time5 min
Views2K

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

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

Читать далее

Оптимизация веб-графики в 2021 году

Reading time9 min
Views22K
Изображения, используемые на веб-страницах, привлекают пользователей, пользователи довольно-таки охотно щёлкают по ним мышью. Изображения делают веб-страницы лучше во всём кроме скорости работы страниц. Изображения — это огромные куски байтов, которые обычно являются теми частями сайтов, которые загружаются медленнее всего. В этом материале я собрал всё, что нужно знать в 2021 году об улучшении скорости работы веб-страниц через оптимизацию работы с изображениями.



Изображения обычно имеют большие размеры. Даже очень большие. В большинстве случаев CSS- и JavaScript-ресурсы, необходимые для обеспечения работоспособности страниц — это мелочь в сравнении с тем объёмом данных, который нужно передать по сети для загрузки изображений, используемых на страницах. «Медленные» изображения могут повредить показателям Core Web Vitals сайта, могут оказать воздействие на SEO и потребовать дополнительных затрат на трафик. Изображения — это обычно тот самый ресурс сайта, который оказывает решающее воздействие на показатель Largest Contentful Paint (LCP) и на задержки загрузки сайта. Они способны увеличить показатель Cumulative Layout Shift (CLS). Если вы не знакомы с этими показателями производительности сайтов — почитайте о них в Definitive Guide to Measuring Web Performance.

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

Запросить 100 серверов нельзя оптимизировать код. Ставим запятую

Reading time7 min
Views6.6K

Можно выделить ряд алгоритмов, которые являются базовыми и лежат в основе практически каждой строчки программ, написанных на языках высокого уровня. Хорошо иметь под руками классический многотомный труд Дональда Кнута "The Art of Computer Programming", там детально разобраны многие базовые алгоритмы. Но прочесть и усвоить все — задача, требующая много усилий и времени, которая должна как-то быть мотивирована.


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


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


Является продолжением серии предыдущих публикаций.

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

Как защититься от синдрома запястного канала? 

Reading time9 min
Views61K


Наряду с компьютерным зрительным синдромом, о котором мы уже рассказывали ранее, среди IT-специалистов распространен и другой весьма серьезный недуг — синдром запястного канала. В чем проявляется данное заболевание и можно ли предотвратить его развитие? Давайте разбираться. 

Причины и симптоматика синдрома запястного канала


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

Человеческий организм имеет огромное количество подобных мест: на одной лишь руке могут развиться 8 разных туннельных синдромов. Поэтому с медицинской точки зрения называть синдром запястного канала, о котором пойдет речь в сегодняшней статье, просто туннельным синдромом, без уточнения локализации патологического процесса, некорректно. Хотя справедливости ради стоит сказать, что именно карпальный туннельный синдром (так называют синдром запястного канала неврологи) является самой распространенной формой компрессионно-ишемической невропатии из всех существующих: его общая доля в популяции составляет около 5%, а ежегодный прирост заболеваемости достигает 3 случаев на каждую тысячу населения.
Читать дальше →

Разработка REST-серверов на Go. Часть 3: использование веб-фреймворка Gin

Reading time7 min
Views40K
Сегодня, в третьей части серии материалов, посвящённых разработке серверов на Go, мы займёмся реализацией нашего REST-сервера с использованием Gin — одного из самых популярных веб-фреймворков для Go. Вот код, который мы будем тут обсуждать.



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

Рунет родился из космической гонки — и без новой космической гонки Рунет ждёт упадок

Reading time25 min
Views26K

Каким образом в нулевые в России случился бум IT? Дело вовсе не в высоких ценах на нефть. Если посмотреть на биографии и возраст лидеров движения — это сплошь математики и физики, получившие, очевидно, очень фундаментальное образование в СССР 70-80-х. И конвертировали это в «Яндекс» и далее по списку. Ну и остальные кадры оттуда же. Если в стране был такой сильный физмат, то это показатель качества образования в целом. Космическая гонка, опять же. В общем, условно, последние 20 лет СССР обеспечили первые 20 лет Рунета. Вопрос: что дальше? Советское образование кончилось 30 лет назад. Рунета не было бы, не будь этих 20-30 лет бума советского образования. Откуда бы отцы Рунета пришли тогда? Так вот, последние 30 лет — это 30 лет без бума советского образования. И кадровый голод, по-моему, уже начинается.
В России еще остается небольшое количество научных школ, работает несколько сильных университетов, есть институты, имеющие научный авторитет в мире. Тем не менее, если текущая ситуация продлится еще лет 5–10, научная база в стране будет уничтожена настолько, что создавать ее придется практически с нуля, приглашая зарубежных специалистов, в том числе и опытных менеджеров, работающих в сфере науки. (Какое будущее ждет российскую науку)
Узнать историю

Когда, зачем и почему вернутся дирижабли

Reading time9 min
Views67K


Короткая предыстория


6 мая 1937 года самый большой дирижабль в мире, «Гинденбург», сгорел при посадке на американской авиабазе Лейкхерст.

Трагедия была ужасной, в ней погибло 36 человек (35, находившихся на борту и еще один из находившихся на земле) из 97 пассажиров и членов экипажа.

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

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

Не станем рушить легенду и рассказывать о том, чем хороши были дирижабли, например, во время второй мировой войны, заметим лишь, что вовсе не беда «Гинденбурга» стала причиной того, что поток денег в дирижаблестроении к тому моменту иссяк.

image
Гибель «Гинденбурга», жуткая картина, потрясшая мир.

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

К 1937 году ситуация в воздухе радикально изменилась – теперь уже дирижаблям нечего было противопоставить юркой и быстрой винтовой авиации – и об их технологии надолго забыли, переключившись на создание самолетов, а позже и вертолетов, и «все деньги мира», в первую очередь, деньги военных ведомств, отныне закачивались именно в эти виды воздушного транспорта.
Читать дальше →

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

Reading time7 min
Views6.3K

Меня зовут Евгений Тупиков, я ведущий PHP-разработчик в Badoo и Bumble. У нас в команде более 200 бэкенд-разработчиков, которые работают над сотнями модулей и отдельных сервисов в наших приложениях. Но поначалу всё было не так масштабно. В 2006 году это был один проект, над которым работала небольшая команда. Каждый разработчик хорошо понимал, как всё устроено: легко ориентировался в коде, знал, какие есть сервисы и как они взаимодействуют между собой. Однако по мере роста проекта всё больше времени занимал поиск «хранителей знаний» — тех, кто отвечает за ту или иную функциональность и к кому можно обратиться с вопросом или предложением. 

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

Читать далее

Почему мы купились на «культ» переработок и выгорания?

Reading time8 min
Views32K
image

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

В 1987 году беспринципный Гордон Гекко из фильма «Уолл-стрит» сказал миру: жадность — это хорошо. В картине показаны одержимые работой и благосостоянием воротилы, сверхурочно трудящиеся в высоких небоскрёбах над заключением сделок и увеличением своих заработков, сметая всех со своего пути. Посыл фильма понятен — если вы живёте и дышите работой (а также обладаете достаточной моральной гибкостью), то ваша награда будет потрясающей и внушительной.

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

Гайд начинающего тимлида

Reading time14 min
Views58K

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

Всё это я проговаривал на вебинаре в Хекслете тут https://www.youtube.com/watch?v=y_HkXvFovAc

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

Общий стаж моей работы в ИТ - около 14 лет. Я начинал с системного администрирования, потом перешел в разработку, поработав как в аутсорсе, так и в продукте. Не один раз проходил путь от рядового разработчика до тимлида.

Читать далее

Вы не просите дать вам работу, вы продаёте услугу

Reading time4 min
Views41K

Изображение: businessinsider.com

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

А теперь взглянем на них с другой стороны баррикад.

Публикуешь вакансию, появляется 5000 соискателей, выбираешь 100, тратишь 2 недели на телефонный скрининг, 5 человек имеют знания, необходимые для работы.

Собеседования — это кошмар для обеих сторон.

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

Её начальник нанял обоих кандидатов, которые выделились на общем фоне. Из пяти тысяч людей обратили на себя внимание двое.

Сравнение производительности CSS и CSS-in-JS в реальном мире

Reading time7 min
Views23K
Технология CSS-in-JS заняла прочное место среди инструментов фронтенд-разработки. И возникает ощущение, что CSS-in-JS-тренд в ближайшем будущем лишь усилится. Особенно — в мире React. Например, в исследовании State of CSS, проведённом в 2020 году, приняли участие 11492 человека. Лишь 14,3% из них не слышали о Styled Components (о ведущей CSS-in-JS-библиотеке). А вот пользовались этой библиотекой более 40% участников исследования.



Мне уже давно хотелось найти серьёзный материал, посвящённый сравнению производительности CSS-in-JS-библиотек, вроде Styled Components, и доброго старого CSS. Но я, к сожалению, ничего такого, вроде сравнения их производительности на реальном проекте, а не на каком-то простом наборе тестов, найти не смог. Поэтому я решил сам сделать такое сравнение. Я перевёл реальное приложение со Styled Components на Linaria, на библиотеку, которая выполняет извлечение CSS в файлы во время сборки проекта. В результате в приложении, использующем Linaria, не выполняется генерирование стилей во время работы этого приложения на компьютере пользователя.
Читать дальше →

Длинная история про то, как мы веб-разработчика на фрилансерских сайтах искали, но так и не нашли

Reading time11 min
Views26K

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

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

Надеюсь, будет весело

Хватит везде делать микросервисы

Reading time3 min
Views30K

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


image

И вот почему...

Все врут: эпопея с NVMe-серверами и Hi-CPU

Reading time8 min
Views31K
Diskspd лучше использовать вместо CrystalDiskMark, потому что код первой на стыке с GUI второй даёт забавный баг

У нас, в RUVDS, не хватало в линейке NVMe-сервера, чтобы побыстрее и помощнее… Потому что в последний год пошла мода разворачивать на таких Битрикс и 1С. Спрос на услугу есть, у других хостингов она тоже есть и заказывается — в общем, всё шло к тому, что надо просто выбрать конфигурацию и конкретные варианты железа и закупиться во все 11 локаций по миру. А тут надо сказать, что мы поддерживаем сейчас только две конфигурации: побыстрее и помедленнее. Потому что ЗИП, потому что поддержка, потому что софт и так далее — это одна из частей политики адекватных цен. То есть добавится третья, и поменять там что-то можно будет года так через четыре.

У нас везде стоят SSD RAID (даже там, где показывается HDD по тарифу), но мы хотели сильнее, выше и быстрее.

Первое, что мы узнали, — что NVMe не объединяется в RAID нормальными способами, то есть в итоге надёжных дисков ждать не стоит. Второе — в этот же сервер мы хотели запихнуть Hi-CPU и с удивлением установили, что частота 4,5 ГГц — это не серверное, а домашнее десктопное железо и серверных решений такой частоты просто физически не бывает в природе пока.

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

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

Какой предел у предсказателя ветвлений? Проверили на x86 и M1

Reading time13 min
Views36K

Некоторое время назад я смотрел на высоконагруженную часть кода и обратил внимание на это:

if (debug) {
    log("...");
}

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

Пол Грэм: почему для детей важнее делать «Собственный Проект», чем получать хорошие оценки

Reading time9 min
Views5.9K
image

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

Какая доля великих работ была сделана людьми, которые катались на коньках в подобном смысле? Если не вся, то уж точно большая.

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

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

Вебинар «Как аргументировать свои решения и предложения». Покажем, как создавать стройную систему из аргументов

Reading time1 min
Views3.3K
17 июня Яндекс.Практикум проведёт открытый вебинар «Как аргументировать свои решения и предложения». На вебинаре расскажем, из каких элементов состоит убедительная аргументация, которая помогает лучше доносить ваши идеи до самой разной аудитории. Мы разберём несколько кейсов, потренируемся в создании собственных аргументов и попробуем объединить их в систему, которая поможет не сбиться и не растеряться на совещании или в споре.

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


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

Сервисы с подпиской должны давать своим пользователям уйти

Reading time6 min
Views7.3K
Никто не любит, когда человек бросает все и уходит. Я говорю не (только) о ситуации, когда тренер школьной команды норовит пристыдить спортсмена, который решает её покинуть. Я имею в виду момент, когда пользователь решает перестать пользоваться услугой или сервисом и хочет отменить свою подписку — эта модель бизнеса в настоящее время является наиболее популярной. Ее использует многие компании, начиная от таких гигантов как Spotify и заканчивая мелкими стартапами, такими как Stitch Fix.


Картинка: Tom Guilmard

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

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

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Registered
Activity