Все сервисы Хабра

Сообщество IT-специалистов

Ответы на любые вопросы об IT

Профессиональное развитие в IT

Удаленная работа для IT-специалистов

Войти на сайт
  • Все вопросы
  • Все теги
  • Пользователи

Хабр Q&A — вопросы и ответы для IT-специалистов

Получайте ответы на вопросы по любой теме из области IT от специалистов в этой теме.

Узнать больше
другие проекты хабра
  • Хабр
  • Карьера
  • Фриланс
Задать вопрос

Speakermen

  • 0
    вклад
  • 67
    вопросов
  • 4
    ответа
  • 0%
    решений
Лайки
  • Информация
  • Ответы
  • Вопросы
  • Комментарии
  • Подписки
  • Нравится
  • Достижения
  • Использует кто-нибудь NextJS c Laravel как REST API и Laravel Sanctum для аутентификации?

    Vamzi @Vamzi
    Laravel 9 Breeze & Next.js / API laravel/breeze-next
    Развернул на продакшене за пару часов не зная React NextJs.
    Документация отличная для изучения.

    Аутентификаци все работет на ура.
    Буду дальше тестировать.
    Ответ написан 09 авг.
    Комментировать
    Комментировать
  • Как в angular с помощью cli создать модуль который автоматически попадёт в imports в app.module?

    Xuxicheta
    Антон Швец @Xuxicheta Куратор тега Angular
    инженер
    ниче не понял, но вроде опция --module позволяет указать куда импортируется созданное.
    Но по моему это бесполезно, и вообще в AppModule должен быть минимум импортов, только необходимое. Из ui-либ вообще не должно быть ничего.
    Ответ написан 20 июл.
    Комментировать
    Комментировать
  • Что именно имел ввиду Линус Торвальдс?

    leahch
    Алексей Черемисин @leahch
    Я мастер на все руки, я козлик Элек Мэк :-)
    Он имел ввиду главенство архитектуры над кодом. И у него это неплохо получилось.
    Прежде чем писать код, тесты и прочее, сначала проработайте архитектуру, и в частности архитектуру данных, их взаимосвязи.
    В программировании есть метод DOA - data-driven-architecture https://habr.com/ru/company/timeweb/blog/590675/
    Такой подход становится очень популярным. А с появлением современных языков програмирования, еще и очень удобным. Например в clojure.
    Ответ написан 29 июн.
    6 комментариев
    6 комментариев
  • Как не вываливаться в memory limit при работе с доктриной?

    part_os
    part_os @part_os
    Сложное в простом
    1. выполняйте пачками, выберите оптимальное количество 100, 500, 1000
    2. между пачками зачищайте доктрину, и мусор
    use Doctrine\Persistence\ManagerRegistry;
     private ManagerRegistry $registry;
    
            $this->registry->reset();
            
            foreach ($this->registry->getConnections() as $connection) {
                $connection->close();
            }
    
            gc_collect_cycles();
    Ответ написан 29 июн.
    11 комментариев
    11 комментариев
  • Почему функция ничего не возвращает?

    0xD34F
    0xD34F @0xD34F Куратор тега JavaScript
    return arr.forEach((fn) => {

    Понятно.

    Вот дураки вроде вас: раз дурак, два дурак, три дурак, четыре, пять.
    Ответ написан 05 июн.
    1 комментарий
    1 комментарий
  • В чем предназночения сервисов?

    azerphoenix
    Орхан Гасанлы @azerphoenix Куратор тега Spring
    Java Software Engineer
    Соль использования в том, что в сервисы добавляют бизнес-логику. Например, получить данные из репозитория и что-то с ними сделать. Или же наоборот после получения данных из контроллеров, обработать их на уровне сервисов, а затем уже сохранить и т.д.
    Возможно, что необходимо замаппит объект в DTO или же наоборот.
    В общем. нужная вещь))
    Ответ написан 22 апр.
    1 комментарий
    1 комментарий
  • Будет ли работать приложение если установить mysql, PostgreSQL в докер?

    ky0
    ky0 @ky0
    Миллиардер, филантроп, патологический лгун
    Если не нужна высокая производительность и надёжность - ставьте.
    Ответ написан 17 апр.
    Комментировать
    Комментировать
  • Будет ли работать приложение если установить mysql, PostgreSQL в докер?

    azerphoenix
    Орхан Гасанлы @azerphoenix
    Java Software Engineer
    Я всегда использую СУБД в докере. Очень удобно использовать конфиги для docker compose
    Вот, конфиги, чтобы быстро поднять БД + панель управления.
    PostgreSQL + PgAdmin
    version: '3.8'
    services: 
      postgres:
        container_name: postgres
        image: postgres
        restart: always
        environment:
          POSTGRES_USER: postgres
          POSTGRES_PASSWORD: postgres
          PGDATA: /data/postgres
        ports:
          - "5432:5432"
        volumes:
          - postgres:/data/postgres
      pgadmin:
        depends_on:
          - postgres
        container_name: pgadmin4
        image: dpage/pgadmin4
        restart: always
        environment:
          PGADMIN_DEFAULT_EMAIL: mail@example.com
          PGADMIN_DEFAULT_PASSWORD: postgres
        ports:
          - "5050:80"
        volumes:
          - pgadmin:/root/.pgadmin
    
    networks:
      postgres:
        driver: bridge
    
    volumes:
      postgres:
      pgadmin:


    Mysql + PhpMyAdmin
    version: '3.8'
    
    services:
      mysql:
        image: mysql:latest
        container_name: mysql
        restart: always
        ports:
         - '3306:3306'
        environment:
          MYSQL_ROOT_PASSWORD: mysql
      phpmyadmin:
        depends_on:
          - mysql
        image: phpmyadmin/phpmyadmin
        container_name: phpmyadmin
        restart: always
        ports:
         - '5051:80'
        environment:
         - PMA_HOST=mysql
         - UPLOAD_LIMIT=1024M
         - MEMORY_LIMIT=1024M
         - MAX_EXECUTION_TIME=300version: '3.8'
    
    services:
      mysql:
        image: mysql:latest
        container_name: mysql
        restart: always
        ports:
         - '3306:3306'
        environment:
          MYSQL_ROOT_PASSWORD: mysql
      phpmyadmin:
        depends_on:
          - mysql
        image: phpmyadmin/phpmyadmin
        container_name: phpmyadmin
        restart: always
        ports:
         - '5051:80'
        environment:
         - PMA_HOST=mysql
         - UPLOAD_LIMIT=1024M
         - MEMORY_LIMIT=1024M
         - MAX_EXECUTION_TIME=300


    MariaDB + PhpMyAdmin
    version: '3.8'
    
    services:
      mariadb:
        image: mariadb:latest
        container_name: mariadb
        restart: always
        ports:
         - '3306:3306'
        environment:
          MYSQL_ROOT_PASSWORD: mariadb
      phpmyadmin:
        depends_on:
          - mariadb
        image: phpmyadmin/phpmyadmin
        container_name: phpmyadmin
        restart: always
        ports:
         - '5051:80'
        environment:
         - PMA_HOST=mariadb
         - UPLOAD_LIMIT=1024Mversion: '3.8'
    
    services:
      mariadb:
        image: mariadb:latest
        container_name: mariadb
        restart: always
        ports:
         - '3306:3306'
        environment:
          MYSQL_ROOT_PASSWORD: mariadb
      phpmyadmin:
        depends_on:
          - mariadb
        image: phpmyadmin/phpmyadmin
        container_name: phpmyadmin
        restart: always
        ports:
         - '5051:80'
        environment:
         - PMA_HOST=mariadb
         - UPLOAD_LIMIT=1024M
         - MEMORY_LIMIT=1024M
         - MAX_EXECUTION_TIME=300
         - MEMORY_LIMIT=1024M
         - MAX_EXECUTION_TIME=300
    Ответ написан 17 апр.
    2 комментария
    2 комментария
  • Будет ли работать приложение если установить mysql, PostgreSQL в докер?

    Drno @Drno
    Будет

    Как вариант всё в одном месте. если докер нехочет\ненравится
    LXC контейнер
    Ответ написан 17 апр.
    Комментировать
    Комментировать
  • Будет ли работать приложение если установить mysql, PostgreSQL в докер?

    firedragon
    Владимир Коротенко @firedragon
    Senior .NET developer
    будут
    Ответ написан 17 апр.
    2 комментария
    2 комментария
  • Позволяет ли docker работать в режиме реального времени?

    wonderingpeanut @wonderingpeanut
    Можно. Для этого нужно сказать докеру с помощью флага -v что ты хочешь следить за изменениями такой-то папки.

    docker run \
        --name app \
        --link mongodb \
        -e MONGO_URL=mongodb \
        -e PORT=4000 \
        -p 4000:4000 \
        -v `pwd`/nodejs-with-mongodb-api-example:/src \ # WORKDIR ./src будет синхронизированна с папкой nodejs-with-mongodb-api-example. комманда pwd перед ней вернет полный путь до корневого каталога, где лежит докерфайл
        -v nodemodules:/src/node_modules \ # то же самое для node_modules
        app npm run dev:watch
    Ответ написан 27 мар.
    2 комментария
    2 комментария
  • Почему проприетарные драйвера v 340.108 на Ubuntu 20.04.4 не устанавливаются?

    karabanov
    Александр Карабанов @karabanov Куратор тега Ubuntu
    Системный администратор
    Обновления установлены? Там был баг в одном из недавних релизов ядра который мешал устанавливать драйвера от nVidia
    Ответ написан 22 февр.
    8 комментариев
    8 комментариев
  • Почему ошибка Message: Element is not clickable at point (782,28) because another element?

    Дмитрий Васильев @swimmwatch
    Python software engineer
    Во время того, как Selenium попытался кликнуть на нужный элемент, его что-то перекрывало. Такое часто происходит, когда есть какие-нибудь анимации или переходы.
    Чтобы минимизировать подобные ошибки, рекомендую использовать explicit waiters. Данный функционал позволяет сделать ожидание какого-то события. Например:
    • подождать до тех пор, пока элемент не появится на странице
    • подождать до тех пор, пока элемент не станет кликабельным
    • и т.д. Их можно легко реализовать самому.
    Ответ написан 06 февр.
    Комментировать
    Комментировать
  • Linux не удалось установить базовую систему в каталог /target?

    ambisinistrone
    ambisinister One @ambisinistrone
    sic transit Gloria mundi
    Так может просто образ "паленный"?
    На комп без уефи любой дистр запустится и установится.
    Или из всего сказанного Вы просто с конфигуацией загрузки намудрили?
    Или просто не умеете разделы правильно создать...
    Причин .тысяся...)))
    Ответ написан 04 февр.
    1 комментарий
    1 комментарий
  • Linux не удалось установить базовую систему в каталог /target?

    Zhbert
    Zhbert @Zhbert
    Technical Writer, Linux user
    Хотел установить kali linux, но сталкнулся с ошибкой


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

    Сергей Песков @SergeyPeskov
    private async validateEmail(createAuthDto): Promise

    private async validatePassport(createLoginDto): Promise

    Указать типы для createAuthDto и createLoginDto

    if (this.user && this.user.email === createAuthDto.email) {
    throw new BadRequestException('Choose another email');
    }

    Ну и думаю данную проверку(this.user.email === createAuthDto.email) можно убрать, вы же делаете выборку из usersService по email, поэтому если был получен не null, то пользователь с таким email уже существует.
    Ответ написан 23 янв.
    1 комментарий
    1 комментарий
  • Как ecatalog или аналоги получают данные api с других сайтов?

    Ukrainskiy
    Ukrainskiy @Ukrainskiy
    В личном кабинете e-katalog указывают ссылку на прайс лист в xml формате и расписание обновления. Подробнее тут https://nadavi.net/cabinet/docs/connect-store
    Ответ написан 20 янв.
    Комментировать
    Комментировать
  • Как можно улучшить код?

    Aetae
    Aetae @Aetae Куратор тега TypeScript
    Тлен
    Про паттерны-фигаторны ничего не скажу, а вот то что метод начинающийся на validate не должен ничего никуда писать - это факт.)
    Ответ написан 09 янв.
    Комментировать
    Комментировать
  • Как получить сразу 2 объекта api?

    eRKa @kttotto
    пофиг на чем писать
    (data: any) => ((this.albums = data.albums), (this.menu = data.menu)),

    Что за странный синтаксис, что Вы этим хотите?
    Почему не написать обычно?
    (data: any) => {
        this.albums = data.albums;
        this.menu = data.menu;
    }

    public ngOnInit(): void {
    this.getQueryParams();
    this. findAll();
    }

    И, кстати, это не совсем верно. Метод findAll зависит от this.params который инициализируется в getQueryParams. А findAll начнет выполняться раньше, чем выполнится getQueryParams.
    Их нужно запихнуть в pipe
    this.route.queryParams
        .pipe(
            mergeMap((params: Params) => {
                this.params = {
                    skip: params['skip'],
                    take: params['take'],
                };
                return this.albumService.findAll(this.params)
            ),
            tap((data: any) => {
                this.albums = data.albums;
                this.menu = data.menu;
            }),
            catchError(error => {
                this.error = error.message;
                console.error(error);
                return EMPTY;
            })
        })
        .subscribe();
    Ответ написан 01 янв.
    1 комментарий
    1 комментарий
  • Как спроектировать api?

    wapster92
    WapSter @wapster92
    Можно разбить на несколько.
    Допустим общая информация загружается при инициализации фронта: меню, футер.
    Остальные можно разбить по страницам.
    А вообще есть библиотека nest-crud, которая
    Умеет разбивать по сущностям и с фронта можно делать выборку
    Ответ написан 29 дек. 2021
    1 комментарий
    1 комментарий
Оценили как «Нравится»
  • 1
  • 2
  • 3
  • 4
  • Следующие →
Самые активные сегодня
  • NikFaraday
    Nik Faraday
    • 7 ответов
    • 1 вопрос
  • CityCat4
    CityCat4
    • 6 ответов
    • 0 вопросов
  • mayton2019
    • 5 ответов
    • 0 вопросов
  • SilenceOfWinter
    Антон Шаманов
    • 5 ответов
    • 0 вопросов
  • DevMan
    DevMan
    • 5 ответов
    • 0 вопросов
  • dimonchik2013
    Dimonchik
    • 5 ответов
    • 0 вопросов
  • © Habr
  • О сервисе
  • Обратная связь
  • Блог

Войдите на сайт

Чтобы задать вопрос и получить на него квалифицированный ответ.
Войти через центр авторизации