Выпуск Joomla Community Magazine за январь 2024 года: краткий обзор

Вышел в свет первый в 2024-м году, январский выпуск журнала сообщества Joomla. Перевели для вас краткое содержание статей и интервью этого номера.
Делаем веб лучше
Выпуск Joomla Community Magazine за январь 2024 года: краткий обзор
Вышел в свет первый в 2024-м году, январский выпуск журнала сообщества Joomla. Перевели для вас краткое содержание статей и интервью этого номера.
Как отключить кеширование браузера с помощью мета-тегов HTML.
Правильный минимальный набор заголовков, который работает в наиболее распространённых браузерах:
Cache-Control: no-cache, no-store, must-revalidate
Pragma: no-cache
Expires: 0
Где:
Cache-Control
для HTTP 1.1
Pragma
для HTTP 1.0
Expires
для proxies
Препарируем Material Design и находим родовые травмы
Подробнейшая документация, но..
Неконсистентный и неуниверсальный дизайн.
Сомнительный пользовательский опыт чуть ли не в каждом компоненте.
Реализация от Гугла в Вебе безбожно тормозит и глючит.
Тяжёлая поддержка разных форм-факторов и инпут-девайсов.
В продолжение темы: Бестолковый дизайн, Mathematics Driven Design.
Мета: Форум Гипер Дев, Канал с новостями, Донаты.
Доступна локализация на белорусский язык для Joomla 4 и 5
Итак, появилась полная локализация на белорусский язык (беларуская мова, be-BY) для актуальных версий Joomla 4 и 5.
Скачать можно с официального ресурса Joomla:
Локализация для Joomla 4 (Belarusian language for Joomla 4)
Локализация для Joomla 5 (Belarusian language for Joomla 5)
Кстати, добро пожаловать в Joomla-чат в Telegram
Пару месяцев назад я упоминал codeium — бесплатную альтернативу копайлоту. На новогодних праздниках наконец-то попробовал его на своём пет-проекте, и довольно часто он действительно ускоряет разработку.
В текущих реалиях нужно включать VPN, чтобы работать с ChatGPT из России, здесь же есть встроенный чат, который работает без VPN ?.
Хабр позволяет добавлять только одну картинку в посты, поэтому остальные примеры здесь.
WT JMoodle library - библиотека для работы с REST API LMS Moodle
Нативная библиотека для Joomla 4 / Joomla 5 для работы с методами REST API Moodle.
Возможности библиотеки
выполнение внешних запросов к штатному REST API Moodle с помощью Joomla API
проверка структуры данных и типов данных для методов перед выполнением запроса. Если в схеме обнаружена ошибка - запрос не будет выполнен.
начата работа над созданием коллекции Joomla Form
(ex. JForm
) полей для использования их в расширениях - плагинах, модулях, компонентах и т.д.
в системном плагине можно посмотреть список доступных для работы методов REST API Moodle
методы для сохранения сопоставления пользователей Joomla и Moodle в собственной таблице в базе данных
возможность выполнения запроса на свою кастомную точку входа в Moodle, а не к REST API
<?php
use Webtolk\JMoodle\JMoodle;
$moodle = new JMoodle();
/**
* Request method.
*
* @param string $method Moodle REST API method
* @param array $data data for Moodle REST API method
*
* @return array
*/
$result_jmoodle = $moodle->request('core_webservice_get_site_info');
Топ перлов:
В JS нет переменных и присваивания, но есть потоки
Все числа выделяются в куче
TS не годится для разработки
let и const - главные перфоманс ботлнеки
Упоминаемые материалы:
Мета-сслыки:
Форум Гипер Дев: https://t.me/h_y_o_o
$mol_news: https://t.me/mol_news
Донаты: http://boosty.to/hyoo
Препарируем Tailwind CSS и находим родовые травмы
Бандлинг лишь используемых стилей, но..
Тормоза при любой динамике.
Раздутый HTML.
Крайне слабая кастомизация стороннего кода.
Сложный массовый рефакторинг.
Куча стилей компонента в одну строку.
Копилка благодарностей: https://boosty.to/hyoo
Препарируем StyleX и находим родовые травмы
Решение от большой компании, но..
Раздутый как CSS, так и HTML, и даже JS
Несемантичный CSS и HTML
Околонулевая типизация без автодополнения
Много бойлерплейта
Зависимость от Babel
Тормозная сборка
Сложная отладка
Копилка благодарностей: https://boosty.to/hyoo
Возможно, вы уже читали мою статью про ИТ шансон и проект Витя Айтишник! Если нет, то оч советую)
В данном посте же речь пойдет об ощущении нового года... О том что дает нам ощущение праздника. Мандарины... Запах елки... И голубой огорек!
И так как все таки мой эксперемент "Витя Айтишник" показывает мало мальски прикольные результаты, я выпустил специальный новогодний альбом с ИТ песнями!
Пусть ваши карпораты наполнятся ИТшными напевами и дурацким юмором)
В любом случае) Для меня уже успех если кого то он просто улыбнет)
Спасибо что поддержали это прект)
A? Frontend #5: Гослинг, микросервисы, CI/CD, K8S, T-shape
22 декабря проведем митап сообщества A? Frontend для всех, кто хочет развиваться во фронтенд-разработке. В программе четыре доклада.
Зачем ты сюда пришел?
Работает ли «нетворкинг»? Почему он должен работать? Как именно в вашей карьере он может помочь? Нужно ли выталкивать себя из зоны комфорта и идти знакомиться с людьми? Что такое сильные и слабые связи? Выжил ли Гослинг в конце драйва?
Спикер: Максим Булавчиков, Frontend-разработчик в Сбере.
Программирование без стресса: ключевые принципы
Пропустил пробел? Ошибка. Неверно индексировали массив? Ошибка. Не разобрались в нюансах работы исходного кода? Ошибка. И причина многих из этих ошибок — когнитивные проблемы.
Спикер: Алексей Табула, Frontend-разработчик в BetaRobotics
Зачем становиться T-shape?
Особенности T-shape специалистов, их важность для команды, польза для самого специалиста, как развить в себе T-shape навыки.
Спикер: Александра Моисеева, Frontend-разработчик в Тинькофф
Страшный сон Frontend'еров — микросервисы, CI/CD, pipeline, kubernetes
Какое отношение эти слова имеют к Frontend'у? Как мы дошли до жизни такой? Чтобы разобраться, изучим историю развития архитектуры web-приложений от простых HTML-страниц до современных web-сервисов.
Спикер: Александр Курилкин, Frontend-разработчик в Альфа-Банке
Митап пройдет в г. Санкт-Петербург, Малый просп. Петроградской стороны, 87, офис Альфа-Банка
Регистрация — через форму по ссылке.
Три подкаста про frontend на YouTube-канале Cloud.ru Tech 🎧
Всем привет! Сделали небольшую подборку подкастов для frontend-разработчиков (и не только) с нашего YouTube-канала Cloud.ru Tech.
С Артемом Шовкиным — senior frontend-разработчиком СБОЛ.про обсудили, с чего начать знакомство с WebAssembly, что закидывать в Def Dependencies, может ли ChatGPT заменить разработчика и как правильно готовиться к собеседованиям.
🎤 Почему нужно учить алгоритмы? Правильный frontend
С руководителем группы в Яндекс Маркет Семеном Левенсоном поговорили про то, как поддерживать хороший код на проекте, действительно ли вечный рефакторинг — это плохо, как не надо писать storybook и нужны ли микрофронты.
🎤 Про frontend-разработку и проблемы open source
Владислав Кибенко — веб-разработчик Yandex Search, рассказал про опыт перехода с backend на frontend, что больше всего бесит в open source, почему курсы — плохой способ попасть в IT, и как бороться со страхом публичных выступлений.
Подписывайтесь на YouTube-канал Cloud.ru Tech, чтобы быть в курсе IT-трендов.
Что еще полезного есть в блоге:
Сложности работы с GraphQL, или Почему не стоит его использовать повсеместно
1. Внедрение GraphQL — это сложно. Поэтому перед практическим использованием выделите достаточно времени и ресурсов для изучения концепции и структуры.
2. Когда вы реализуете REST API, можете закэшировать ответ по каждому эндпоинту. В GraphQL запросы динамические, содержат разный набор полей и связей:
query {
user(id: 1) {
id
name
posts {
id
title
comments {
id
text
}
}
}
}
В этом запросе вы получаете данные из разных источников: пользователи, посты, комменты. Для оптимальной работы придётся продумывать более точечное кэширование.
3. А теперь представьте, что в запросе выше ещё больше вложенных запросов. По умолчанию GraphQL не ограничивает вас в глубине вложенности, что может вызвать шквал базовых запросов. Это сказывается на производительности сервера.
4. GraphQL не гарантирует атомарность выполнения нескольких мутаций:
mutation {
createPost(title: "New Post", body: "Content") {
id
title
}
updateAuthor(id: 1, name: "New Name") {
id
name
}
}
С одной стороны, это гибко и удобно, а с другой, — а что произойдет, если одна мутация пройдёт, а другая отвалится?
Поэтому не стоит жечь напалмом REST API и переписывать всё на новую технологию. GraphQL — удобный инструмент, но перед использованием важно понять, на каких проектах эта гибкость пригодится, а где будет лишней.
Больше об управлении разработкой — в нашем телегам-канале.
Про формат Talks на YouTube-канале Cloud.ru Tech 🎙️
Недавно мы рассказали про YouTube-канал Cloud.ru Tech, а сегодня хотим анонсировать один из форматов видео на канале — Talks.
🎓Talks — это короткие обучающие доклады, которые помогают разобраться в конкретной теме, найти решение проблемы или понять, как оптимизировать рабочие задачи и процессы. На канале уже можно посмотреть выпуски Frontend Talks и QA Talks, а совсем скоро мы запустим и DevOps Talks.
Подписывайтесь на Cloud.ru Tech, чтобы быть в курсе best practice в IT.
Недавно к нам обратился клиент, у которого потенциально 2 млн пользователей и ему нужно разработать стриминговый сервис, где 10К-20К пользователей могут смотреть медиа-контент в разрешении 4К онлайн.
Фильм 4К весит 5 гб, если 10К пользователей одновременно его смотрят, то это большая нагрузка на хранилище данных. Сложность в том, чтобы сбалансировать трафик на сервис, чтобы система не перегружалась, а пользователи не испытывали дискомфорта.
Чтобы этого добиться, нужно написать ПО таким образом, чтобы плеер или серверная часть отдала контент порционным пользователям. Так мы распределим нагрузку.
Для хранения контента на 2 млн человек, потребуется от 300-400 ТБ устойчивого хранилища. Нужно построить системы хранения данных.
Нужна защита хранилища, если какой-то жесткий диск выйдет из строя, чтобы не потерять лицензионный контент.
Когда 10 тыс. человек запрашивают одно видео или хотя бы два-три видео, это легко решается кешированием. А если эти 10 тыс. смотрит разный контент, то стандартная СХД не справится. Скорость не позволит находить это на жестких дисках.
В реализации нужно:
— Построить архитектуру хранения и обслуживания клиентов СХД с высоким уровнем IOPS — количество запросов, которые приходят к системе хранения данных за секунду. Чем ровнее запросы из разных секторов жестких дисков, тем сложнее и дольше приходится обрабатывать их сервера.
— Построить балансировщики, которые обрабатывают большое количество разного контента на обычных HDD дисках и отказоустойчивых хранилищах.
Is Joomla 5 the WordPress 6 KILLER of 2024? CMS Comparison: Who Reigns Supreme?
На YouTube канале WebTech with Brett (Брет Ренсли) вышло любопытное видео, где сравнивается разработка шаблона на Joomla 5 и Wordpress 6.
Для чистоты эксперимента автор выбрал одну несложную страницу и воссоздал её на обеих CMS. Для воссоздания дизайна использовались стандартные шаблоны в обеих системах.
Показатели для сравнения
Время установки.
Время на создание страницы:
Создание шаблона на Joomla заняло 53 минуты 38 секунд.
Создание того же самого дизайна на базе дефлотной темы Wordpress заняло 57 минут 47 секунд. Хотя в целом порядок временных затрат - одинаковый.
Лёгкость использования. Брет (автор видео) сказал, что "It really sucks", несмотря на то, что он любит WordPress, использует его для своих сайтов.
Показатели Lighthouse. По сумме показателей Joomla вышла вперёд с небольшим отрывом. По времени загрузки страницы Joomla 5 показала результат в 1.1 секунды против 1.67 у Wordpress.
Такие "соревнования" вызывают чисто спортивный интерес, может даже азарт, но для объективных оценок скорее всего мало применимы. Мы понимаем, что за 53 минуты можно просто не успеть сделать некоторые мелочи, которые дали бы прирост показателей, если главное - именно они. Но похоливарить можно ))
Кстати, добро пожаловать в Joomla-чат в Telegram
Почалось: объявляем старт регулярных хакатонов по $mol!
Промочив горло световухой, Капитан Моль объявляет старт регулярных хакатонов для захвата новых берегов!
Как долго?
В наших месячных странствиях, ваш борт вооружен всем инструментарием экосистемы $mol'a:
децентрализованной базой данных
возможностью в пару строк переиспользовать компоненты других приложений на $mol'e
Капитан будет рад презентации решений в нашем порту. О нем мы, мольки, расписывали здесь.
Требования
На финишной прямой, каждый фрегат будет допущен к оценке при наличии идеи и её базовой реализации
Основные положения кодекса описаны здесь.
Тема
Игры/тулинг - это может быть прототип игры, либо же инструментарий для их создания.
Например: редактор тайловых карт, генератор уровней и умений..
Призовой фонд
Наш пиратский островок растет. И чтобы оставаться на плову, мы начнем с малого.
В сокровищах мы наскребли 7 тысяч рублей.
В нашей каюте Капитан Моль выделил следующие койки:
1 место - 3000р.
2 место - 2000р.
3 место - 1000р.
Внебортовые селедки мирового океана также проголосуют за понравившийся борт.
Приз селедочных симпатий - 1000р.
Даты
Старт 27.10.2023
Финиш 27.11.2023
Где мы?
Будем рады оказать помощь в ваших начинаниях - не стесняйтесь напрашиваться чат в телеграме и дискорде.
Продолжается перевод книги Vue.js 3 Design Patterns and Best Practices
На данный момент переведено 6 глав:
Глава 1, Фреймворк Vue 3
Глава 2, Принципы и шаблоны проектирования программного обеспечения
Глава 3, Создание рабочего проекта
Глава 4, Композиция пользовательского интерфейса с помощью компонентов
Глава 5, Одностраничные приложения
Глава 6, Прогрессивные веб-приложения
WT Content Image gallery v.1.2.0
Пакет плагинов галереи изображений и видео для вставки в материалы и модули Joomla, а так же везде, где работают плагины группы content. Плагин работает по шорткодам {gallery}...{/gallery}
и {gallery tmpl=tmplName}...{/gallery}
, где tmpl
- макет tmplName.php
в plugins/content/wtcontentimagegallery/tmpl
.
Что нового?
➕ Атрибуты alt и title из файла labels.txt.
Если Вы вставляете путь к директории с изображениями, то Вы можете указать для каждого изображения атрибуты alt
и title
в файле labels.txt
, который следует положить в директорию рядом с изображениями. В конце строки символ |
помещать не нужно.
Содержимое файла должно содержать информацию в следующем виде: имя_файла.webp | атрибут alt | атрибут title
. Для каждого файла информация содержится в отдельной строке. Title для изображений можно не указывать, тогда строка будет вида image_2.webp|alt for image_2
.
?? Joomla 5 ready
Успешно проверена работа расширения на Joomla 5.