Все потоки
Поиск
Написать публикацию
Обновить
215.52

JavaScript *

Прототипно-ориентированный язык программирования

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

Разворачиваем приложение Next.js с базой данных PostgreSQL и задачей Cron на облачном сервере Ubuntu Linux

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров6.3K


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


Предположим, что у нас есть приложение Next.js, данные которого хранятся в Postgres, и мы хотим запустить его в продакшн, но не хотим использовать готовую инфраструктуру Vercel. Что делать? Создать собственную инфраструктуру. К счастью, сделать это не так уж и сложно.


Основные элементы нашей системы:


  • приложение, демонстрирующее несколько мощных возможностей Next.js 15
  • база данных Postgres для хранения списка задач, создаваемых/удаляемых в приложении
  • задача Cron для удаления из БД всех задач каждые 10 мин
  • приложение, БД и задача Cron функционируют в контейнерах Docker
  • контейнеры запускаются с помощью Docker Compose на облачном сервере Ubuntu
  • сервер Nginx для перенаправления запросов HTTP (обратного проксирования)
  • домен, привязанный к серверу
  • Certbot для получения сертификата SSL из Let's Encrypt и его установки для домена

Демо приложения.


Интересно? Тогда прошу под кат.

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

Рецензия на книгу “Изучаем паттерны проектирования JavaScript, 2-е издание”

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

Когда автор Адди Османи написал первую версию книги Learning JavaScript Design Patterns в 2012 году, JavaScript еще начинал завоевывать популярность как язык для создания сложных веб-приложений. С тех пор JavaScript претерпел значительные изменения и превратился в один из самых популярных языков программирования, используемый для разработки от простых скриптов до сложных веб-приложений. Если вы совершенствуетесь в JavaScript — не пропустите второе издание этой книги в переводе от издательства БХВ Петербург.

Читать далее

Почему я не готовлюсь к алгоритмическому интервью

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

Почему я не готовлюсь к алгоритмическому интервью

И не очень люблю людей, которые к нему готовы. Когда я провожу интервью, то главное - это понять как человек думает и как решает проблемы.

К собеседованию

Расширения VSCode для комфортной работы с проектами

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

Для работы с проектами существует куча редакторов кода и IDE (VSCode, NeoVim, SublimeText, WebStorm и т.д.). В данный момент наиболее популярны VSCode и Webstorm и у каждого есть свои плюсы и минусы. Webstorm является примером прекрасного IDE от компании JetBrains, где многие вспомогательные модули идут “из коробки”. К сожалению, сейчас нет возможности легально получить доступ к этому продукту гражданам России, поэтому многим приходится искать альтернативу. Такой альтернативой вполне может стать Visual Studio Code от компании Microsoft, который имеет открытую кодовую базу, полностью бесплатный и гибко настраиваемый под ваши нужды. В данной статье мы рассмотрим пример настройки рабочего пространства VSCode для комфортной работы с нашими проектами. Я покажу вам, какими расширениями я пользуюсь для лучшего удобства и продуктивности. Эти расширения я использую давно и они хорошо зарекомендовали себя, но возможно некоторые из них могут не подойти под ваш стиль работы и написания кода. Итак, начнем!

Читать далее

Зачем нам Node.js или Angular на бэкенде

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

Всем привет! Меня зовут Александр, я разрабатываю low-code платформу Eftech.Factory в компании Effective Technologies. В этой статье я хочу поделиться тем, как и почему в стеке нашего продукта появился Node.js. Рассмотрим одно из основных преимуществ Node.js (внезапно это JavaScript) и то, как он помогает нам сэкономить время в два раза на разработку и сопровождение.

Из-за названия статьи может возникнуть путаница: чаще всего, когда речь идет об Angular на бэкенде, подразумевается Server Side Rendering (SSR). Однако в данной статье мы не будем обсуждать SSR, а сосредоточимся на переиспользовании кода и использовании Angular на бэкенде. Давайте начнем! 

Читать далее

Новый этап эволюции Vue — Vapor

Уровень сложностиСложный
Время на прочтение7 мин
Количество просмотров17K

19 октября 2024 года завершился Vue Fes Japan 2024 — традиционное событие, которое собрало множество энтузиастов и экспертов в области веб-разработки, где рассказывали о будущем экосистемы вью. На этой конференции разработчик Кевин Денг подробно представил новый этап в эволюции фреймворка Vue — Vapor Vue. Ожидается, что Vapor Vue значительно повысит скорость работы фреймворка, делая его еще более эффективным и мощным инструментом для создания современных веб-приложений. Такой шаг в развитии не только обещает ускорение производительности, но и открывает новые горизонты для гибкости и адаптивности Vue в работе над сложными проектами. В данной статье мы расскажем о самом интересном в этой презентации.

Читать далее

Мой путь в мире веб-рендеринга: от статических страниц к гибридным архитектурам

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

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

Читать далее

Знакомьтесь: input, output и model. Новые функции в Angular

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров8.6K

Привет всем! Меня зовут Егор Молчанов, я разработчик в компании Домклик.

Хочу рассказать вам о новых функциях Angular: input(), output() и model(). Они появивились сравнительно недавно и обещают в скором времени заменить привычные нам декораторы @Input и @Output. Разберëм, что они собой представляют, как использовать на практике, и как связаны с концепцией сигналов. Поехали!

Читать далее

JavaScript: структуры данных и алгоритмы. Часть 6

Уровень сложностиСредний
Время на прочтение20 мин
Количество просмотров6.2K


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


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


Сегодня мы поговорим об алгоритмах для работы с множествами.


Код, представленный в этой и других статьях серии, можно найти в этом репозитории.


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


Интересно? Тогда прошу под кат.

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

Сравнение способов отрисовки спрайтов в canvas

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров3.3K

Не так давно помогал брату сделать проект для курсовой. Необходимо было создать клиент - серверное приложение, и решено было создать небольшую браузерную игру с мультиплеером. Курсовая была сдана успешно, а у меня появилось желание сравнить различные возможные методы отрисовки изображений HTML5 Canvas, с целью найти оптимальные решения. Моё исследование было проведено из любопытства и не предлагает чего-то революционного, однако информация в статье может быть полезна, или, в крайнем случае, интересна.

Читать далее

Zod. Основные преимущества и неочевидные кейсы использования

Уровень сложностиСредний
Время на прочтение2 мин
Количество просмотров11K

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

Для простых структур можно задать валидацию буквально в одной строке:

Читать далее

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

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

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

Читать далее

Отладка и мониторинг в MobX: trace, introspection и spy

Уровень сложностиСредний
Время на прочтение13 мин
Количество просмотров2.2K

Привет, меня зовут Дмитрий, я Middle-React-разработчик с замашками сеньора, поднимающийся с самых низов без мам, пап и ипотек. В последнее время я частенько вижу ситуацию: при использовании MobX в больших проектах у людей появляются сложности с количеством перерисовок или наоборот не обновлением данных со стора. Также могут проявляться проблемы с производительностью в том числе и из-за этого. Я решил поделиться отладочными инструментами MobX, ведь это может кому пригодиться.

Читать далее

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

CI/CD для начинающих: деплой React-приложения без боли

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

Следующий шаг после разработки веб-приложения — размещение его на сервере. Независимо от сложности проекта или используемой инфраструктуры, общий процесс остается одинаковым: нужно «упаковать» код в CI/CD-конвейер и отправить на сервер. В тексте рассмотрим, как это происходит на примере простого приложения to-do list на React. Подробности под катом!
Читать дальше →

Ускоряем браузерные вычисления на коленке с помощью WebAssembly на примере генерации шума

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров3.4K

Так ли производителен WebAssembly в сравнении с JavaScript как о нем говорят? Какие подводные камни могут ожидать при попытке ускорить CPU-bound задачи и в каких ситуациях он must have? Автор предлагает рассмотреть один кейс и разобраться в этих вопросах на практике

Приступим

Svelte 5 здесь

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

После почти 18 месяцев разработки, включающей тысячи коммитов от десятков участников, Svelte 5 наконец‑то стабилен.

Это самый значительный релиз в истории проекта. Svelte 5 — это полная переработка: ваши приложения станут быстрее, меньше и надежнее. Вы сможете писать более последовательный и идиоматичный код. Новичкам в фреймворке предстоит изучить меньше материала.

Читать далее

React Native полностью переделан

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

После 6 лет разработки команда React Native представила полностью переписанную архитектуру фреймворка (0.76) – самое значительное обновление с момента создания React Native. Это результат масштабной работы над улучшением производительности, стабильности и возможностей платформы.

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

Литкод изи — это просто

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

Задумывались ли вы, где можно применить навык решения задачек а-ля литкод изи? Я встречаюсь с ними частенько, главное просто присмотреться.

Например, на Linked.in недавно ввели "игры". Я как-то глянул на них на послеобеденном кофе.

Пусть оно само

DE-1. DIY ассистент на LLM

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров14K

Привет Хабр, let's set the future.

Недавно у меня появилась идея фикс: 'Хочу собственного AI ассистента'. Казалось бы, нет никаких проблем - рынок предлагает массу готовых решений. Но моя вечная паранойя про утечку данных и стремление сделать все самому взяли верх. Решил поэкспериментировать и собрать ассистента своими руками, да еще как-то с учетом будущих возможностей для гибкой настройки. Времени на оптимизацию производительности и эстетический вид кода у меня не было, 'хочу здесь и сейчас', поэтому let me introduce this shit.

Читать далее

Почему я скептично отношусь к переписыванию JS-инструментов на «быстрых» языках

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров19K

Я написал много JS-кода, и мне нравится JavaScript. Самое же главное, я выработал необходимые навыки для понимания, оптимизации и отладки этого кода, от которых не хочу отказываться.

Поэтому у меня вполне естественно возникает беспокойство по поводу охватившей сферу разработки одержимости переписывать каждый инструмент Node.js на быстрых языках вроде Rust, Zig, Go и прочих. Причём ценность этих языков я нисколько не преуменьшаю. Я даже принимал некоторое участие в разработке Servo, да и на столе прямо сейчас передо мной лежит книга по Rust. Но в целом основную часть своей карьеры я вложил в освоение всех нюансов JavaScript, и на данный момент этот язык для меня самый удобный.

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

Вклад авторов