• Фронтенд и бекенд в разных репозиториях или в одном?

    Stalker_RED
    @Stalker_RED
    Можно и так и этак.

    Для небольших проектов удобнее все в одном месте.
    Ответ написан
    Комментировать
  • Фронтенд и бекенд в разных репозиториях или в одном?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Как хранить исходники вместе или раздельно по разным репозиториям? Какие плюсы и минусы каждого способа?
    Мне кажется тут вопрос не столько в "плюсах и минусах" сколько в здравом смысле. Мне не совсем понятно, что в конечном счёте означает "бекенд на python, фронтэнд на angular". Это два независимых проекта, способных работать автономно друг от друга и "общаться", например, через API, разработка которых происходит параллельно и независимо друг от друга, при этом какие-либо части проектов не пересекаются между собой (например, куски HTML/CSS/JS/etc кода не копируются в бекенд-часть)? Если так - то крайне логично разделить это на два отдельных репозитория, т.к. это по сути два разных проекта, связанных между собой весьма косвенно. Если же у Вас проекты имеют более прочную связь между собой или степень контаминации исходного кода выше той, что я описал ранее - то это один проект и дробить его на множество репозиториев, лично я смысла не вижу никакого (а то мы так дойдём до "давайте хранить HTML-код в одном репозитории, CSS в дургом, JS в третьем и т.д.).

    P.S. Обычно, такие вещи разъясняет штатный тимлид, а не коллеги по форуму :)
    Ответ написан
    5 комментариев
  • Как сделать реактивные данные в сервисе Angular?

    Xuxicheta
    @Xuxicheta Куратор тега Angular
    инженер
    Смотрите, чтобы данные визуально отобразились, нужно чтобы сработала детекция изменений в этом компоненте.
    В случае использования rxjs, вызов подписок инициирует обнаружение изменений (ну на самом деле немного сложнее, но и так норм), а вот если вы просто объект поменяете, то нет. Придется как-то отслеживать эти вещи вручную.

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

    Скорее всего в этом компоненте есть какое-то взаимодействие с пользователем, генерация событий.

    Обязательно ли здесь использование rxjs?

    Можно ли работать с Ангуляром, но не использовать rxjs? Можно. К примеру дергать какое-нибудь событие, а компонент будет его слушать и выполнять detectChanges. Можно mobx к этому делу приспособить, например. Можно приделать каких-нибудь костылей наподобие vuex, т.е. сделать сеттеры, которые обновляют компонент. Или эффект в redux.
    Нужно ли работать с Ангуляром, но не использовать rxjs? Безусловно нет. В сервисе данные храните как поток (сабджекты и их производных) или shareReplay, или исползуйте какие-то надстройки, типа ngrx и прочих.

    Rxjs тесно связан с самим Ангуляром и используется практически везде, не знаешь rxjs - не знаешь Ангуляр.
    Ответ написан
    4 комментария
  • Какие плюсы и минусы работы команды над двумя активными спринтами?

    @kn0ckn0ck
    Продюсер
    Это профанация.

    1. stage - это по определению не для новой функциональности, а для стабилизации уже реализованной (посмотрите перевод термина). Вы либо перепутали, либо кто-то что-то не понимает.
    2. нет никакого смысла в параллельных спринтах, поскольку цель спринта - поставить работающий продукт. У вас два разных продукта в рамках одной кодовой базы?
    3. бывает так, что нужно фиксить баги текущего релиза и делать фичи в новом. Если багов не много, то есть подходящий для этого процесс под названием Скрамбан. Если багов много, то нужно остановиться плодить баги, все почистить и потом перейти к Скрамбан.
    Ответ написан
    1 комментарий
  • Можно ли назвать это говнокодом?

    Ni55aN
    @Ni55aN
    Наследование ElementsTable от Sorting выглядит нелогично. Таблица не должна наледовать сортировку. Класс Sorting в этом случае вообще не нужен. Мнимум это можно сделать его методы статическими, максимум - вообще вынести функции в отдельный файл

    sorting не особо полезен, чтобы под простой тернарник делать отдельную функцию

    Какие-то магические переменные и регулярка в sortingByDate. В нем же дублируется логика для первой и второй даты

    createOptionTags, createOptions и т.п. лучше выносить в отдельный класс для работы с представлением. А еще лучше, если это не единичный случай работы с DOM, использовать что-то легковесное для синхронизации представления и данных (preact, например)

    selectColumn - а какой column, не понятно, никакие параметры не принимает
    Ответ написан
    Комментировать
  • Можно ли назвать это говнокодом?

    irishmann
    @irishmann
    Научись пользоваться дебаггером
    Да, можно назвать.
    Ответ написан
    2 комментария
  • Комментарии - древовидные или линейные?

    Color
    @Color
    Golang SWE, Cloud & DevOps
    Если хотите совсем загнаться по юзабилити, то сделайте несколько вариантов комментариев и возможность переключаться меджу ними. Где-то видел такое, удобно.
    Например
    - по дате добавления (список)
    - по топику (дерево)
    - по релевантности (лайки)
    - etc.
    Ответ написан
    5 комментариев
  • Как можно измерить (оценить) выгоду от перехода с Waterfall на SCRUM?

    angrySCV
    @angrySCV
    machine learning, programming, startuping
    >Задач множество, каких-то типовых нет.
    если задачи уникальные, то все ваши планы по разработке - очковтирательство.

    >переход всей разработки на SCRUM, только после того , как мы сможем на цифрах показать выгоду
    ваше мышление еще не готово переходить на гибкие методологии.
    Многие вещи в цифрах не считаются.
    Вам предлагают посчитать в цифрах следующее: идти в магазин ориентируясь на местности или идти в магазин с закрытыми глазами по карте которую вы нарисовали у себя дома, при этом вы никогда не ходили до этого в магазин и вообще не знаете есть ли он там.
    По плану и там и там одинаково эффективно вы должны дойти, а в реальности с закрытыми глазами вас через 15 минут пути машина собьет, или вы просто шею сломаете зайдя не туда.
    ========
    Суть в том чтоб за 2 года запланированной разработки, не прийти в помойную яму вместо магазина.
    Попытаться все спланировать и посчитать итог работ - это опять из ватерфола, вы живете в недетерминированном мире в котором вы НЕ можете все вокруг посчитать и проконтролировать, вы либо это принимаете и начинаете по другому мыслить и действовать (на основе обратной связи) , либо дальше занимаетесь очковтирательством.
    П. С.
    бизнес не любит неопределенности, любят гарантии и точные ответы - поэтому заказчик будет все равно ТРЕБОВАТЬ чтоб ему в очки втирали дичь, по поводу обьемов работ и сроков, это основная проблема внедрения гибких методологий, привычка и не желание людей по другому мыслить.
    Ответ написан
    6 комментариев
  • Как проводить груминг (backlog grooming) максимально эффективно?

    Andrey_Pletenev
    @Andrey_Pletenev
    Pletenev.com
    1. Способ принятия решений это не догма, как и все в скраме. Его выбирает команда. Можете использовать a) классический подход - консенсус (демократично, но медленно), b) решать большинством (менее демократично, но быстро), c) доверить оценку тем, кто наиболее вероятно будет делать задачу. В т.ч. это можно делать за рамками скрам-митинга, хотя и не рекомендуется. Если в случае b) голоса разделились поровну, то можете либо продлить обсуждение, пока один человек не изменит мнение, либо всегда использовать правило выбора меньшей (вызов) или большей (запас) оценки.
    2. Судя по описанию, проблема в том, что команда пока не вполне зрелая для agile. Среди ценностей гибкой разработки важную роль играют взаимное доверие и самоорганизация. Если люди обижаются, когда другие не соглашаются с их мнением, это означает, что они ставят свое эго выше интересов команды. Так бывает в командах, которые стали командой просто по назначению начальства. Берут сам фреймворк, процедуры, но никто не думает о главных принципах. Внедрение ценностей скрам - дело скрам-мастера. Объяснять, воспитывать, в первую очередь собственным примером. Как только появится несколько лидеров, которые проникнутся - остальные подтянутся. Дальше - будет легче. Новички будут адаптироваться наблюдая за остальными.
    Чтобы люди не пытались "попасть в ту же цифру" используйте planning poker. А цель обсуждения - не "отстаивать свое мнение", а дать команде больше информации для принятия взвешенного решения.
    Ответ написан
    1 комментарий
  • Как организовать работу команды без полного доступа ко всем кодам проекта на PHP?

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

    Делайте пачку отдельных библиотек\сервисов, потом человек, который в праве все знать, пусть собирает все это вместе. Но грамотно спроектировать это будет не просто.

    Так что вам стоит хорошенько подумать, действительно ли вам это нужно. Стоимость и шанс сесть в лужу увеличивается в разы.
    Ответ написан
    1 комментарий
  • Как организовать работу команды без полного доступа ко всем кодам проекта на PHP?

    Шторму нужен весь код, иначе подсказки работать не будут. У вас плохая идея. На крайняк - используйте микросервисы.
    Ответ написан
    Комментировать
  • Как начать верстать сайты для становления хорошим frontend разработчиком?

    sadieff
    @sadieff
    Нажимаю клавиши в нужной последовательности
    Мой опыт показывает:
    1. С одной стороны верстать нужно и сложные макеты, чтобы они были кроссбраузерными, но и с другой - чтобы потом было легко натягивать эту верстку. Приходилось видеть плашку со скидкой, где сама скидка была прописана в стилях в виде псевдоэлемента. Конечно переделать было не долго, но все же. Или вот подобный выбор цвета в фильтре от верстальщика: https://yadi.sk/i/tgr8M-ZjH-wj-g
    2. Flex-box и css-grid это не такие уж прям технологии, на изучение которых нужны месяцы. Достаточно выделить день, в песочнице попробовать что оно из себя представляет и когда это нужно использовать, чтобы не пихать туда, куда не нужно.
    3. media запросов вполне хватает
    4. Зависит от компании, от цели, от стоимости проекта, от времени на разработку

    Но могу ошибаться, интересно мнение других.
    Ответ написан
    2 комментария
  • Как быстро написать range slider?

    Exploding
    @Exploding
    wtf?
    Берем input type='range' и стилизуем его. Пойдет?
    Ответ написан
    1 комментарий
  • Зачем на IT собеседовании или перед ним спрашивают "есть ли у вас офферы от других компаний"?

    Я обычно спашиваю после, чтобы знать, сколько у нас времени на раздумье, как сильно торопиться с решением. Иногда бывает, что мы очень нравимся кандидату, он может ради нас отказаться от другого офера, а у нас с ним не получится, к примеру. От такой ситуации тоже страхуюсь.
    Ну и до могут спрашивать по той же причине. Один мне как-то позвонил и говорит: давайте встречаться сегодня, а то мне сегодня ответ надо дать по оферу в другую компанию! Нет, мы, конечно, умеем быстро принимать решения, но стараемся хотя бы до утра ждать все-таки, и это очень помогает! А тут - такое)
    Ответ написан
    Комментировать
  • Как планировать спринт, если во время спринта всплывают критичные баги от пользователей?

    @kn0ckn0ck
    Продюсер
    Лучше - сильно сократить поток багов, чтобы не нужно было делить разработчиков. Нет смысла фигачить новые фичи, если уже сделанные либо кривые, либо неполные, либо плохо сделаны - этим вы роете себе яму.

    Когда поток багов небольшой, то они укладываются в ваш фокус-фактор. Если нужно срочно что-то фиксить (например, клиент не готов ждать окончания спринта), то лучше использовать смешанный процесс, например, скрамбан.
    Ответ написан
    Комментировать
  • Как правильно писать приложение на Angular?

    zoonman
    @zoonman
    ⋆⋆⋆⋆⋆
    1. Очень большие, практически любые.
    2. В верстке нужно использовать компонентный подход.

    Angular проект следует с нуля начинать на angular-cli. Советую вам сделать перерыв для изучения фреймворка, а потом писать код.
    У Angular достаточно высокий уровень входа, поэтому рекомендую изучить архитектуру и до конца разобраться как он работает.
    Ответ написан
    1 комментарий
  • JSON - есть ли разница между {'num': 1} и {num: 1}? Как лучше писать?

    0xD34F
    @0xD34F Куратор тега JavaScript
    Нет разницы - оба варианта некорректные, таких JSON'ов не бывает.

    Конечно, на самом деле вы имели в виду кое-что другое, но... учитесь задавать вопросы.
    Ответ написан
    10 комментариев
  • Сайт не будет доступен без JavaScript, если у пользователя не включен JS?

    DevMan
    @DevMan
    конечно не будет, если он требует js для своей работы.
    современные реалии таковы, что без js в инете делать особо нечего.
    Ответ написан
  • Бэкэнд разработчик на ноде, вкатывание?

    @vshvydky
    nodejs на сервер сайд еще не всегда популярное решение, но я голосую за ts на беке, или js + flow
    Ответ написан
    Комментировать
  • Как работает jwt decode?

    REZ1DENT3
    @REZ1DENT3
    web-developer
    Token хранится в открытом виде, это обычный base64.
    Secret используется для получения подписи данных, чтобы их никто не мог подменить.

    Token выглядит так {header}.{payload}.{hash}, которые отделены через точку.
    eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c


    header
    eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9 // {"alg":"HS256","typ":"JWT"}


    payload
    eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ // {"sub":"1234567890","name":"John Doe","iat":1516239022}


    hash
    let content = base64UrlEncode(header) + "." + base64UrlEncode(payload);
    let hash = HMACSHA256(content, secret);


    А так же посетите ресурс https://jwt.io/

    ЗЫ, если вам нужно шифровать данные, используйте JWS вместо JWT
    Ответ написан
    1 комментарий