• Используете ли вы React-подход components/containers в проектах?

    TchernyavskD
    @TchernyavskD
    Formoshlep
    Если мы говорим про понятие контейнера в виде реакт - компонента:
    Почитайте Атомик дизайн под Реакт, либо Feature Sliced
    Если совсем проще, то можно достичь, что Реакт будет только для рендера вью, а вся логика уйдет из уровня реакта, либо ее большая часть. Это идеально можно реализовать, например, с effector. Последние полгода нигде нет контейнеров.

    Почему AtomicDesign спасет вашу душу.

    Некоторые считают, что этот подход слишком заморочен. Заставляет много думать о расположении элементов, а при усложнении - перемещать его в другие директории. Если спросить Родионова - найдется ещё несколько причин, почему не надо использовать Atomic Design. В этом посте я хочу рассказать об обратном: как использовать подход Брэда Фроста в React.

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

    Многие задают мне один и тот же вопрос: "Куда положить компонент X?". Отвечаю сразу для всех компонентов: AtomicDesign - это подход, обеспечивающий вам архитектуру UI компонентов - не более. То есть контейнеры/коннекторы/роутеры вы можете класть в любую директорию, кроме ui. Я всегда рекомендую начать изучение с прочтения книги автора atomicdesign.bradfrost.com, но ниже немного опишу составные части.

    Сразу следует понять, что компоненты AtomicDesign — это бизнес-сущности, это то, чем могут оперировать дизайнеры и разработчики вместе. Не надо включать сюда различные таймеры появления блоков или логику переключения вкладок. Пусть даже они у вас описаны в виде компонентов или HOC'ов.

    Так почему это все спасает души? Чтобы понять ответ, обратимся к ещё одной теме фронтенда: типизированный javascript. Typescript/Flowtype придумали для наложения определенных ограничений на код, чтобы в дальнейшем его было проще поддерживать и читать. AtomicDesign накладывает ограничения на дизайнеров и фронтендеров, обязывая их общаться на одном языке бизнес-сущностей.

    Но необходимо добавить несколько слов о поддержке библиотеки компонентов AtomicKit. В какой-то момент возникает проблема усложнения компонентов, и многие задаются вопросом: "Как же быть, неужели теперь нужно перемещать компонент из атомов в молекулы?" — Нет.
    Перед стартом разработки необходимо тщательно проектировать набор компонентов и не менять его предназначения, пока он существует под таким названием. Если же вам необходимо усложнить компонент, добавить в него какие-то элементы - просто создайте ещё один компонент, который будет добавлять то, что вам нужно. Так вы не сломаете совместимость со всей библиотекой и реализуете необходимую вам фун
    Ответ написан
    1 комментарий
  • Ломается flex вёрстка при подключении Slick slider. Как исправить?

    0xD34F
    @0xD34F
    Оберните каждый из элементов .reviews__item в дополнительный div.
    Ответ написан
    1 комментарий
  • Вопрос к опытным верстальщикам от студента?

    ArsenyMatytsyn
    @ArsenyMatytsyn
    Руководитель frontend направления, предприниматель
    Я наставничаю по фронту и вот что скажу. Когда ты учишься по программе, то использовать готовые решения — почти табу, так как задачу обучения — научить верстать, а не копировать. Т.е. привить понимание того, что ты делаешь.

    К тому же среди критериев и тз учебных проектов есть четкие запреты на внешние модули. По той самой причине, научись сам, а потом пользуй, что угодно.

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

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

    Самую малость оффтопом: я считаю нормой давать сперва материал по конкретным технологиям, а потом дополнять упрощениями, библиотеками и т.д. А не наоборот, когда сперва учишь как использовать бутстрап, а потом объясняешь, к примеру, зачем нужен aria-label.
    Ответ написан
    Комментировать
  • Как исправить ошибку "You are using the runtime-only build of Vue where the template compiler is not available"?

    coderisimo
    @coderisimo
    Вам пишут, что вы используете билд , где компилятор шаблонов недоступен. Либо пре-компилируйте в рендер ф-ции , либо используйте сборку с компилятором.
    По умолчанию runtimeCompiler установлен в false . Попробуйте включить его в конфиге (vue.config.js).
    module.exports = {
      runtimeCompiler: true
    }


    https://cli.vuejs.org/config/#runtimecompiler
    Ответ написан
    3 комментария
  • Возможно ли заставить работать Heroku Без регулярных перезагрузок?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    Да легко решить эту проблему - надо научиться писать 12-факторные приложения.
    Ответ написан
    Комментировать
  • Где можно увидеть сравнение кода (плохой, хороший и идеальный) джуна, мидла и синьёра?

    joeberetta
    @joeberetta Куратор тега JavaScript
    Читай: https://epdf.pub/google-for-dummies.html
    К примеру такой вариант
    https://github.com/ryanmcdermott/clean-code-javascript
    Ответ написан
    Комментировать
  • Какой курс по веб разработке выбрать?

    0xD34F
    @0xD34F
    выбирайте оба - деньги вам ни к чему
    Ответ написан
    12 комментариев
  • Как обосновать необходимость серверной?

    paran0id
    @paran0id
    Умный, но ленивый
    1. Убраться уже в серверной
    2. Выкрутить обороты вентиляторов на максимум, чтоб выло, как боинг 747
    3. Пожаловаться на отсутствие кондиционирования (если это так)
    4. Расписать риски потери денег и данных, да так, чтобы тебе потом не сказали, что ты недостаточно убедительно их пугал (было в моей практике и такое).
    5. Прикинуть бюджет на обустройство серверной, но с запасом, чтобы можно было "ужаться"
    Ответ написан
    1 комментарий
  • Использовать foreach или все ещё for т.к многие браузеры не поддерживают?

    TTATPuOT
    @TTATPuOT
    https://code.patriotovsky.ru/
    Ответ написан
    Комментировать
  • Клонировать меню для мобильной версии сайта?

    @Ibishka
    Net konecna
    Ответ написан
    Комментировать
  • Как сделать такой SVG эффект?

    origami1024
    @origami1024
    went out for a night walk
    1) Линии через path.
    2) Круги на местах соединений - через svg элемент<marker>.
    3) Анимацию тегом animate.

    <svg viewBox="0 0 140 140" width=100vw height=100vh>
      <defs>
        <marker id="markerCircle" markerWidth="8" markerHeight="8" refX="5" refY="5">
            <circle cx=5 cy=5 r=3 />
        </marker>
      </defs>
      <path d="M20 20 L30 40 L70 20 L90 80" fill="none" stroke="red" marker-start=url(#markerCircle) marker-mid=url(#markerCircle) marker-end=url(#markerCircle)>
        <animate 
               attributeName="d"
               values="M20 20 L30 40 L70 20 L90 80;
                   M20 40 L30 10 L70 60 L90 110;
                   M10 10 L15 80 L120 70 L150 75;
                   M20 20 L30 40 L70 20 L90 80"
               dur="20s"
               repeatCount="indefinite"
               />
      </path>
    </svg>

    UPD: круги через svg marker
    Ответ написан
    Комментировать
  • Как сделать web страницу с генератором картинки?

    это можно сделать на Canvas
    у него есть экспорт картинки в виде dataURL
    Ответ написан
    Комментировать
  • В чем суть облачных сервисов?

    @EraserKhv
    Системный администратор
    Проще объясню.
    Предположим, гипотетическая ситуация, которой обычно объясняют зачем тебе Облако. - Есть у тебя интернет-магазин плюшевых мишек. Развернул ты сайт у себя на компьютере , который стоит в офисе в кладовке, и все хорошо, посещение сайта 1000 пользователей в день, продаешь ты свои 5 мишек в день, никаких проблем.
    Но тут надвигается 8 марта, и посещаемость сайта увеличивается до 5000 в час и твой компьютер не вывозит ни по процессору, ни по диску, ни по оперативной памяти, ни по пропускной способности интернет канала, службы обрабатывающие HTTP запросы все время отваливаются, интернет-канал забит, жесткий диск молотит, но все происходит все очень медленно, а ты на этом компе еще Z отчет кассовый делаешь в конце дня, а в соседнем цехе усиленно пекли печеньки с предсказаниями в глазури, автомат в ВРУ не выдержал, и отключился вместе со всем зданием и твоим компом. ПО итогу ты к 8му марта продаешь всего 3 медведя, да и еще кассовый отчет для налоговой не сгененрировал. После подобного факапа, ты себе говоришь: "ну на следующий праздник я так не облажаюсь". Выделяешь в офисе помещение под серверную, ставишь серверную стойку, покупаешь 4 сервера полноценных и распараллеливаешь инет запросы, новая система хранения данных, источник бесперебойного питания, 2 кондиционера и интернет канал расширяешь. Итогом к 8му марта следующего года, эта конфигурация выдерживает возросшую нагрузку и ты продаешь 45 медведей к 8му марта, профит ? А вот и нет, вся эта конфигурация нужна тебе в преддверии 8го марта, а остальные, предположим 360 дней, тебе бы хватало однго старого компьютера. А серверная потребляет только электричества на 500 руб в день, а интернет канал, и обслуживание серверов итого дороже!

    Так вот в облаке можно арендовать эти мощности на несколько дней, пока идет самый сенокос, а остальные дни довольствоваться слабенким виртуальным сервером за 300 руб в день.
    Ответ написан
    2 комментария
  • Как подключить к Windows 10 телевизор 8К?

    @mezhuev
    Системный администратор
    Ваша видеокарта не поддерживает вывод 8k по HDMI. В технических характеристиках вашей видеокарты указан HDMI 2.0b, а это максимум 4k. Для поддержки 8k нужна версия 2.1. Теоретически может заработать при подключении через DisplayPort, версия 1.4 как раз подходит.

    Далее ваш телевизор. Ситуация аналогичная, без 2.1 разрешения 8k по HDMI не будет. В руководстве пользователя сказано:
    • Мы планируем предоставить бесплатное обновление для поддержки HDMI 2.1 после его выпуска. Для
      получения более подробной информации обратитесь в центр поддержки клиентов Samsung.
    • Бесплатное обновление для HDMI 8K 60A будет предоставлено после его выпуска. Для получения
      более подробной информации обратитесь в службу поддержки.

    Обращайтесь и выясняйте, как и когда они предоставят данное обновление. Но это всё равно не решит вопрос с вашей видеокартой.
    Ответ написан
    1 комментарий
  • Где лучше качество кода?

    Maksclub
    @Maksclub Куратор тега PHP
    maksfedorov.ru
    Все плохо
    • Глобальные переменные — зло
    • На лицо некий код, который и с сессией работает и с БД — явное нарушение общепринятных принципов, например SRP
    • $dao как инициализирована? Явно не через конструктор
    • Использование цифры, вот сиди гадай по ней — это плохо, используйте именованную константу. Например 3 — это некий статус для desktop, вот и назовите ее STATUS_DESKTOP, хотя далее...
    • вы обращаетесь к одному методу, который шибко умный — работает с флагами, тем самым нарушая SRP и сам содержит if/else, сделайте просто 2 раздельных метода:
      getMobileOpinionList()
      getDefaultOpinionList()

    • Предикат лучше вынести в отдельный метод isMobileOnly(), тк условия могут поменяться в нем, не будете же везде в if менять по всему проекту
    Ответ написан
    33 комментария
  • Годный материал для обучения SEO?

    OtshelnikFm
    @OtshelnikFm
    Обо мне расскажет yawncato.com
    СЕО как астрология. На просторах инета написано много, но нет единой базы знаний и что страшно - никто не понимает как это работает - только догадки. Ну есть конечно такие общие понятия как семантическое ядро (звезды) заголовки и метатеги (созвездия), но вот если углубиться в ранжирование - то мы получаем понятия "близнец сегодня в созвездии девы"
    Ответ написан
    1 комментарий
  • Как убрать или изменить разделитель в характеристиках товара в CMS Bitrix?

    alex-1917
    @alex-1917
    Если ответ помог, отметь решением
    bitrix/templates/НАЗВАНИЕ_ШАБЛОНА_САЙТА/components/bitrix/catalog.element/НАЗВАНИЕ_ШАБЛОНА_СТРАНИЦЫ ТОВАРА/template.php

    Разделитель-то не зря задуман, а что если свойства множественные будут.
    Видите, тут работы на час, а час битриксоида стоит умопомрачительных денег.
    Это же не модно-стильно-молодежно (Нода, Пайтон, граф-кюэль, ...),
    это дорого-эксклюзивно-спокойно-Ferrari 250 GTO 1962 года
    Ответ написан
    Комментировать
  • Что выбрать для дипломного проекта - монолит или микросервисы?

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