Odesa Frontend Community is a non-commercial developer community in Odesa. The main goal of the project is to increase the level of knowledge through the accessible exchange of practical experience between developers.
Our project is absolutely free for IT professionals. It is with great pleasure that we involve IT companies to help organize our offline events. This helps close and practical acquaintance of companies and potential applicants and expands the horizons of our regular listeners.
The main form of interaction is holding regular meetups, where any developer can be a speaker. We support and welcome novice speakers. All video materials of the reports in good quality are available for free viewing on our RU-vid channel. Meetup announcements appear in our newsgroups, as well as on our website - odesafrontend.com
Блин, на самом деле, офигенная подача материала, человек немного волнуется, запинается. Чисто из за этого для меня гораздо доходчивее, чем когда выступающий чешет материал без запинки. Продолжай в том же духе!
Через плагины у Cordova можно получить доступ к нативным API. Проверял лично. Геопозицию получить можно. Не очень красиво с точки зрения UI, но можно получить доступ и к камере.
Доклад хорошо зашёл после прохождения курса Andrew Mead - The Great Gatsby Bootcamp здесь на RU-vid. Получилось резюме всего пройденного материала, его повторение и закрепление.
Здравствуйте можете показать как вы типизируете async selector, обращаясь data.contents. дальше ничего не показывает autocomplete в хуке useRecoilStateLoadable
Действительно ли нужно для формы использовать стейт менеджер, если для этого есть спец библиотеки типо react final form. Там и валидация сразу и тд. Не нужно будет самому делать формовый бойлерплейт
Дмитрий! ;) 11:55 - генерация псевдо-случайного числа -- это нечистая функция, т.к. не выполняется требование ссылочной прозрачности (иными словами нет гарантии получения одного и того-же результата при повторном вызове с теми-же аргументами). Любая функция, результат которой зависит от результата нечистой функции, так же не будет чистой. Поэтому shuffle -- это нечистая функция. Вместе с тем, пример важный и правильный, но лучше надо было взять функцию reverse
Изображение, которое должно быть сверстано как контент, отличается от изображения которое должно быть сверстано как декоративное (сервисное) целями проекта. Если у проекта нет целей по привлечению трафика из поисковых систем, нет необходимости в обслуживании людей с ограниченными возможностями, то критерий верстки есть только один - как мне нравится или как мне позволяет мой профессиональный уровень. Если же у проекта стоят задачи в обслуживании людей с ограниченными возможностями и тем более задачи получения трафика из поисковых систем, то верстка изображений должна осуществляться строго в соответствии с правилами семантической верстки стандарта ШТМЛ5 где тегом имж должно размечаться только то изображение, которое принимает участие в раскрытии или дополнении основного контента страницы. То есть того чему страница посвящена. И вот с этого момента происходит вилка - вам нужна верстка которая максимально корректна с академической точки зрения, или верстка максимально эффективная с точки зрения продвижения проекта в поисковых системах. Потому как, далеко не всегда все изображения на странице, которые дейтсвительно призваны раскрывать основной контент действительно стоит верстать образом, который предполагает их индексацию. Самым же простым способом понять что есть что, это взяв страницу сайта, удалить из нее все элементы которые не касаются ее темы: навигацию, подвал, иконки, кнопки, оставив только то, что является ее (страницы) наполнением. И вот только эти элементы и могут быть контентом. При этом крайне важно помнить и понимать, что для поисковой системы Гугл изображения это фразовый контент - то есть текст. И относится к ним нужно именно исходя из этого положения. Иными словами верстка изображений вида - вот тут карточка товара, значит я вот тут шлепну картинку товара является в корне ошибочной. И должна быть заменена на верстку схожую с типичной научной статьей, где каждое изображение выполняет функциональную роль.
29:17 *Браузер встретив имж начинает его сразу грузить* Подобное поведение было характерно для браузеров 2000 годов. Минимум с 2014 года, все браузеры поддерживают машинерию, которая позволяет управлять приоритетом загрузки тех или иных медиа компонентов. По умолчанию это поведение установлено в ауто, то есть бразуер пытается сам решить нужно ли это изображение прямо сейчас или его можно отложить. В ручную этим процессом можно управлять через атрибут тега importance c тремя на выбор значениями _high_ _low_ и _auto_ 32:10 *тег picture* Нельзя использовать этот тег в верстке в случае, если проект должен придерживаться критериев производительности страницы. Поскольку каждый тег пикча раздувает дом дерево минимум на два дополнительных узла для каждого изображения. Что крайне негативно сказывается на производительности страницы в условиях мобильных устройств и страниц насыщенных медиа контентом. Решение задачи лежит в плоскости использования атрибута _sizes_ в совмещении с атрибутом _srcset_ и использованием изображений с _w_ синтаксисом.
На 11:00 показан пример якобы чистой функции, которая на самом деле не является чистой, поскольку она является недетерминированной (для одного и того же набора входных данных результат может быть разным)
@@19n1ght Там ещё на 17:28 мне показалось, что проблема будет не только в наличии undefined, но и в несовместимости типов User[] и User. Не придирка, просто решил "подсветить". Доклад очень понравился, спасибо
Да, я ошибся в этом моменте, обратил внимание на сигнатуры вверху слайда и не вник в код ниже. Показалось, что в пайпе после вызова первой функции будет на выходе массив
@@maxm1nd Ютуб безжалостно удаляет сообщения, в которых есть код или ссылки :)) Спасибо Вам больше за комментарии! Я в предыдущем (удаленном ютубом сообщении) писал, что там используется метод find, который возвращает T | undefined. Если бы был, например, метод filter, тогда да, был бы массив.