• Как правильно реализовать авторизацию и аутентификацию на сайте?

    @ghostiam
    На Go писатель, серверов пинатель.
    Да, самый простой вариант, это:
    Пользователь отправляет нам на сервер логин+пароль.
    Сервер сверяет с данными в БД, если всё хорошо, то генерирует большую случайную строку(Токен), которую добавляет как запись в БД (UserID, Token), после этого отправляет клиенту токен, чтоб тот установил у себя его в куки (заголовок Set-Cookie).
    Теперь браузер клиента на каждый запрос будет отсылать на сервер куку и мы можем, обращаясь к БД на поиск строки из куки, получать данные о пользователе.
    Но так как хранение в БД не всегда эффективно, токены хранят иногда в быстрых БД, таких как Redis или MemCached.

    По поводу сессии:
    Иногда, чтоб не ходить в главную БД на каждый запрос, некоторые данные выносят из главной БД(В тот же Redis, MemCached или даже просто в файл на диске с именем токена). Просто теперь, хранится не только токен, но и по имени токена сразу же получают некоторые данные, например, что у пользователя ID=42 и что он администратор.

    Через какое то время удалять?

    День, неделя, несколько часов, зависит от задачи.
    Например, некоторые сайты хранят сессию сутки, но если нажать галочку "Запомнить меня", то срок может увеличится до недели или месяца.
    Сервисы оперирующие с деньгами или чем-то, что может представлять ценность, делают сессии от 10 минут.
    Ответ написан
    6 комментариев
  • Как работать с выгоранием?

    pospelov
    @pospelov
    Руководитель веб-студии
    Не работать в выходные и вечерами.
    Не работать в компании, где не комфортно работать.
    Не работать в режиме аврала больше 20% всего времени.
    Отдыхать раз в пол года.
    Развивать навыки хотя бы 5 часов в неделю. Что бы увеличивать скилы, либо личное КПД.
    ВАЖНО - приберитесь в задачах. Должен быть один единый центр, задачник. Трелло, Тудуист, бумажки, не важно.

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

    LazyTalent
    @LazyTalent
    Data Engineer, Freelancer
    1. Надергать изображений цифр (как можно больше и разнообразнее)
    2. Обучить свою модель для tesseract-ocr
    3. Скормить капчу в тессеракт (возможно еще потребуются дополнительные телодвижения с числами: обесцветить, подавать в тессеракт не все число сразу а по отдельной цифре, как-нибудь повернуть итд.)
    4. Получить результат
    5. Профит
    Ответ написан
    2 комментария
  • Что могут спросить на собеседовании на вакансию верстальщик?

    sim3x
    @sim3x
    sass/less, bem, html, js

    В вакансии указаны требования к фулстаку
    Ответ написан
    Комментировать
  • Проверка наличия изображения записи Wordpress?

    @megamutex
    Доп. поля плагином выводятся? Я, например, использую ACF. Выполнял проверку на наличие изображения таким образом:
    <?php
    $images = get_field('img');
    if( $images):
    ?>
    
    <!-- Выводим то, что нужно, если картинка есть-->
                            <?php else: ?>
    <!-- Выводим то, что нужно, если картинки нет-->
                            <?php endif; ?>
    Ответ написан
    Комментировать
  • Как персонифицировать Cover Letter клиенту под столь простые задачи?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    Hello, Jimmi
    I'm not a monkeycoder
    I worked on a project like this a while back
    you can see my product here and here
    Je ne mange pas six jours
    Ответ написан
    2 комментария
  • Как сделать не адаптивный сайт?

    @soledar10
    html css3 js jquery
    <meta name="viewport" content='width=1170' />
    1170 - ширина контентной области
    Ответ написан
    Комментировать
  • Что нужно уметь, чтобы я справедливо мог вписать git в резюме?

    bask
    @bask
    Этого достаточно.
    Но придерживаться Git Flow крайне рекомендую.
    Здесь простым языком и по-русски:
    https://proglib.io/p/git-github-gitflow/
    Ответ написан
    1 комментарий
  • Чем webpack лучше gulp/grunt?

    Webpack - это система сборки с массой возможностей. В частности, он анализирует JS-код (а также CSS или другой, через лоадеры), это даёт ему superpowers.

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

    То есть, это две разные вещи. В качестве одной из задач на gulp/grunt вполне может быть сборка webpack, так обычно и делают.

    Простую сборку вполне можно написать и на gulp/grunt напрямую. А если посложнее или просто хочется иметь задел "на будущее", то можно воспользоваться специальным инструментом (Webpack).

    P.S. У меня когда-то были и gulp task'и сборщики и browserify, но уже давно их место плотненько занял Webpack.
    Ответ написан
    18 комментариев
  • Как эффективней отрисовывать много SVG графики?

    Vlad_IT
    @Vlad_IT Куратор тега JavaScript
    Front-end разработчик
    По скорости работы, быстрее будет canvas, но он по скорости разработки будет хуже. У меня никаких тормозов на vue+svg нет, по крайней мере, до 500 объектов на холсте. Для оптимизации могу посоветовать некоторые вещи:
    1) Используйте path вместо нескольких разных других фигур.
    2) Для сетки не создавайте кучу линий или фигур, просто используйте pattern. Вот пример из моего проекта (он на React JSX, но не суть)
    <pattern id={"bg-" + this.props.id} patternUnits="userSpaceOnUse" width="100" height="100">
        <rect width="100" height="100" fill={this.props.canvasColor}></rect>
        <g fill={this.props.canvasGridColor} style={{ fillOpacity: 0.34 }}>
            <rect width="100" height="1" y="20"></rect>
            <rect width="100" height="1" y="40"></rect>
            <rect width="100" height="1" y="60"></rect>
            <rect width="100" height="1" y="80"></rect>
            <rect width="1" height="100" x="20"></rect>
            <rect width="1" height="100" x="40"></rect>
            <rect width="1" height="100" x="60"></rect>
            <rect width="1" height="100" x="80"></rect>
        </g>
        <rect width="100" height="100" fill="none" strokeWidth="2" stroke={this.props.canvasGridColor}></rect>
    </pattern>

    вот так заливаю на холст
    <rect style={{ 'fill': `url(#bg-${this.props.id}) #fff` }} ... />

    3) Задавайте для изменяемых объектов атрибут уникальный атрибут key
    4) Цельные объекты кидайте в группу, и на нее назначайте общие стили и позицию.
    UPD: простой пример на 1000 объектов (можно добавить, поменяв константу COUNT_OBJECTS) с drag&drop
    jsfiddle.net/Vlad_IT/81kegmxf
    UPD2: вот тот же пример, только с сеткой jsfiddle.net/Vlad_IT/qt64rouL/1 если делать сетку не заливкой, а элементами, будут ощутимые тормоза.
    Ответ написан
    1 комментарий
  • Как ускориться и быстрее писать веб-приложения?

    webinar
    @webinar Куратор тега Веб-разработка
    Учим yii: https://youtu.be/-WRMlGHLgRg
    Сколько времени у вас уходит на развертыванием веб-проекта

    3 часа 14 минут. Не зависимо от ТЗ и сложности. Просто чудо какое-то что б не делал всегда 3,14 часов. Что бы не делал - 3,14 просто ПИ...тое число.

    Хочу ускориться, делать больше работы за единицу времени

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

    Неужели создание сайта (верстка, бэкенд, фронтенд, проектирование бд итд) настолько нудный и муторный процесс?!

    Вам виднее, это дело вкуса. Если Вам нудно - значит нудный. Попробуйте копать траншеи, может веселее пойдет.

    Поделитесь секретными инструментами, приемами, фреймворками, позволяющими выполнять проект за считанные дни.

    boostrap, vue, jquery, gulp, нормальная IDE, опыт и т.д.
    если надо волшебства - беритесь за проекты, которые делаются за "считанные дни". Например, работайте только wp и готовыми шаблонами. Думаю за пару часов можно собрать сайт (3 часа 14 минут).
    Ответ написан
    Комментировать
  • В каком классе писать логику столкновений двух объектов?

    hack504
    @hack504
    Нигде. В парадигме ООП и снежинка и варежка и сцена - описывают только свое поведение методами и свойствами. Введите ещё одну абстракцию - мир(или физика), которая содержит все эти объекты и описывает поведение их взаимодействия.
    Сцена детектит столкновение снежинкой и варяжкой - передает миру, а тот в свою очередь удаляет снежинку, запускает анимацию варяжке, запускает в сцене радостный звуковой щелчок.
    Таким образом, если в дальнейшем реализовывать дополнение "Грачи прилетели", то легко реализуется логика столкновения варяжки и помета => помёт остается, варяжка замирает, в сцене грустный звук "ооу"
    Ответ написан
    Комментировать
  • Как вы учитесь и ищете чужие исходники?

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

    Так из обычной html-верстки я начал влезать в js и php одновременно, но предпочтение все же отдал js, хотя и ковыряние в вордпрессе дали некоторое понимание как работает php и как стоит писать/как не стоит.

    Далее я уже не боялся брать чуть более сложные задачи (для меня тогда), просто рылся в скриптах, которые использовал (чтобы понимать почему ЭТО работает). На том же вордпрессе стал делать более грамотные темы, писать возможности кастомизации и прочее, шаг за шагом в этом разбираетесь и все.

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

    Спустя какое-то время наслышавшись всяких ES5, React, Angular, Vue, стал просто читать что это, как это, ничерта не понял, закрыл.

    Через какое-то время уровень проектов пошел такой, что я понял смысл использования того же VUE, открыл всю ту же зеленую книгу с носорогом стал вдоль и поперек ее изучать. Спустя время, документация по vue меня нисколько не пугала, я сел и стал переписывать проект, который до этого писал на javascript + jquery.

    С тем же PHP такая же ситуация, мне просто стало интересно (а иногда и нужно), как работаю серверы, как делаются api и так далее, товарищ, работающий в подобной сфере в хорошей компании, быстро сказал в каких аспектах я дно, после того как я задал ему пару глупых вопросов. И я стал снова: читать статьи, практиковаться, исправляться, смотреть что пишут другие.

    В целом схема обучения проста: вы берете какую-то задачу, которую сходу не можете сделать, начинаете ее решать, пока решаете, возникает куча вопросов, вы ищете информацию, МНОГО ИНФОРМАЦИИ, так и учитесь. Я соглашусь, что пилить всякие todo листы наверное не интересно, попробуйте написать что-то интересное для себя, либо интересное с точки зрения: ВАУ Я МОГУ СДЕЛАТЬ ЭТУ ВЕЩЬ.

    Самое главное - не пытайтесь гнаться за всем подряд, не надо сидеть разбираться с гитхабом, если на вашем уровне профессионализма он вообще никак не задействован. Не надо учить React, Vue, Angular, если на вашем этапе профессионализма они вам не требуются. Не надо вникать в ООП, если для вас написание простых функций уже является сложностью. Делайте постепенно и не гонитесь ни за чем.
    Ответ написан
    4 комментария
  • Как работать с Atom CSS?

    dom1n1k
    @dom1n1k
    Атомарный CSS в качестве основной методологии - это бред даже для лендосов, а уж в крупных проектах это просто апокалипсис.
    Но он имеет право на существование в малых дозах, как локальные уточнения для обработки всяких исключений и частностей.
    Сколько вы кладете в еду соли и перца относительно объема остальных продуктов? Вот столько в коде страницы должно быть атомарных стилей.
    Ответ написан
    Комментировать
  • Как работать с Atom CSS?

    SmthTo
    @SmthTo Куратор тега CSS
    Все перепёлки мира будут оплакивать мою смерть.
    Вы всем своим вопросом написали себе ответ.

    Так сказать, прибили громадными гвоздями крышку гроба «атомарного CSS».

    Ядерная дичь и говно этот «атомарный CSS», если использовать его так, как гласят больные фантазии его создателей-идеологов.

    Атомарный CSS стоит использовать как небольшое расширение, как некая надстройка из универсальных функциональных стилей среди нормальных стилей проекта.

    Иными словами, ограничить их использование до уровня .hide-xs, . visually-hidden — что-то типа такого.

    Да, безусловно, работать с этим «атомарным» недоразумением надо уметь. Но умение это сродни способности мизинцем делать дырки в батоне хлеба.

    P. S. Рыдаю:
    D(f) Jc(c) Ai(c)
      Ff(Mon) Fz(15px) Fw(400)
      Pos(r) My(10px)
      Cnt(empty)::b D(b)::b Pos(a)::b End(0)::b T(0)::b H(100%)::b W(1px)::b Bgc(#ccc)::b
    Ответ написан
    2 комментария
  • Как подсчитать слайды в owl, если внутри еще owl?

    iamd503
    @iamd503
    Верстальщик
    357da9d2b35e98fc8c624150e70025af.jpg
    Слайдер внутри слайдера. Мммм...

    Ну а вообще, у вас 2 слайдера с одним и тем же классом slider_img owl-carousel.
    Что находится в переменной owl2?
    Ответ написан
    1 комментарий
  • Почему у меня не работает :after/:before на img если прописан путь к картинки?

    @soledar10
    html css3 js jquery
    :before и :after добавляет контент к содержимому элемента, а у img же как такового содержимого нет.
    Решение - завернуть img в div и к нему уже применять псевдоэлементы.

    Также псевдоэлементы нельзя применить к input
    Ответ написан
    2 комментария