Обновить
256K+

Веб-разработка *

Делаем веб лучше

324,68
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

Ускорение старения современных технологий

Время на прочтение12 мин
Охват и читатели21K
Когда меня просят дать интервью, или когда приглашают выступить с рассказом о моей работе по модернизации устаревших систем, то, и так происходит всегда, все хотят говорить о мейнфреймах и о COBOL. Я так думаю, что собеседники ждут от меня хороших баек о тяготах возни со старыми системами. Эти байки интересно послушать программистам, которым о подобных вещах беспокоиться не приходится, так как их профессиональные навыки построены на современных технологиях.


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

Исследование производительности хостингов статических сайтов

Время на прочтение8 мин
Охват и читатели8K
Статические веб-сайты — это, уже довольно давно, горячая тема. Они быстры, они чрезвычайно безопасны, так как в них нет CMS, которые можно взломать. Правда, после того, как некто создал статический сайт, перед ним встаёт один очень важный вопрос: «А где этот сайт хостить?».

Этот вопрос можно перефразировать так: «Какой хостинг статических сайтов является в 2020 году самым быстрым?». Давайте это выясним!



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

Шпаргалка по регулярным выражениям

Время на прочтение4 мин
Охват и читатели50K
Доброго времени суток, друзья!

Представляю Вашему вниманию перевод статьи «Regex Cheat Sheet» автора Emma Bostian.

Регулярные выражения или «regex» используются для поиска совпадений в строке.

Ищем совпадение по шаблону

Используем метод .test()

const testString = 'My test string'
const testRegex = /string/
testRegex.test(testString) // true

Ищем совпадение по нескольким шаблонам

Используем | — альтернацию

const regex = /yes|no|maybe/

Игнорируем регистр

Используем флаг i

const caseInsensitiveRegex = /ignore case/i
const testString = 'We use the i flag to iGnOrE CasE'
caseInsensitiveRegex.test(testString) // true

Извлекаем первое совпадение в переменную

Используем метод .match()

const match = 'Hello World!'.match(/hello/i) // 'Hello'

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

Использование Grid для макетов страниц, а Flexbox — для макетов компонентов

Время на прочтение14 мин
Охват и читатели46K
Мой брат недавно отучился на компьютерщика и сейчас завершает стажировку в области фронтенд-разработки. Он узнал и о CSS Grid, и о CSS Flexbox, но в том, как он пользуется этими механизмами создания макетов, я отметил одну особенность, с которой я уже сталкивался. А именно, ему тяжело даётся принятие решений о том, когда использовать Grid, а когда — Flexbox. Например, он использовал CSS Grid для создания макета заголовка сайта. При этом он отметил, что довести проект до ума ему было нелегко, и что ему пришлось долго экспериментировать с grid-column и настраивать всё до тех пор, пока у него не получилось то, что ему было нужно.



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

Дайджест Joomla за весну 2020

Время на прочтение3 мин
Охват и читатели8.7K
После большого перерыва, почти год, я не выпускал дайджестов по Joomla.
Мы решились на большой дайджест по Joomla за весну 2020. Все главные новости из мира Joomla за весну, в одной статье.


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

Web Apps: Micro Frontend фреймворк с поддержкой Module Federation

Время на прочтение7 мин
Охват и читатели8.6K

Хочу представить фреймворк для написания микрофронтеднов с поддержкой Webpack Module Federation. Фреймворк позволяет связывать приложения написанные на любых библиотеках, ванильном JS, и даже IFrame, если дела совсем плохи.


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

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

Cлайдер с голосовым управлением на JavaScript

Время на прочтение2 мин
Охват и читатели5.9K
Доброго времени суток, друзья!

Я тут слайдер написал с голосовым управлением, распознаванием текста и его чтением (озвучиванием) средствами браузера.


Функционал:

  • Смена слайдов по нажатию кнопок или стрелок на клавиатуре
  • Тоже самое по голосовым командам «вперед» и «назад»
  • Распознавание текста на изображении, запись текста в локальное хранилище и чтение текста голосом от Google по нажатию кнопки «читать»
  • Тоже самое по голосовой команде «читать»

Код проекта.

GitHub Pages.

Многократное использование UI-компонентов в масштабах организации

Время на прочтение11 мин
Охват и читатели6.1K
Хотя React и другие библиотеки и фреймворки для веб-разработки упрощают многократное использование компонентов, сама собой такая схема работы не налаживается. В этой сфере всё ещё существуют сложные задачи, которые особенно характерны для тех случаев, когда речь идёт о масштабах крупных организаций. Решение этих задач подразумевает необходимость траты сил и времени на согласование деятельности команд разработчиков, занимающимися в организациях различными проектами. В реальности даже найти нужный программисту компонент, разработанный другой командой, это уже очень непросто.



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

  • Реализация возможности поиска компонентов. Где можно найти компонент?
  • Упрощение процесса предоставления общего доступа к компонентам. Как мне предоставить общий доступ к созданным мной компонентам?
  • Улучшение качества компонентов. Соответствует ли компонент требованиям PayPal (речь идёт о доступности, локализации, производительности, о возможностях по рендерингу компонента в мобильных средах)?
  • Поддержка совместной работы над компонентами. Как наладить совместную работу над пользовательским интерфейсом?
Читать дальше →

Зачем писать на PHP в 2020? Холиварим в режиме интерактивного подкаста на Youtube в этот четверг

Время на прочтение2 мин
Охват и читатели14K
В начале июня один из ведущих «Цинкового прода» разместил на Хабре резонансную статью «Какая ниша у языка и поможет ли PHP8 решить [его] насущные проблемы (спойлер: имхо, нет)». Незадолго до этого мы решили, что пора бы сделать доклад, зачем выбирать PHP, когда вокруг расцветают сто цветов языков. Эти вещи так совпали по времени, что захотелось устроить совместный эфир и обсудить нишу и перспективы языка — с разных точек зрения.


Подключайтесь к трансляции 18 июня в 20 часов по Москве — комментарии на ютубе обязательно попадут в выпуск. А может и с голосовым общением что придумаем.

В эфир придут:

  • Постоянные ведущие подкаста «Цинковый прод» — Антон Околелов, Никита Васильченко и Олег Грицак.
  • Максим Шамаев — автор докладов об опыте перевода древнего проекта на PHP 7, построении трассировки и логирования между микросервисами и готовящегося доклада «Зачем сегодня писать на PHP».
  • Александр Майоров, много пишет про PHP и Python на портале Geekjob.
Немного подробностей

Дайджест свежих материалов из мира фронтенда за последнюю неделю №419 (8 — 14 июня 2020)

Время на прочтение3 мин
Охват и читатели8.6K
Предлагаем вашему вниманию подборку с ссылками на новые материалы из области фронтенда и около него.

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

Laravel-Дайджест (8–14 июня 2020)

Время на прочтение2 мин
Охват и читатели5.4K

Подборка новых статей по фреймворку Laravel. Тайны Eloquent-отношений. Долгожданная загрузка файлов в Livewire. Планировщик задач без крона от Spatie. Уроки по созданию Блога, Новостного сайта и гибкой Корзины. Тесты, трейты и TDD.


Laravel Дайджест
Фото: Erika Heidi

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

Очень странные дела: JavaScript

Время на прочтение7 мин
Охват и читатели19K
Никто из обычных людей не достиг в этом мире ничего значимого.
Джонатан, «Очень странные дела»


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


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

Горячая летняя пора митапов: список из 32 событий на неделе и как получать его обновления

Время на прочтение4 мин
Охват и читатели931

Привет! Собрали события недели в один список, и сами немного удивились количеству митапов про микросервисы и про данные. А еще собрали способы получать обновления, потому что список мероприятий ниже станет неполным уже буквально завтра, когда команда сайта https://meetups-online.ru/ найдет и добавит еще пару ивентов.


Так вот, обновления можно получать из RSS, если есть привычка пользоваться ими.


Перетаскивать события из RSS в телеграм может этот бот: @EventMonkeyBot


Еще один бот, но с другой механикой — может присылать мероприятия по выбранным тэгам: @meetup_finder_bot его сделали ребята-подростки, пока учились работать в команде.


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

Ближайшие события

Договор на разработку сайта с точки зрения управления проектами (теория + образец)

Время на прочтение4 мин
Охват и читатели7.9K
Договор на разработку, формирующий правильное взаимодействие заказчика с исполнителем, закрывающий риски и регламентирующий все этапы работы — довольно непростая вещь. Мы строили свой 2 года, собирая обратную связь от клиентов с одной стороны и проектной команды с другой. Стратосфера — веб-интегратор, специализирующийся на е-коммерс, b2b и цифровой трансформации. Соответственно, вся статья дальше будет написана на примере именно веб-разработки.
Читать дальше →

10 полезных приёмов для JavaScript-программистов

Время на прочтение5 мин
Охват и читатели31K
Как всем известно, JavaScript — это язык, который очень быстро развивается. В стандарте ES2020 имеется немало новых возможностей, с которыми вам, вероятно, захочется познакомиться поближе. Честно говоря, писать JS-код можно по-разному. Различные варианты кода, направленные на решение одной и той же задачи, способны дать один и тот же результат, но некоторые из этих вариантов кода могут оказаться значительно короче и чище других. Для того чтобы сделать код качественнее и понятнее, можно пользоваться всяческими полезными приёмами. О некоторых из таких приёмов речь пойдёт в материале, перевод которого мы сегодня публикуем. Надеемся, то, о чём вы сегодня узнаете, когда-нибудь вам пригодится.


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

«А вы сайты делаете?» Сайт сайту рознь. Давайте разберёмся

Время на прочтение4 мин
Охват и читатели3.7K
Сегодня хотел бы поговорить о заказчиках, исполнителях. Речь пойдёт о простых сайтах для захвата контактов на товар\услугу. Не берём e‑commerce, сервисы и прочее.

Заказчик


Для чего вообще заказчики (предприниматели) хотят иметь собственным сайт?

Как бы мы не мечтали, что заказчики знают зачем им сайт, на деле ими движут странные мотивы и идеи.

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

Formidable, Busboy, Multer или Multiparty? Выбор npm-пакета для обработки файлов, выгружаемых на сервер

Время на прочтение5 мин
Охват и читатели9.6K
Существует немало npm-пакетов, предназначенных для разбора и обработки multipart/form-data-запросов на Node.js-сервере. Каждый из них спроектирован по-особенному. Некоторые предназначены для использования с Express.js, другие рассчитаны на автономное применение. Некоторые хранят промежуточные файлы на жёстком диске или в памяти, а некоторые — нет. Исследование всех этих пакетов и выбор того, который подойдёт именно вам, может занять определённое время. Материал, перевод которого мы публикуем сегодня, представляет собой руководство, воспользовавшись которым можно выбрать подходящую библиотеку для организации выгрузки файлов на сервер. Тому, кто подбирает подобную библиотеку, автор этого материала рекомендует сначала ответить на следующие вопросы:

  1. Нужен ли вам Express.js?
  2. Устроит ли вас сохранение где-либо промежуточных данных, или вы хотите использовать потоковую передачу данных?
  3. Если сохранение промежуточных данных вас устроит, предпочтёте ли вы, чтобы они хранились бы в памяти, или на жёстком диске?


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

Джоел Спольски: «Не юзабилити единым»

Время на прочтение10 мин
Охват и читатели5.2K
Эссе 2004 года

В течение многих лет работающие над своим имиджем умники, такие, как… ну, я, например, бесконечно болтали о юзабилити и о том, как важно сделать программное обеспечение удобным для использования. У Якоба Нильсена есть математическая формула, которую он откроет вам всего за 122 доллара: с помощью неё вы сможете рассчитать значение юзабилити. (Если ожидаемое значение юзабилити больше 122 долларов, думаю, вы получите прибыль.)

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

В этой книге на странице 31 я показал пример того, что в то время было самой популярной программой на Земле — Napster. На главном окне Napster находились кнопки для переключения между пятью экранами. В соответствии с принципом юзабилити, который называется «affordance», вместо кнопок у него на самом деле должны были быть вкладки, что я и хотел продемонстрировать этим примером.

image

И все же Napster был самой популярной программой на Земле.
Читать дальше →

AdonisJS 5 — Laravel-подобный фреймворк на nodeJS и с Typescript достойный вашего внимания

Время на прочтение2 мин
Охват и читатели8.4K
Состоялся релиз Adonis JS 5, на данный момент разработчики называют его preview версией, хотя в своем Discord они утверждают что по сути это production-ready версия фреймворка, а названа она preview потому-что еще не все необходимые пакеты были переписаны под версию 5, их скромности стоит позавидовать, от себя скажу что, версия 5 действительно заслуживает широкого внимания, на мой взгляд это один из лучших и простых фреймворков на которых стоит делать backend в 2020+ годах.
AdonisJS это Laravel-подобный фреймворк на NodeJS а теперь еще и на Typescript
Читать дальше →

Работа с данными на границе Vue.js-приложения

Время на прочтение9 мин
Охват и читатели13K
Подавляющее большинство веб-приложений как-то взаимодействует с окружающим миром. Например, с REST API серверных частей приложений или с некими внешними сервисами. Материал, перевод которого мы сегодня публикуем, посвящён обработке данных на границах приложений. В частности, речь пойдёт о том, как преобразовывать данные, поступающие в приложение из внешних источников, в правильно сформированные объекты тех типов, на работу с которыми рассчитано приложение.


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