Задать вопрос
  • Имеет ли смысл такая оптимизация?

    @dragonesis
    Пример выглядит синтетическим. Зачем держать ссылку на активный таб, для меня вопрос. Более того, получается то псевдоэкономия. Класс, вместо функции, querySelector вместо getElementsByClassName.

    Если очень хочется, то почему не сделать так: вешается разовый слушатель на родителя, по клику по потомку собирается весь пул табов, активный таб добавляется в переменную.
    Далее клик по любому табу будет перезаписывать переменные с активными табами.
    Ответ написан
    Комментировать
  • Как исправить баг при скролле?

    @dragonesis
    Это, судя по всему, кастомный скролл. Соответственно, вариант один, блокировать скролл на windows. Можно воспользоваться плагином https://www.npmjs.com/package/body-scroll-lock
    Ответ написан
    Комментировать
  • Нужно ли знать ООП для React?

    @dragonesis
    Джуну знать отлично ООП? Это вряд ли. ООП, как и функциональное программирование, в своем эталоне довольно сложны для постижения. Хуки же, это довольно простая история, которую освоить джуну будет гораздо проще, т.к. нет сложной абстракции. Есть методы и есть их особенности.

    По поводу того, что во всех компаниях тысячи классов, это зависит от того, что имеет ввиду человек. В экосистеме реакта, есть классовые компоненты (к ооп не относится), сейчас считается устаревшим подход писать на них. И могут быть классы для построения какой-либо бизнес или функциональной логики. Там да, может быть ООП. Однако, само по себе использование классов не переводит код в ООПшный. Классы могут быть использованы по привычке, для сахара или упрощения отдельной функциональности.

    По этому выводы:
    ООП знать не обязательно для работы с реактом.
    Джун скорее освоит хуки, чем ООП
    По мимо ООП, есть другие подходы, то же ФП, которое гороздо более актуально для реакта
    Ответ написан
    1 комментарий
  • Как тестировать React веб-приложения?

    @dragonesis
    Вопрос задан не очень верно. React из него, на текущем уровне следует выкинуть.
    Далее ознакомится с пирамидой тестирования. Это уже закроет часть вопросов о том, что к какому типу тестов относится. Только после этого следует переходить к специфики реакта.

    Но если ответить на вопрос, то функции с помощью jest или аналогов.
    Сами компоненты React-Testing-Library + Jest
    Взаимодействие компонентов либо всё теми же React-Testing-Library + Jest, либо чем-то из интеграционных: TestCafe или Cypress или аналогом
    Ну и полные сценарии от открытия страницы до совершения последнего в цепочке целевого действия TestCafe или Cypress или аналогом

    Рекомендуют покрытие Unit тестов не менее 90%, причем после обработки через stryker mutator
    Интеграционные и e2e по критическим сценариям

    Как-то так
    Ответ написан
    Комментировать
  • Стоит ли проверять имя и пароль пользователей при каждом запросе к api(guzzle)?

    @dragonesis
    SPA или не SPA не в этом суть.
    Где собираетесь хранить пару логин-пароль? На клиенте? Безопасно? Думаю, что нет.
    Далее, вам следует выбрать один из существующих механизмов авторизации и применить его на проекте. Это могут быть сессии, токены или что-то еще.
    Ответ написан
  • Зачем выводят url загруженной картинки?

    @dragonesis
    Так делают, потому что они решили сериализовать форму разом, а не держать в памяти объект с данными изображения, который, в случае удаления пользователе картинки, нужно обрабатывать, удаляя из него данные. Довольно надежное решение.

    Почему урл картинки, а не что-то еще? Потому что картинка уходит запросом ранее, так как вместе с телом данных их не отправляют и данные формы надо как-то связать с изображением, а как это лучше сделать чем урлом?

    По отправке есть два варианта: загрузка изображений на сервер сразу и загрузка при отправке формы, с последующей доукомплектовкой тела запроса урлами изображений и другой информацией о них.

    Почему они сделали загрузку сразу? Это проще всего. В ином случае их ждала бы сначала загрузка изображений, потом формирование объекта с данными формы и ссылками на изображения и только затем сериализация этих данных, под искомый формат. Хотя именно так и правильно, как мне кажется.
    Ответ написан
  • Как сконфигурировать путь к компоненту в VuePress через alias?

    @dragonesis Автор вопроса
    В общем ответ был найден утром. Убрать слэш у "src/", всё работает, что логично как бы) Если бы не дошло, то комментарий Данила решил бы вопрос.
    P.S.
    Но вчера оно и без слэша не работало
    Ответ написан
    Комментировать
  • Можно ли дeлиться собрaнными cookies и данными с другими кoмпаниями?

    @dragonesis
    Парадокс в том, что правила обработки персональных данных пишите вы и вы можете указать, что будете передавать данные третьим лицам в целях которые придумаете, но при этом, эти самые третьи лица, в соответствии с законом о рекламе, не могут напрямую взаимодействовать с вашим общим клиентом, т.к. этот клиент не оставил третьим лицам свои персональные данные. Однако, отправка не рекламного сообщение, не попадает под закон о рекламе. Так что, в вашем случае закон не регламентирует такие действия. Однако, пользователя это может задеть за живое и он может отказаться пользоваться услугами тех, кому вы передали данные, т.к. "Откуда эти черти знают мою почту?".

    Собственно, небольшая ремарка.
    Как-то я обнаружил сервис, который, при посещении сайта, сканил систему и дергал все что можно. id в vk, от туда почту, телефон и другие контакты. Работает ли он так сейчас не знаю, но после этого я пять раз думаю, прежде чем соглашаться на обработку данных и стоит два блокера, которые на 99% избавляют от скана такими сервисами
    Ответ написан
    3 комментария
  • Какой скриншотер выбрать?

    @dragonesis
    Можно посмотреть в сторону приложения яндекс диск. Там встроенный скриншотер. Мне более чем хватает его функций.
    Ответ написан
    5 комментариев
  • Есть реально адаптивные/responsive - вплоть до 4k (широкие экраны) шаблоны?

    @dragonesis
    Возможно и будет когда-то подобное решение. Но нельзя сравнивать сервисы однородного контента и классические сайты. Например https://www.youtube.com/intl/ru/yt/about/ на 4к. будет выглядеть пустовато, по сравнению с fullHD. Вероятно, то что вы хотите не достижимо еще и по тому, что будет нарушать маркетинговые задачи проекта. Ведь от пользователя нужно что-то, а если он будет окружен большим количеством второстепенного контента, то и основной потеряется.

    Так что, мне кажется так. Если хотите портфолио на всю ширину то вперед, если страницу о компании, то не стоит.
    Ответ написан
    Комментировать
  • Почему многие ругаются на flex и float? Что в таком случае использовать?

    @dragonesis
    Добрый день.
    Вы можете спокойно использовать флексы и учить на тестовых примерах гриды. И правильно сказали авторы выше. Мы, в нашей компании, поддерживаем до ie11, так что и с чистой совестью используем данные инструменты.

    Но важно знать о слабых местах флексов и старых браузеров, в том числе ie11. Тогда все будет хорошо. Как пример, ie11 и старый Safari не поддерживают свойство flex-wrap: wrap; Это свойство может применяться для создания сетки 3х3 блока к примеру. В этом случае, для этих версий уместно будет использовать свойство display: inline-block; Которое позволит вам получить искомую сетку в эталоне или близком к нему.

    Также не везде работает вертикальное центрирование и еще пару передовых фич.

    Но в целом. Если на практике вычислить то, что встречается чаще всего в багах, записываемых на флекс, то можно аккуратно обходить их теми или иными средствами. В конце концов не один из методов построения сеток не идеален.
    Ответ написан
    1 комментарий
  • Как отдать сверстанный сайт заказчику?

    @dragonesis
    Если работа разовая, то можно архивом, причем, желательно, с отдельными css и js, это если без сборщика, типа gulp работать. Если со сборщиком, то можно прямо проект отправить, указав, где лежат сорцы. Краткого письма, для ранних проектов будет достаточно.

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

    Полноценный туториал имеет смысл писать для сложных, многокомпонентных систем.

    Для хранения репозитория, я предложил бы gitlab.com, да простят меня адепты гитхаба, т.к. он позволяет создавать приватные репозитории и не просит при этом денег за них.
    Ответ написан
    Комментировать
  • Есть ли решение для сетки изображений как на yandex картинках, www.shutterstock.com и google?

    @dragonesis Автор вопроса
    Нашел вот такое вот решение. В целом, подходит на 97%
    Ответ написан
    Комментировать
  • Почему gulp-jade-inheritance выбрасывает ошибку unexpected text?

    @dragonesis Автор вопроса
    Так и не нашел решения, единственное, что понял это то, что все работает в node.js 4.х
    Ответ написан
    Комментировать
  • Текстовый номер в верстке,на телефоне определяется как телефон?

    @dragonesis
    Если нет нужды в кликабельности данного номера на мобильных
    <meta name="format-detection" content="telephone=no">


    Если же кликабельность необходима, то изначально загоняешь под тег ссылки и её стилезуешь
    <a href="784222505295" class="class-name"><img src="/img/phone.png" alt="modal_phone">7 (8422) 250-52-95</p>
    Ответ написан
    Комментировать
  • Почему шрифт не отображется в указаном размере?

    @dragonesis
    Привет. У тебя не стоит мета тег viewport, из-за этого на мобильных девайсах и планшетах размеры пересчитываются под физические размеры экрана, т.е. разрешения 2048 x 1536. Обычной практикой является использование вышеупомянутого мета тега, с теми или иными характеристиками. Обычно я использую тег с такими, как ниже свойствами.
    <meta name="viewport" content="width=device-width, height=device-height, initial-scale=1.0, user-scalable=no, maximum-scale=1.0"/>


    При использовании данного тега уже после верстки, могут возникнуть артефакты, которые придется устранять. Могут поехать блоки, сайт может не вписаться в отведенные области, т.к. изначально верстался под другое поведение.
    Ответ написан
    Комментировать
  • Налоги для начинающего фрилансера?

    @dragonesis
    Из своего опыта и опыта своих знакомых могу сказать, что до 500 000 р. вами могут заинтересоваться, только в профилактичеко-показательных целях, т.к. что-то серьезное могут вменить только после этой суммы. Однако эта сумма должна быть получена в квартал, а не в месяц.
    Почему не интересуются мелкими суммами? Довольно сложно доказать незаконную предпринимательскую деятельность, на мелких суммах, особенно если их размазывать по разным счетам или получать налом.

    В небольших городах, могут заинтересоваться ради выслуги.
    Ответ написан
    3 комментария
  • Как оценивать вёрстку?

    @dragonesis
    Возможно поступить следующим образом, так когда-то сделал я. Поискал фрилансеров топовых и не очень, всего около 30 человек опросил. Представлялся заказчиком, просил расценки и сроки по макету, спрашивал про технологии и просил портфолио посмотреть. После свел все в таблицу, оценил все полученные данные и вывел для себя стоимость часа работы. Взял тот уровень, за который был способен ответить + немножечко больше). Важный момент, так или иначе но нужно выяснять количество реальных проектов и постараться удостоверится, что они принадлежат этому человеку, иначе может картина не сростись. Ну и делать поправку на регион проживания дизайнера.
    Ответ написан
  • Куда и как поехать на стажировку за рубеж?

    @dragonesis
    Рассказываю на основе опыта хорошего знакомого.

    У него было два пути: искать "русские" компании, работающие за рубежом или искать за бугорные, предлагающих стажировку.
    "Русских" компаний целый выводок. Кто-то в Таиланде, кто-то в ОАЭ, кто в восточной Европе. Последних нашлось всего парочку, но стажировку никто не предлагал. Тут речь идет только о тех компаниях, которые держат основные мощности за рубежом и комплектуют контингент из российских соискателей, а не те, что имеют филиалы, так-как они, в своем большинстве, не берут стажеров и сотрудников из России, на рабочие вакансии.

    Собственно первый путь отпал, после непродолжительного поиска, так-как критерий был США или Европа.

    Со вторым путем возникли несколько проблем. (Далее я буду описывать поэтапно, что он делал. Некоторые этапы, понятно, запараллелены, но в целом будет понятно )

    1. Изучить английский до уровня интермедиа и получить соответствующий сертификат.
    2. Пройтись по биржам на российских просторах, т.к. там бывают вакансии и предложения о стажировки от зарубежных компаний. (вариант не выгорел, то что было не подошло)
    3. Написать списки интересующих компаний
    4. На основе принятых за рубежом шаблонов резюме, написать свое. (По опыту получилось так, что европейские компании больше откликались на текстовое резюме в теле письма, а американские на графическое со ссылкой на интерактивную версию, т.е. на сайт )

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

    Однако, если стажировка нужна неоплачиваемая, то с ней намного проще, правда если ты студент вуза, который входит в какой-нибудь международный консорциум. Точно тему не знаю, но в Европе, работодатель, за каждого неоплачиваемого стажера, получает льготы, поэтому таких стажеров держат целыми выводками.
    Ответ написан
    Комментировать
  • Адаптивный дизайн. Какими должны быть размеры экранов?

    @dragonesis
    Не совсем верно. Все зависит от начального дизайна. Следует учитывать, что требуется. Сегментированная адаптация или респонсиваня. Если сегментированая, то градации бутстрапа вполне подойдут. Если респонсивный, то в идеале продумывать его изначально, т.е. строить карту сжатия на листе и задавать ключевые параметры в ui гайде. Например у вас три блока одинаковой ширины. Ширина задается в процентах на верстке и нужно определить, какова минимально допустимая ширина этого блока. По достижении этой ширины блоки можно расположить друг под другом или же опустить один блок ниже, при этом задав размер им не в ~33% от размера рабочей области, а в 50%. И далее в таком ключе. Почему это важно? Потому что если это не сделать, то верстальщик либо вас доконает вопросами, либо сделает на свое усмотрение, в большинстве случаев плохо.

    Сетки размеров для базового представления можно взять те же. Также следует учитывать landscape режим просмотра, в котором достаточно мало остается вертикальной рабочей области. Особенно проблемным местом являются full page страницы.

    P.S.
    Сегметированный дизайн. Дизайн по строгим ключевым точкам, зачастую с жестким переходом в размерах рабочей области, сейчас применяется редко, в основном на сложно структурированных проектах или проектах с большим количеством жестко позиционированных элементов
    Пример:

    Респонсивный дизайн. Когда при верстке большая часть контента легко "сжимается" по ширине\высоте, подстраиваясь под размеры рабочей области. Вызывает проблему с неровным разбиением, что вынуждает предугадывать поведение блоков при изменении размеров экрана.
    Пример:

    UP.
    Касательно отступов, то все на усмотрение дизайнера. В том же бутстрапе не составит труда переменить размеры отступов, несмотря на предложенные им 15px, иногда требуется 60, 30, 15 и все в одном макете. Все зависит от вашего умения и виденья
    Ответ написан
    Комментировать