Карта изучения JavaScript https://miro.com/app/board/o9J_lfZRBE8=/
Добавляйте в избранное ⭐️
По 1C: TODO. На этой неделе планируется перенос текущего функционала на 1С.
Как это будет выглядеть, увидим позже по результату.
Параллельно изучаю курс "JavaScript. Стань Senior Frontend Разработчиком" Владилена Минина. В нем разрабатывается упрощенный аналог excel.
Просмотрена половина курса, многое принято на заметку.
После просмотра были переписаны многие участки кода и менялась структура проекта 1C: TODO.
#избранное
Добавляйте в избранное ⭐️
По 1C: TODO. На этой неделе планируется перенос текущего функционала на 1С.
Как это будет выглядеть, увидим позже по результату.
Параллельно изучаю курс "JavaScript. Стань Senior Frontend Разработчиком" Владилена Минина. В нем разрабатывается упрощенный аналог excel.
Просмотрена половина курса, многое принято на заметку.
После просмотра были переписаны многие участки кода и менялась структура проекта 1C: TODO.
#избранное
Всем привет✋
Перенес текущий функционал на 1С.
Результат работы можете посмотреть в видео https://youtu.be/qa32y2XTNho
Дальше в планах реализовать ещё несколько интересных фишек для этого приложения.
Не забывайте, что у канала есть чат t.iss.one/ovmst_chat. Там выкладываю промежуточные результаты и пишу о проблемах с которыми сталкиваюсь.
#mobile1C
Перенес текущий функционал на 1С.
Результат работы можете посмотреть в видео https://youtu.be/qa32y2XTNho
Дальше в планах реализовать ещё несколько интересных фишек для этого приложения.
Не забывайте, что у канала есть чат t.iss.one/ovmst_chat. Там выкладываю промежуточные результаты и пишу о проблемах с которыми сталкиваюсь.
#mobile1C
YouTube
1С:Список. Управляй своими заметками (ver. 1.0)
Первая версия приложения 1С:Список. Управляйте своими заметками. Добавление, удаление, поиск и фильтр. В следующих релизах еще больше функционала...
"Мой список" поможет вам быстро создавать список дел и держать их под контролем.
Используйте "Мой список"…
"Мой список" поможет вам быстро создавать список дел и держать их под контролем.
Используйте "Мой список"…
Практика. Перенос верстки на JavaScript.
После изучения статьи "[mobile] Переносим HTML интерфейс на 1С"
(https://infostart.ru/1c/articles/1319458/) рекомендую попрактиковаться.
Для этого предлагаю пройти воркшоп "Икеа" на JS, где готовую верстку перенесете на JS. Подходит для новичков.
Изучите на практике переменные, типы данных, операторы, условные конструкции, циклы, функции, DOM, event события мыши и браузера, fetch(get/post), localStorage, модульность (import/export), ES6
1️⃣ День 1. https://www.youtube.com/watch?v=VBuaryMyN9A&download=dm
Получение необходимы элементов со страницы. Реализация меню с категориями и подкатегориями.
Генерация header, footer и меню.
2️⃣ День 2. https://www.youtube.com/watch?v=xGiuH8nj0S0&feature=emb_logo&ab_channel=GloAcademy
Реализация модулей для удобства (import/export). Получение товаров с сервера:
по каталогам, поиск, корзина, лист желаний, один товар.
3️⃣ День 3. https://www.youtube.com/watch?v=qt6fVPPN6ic&download=dm&ab_channel=GloAcademy
Вывод актуального каталога и подкаталога. Отрисовка карточек товаров.
4️⃣ День 4. https://www.youtube.com/watch?v=xAEEfCKN3qs&t=1474s&ab_channel=GloAcademy
Продолжение 3 дня. Использование localStorage
5️⃣ День 5. https://www.youtube.com/watch?v=L4Qxu7xgxfw&t=700s&ab_channel=GloAcademy
Реализация корзины. Изменение количества, пересчет суммы. Отправка заказа.
Через неделю сделаю еще одну заключительную подборку по данной теме.
Лайфхак: устанавливайте скорость воспроизведения x2
#избранное
После изучения статьи "[mobile] Переносим HTML интерфейс на 1С"
(https://infostart.ru/1c/articles/1319458/) рекомендую попрактиковаться.
Для этого предлагаю пройти воркшоп "Икеа" на JS, где готовую верстку перенесете на JS. Подходит для новичков.
Изучите на практике переменные, типы данных, операторы, условные конструкции, циклы, функции, DOM, event события мыши и браузера, fetch(get/post), localStorage, модульность (import/export), ES6
1️⃣ День 1. https://www.youtube.com/watch?v=VBuaryMyN9A&download=dm
Получение необходимы элементов со страницы. Реализация меню с категориями и подкатегориями.
Генерация header, footer и меню.
2️⃣ День 2. https://www.youtube.com/watch?v=xGiuH8nj0S0&feature=emb_logo&ab_channel=GloAcademy
Реализация модулей для удобства (import/export). Получение товаров с сервера:
по каталогам, поиск, корзина, лист желаний, один товар.
3️⃣ День 3. https://www.youtube.com/watch?v=qt6fVPPN6ic&download=dm&ab_channel=GloAcademy
Вывод актуального каталога и подкаталога. Отрисовка карточек товаров.
4️⃣ День 4. https://www.youtube.com/watch?v=xAEEfCKN3qs&t=1474s&ab_channel=GloAcademy
Продолжение 3 дня. Использование localStorage
5️⃣ День 5. https://www.youtube.com/watch?v=L4Qxu7xgxfw&t=700s&ab_channel=GloAcademy
Реализация корзины. Изменение количества, пересчет суммы. Отправка заказа.
Через неделю сделаю еще одну заключительную подборку по данной теме.
Лайфхак: устанавливайте скорость воспроизведения x2
#избранное
Про 1С:Список. Ещё раз изменена структуру проекта, чтобы можно было комфортно масштабировать приложение.
На скриншотах текущая структура JS, стартовые файлы index.html и index.js.
Получил независимые компоненты , которые взаимодействуют между собой подписками на события. Управление компонентами централизованно.
Получился конструктор. Могу менять местами, добавлять и убирать компоненты при необходимости.
Подписки на события реализованы с помощью паттерна "Наблюдатель" (observer).
Составил план по новому функционалу. Как раз на нем будет возможность реализовать паттерн "Состояние" (state) и Routing.
Про паттерны сделаю отдельный пост с материалами.
#javascript
На скриншотах текущая структура JS, стартовые файлы index.html и index.js.
Получил независимые компоненты , которые взаимодействуют между собой подписками на события. Управление компонентами централизованно.
Получился конструктор. Могу менять местами, добавлять и убирать компоненты при необходимости.
Подписки на события реализованы с помощью паттерна "Наблюдатель" (observer).
Составил план по новому функционалу. Как раз на нем будет возможность реализовать паттерн "Состояние" (state) и Routing.
Про паттерны сделаю отдельный пост с материалами.
#javascript
Хороший сайт про рефакторинг и паттерны https://refactoring.guru/ru.
Добавляйте в избранное ⭐️
Паттерны, которые упоминались в прошлом посте:
1) Состояние https://refactoring.guru/ru/design-patterns/state
2) Наблюдатель https://refactoring.guru/ru/design-patterns/observer
Видео по теме:
1) JavaScript Паттерны. Шаблоны проектирования. 17 Примеров https://youtu.be/YJVj4XNASDk
2) SOLID Принципы в JavaScript https://youtu.be/xq13wiqvcTc
Если данная тема пока сложная, вернитесь к посту https://t.iss.one/ovmst/63
#javascript
Добавляйте в избранное ⭐️
Паттерны, которые упоминались в прошлом посте:
1) Состояние https://refactoring.guru/ru/design-patterns/state
2) Наблюдатель https://refactoring.guru/ru/design-patterns/observer
Видео по теме:
1) JavaScript Паттерны. Шаблоны проектирования. 17 Примеров https://youtu.be/YJVj4XNASDk
2) SOLID Принципы в JavaScript https://youtu.be/xq13wiqvcTc
Если данная тема пока сложная, вернитесь к посту https://t.iss.one/ovmst/63
#javascript
refactoring.guru
Рефакторинг и Паттерны проектирования
Рефакторинг — это контролируемый процесс улучшения вашего кода, без написания новой функциональности. Паттерны проектирования описывают типичные способы решения часто встречающихся проблем при проектировании программ.
Пятничный опрос 🍻
Начали изучать и практиковать JavaScript?
Начали изучать и практиковать JavaScript?
Anonymous Poll
22%
Да
19%
Нет
59%
В планах
Где брать идеи для стилей?
Добавляйте в избранное ⭐️
В последнее время для этих целей я использую Ютуб. Достаточно вбить простые запросы: loader css, input css, form css и т.д. Помимо готового кода вы еще получаете практику создания элемента т.к. все видео сделаны в формате видеоурока. Стоит заметить, что самый "сок" нужно искать в англоязычных видео.
Примеры видео:
loader: https://www.youtube.com/watch?v=QLiZ5VrhA98&t=27s
input: https://www.youtube.com/watch?v=IxRJ8vplzAo&ab_channel=DevEd
responsive login & registration Form: https://www.youtube.com/watch?v=piG91X4sV2U&ab_channel=TrueCoder
Со временем вы будете находить каналы, которые специализируются на стилизации и у них есть отдельные плейлисты для каждого назначения.
Доп. сервисы:
1️⃣Красивые фотографии:
https://unsplash.com/
(преимущества данного сервиса, что есть возможность вывода рандомной картинки из колллекции https:/ source.unsplash.com/)
2️⃣SVG:
https://material.io/resources/icons/?style=baseline
https://fontawesome.com/ (в интернете можно найти бесплатный архив со всеми иконками)
3️⃣Юникод символы:
https://unicode-table.com/ru/
4️⃣PNG:
https://icons8.ru/
https://www.iconfinder.com/
5️⃣Красивые css градиенты:
https://cssgradient.io/gradient-backgrounds/
6️⃣Шрифты
https://transfonter.org/ (для конвертации)
https://google-webfonts-helper.herokuapp.com/fonts
#избранное
Добавляйте в избранное ⭐️
В последнее время для этих целей я использую Ютуб. Достаточно вбить простые запросы: loader css, input css, form css и т.д. Помимо готового кода вы еще получаете практику создания элемента т.к. все видео сделаны в формате видеоурока. Стоит заметить, что самый "сок" нужно искать в англоязычных видео.
Примеры видео:
loader: https://www.youtube.com/watch?v=QLiZ5VrhA98&t=27s
input: https://www.youtube.com/watch?v=IxRJ8vplzAo&ab_channel=DevEd
responsive login & registration Form: https://www.youtube.com/watch?v=piG91X4sV2U&ab_channel=TrueCoder
Со временем вы будете находить каналы, которые специализируются на стилизации и у них есть отдельные плейлисты для каждого назначения.
Доп. сервисы:
1️⃣Красивые фотографии:
https://unsplash.com/
(преимущества данного сервиса, что есть возможность вывода рандомной картинки из колллекции https:/ source.unsplash.com/)
2️⃣SVG:
https://material.io/resources/icons/?style=baseline
https://fontawesome.com/ (в интернете можно найти бесплатный архив со всеми иконками)
3️⃣Юникод символы:
https://unicode-table.com/ru/
4️⃣PNG:
https://icons8.ru/
https://www.iconfinder.com/
5️⃣Красивые css градиенты:
https://cssgradient.io/gradient-backgrounds/
6️⃣Шрифты
https://transfonter.org/ (для конвертации)
https://google-webfonts-helper.herokuapp.com/fonts
#избранное
Всем привет. На следующей неделе покажу, что мне удалось реализовать для приложения 1С:Список.
А пока предлагаю посмотреть два видео:
1) Сегодня прошел интенсив во Владивостоке по Front-end (Докладчик Владилен Минин)
https://youtu.be/PB49rKBQKsw
2) Интервью с Владиленом "Владилен Минин – Как один JS разработчик меняет сферу образования и вдохновляет на разработку"
https://youtu.be/zeR7vNrNlGg
#избранное
А пока предлагаю посмотреть два видео:
1) Сегодня прошел интенсив во Владивостоке по Front-end (Докладчик Владилен Минин)
https://youtu.be/PB49rKBQKsw
2) Интервью с Владиленом "Владилен Минин – Как один JS разработчик меняет сферу образования и вдохновляет на разработку"
https://youtu.be/zeR7vNrNlGg
#избранное
Всем привет. Выкладываю скриншоты будущей версии приложения. Некоторые изменения описаны на втором скриншоте.
Получилось реализовать spa (Single Page Application) приложение на JavaScript.
#верстка
Получилось реализовать spa (Single Page Application) приложение на JavaScript.
#верстка
Промежуточные результаты на JavaScript. Переделаю ещё несколько моментов и буду переносить данную версию на 1С.
Напишите в комментариях, что не нравится/убрать/добавить.
https://youtu.be/wD88D27NUB4
#mobile1C
Напишите в комментариях, что не нравится/убрать/добавить.
https://youtu.be/wD88D27NUB4
#mobile1C
YouTube
1С:Список (ver 1.1). Промежуточные результаты
Подготовка новой версии приложения для переноса на мобильную платформу 1С. В видео представлена разработка на JavaScript (Single Page Application).
Следите за проектом: https://t.iss.one/ovmst
Профиль:
►Infostart: https://infostart.ru/profile/350139/
►Telegram…
Следите за проектом: https://t.iss.one/ovmst
Профиль:
►Infostart: https://infostart.ru/profile/350139/
►Telegram…
Всем привет! Использовали ли вы docker в проектах 1С? Расскажите про ваши кейсы в комментариях.
https://youtu.be/cKcMSxNuWNE
https://youtu.be/cKcMSxNuWNE
YouTube
УСТАНОВКА СЕРВЕРА ВЗАИМОДЕЙСТВИЯ 1С В DOCKER. ЧАСТЬ 1
Привет программисты 1С, с вами Низамов Илья. Сегодня я покажу, как установить сервер взаимодействия 1с в docker. Напишем конфиг dockerfile для сборки сервера взаимодействия 1С. Напишем конфиг docker compose для запуска нескольких сервисов. В этой части мы…
Media is too big
VIEW IN TELEGRAM
Всем привет!
Перенес последнюю версию реализованную на JS в 1С. Прикрепляю небольшое видео.
Есть ещё несколько моментов, которые нужно подправить.
Дальше соберу apk файл и начну тестировать.
#mobile1C
Перенес последнюю версию реализованную на JS в 1С. Прикрепляю небольшое видео.
Есть ещё несколько моментов, которые нужно подправить.
Дальше соберу apk файл и начну тестировать.
#mobile1C
Media is too big
VIEW IN TELEGRAM
Обновил сегодня мобильную платформу на последнюю и вот какая новая фича там появилась.
Теперь нужно понять как ее отключить 😁
Напишите в комментариях кто знает как это отключить
#mobile1C
Теперь нужно понять как ее отключить 😁
Напишите в комментариях кто знает как это отключить
#mobile1C
📖 Событие для перерисовки страницы
Расскажу про метод hashchange, который я использовал для приложения заметок.
Он срабатывает, когда изменяется идентификатор фрагмента URL (т.е. часть URL следующая за символом #, включая сам символ #)
window.addEventListener('hashchange', this.changePageHandler)
Когда пользователь выбирает заметку адрес выглядит следующим образом:
https://localhost:3000/#note/1770b4bd805
Т.к у меня в приложение всего две страницы:
1) Главная (https://localhost:3000/)
2) Выбранный список (https://localhost:3000/#note/id)
Мне достаточно в функции this.changePageHandler проверить содержит ли ссылка "note" и отрисовать нужную страницу.
Полезные методы для работы с адресной строкой:
1) Получить содержимое после символа #:
window.location.hash.slice(1) результат note/1770b4bd805
2) Получим id из адресной строки:
window.location.hash.slice(1).split('/')[1] результат 1770b4bd805
3) Зададим путь
window.location.hash = '#note/1770b4bd805' результат https://localhost:3000/#note/1770b4bd805
Внутри мобильной платформы 1С данные методы отрабатывают 👌
Пример кода на GitHub:
https://gist.github.com/leobrn/c8e6601028596fe0a350dabc3f7793e2
#javascript #избранное
Расскажу про метод hashchange, который я использовал для приложения заметок.
Он срабатывает, когда изменяется идентификатор фрагмента URL (т.е. часть URL следующая за символом #, включая сам символ #)
window.addEventListener('hashchange', this.changePageHandler)
Когда пользователь выбирает заметку адрес выглядит следующим образом:
https://localhost:3000/#note/1770b4bd805
Т.к у меня в приложение всего две страницы:
1) Главная (https://localhost:3000/)
2) Выбранный список (https://localhost:3000/#note/id)
Мне достаточно в функции this.changePageHandler проверить содержит ли ссылка "note" и отрисовать нужную страницу.
Полезные методы для работы с адресной строкой:
1) Получить содержимое после символа #:
window.location.hash.slice(1) результат note/1770b4bd805
2) Получим id из адресной строки:
window.location.hash.slice(1).split('/')[1] результат 1770b4bd805
3) Зададим путь
window.location.hash = '#note/1770b4bd805' результат https://localhost:3000/#note/1770b4bd805
Внутри мобильной платформы 1С данные методы отрабатывают 👌
Пример кода на GitHub:
https://gist.github.com/leobrn/c8e6601028596fe0a350dabc3f7793e2
#javascript #избранное
Gist
Событие для перерисовки страницы (Router.js)
Событие для перерисовки страницы (Router.js). GitHub Gist: instantly share code, notes, and snippets.
📖 Полезное CSS свойство pointer-events
Свойство pointer-events позволяет управлять тем, как элементы будут реагировать на события мыши или прикосновения к сенсорному экрану. Часто применяется для того, чтобы в сложной компоновке можно было взаимодействовать с нижележащими элементами, игнорируя вышележащие.
Рассмотрим простой пример https://gist.github.com/leobrn/aabe649de5f1f1c92c0952da852f2056
У нас есть форма с несколькими элементами. Мы решаем, что оптимально будет обрабатывать клики по элементам в одном месте установив обработчик на корневой элемент form и в зависимости от ID элемента выполнять действие.
Внутри кнопки (тег button) у нас находится svg иконка.
Кликаем по кнопке в районе иконки и видим в консоле, что наш целевой элемент svg, а не кнопка. Чтобы исключить svg нам нужно для данного тега указать pointer-events: none.
Тем самым мы предотвращаем события мыши и щелчки по элементу. Простыми словами иконка стала невидима для клика и мы проваливаемся сквозь элемент.
#верстка #избранное
Свойство pointer-events позволяет управлять тем, как элементы будут реагировать на события мыши или прикосновения к сенсорному экрану. Часто применяется для того, чтобы в сложной компоновке можно было взаимодействовать с нижележащими элементами, игнорируя вышележащие.
Рассмотрим простой пример https://gist.github.com/leobrn/aabe649de5f1f1c92c0952da852f2056
У нас есть форма с несколькими элементами. Мы решаем, что оптимально будет обрабатывать клики по элементам в одном месте установив обработчик на корневой элемент form и в зависимости от ID элемента выполнять действие.
Внутри кнопки (тег button) у нас находится svg иконка.
Кликаем по кнопке в районе иконки и видим в консоле, что наш целевой элемент svg, а не кнопка. Чтобы исключить svg нам нужно для данного тега указать pointer-events: none.
Тем самым мы предотвращаем события мыши и щелчки по элементу. Простыми словами иконка стала невидима для клика и мы проваливаемся сквозь элемент.
#верстка #избранное
🛠 Всем привет! Уже две недели тестирую приложение "Мой список". Открыл доступ некоторым пользователям. В целом полет нормальный (скрин 1) 👌.
НО был интересный момент, на некоторых устройствах не формировалось содержимое в поле HTML (скрин 2).
Методом исключения определил проблему, которая была связана с приватными методами в классах.
Одно из недавних нововведений в JS было добавление в поддержку приватных свойств и методов. Приватные свойства и методы должны начинаться с #. Они доступны только внутри класса. На уровне языка # является специальным символом, который означает, что поле приватное. Мы не можем получить к нему доступ извне или из наследуемых классов.
Заменив # на префикс _ все стало формироваться.
Префикс _ известное соглашение, не поддерживаемое на уровне языка. Программисты должны обращаться к полю, начинающемуся с _, только из его класса и классов, унаследованных от него.
Второй момент. Пришлось немного доработать стили для отображения на более старых версиях (скрин 3).
#mobile1C
НО был интересный момент, на некоторых устройствах не формировалось содержимое в поле HTML (скрин 2).
Методом исключения определил проблему, которая была связана с приватными методами в классах.
Одно из недавних нововведений в JS было добавление в поддержку приватных свойств и методов. Приватные свойства и методы должны начинаться с #. Они доступны только внутри класса. На уровне языка # является специальным символом, который означает, что поле приватное. Мы не можем получить к нему доступ извне или из наследуемых классов.
Заменив # на префикс _ все стало формироваться.
Префикс _ известное соглашение, не поддерживаемое на уровне языка. Программисты должны обращаться к полю, начинающемуся с _, только из его класса и классов, унаследованных от него.
Второй момент. Пришлось немного доработать стили для отображения на более старых версиях (скрин 3).
#mobile1C