• Как работает git?

    delphinpro
    @delphinpro
    frontend developer
    Никакой магии за вас гит не сделает. Нужно самому все настроить и определить процессы разработки.

    Например.

    Основная копия репы расположена на гихабе (гитлабе, битбакете, у себя на сервере).
    Здесь ветка мастер защищена от пушей и коммитов. Разрешены допустим пуши и коммиты только для мейнтейнера.
    Продакшн сайт лежит под гитом, и тянет код пуллом из мастера из основной копии.
    Дополнительно разворачивается dev.site.ru. Туда также клонируется репа, переключается на dev ветку. (git checkout dev)
    Разраб пилит там сайт, коммитит, пушит в dev ветку основного репо. Мейнтейнер проверяет, мержит, пуллит на продакшн.
    База разворачивается отдельная для dev и прод.
    Для версионирования структуры базы используются миграции. Для наполнения данными - сиды.
    Т.е. для применения последних наработок сначала пуллится код из репы, потом запускаются миграции и сиды.

    Ну и еще не обязательно вести разработку прямо на дев сервере.
    Можно клонировать репу себе на комп, сделать что нужно, запушить в дев ветку, потом пульнуть эту ветку на dev сервер для тестирования. Потом смержить и залить на прод.
    Ответ написан
    5 комментариев
  • Обязателен ли Git для front-end'a?

    @VegasChickiChicki
    Как я люблю такие вопросы. Очередной вкатывальщик не хочет что-то изучать, потому что сложно и начинается...
    Это вопросы, суть которых не получить ответ, а получить... некое самоутешение, что бы что-то не изучать.
    "А важен ли git", "А важен ли JavaScript", "А важны ли фреймворки", "А важны ли препроцессоры" и т.д.

    Ответ:
    По факту - ничего не важно, если вы этим не будете пользоваться.
    По сути - важно все, ибо знать нужно все, чем больше знаете - тем лучше для вас же! И тем больше вероятность устроиться на работу, потому что у работодателя будет выбор между вами и точно таким же человеком, но который знает\умеет чуточку больше.
    Ответ написан
    2 комментария
  • Какая есть платежная система без ИП?

    Sanes
    @Sanes
    Любые регулярные операции легко всплывают. Особенно частные переводы. Если это не пару раз в день и не каждый день.
    Robokassa вроде с частниками работает. Ну и Яндекс Деньги.
    Ответ написан
    Комментировать
  • Ошибка PM2 NODEJS как исправить?

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

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Как решить задачу? Самому.

    Дело в том, что подсказанное решение имеет примерно в 10 раз меньше эффективность обучения. То есть подсказанный вариант вы вряд ли запомните, даже если он будет простым и понятным, и позже не сможете применить в аналогичной ситуации. Нужно, чтобы вы именно сами нашли решение, тогда будет польза.

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

    samodum
    @samodum
    Какой вопрос - такой и ответ
    Смотря какой баланс скорость/безопасность вам нужен.
    Самый быстрый - XOR.
    Но самый ненадёжный.
    Ответ написан
    Комментировать
  • Ревью кода. Что можно улучшить?

    GavriKos
    @GavriKos
    1) Зачем вам вообще массив чисел?
    2) Паузить основной поток - так себе идея, ИМХО
    3) Есть бесконечный цикл без всяких возможностей его прервать.
    4) Куча лишних переносов строк, левые пробелы, нет пробела между параметрами... В общем кодстайл так себе.
    Ответ написан
  • Могут ли контейнеры содержать классы и разметку?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Компоненты в Реакте делятся на несколько основных групп (напишите где ошибаюсь):


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

    на презентативные/контейнеры они делятся уже не "в реакте", а в вашем конкретном приложении, при условии что вы выбрали тот подход для построения который предлагается в статьях Дена Абрамова.
    Стоит отметить что это было просто его мнение на тот момент, а сейчас он пишет:
    Update from 2019: I wrote this article a long time ago and my views have since evolved. In particular, I don’t suggest splitting your components like this anymore.


    Можно выбрать и какой-то другой подход. И делить по другому. Или вообще на других принципах строить архитектуру. Или видоизменить его подход под какие-то свои конкретные нужны и так далее.

    поэтому ответ на вопрос:
    Если мы хотим чтобы шапка была серая, куда писать этот стиль?

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

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

    Если вам обязательно нужны формальные правила построения компонентов - определите для себя любые как больше нравится и им следуйте. Потом поменяете, если не зайдет.
    Ответ написан
    3 комментария
  • Как скастовать шаблонный тип T: Num к любому другому типу, реализующий Num?

    john36allTa
    @john36allTa
    alien glow of a dirty mind
    Странное желание, но вот Вам решение:
    extern crate num;
    
    use num::ToPrimitive;
    
    pub fn foo<T>(bar: T) -> Option<u8> where T: ToPrimitive,
    {
        bar.to_u8()
    }
    fn main(){
        println!("That's {}", foo(2.5f32).unwrap())
    }
    // That's 2
    Ответ написан
    3 комментария
  • Как реализовать реал тайм чат и нотификации?

    @Randewoo
    Загугли, что такое WebSockets.
    В php рекомендую использовать библиотеку Worker, там даже чайник разберется.
    Ответ написан
    6 комментариев
  • Как исправить эту ошибку типизации?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Это решение не нарушает типизацию, а наоборот - вы точно знаете что в этом случае в T будет именно number и поэтому `return this._numberStep(value)` полностью валидно. А вот компилятор не знает, и вы ему таким образом даете подсказку.
    Конечно лучше если он сам смог вы сузить T до number в этом случае, но тут придется немного помочь.

    Возможно есть какая-то конструкция чтобы разрулить типы автоматически без as, но при беглом размышлении в готову ничего не приходит, да и будет это по сути то же самое (дать компилятору понять что тут все ок) только с гораздо большим количеством доп кода.

    Пишите as и спите спокойно.
    Ответ написан
    1 комментарий
  • Интересный вопрос от Я! Как решить проблему неправильных монет?

    lxsmkv
    @lxsmkv
    Test automation engineer
    Вы в рассуждении говорите о "последовательности" выпадения. Тут нет никакой "последовательности". Монеты можно бросить все сразу или по очереди - разницы нет никакой.

    Альтернативно можно решать другую задачу. У нас кубики с пронумерованными сторнами. Первый кубик имеет три стороны (ну представим себе такой), второй - пять, третий - 7, следующий - 2*i+1. Соответственно выбросить единицу на каждом кубике мы можем с вероятностью 1/2*i+1. Нас интересует вероятность того. что после броска всех кубиков количество единиц на них будет нечетным.
    Вспомним элементарную задачу. Пусть у нас два шестигранных кубика. Как мы посчитаем вероятность того что мы получим две единицы? Количество благоприятствующих исходов к количеству возможных исходов. т.е. 1 исход из 11. Идем дальше, у нас два кубика. Какова вероятность того что мы бросим нечетное количество единиц? Это вероятность единицы на одном кубике помноженная на вероятнось "не-единицы" на другом. Т.е. 1/6 * 5/6.

    Думаю такой подсказки будет достаточно.
    Ответ написан
    Комментировать
  • Как открыть локальные веб-сервера по доменному имени?

    paran0id
    @paran0id
    Умный, но ленивый
    Прописать в DNS. Или в файле hosts на клиентах.
    Ответ написан
    6 комментариев
  • Как скачать apk файл с официального google play?

    @niriter
    User
    Можно через python(неофициальное api)
    https://github.com/egirault/googleplay-api

    этот же вопрос на stackoverflow

    доступные скрипты(api) для этого дела
    github
    Ответ написан
    Комментировать
  • Почему сайт vuejs.org не SPA?

    wizzzet
    @wizzzet
    Да, мы делали много магазинов на SPA. Основная проблема - системы аналитики и ретаргетинга глючат. Google Analytics и Метрика теряют источники переходов, что критично для партнёров, занимающихся предоставлением в интернет-магазин лидов, потому что они, как правило, берут деньги за заказы клиентов магазина, и им сложно доказать источник заказа (по utm-меткам). Также, большая нагрузка на сайт с SSR (северный рендеринг) подразумевает организацию кэширования компонент, что тоже не всегда просто.

    Если у вас обычный контентный сайт, и нет сложных воронок продаж, то можно использовать SPA, даже без сложных интерфейсов, так страницы как правило открываются быстрее (кроме самой первой, если не SSR).
    Ответ написан
    2 комментария
  • Какой смысл оборачивать ajax запрос в промис?

    profesor08
    @profesor08 Куратор тега JavaScript
    В данном случае никакого, axios и так его должен возвращать.
    Ответ написан
    6 комментариев
  • Можно ли использовать методы в структура в Си?

    @vanyamba-electronics
    Через указатель на функцию:
    typedef struct MyStruct {
        int my_int;
        void (*my_method)(MyStruct*);
    };
    
    void myMethod(MyStruct* obj)
    {
       obj->my_int = 0;
    }
    
    int main()
    {
        struct MyStruct my_struct;
        my_struct->my_method = myMethod;
        my_struct->my_method(my_struct);
        return 0;
    }
    Ответ написан
    Комментировать
  • Какой язык программирования подойдёт для написания высокопроизводительного приложения на Windows?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Например, Rust или C++.
    Почему бы и нет?

    Насчет производительности регулярных выражения я бы поспорил. Дело в том, что регулярки - это универсальный инструмент, и это не бесплатно. Гораздо производительнее сделать свой парсер с учетом ограничений к тексту, о которых вы знаете. Например, если какой-то кусок текста имеет четкий маркер, то можно найти его самым простым поиском подстроки. И далее к найденному куску также применить какой-то свой алгоритм, оптимизированный именно под этот текст.
    Ответ написан
    3 комментария
  • Rust, как вернуть struct?

    @forspamonly2
    struct вернуть не проблема - он отдаётся вместе с владением наружу, и всё.

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

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

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

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

    Зависит от того как этот скрипт запускается.
    • Если через systemd, то можно смотреть вывод через journalctl
    • Если запускается руками, то запуская через nohup вывод будет писаться в nohup файл текущей директории
    • Можно перенаправить вывод в файл npm run script.js >> /var/log/script.log
    • Ну и наконец, можно добавить логирование в файл в самом скрипте
    Ответ написан
    Комментировать