Шикарная статья. Я как-то собеседовал дизайнера, и специально подготовил вопросы такого плана, про формы, масштаб, палитру и т.д. Вопросы конечно были с англоязычных ресурсов. И что вы думаете?!
Ни на один из поставленных вопросов дизайнер мне не ответил. Но портфолио и результат анализа дизайна с других сайтов был неплохой. Видимо в рунете в сообществе дизайнеров в России есть какая-то другая грамота.
Я не для изображений делал. Я сделал это целиком для DOM-элементов. Чтобы можно было с легкостью сделать подгрузку сначала div'ов в виде каркаса серых блоков, а уже при попадании в область viewport'а отрисовать уже реальный контент. Как например на YouTube сделано. Да много где такое уже реализовано.
Если сайт не работает, просто ухожу – примерно в 90% от случаев. Какой-то урон в получением информации не наблюдаю.
Прекрасно, можно вообще много чем себя ограничивать.
Конечно, персонально я не критерий, но насколько я знаю, хороший тон веб-дизайна включает предоставление более-менее полный контент (но не функционал, конечно) потребителям без JS.
Так для задач lazyload речь как раз о фунциональности. Цель данной технологии это подгрузки именно серверных данных. А если говорить про сайты которые написаны на React, то тут вообще без шансов.
Хороший тон это тогда когда где нужно применен JS, а где можно решить задачу на чистом CSS, который на caniuse валиден для большинства браузеров, то конечно нужно делать на CSS.
content-visibility во многих браузерах не поддерживается. Мы lazyload реализовывали в своем фреймворке через WebSocket и трекаем viewport через JS. Но зато теперь с легкостью подключаем lazyload на любом проекте.
Я написал свою healess-CMS, и хочу стать вендором))).
А так да, я согласен в классическом виде CMS с ограничениями в разработку, давным-давно никому не нужны. Собственно эти классические CMS меня и подтолкнули написать такую CMS где нет ограничений для построения шаблонов.
Твоя проблема мне не кажется - проблемой. Чтобы построить грамотную архитектуру и проектировать сущности в БД, другими словами сделать дата-дизайн, нужен опыт.
Сам проходил похожие этапы, в итоге написал себе удобную CMS, и теперь проект любой сложности мне кажется простым. Вообщем обращайся, я помогу тебе разобраться со стеком технологий и архитектурой в твоих приложения.
Я использовал MongoDB в своей CMS, как основную базу и несказанно рад этому выбору. Основные и главные преимущества это нет схемы и нету этих JOIN'ов.
А Spring Data поверх, решает все проблемы с мерджингом данных и проектированием объектов.
Да, конечно мне пришлось написать сервисы которые правильно сохраняют объекты и следят за связями между объектами, но это нужно сделать только один раз, и дальше уже работать с методами из этих сервисов.
Наша цель как раз этого избежать. Выпишу сюда цитату из своей статьи:
«Миллионы web-проектов увидели свет, но изо дня в день программисты все еще пишут тонны исходного кода, решая похожие задачи на разных инструментах.»
Я хотел бы покрыть максимально возможное количество задач которые программисты решают для создания платформ и сайтов ежедневно. Вывести все на абстрактный уровень реализации, так сказать не привязываясь к контексту проекта. По моему мнению исходя из своего опыта это возможно. И в принципе я убедился в этом использовав эту CMS в крупном проекте.
А для задач с которыми сталкиваются программисты редко, у нас есть проект микросервисов. Мы также использовали в своем проекте микросервис интеграции с Ai-фреймворком написанном на Python.
а почему вы считаете, что написали именно CMS, а не фрэймворк?
Собственно говоря это комбинация фреймворка и CMS.
CMS потому-что есть модули которые содержат готовый функционал для применения его уже реальных проектах. А также есть собранный dashboard для административных задач. Но в отличии от других CMS, этот dashboard можно с легкостью переделать полностью под любой другой UI-дизайн и структуру.
Фреймворк потому-что существует возможность использовать инструкции для динамических шаблонов, где из сразу вы получаете data-binding.
> Если у кого-то появится интерес попробовать MastermindCMS2 или лично со мной побеседовать на тему дальнейшего развития фреймворка, то буду рад.
Я в личном порядке могу выдать community версию. Пока времени не хватает на поддержание всей инфраструктуры. Документацию на этой неделе закончили. Сейчас можно думать о версии для коммъюнити.
> Т.е. вебсокет как замена ресту?
Не совсем так. WebSocket используется в качестве протокола для получения инструкций от клиента на рендеринг тегов фреймворка. REST API можно использовать также, есть специальный тег для этого во фреймворке. Ну или из JS уже что-то по AJAX доставать.
> Если да, то думали ли вы уже как будете масштабироваться и балансировать соединения при росте нагрузки?
За год использования в крупной платформе не разу такого не случалось. Все зависит от реализации фронэнда.
ну т.е. Вы ГлубокимПавловым размечаете документы, вручную дополняете или исправляете ошибки в токенах и тренируете опять ГлубокимПавловым исправленный датасет?
Да, именно так.
И много приходится исправлять / добавлять?
Нет, сначала сделал только одно массовое обновление по нужным токенам. Например по навыкам сотрудников. Сформировал в Excel список терминов, таких как Java,C#,C++,PHP и т.п. Потом проставил нужный мне тип токена для каждого термина, что-то типа того SKILL_PROGLANG, SKILL_FRAMEWORK, SKILL_NETADMIN. Сохранил в текстовый файл и сделал апдейт для датасета в БД на основе этого файла.
После чего обучил на этом датасете. И снова повторил формирования датасета уже с обученной моделью. И так далее повторяя этот процесс пока не получишь желаемый результат.
Шикарная статья. Я как-то собеседовал дизайнера, и специально подготовил вопросы такого плана, про формы, масштаб, палитру и т.д. Вопросы конечно были с англоязычных ресурсов. И что вы думаете?!
Ни на один из поставленных вопросов дизайнер мне не ответил. Но портфолио и результат анализа дизайна с других сайтов был неплохой. Видимо в рунете в сообществе дизайнеров в России есть какая-то другая грамота.
Одной MongoDB было бы достаточно. На MongoDB можно и поиск сделать, а такжи и графы хранить.
Чем же хуже? Все современные сайты так работают. Что Facebook , что YouTube.
Я не для изображений делал. Я сделал это целиком для DOM-элементов. Чтобы можно было с легкостью сделать подгрузку сначала div'ов в виде каркаса серых блоков, а уже при попадании в область viewport'а отрисовать уже реальный контент. Как например на YouTube сделано. Да много где такое уже реализовано.
Прекрасно, можно вообще много чем себя ограничивать.
Так для задач lazyload речь как раз о фунциональности. Цель данной технологии это подгрузки именно серверных данных. А если говорить про сайты которые написаны на React, то тут вообще без шансов.
Хороший тон это тогда когда где нужно применен JS, а где можно решить задачу на чистом CSS, который на caniuse валиден для большинства браузеров, то конечно нужно делать на CSS.
Этот вопрос из разряда, а что если ближний свет фар на ночной трассе выключить?
content-visibility во многих браузерах не поддерживается. Мы lazyload реализовывали в своем фреймворке через WebSocket и трекаем viewport через JS. Но зато теперь с легкостью подключаем lazyload на любом проекте.
Я написал свою healess-CMS, и хочу стать вендором))).
А так да, я согласен в классическом виде CMS с ограничениями в разработку, давным-давно никому не нужны. Собственно эти классические CMS меня и подтолкнули написать такую CMS где нет ограничений для построения шаблонов.
Твоя проблема мне не кажется - проблемой. Чтобы построить грамотную архитектуру и проектировать сущности в БД, другими словами сделать дата-дизайн, нужен опыт.
Сам проходил похожие этапы, в итоге написал себе удобную CMS, и теперь проект любой сложности мне кажется простым. Вообщем обращайся, я помогу тебе разобраться со стеком технологий и архитектурой в твоих приложения.
Я как раз Hotwire для фронтенда использую на MastermindCMS2. Просто на MSM2 вообще весь дата-биндинг на WebSocket реализован.
На MastermindCMS2 можно.
Я использовал MongoDB в своей CMS, как основную базу и несказанно рад этому выбору. Основные и главные преимущества это нет схемы и нету этих JOIN'ов.
А Spring Data поверх, решает все проблемы с мерджингом данных и проектированием объектов.
Да, конечно мне пришлось написать сервисы которые правильно сохраняют объекты и следят за связями между объектами, но это нужно сделать только один раз, и дальше уже работать с методами из этих сервисов.
Наша цель как раз этого избежать. Выпишу сюда цитату из своей статьи:
«Миллионы web-проектов увидели свет, но изо дня в день программисты все еще пишут тонны исходного кода, решая похожие задачи на разных инструментах.»
Я хотел бы покрыть максимально возможное количество задач которые программисты решают для создания платформ и сайтов ежедневно. Вывести все на абстрактный уровень реализации, так сказать не привязываясь к контексту проекта. По моему мнению исходя из своего опыта это возможно. И в принципе я убедился в этом использовав эту CMS в крупном проекте.
А для задач с которыми сталкиваются программисты редко, у нас есть проект микросервисов. Мы также использовали в своем проекте микросервис интеграции с Ai-фреймворком написанном на Python.
Собственно говоря это комбинация фреймворка и CMS.
CMS потому-что есть модули которые содержат готовый функционал для применения его уже реальных проектах. А также есть собранный dashboard для административных задач. Но в отличии от других CMS, этот dashboard можно с легкостью переделать полностью под любой другой UI-дизайн и структуру.
Фреймворк потому-что существует возможность использовать инструкции для динамических шаблонов, где из сразу вы получаете data-binding.
Я посмотрел сегодня пару туториалов по Wagtail на YouTube, и увидел что все же бекэнд писать надо.
Я в личном порядке могу выдать community версию. Пока времени не хватает на поддержание всей инфраструктуры. Документацию на этой неделе закончили. Сейчас можно думать о версии для коммъюнити.
В планах дальнейшего развития фреймворка выделить community версию.
mastermindcms.co/site/documentation.html — Здесь есть документация, я же оставил ссылки в статье.
> а потом выкинули и стали
А зря))). Может кто-то бы ваш продукт использовал сейчас в проектах.
> Я пиарюсь уже отменили? Теперь можно просто все что угодно, как угодно на Хабре пиарить?
Так развивают свои продукты, если о нем не рассказывать, то так никогда и не получишь фидбека от сообщества. А не будет фидбека, не будет продукта.
Не совсем так. WebSocket используется в качестве протокола для получения инструкций от клиента на рендеринг тегов фреймворка. REST API можно использовать также, есть специальный тег для этого во фреймворке. Ну или из JS уже что-то по AJAX доставать.
> Если да, то думали ли вы уже как будете масштабироваться и балансировать соединения при росте нагрузки?
За год использования в крупной платформе не разу такого не случалось. Все зависит от реализации фронэнда.
Да, именно так.
Нет, сначала сделал только одно массовое обновление по нужным токенам. Например по навыкам сотрудников. Сформировал в Excel список терминов, таких как Java,C#,C++,PHP и т.п. Потом проставил нужный мне тип токена для каждого термина, что-то типа того SKILL_PROGLANG, SKILL_FRAMEWORK, SKILL_NETADMIN. Сохранил в текстовый файл и сделал апдейт для датасета в БД на основе этого файла.
После чего обучил на этом датасете. И снова повторил формирования датасета уже с обученной моделью. И так далее повторяя этот процесс пока не получишь желаемый результат.