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

    iit
    @iit
    TeamLead + php/js разработчик
    Все зависит от того кто и как будет обращаться к backend.

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

    В случае обычного сайта или SPA возможно использовать сессии.

    Если используем обычные статические страницы + http api тогда сессия вполне нормальный вариант в том числе и для приложения по типу web-view.

    Если используем SPA с REST api / Graphql тогда токены удобнее.

    Что касается где хранить id пользователя в токене то самом JWT есть заголовок для этого. Вообще Jwt это 2 json + хэш/ключь слепленные вместе через base64.

    Первый json - служебный в нем идет алгоритм и тип ключа, второй - настраиваемый и может содержать что угодно, правда для некоторых моментов например id токена (jti) или id сессии (sid) есть предопределенные заголовки. Полный их список тут

    В вашем случае есть 2 варианта

    1 - доступ по сессии
    API и SPA требует сессию для защищенных методов, авторизация эту сессию предоставляет. Авторизация - может быть выполнена как обычной статической html с формой так и отдельным SPA.

    2 - доступ по токену
    В этом случае Авторизация реализуется в виде api на стороне сервера, и в виде токена
    + формы + логики авторизации на стороне клиента (Vue). Если токен есть - тогда есть доступ, если нет - то доступ только к методам регистрации и авторизации.
    Чтобы не палить код той части приложения где есть логика и фронт закрытой части - можно использовать code-splitting - сперва подгружается форма авторизации а остальное грузиться тогда когда это нужно.

    Есть правда еще более извращенные варианты вроде SPA с SSR на том-же Nuxt/Next/Express где пользователю токен а бэку на Go/JAVA/PHP уже токен приложения + токен пользователя.
    Иногда стоит использовать OAuth2.0 и LDAP которые тоже довольно интересны.
    Первый хорош на все случаи жизни, но только если используется куча связанных приложений/микросервисов а второй просто рай для бизнес-пользователей с Windows для какой-нибудь коробочной CMS.
    Ответ написан
    Комментировать
  • Дизайн сайта в Adobe XD для чего?

    @ollisso
    1. В России и в остальном мире - разное отношение к дизайну. Т.е. очень часто может быть что на компьютере верстальщика даже нет фотошопа :) Причина - цена лицензии.
    2. Очень разные стили, мир идет к mobile-first, responsive и тд дизайну. В этом случае - фотошоп еще меньше нужен, а нужен инструмент, в котором ты сможешь подготовить макет, как дизайн выглядит в разных разрешениях.
    3. задача Adobe XD немного другая чем Фотошопа. В фотошопе ты редактируешь картинку, и показываешь картинку. В XD ты можешь сделать полностью работающий (упрощённый) макет, чтобы проверить его в на разных разрешениях, устройствах и тд. Это дает возможность быстро прототипировать и проверять, насколько удобно будет пользоваться приложением, например на мобильных телефонах.
    4. Adobe XD - не только веб, но и например телефоны, планшеты и тд. Т.е. можно проверять удобство работы например приложения на телефоне.
    Ответ написан
    4 комментария
  • Что такое Redux простыми словами?

    edtoken
    @edtoken
    Full-stack Javascript/Python Developer
    В данном случае разное мышление (проектирование).

    В вашем случае:
    Логика идет от компонентов.
    Допустим на странице пользователя есть label online/offline
    Откуда брать значение, если нужно заблокировать окно чата в тот момент когда пользователь offline?
    Что если таких действий не одно, а допустим штук 10?
    Что если таких действий не одно, а допустим штук 10 и еще на разных страницах?
    Куда вынести функцию, которая проверит статус пользователя?
    Как её назвать чтобы не было конфликта имен?

    Redux для меня в первую очередь подход.
    1. Проектируется состояние (база данных фронта)
    {user:{online:false}}
    2. действие checkUserStatus (ajax/socket)

    3. сколько угодно компонентов (которые не знают друг о друге ничего и имеют любое поведение, в зависимости от статуса пользователя)
    компоненты могут ничего не уметь кроме как рендерить этот статус (label), или, могут быть более сложными и иметь логику + обработчики (кнопки, пр)
    Ответ написан
    4 комментария
  • Что такое Redux простыми словами?

    @KnightForce
    Чтобы понять как работает Redux тебе нужно норм вкуривать React.
    Хотя бы для того, чтобы не пугаться props.

    Есть у тебя React. Это все просто JS объекты.
    <Component /> - так позволяет писать движок jsx, который и React его использует.
    Так как структура компонентная, ты должен думать как обновить компоненты в в другой части страницы.

    Принцип такой: компонент обычно обновляется при получении новых свойств - props или когда меняется его объект состояния - state.

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

    Что делает Redux:
    Он не призывает отказываться от state.

    Но есть общий контейнер данных. И когда данные меняются - меняются и компоненты, которые отображают именно эти данные.

    Когда нужно что-то поменять - вызываешь dispatch - специальная функция reducer реагирует на это - и меняет данные как тебе нужно. Когда данные заменятся - компонент Propvider - вызывает рендер у своего дочернего компонента (тот что оборачивает Provider).
    Например:
    <Provider>
       <MyComponent />//Вот сюда Provider пробросит (запишет) новые props.
    </Provider>


    Записывает он это самое глобальное хранилище и все компоненты, для которых поменялись данные - перерисуются.

    mapStateToProps - указывает какую часть этого глобального хранилища будет предоставлять provider.
    Если у тебя оно такое:
    {
       chunkStore: {},
       some: {}
    }

    То если mapStateToProps вернет{store: store.chunkStore}то Provider в props своего потомка пробросит такое: store: store.chunkStore. И ты будешь обращаться внутри к store, но там будет только часть chunkStore (не весь объект, а его поле).

    mapDispatchToProps - т.к. subscribe нет, то это возвращает функции, которые могут внутри себя вызывать dispatch().

    action - описывает то что и на что ты хочешь поменять. Какое поле и какие данные туда поместить.
    Ответ написан
    Комментировать
  • Как встроить gitlab в phpstorm?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Как встроить gitlab в phpstorm?
    В каком смысле "встроить"? Вы можете на GitLab'e создать проект/репозиторий, получить его ссылку и делать pull/push/etc Вашего местного (локального) git-репозитория с проектом в удаленный репозиторий, лежащий на GitLab'е.

    Делается это примерно в следующем порядке:
    0. Создаёте/открываете Ваш проект в ПХПШторме
    1. Меню -> VCS -> Enable version control integration, и там выбираете Git
    2. Нажимаете правой кнопкой на папке проекта в Шторме, и далее по меню:
    59d3cb3182f3c558793291.png
    3. Откроется окно управления удаленными репозиториями, где Вы можете добавить ссылку на удаленный репозиторий полученную ранее на GitLab'е.

    Собственно и всё почти. При попытке Push/Pull - у Вас запросят логин/пароль от GitLab'а.
    Ответ написан
    3 комментария
  • А как вы проектируете новый сайт\сервис визуально?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Блок схемы тут не подойдут, т.к. слишком массивный проект.
    Говорю Вам, как архитектор: Вы - точно ошибаетесь! Блок-схемы - здесь лучший инструмент. Не забывайте про уровни абстракций и drill-down внутрь блока на более низкий уровень абстракции.
    Сначала - определяете все взаимодействия топового уровня абстракции, из них - выделяете основные роли. Затем, ставите на схему блоки: каждый блок - это отдельная роль и формируете связи (соединяете стрелками), согласно их взаимодействию и направлениям каждого из взаимодействий.
    По клику на каждый блок (drill-down) - "проваливайтесь" на более детальный уровень абстракции (в текущей или новой схеме) и т.д.
    Я использую Edraw Free Mind Map
    Шаги по проектированию: здесь.
    b2cae22bff.jpg
    Ответ написан
    8 комментариев
  • Зачем нужны спринты в SCRUM? Как поставить цель спринта?

    @imikh
    задачи абсолютно разные и сгруппировать их по какой то цели просто невозможно.

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

    myrkoxx
    @myrkoxx
    developer
    Trello для начала будет норм. очень простой и можно кастомайзить
    Ответ написан
    1 комментарий
  • Какой таск-менеджер выбрать программисту?

    Sir_Waat
    @Sir_Waat
    Business Analytics, Scrum Master
    Trello, Taiga больше для индивидуального (или до 5 человек) отслеживания задач и не нужно.
    Для персональных нужд трелло, но для работы в дев. его приходятся обвешивать плагинами, что иногда вызывает конфликты между самими плагинами.
    Тайга - почти копирует базовый функционал джиры + дает возможность писать простенькую документацию по своему же проекту. Как помне - идеальный выбор.
    Ответ написан
    2 комментария
  • Есть ли рандомайзер вКонтакте среди репостов всей ленты (диапазону постов)?

    sergiks
    @sergiks Куратор тега ВКонтакте
    ♬♬
    Задача нетипична, поэтому вряд ли в сервисах предусмотрен такой сценарий. В то же время реализовать такой выбор несложно с помощью API ВКонтакте:
    1. получить список записей и отфильтровать, оставив только входящие в период
    2. найти репосты
    3. проверить каждый, оставляя только закреплённые (поле is_pinned)
    4. выделить их авторов
    5. отсеять не-участников группы groups.isMember()
    6. выбрать из них трёх случайных
    Ответ написан
    Комментировать
  • Как избавиться от привычки усложнять задачу?

    romy4
    @romy4
    Exception handler
    Этот процесс называется определение milestones. Вы сперва определяете MVP (minimal valuable product) — то есть тот уровень завершённости (без рюшечек и плюшек), при котором можно получать выгоду и дальше вы уже строите отталкиваясь от MVP
    Ответ написан
    Комментировать
  • Какие есть ресурсы с интеллект-картами или конспектами по прочитанным книгам?

    @Lampochkagori
    Совятник. Есть и сообщество в вк, куда иногда бесплатно некоторые книги выкладывают.
    Ответ написан
    1 комментарий
  • Какие есть ресурсы с интеллект-картами или конспектами по прочитанным книгам?

    @MichailNikiforov
    https://www.mindmeister.com/mind-maps

    Здесь люди со всего мира выкладывают свои майндмапы. В том числе конспекты книг.
    Можно искать через поиск, можно по категориям (Бизнес, эффективность, развлечения и т.д.)
    Ответ написан
    Комментировать
  • Как правильно считать эффективность онлайн консультанта?

    opium
    @opium
    Просто люблю качественно работать
    Логично сравнить с историческими данными. Было столько то людей не нулевиков покупали столько то
    Стало столько то людей, в чат пишет такой то процент , покупают столько то .
    Ответ написан
    Комментировать
  • Какие существуют свежие альтернативы Bitrix24 для управления задачами?

    @AlekVorm
    Использую Pyrus. По пунктам, что есть:

    Основные требования:

    1. Есть.
    2. Есть.
    3. Есть.
    4. Есть.
    5. Нет, но и не надо в случае наличия остального.
    6. Есть.
    7. Есть.

    По желательным требованиям также все есть, в том числе, бесплатная версия. Помимо этого очень важным преимуществом является возможность не только управления задачами, но и создания и запуска бизнес-процессов при помощи визуального редактора, чем пользуюсь регулярно. Минусы: коробочная версия только в самом дорогом пакете.
    Ответ написан
    Комментировать
  • Ваши действия, если джуниор не успевает выполнить задачу?

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

    Antonoff
    @Antonoff
    Разработчик
    Trello & Atlassian Jira, самые практичные, в этом плане.
    Ответ написан
    5 комментариев