• Какую выбрать СУБД, если в день может быть более 11млн записей?

    При такой постановке задачи лучшим вариантом СУБД будет та, которую знают и умеют обслуживать ваши админы.
    С таким объёмом вставок справится любая мейнстримная на правильно подобранном железе. Что ещё вы собираетесь делать с этими записями нам неведомо, посему на выбор повлияеть не может.
    Ответ написан
    1 комментарий
  • Как сверстать наклонные блоки на css?

    SmthTo
    @SmthTo Куратор тега CSS
    Все перепёлки мира будут оплакивать мою смерть.
    Clip-path, но координаты опорных точек просто в процентах не надо делать, надежнее через calc(), тогда будут четкие значения. И всё будет адаптивно + контент обрезать не будет. Можно менять скос, как в примере, на разных разрешениях + можно анимировать процесс.

    clip-path: polygon(0% 0%, 100% calc(0% + 60px), 100% calc(100% - 60px), 0% 100%);
    /* calc(100% - 60px) -- вот тут задал четкую ширину скоса */


    Ответ написан
    Комментировать
  • Как запустить сервис на этапе загрузки nest?

    @historydev
    click
    static init() // - make static method
    
    async function bootstrap() {  // change main.ts
      if (!ConfigService.init()) {
        console.error('Invalid config');
        return;
      }
      const app = await NestFactory.create(AppModule);
      // тут как-то нужно запустить метод init из сервиса config модуля.
      await app.listen(3000);
    }
    Ответ написан
    1 комментарий
  • Сетевое обнаружение?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Сетевое обнаружение работает по MAC на уровне широковещательных запросов Ethernet.
    Соответственно, устройства должны быть в одном широковещательном домене сети.
    Какие у них при этом IP-адреса для WinBox абсолютно всё равно.
    Можно подключиться к любому микротику, вручную указав его IP-адрес, если до этого адреса настроена маршрутизация.
    Ответ написан
    1 комментарий
  • Как выглядит правильный процесс тестирования?

    M23
    @M23
    Привет.
    1) Заводить баги и тест-кейсы/чек-листы надо отдельно от задач, так как правиться и проверяться они могут сильно позже, когда задачу давно уже закрыли. Например, регресс. Писать в комментах к задаче - плохая практика :)
    2) Кейсы пишутся на документацию к задаче, а не на то, как реализовали. То есть тестовая документация пишется еще до того, как ты приступила к тестированию.
    3) Написанные кейсы можно прилинковать к задачам и наоборот.
    4) Тестовая документация, баги и задачи могут находиться в разных TMS. Например, кейсы/чек-листы в Allure, а задачи и баги в Jira. Или все в Jira, но в отдельном плагине. Тут уж как в компании заведено или какие вы используете TMS.
    5) Баги заводятся как отдельные таски в бэклог. Если это новый функционал, который в работе, то может будет удобнее, если напрямую передашь разработчику и он сразу поправит.

    P.S. Сходи к коллегам из других команд (если такие есть) и посоветуйся с ними. В дальнейшем разговоре с лидом можно будет ссылаться на их мнение. Но менять процесс определенно стоит.
    Ответ написан
    Комментировать
  • WebStorm или PhpStorm от JetBrains: в чем разница?

    ollazarev
    @ollazarev
    Web-программист
    PhpStorm = WebStorm + PHP + Database support
    (stackoverflow.com/questions/25647004/difference-be...
    Ответ написан
    Комментировать
  • WebStorm или PhpStorm от JetBrains: в чем разница?

    TekVanDo
    @TekVanDo
    Javascript Developer
    Выбирай PhpStorm, в нем практически все тоже самое что и в WebStorm + собственно поддержка php, фреймворков и некоторых cms на нем написанных.
    Ответ написан
    Комментировать
  • Требования к самописной CRM?

    Jeer
    @Jeer
    уверенный пользователь
    Аж жуть берет от таких заданий ) Покупка готового инструмента обычно дешевле, чем разработка с нуля. Особенно если разработка осуществляется одним человеком. Особенно если опыта мало. Особенно, если на поддержке будет тот же человек, что и на разработке ) безумие :) проект полетит в помойку, но у вас будет строчка в резюме по созданию проекта, можете обкатывать любые технологии за счет глупого работодателя.

    По делу без брюзжания:
    Писать под винду моветон - лицензии дорогие
    Вин формс зачем? - делайте веб апи с фронтом на вью/реакте/ангуляре. Нужна кроссплатформенность, чтобы хоть с телефона можно было зайти и нажать нужную кнопку в системе.
    Апи нужно, потому что будет много интеграций с другими системами, загрузка/выгрузка в 1с, не дай бог будете телефонию подключать
    Внутренняя сеть решается с помощью впн сервера.
    Помимо функциональных требований существуют еще технические, должен быть мониторинг, вы должны всегда знать сколько ресурсов потребляет ваш сервер, сколько данных занимает на дисках, логи и трейсы - гуглится по слову Observability, обычно не закладывается в смету, но к этим вопросам приходят рано или поздно
    Что еще, ну, по функционалу тут проще, открываете презентации в популярных CRMках, смотрите, что они могут, выписываете списком и идете к заказчику, чтобы он указал галочками, что будете делать, что не будете
    потом прикидываете по трудозатратам и озвучиваете сроки из которых можно понять примерную стоимость проекта. Часто одно маленькое предложение, типа того же "выгрузить данные в 1с" грозит несколькими десяткми часов работы, потому что другой отдел, с ними нужно договориться и сделать интеграцию. Или "должен быть отчет такой-то", а там как начнешь разбираться, еще 5 раз посовещаться сначала надо ))
    Ответ написан
    Комментировать
  • Вопроса нет, и все?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    Uncaught SyntaxError: Unexpected token < in JSON at position 0
    Читаем. Переводим.
    Открываем инструменты разработчика, вкладку нетворк. Отправляем наш гениальный запрос - смотрим в неменее гениальный ответ от сервера, в котором наверняка что-то типа "ой-вей, ваш пхп код полный шлак, в котором ошибок больше чем на помойной кошке блох". Исправляем ошибки, и - о чудо! Все заработало!
    Ответ написан
    Комментировать
  • Как понять эту строку?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    Это тернарный оператор (не страшное слово, просто от числа «3»)

    условие ? выражение1 : выражение2


    Частая ошибка, открыв для себя этот чудесный синтаксис, пихать его везде, где есть условие.
    Но это не замена if .. else, где нужны разные действия.
    Тернарный оператор — для получения значения.
    Ответ написан
    Комментировать
  • Как вернуть тип из свойства существующего типа?

    RAX7
    @RAX7
    - DrawerProps.items
    + DrawerProps['items']
    Ответ написан
    Комментировать
  • Нужно купить текстовых ссылок, полез на Блогун по старой памяти, а он закрыт (давно ли?) - где теперь это продается?

    vpetrov
    @vpetrov
    частный SEO-специалист, textarget.ru
    Биржи всё те же. тИЦ как метрика мертв. Гугл без ссылок по-прежнему не едет, но кушает их более придирчиво - мусор в индекс не попадёт. Под Яндекс закупкой ссылок можно не париться, если только ссылка не будет трафиковой.
    Вообще говоря если нет конкретной задачи, решаемой только ссылками, лучше влить бюджеты во что-то более внятное - дропы, сателлиты, ПФ, контент. Ссылочное типа "чтобы было" - не нужно.
    Ответ написан
    5 комментариев
  • Как правильно сделать проверку Email?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Есть хорошая статья на эту тему https://habr.com/ru/post/175375/
    Ответ написан
    Комментировать
  • Как сгенерировать значение от 0001 до 9999?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    INSERT INTO `table` (`WebsiteId`)
      WITH RECURSIVE `cte` (`num`) AS (
        SELECT 1 
        UNION SELECT `num` + 1
          FROM `cte`
          WHERE `num` < 9999
      )
      SELECT `num`
        FROM `cte`
    Ответ написан
    1 комментарий
  • Как построить локальную сеть?

    @TheBigBear
    СтарОдмины мы
    Новичок?
    Хочется получить опыт по сетям?
    Лучше купи например самый дешевый Keenetik
    Он будет априори и DHCP сервером, DNS-сервером и коммутатором. Даже без Интернета.
    Заодно ползая по его Вэб-интерфейсу начнешь потихоньку понимать что как устроено - там интерфейс на русском
    Ответ написан
    7 комментариев
  • Как отдавать статику через julienschmidt/httprouter?

    @Chebaa Автор вопроса
    На уровне папки frontend пришлось прописивать каждый ресурс отдельно, а на уровне папки static через *filepath

    r.Handler("GET", "/", fServer)
    	r.Handler("GET", "/favicon.ico", fServer)
    	r.Handler("GET", "/static/*filepath", fServer)
    Ответ написан
    Комментировать
  • Как отдавать статику через julienschmidt/httprouter?

    r.Handler("GET", "/", fServer)
    Этот шаблон значит полное совпадение с корнем, поэтому у вас 404 на все вложенные страницы. Чтобы этого избежать сделайте так:

    r.Handler("GET", "/*filepath", fServer)
    Ответ написан
    3 комментария
  • Почему объекты созданные через класс не наблюдаются mobx?

    Alexandroppolus
    @Alexandroppolus
    кодир
    Рекурсивная наблюдаемость объектов (выставляемая по умолчанию в makeAutoObservable и успешно примененная в bStore) не залетает в пользовательские классы. Считается, что класс (в твоем случае AStore) должен сам настроить внутри себя наблюдение.

    об этом написано в документации https://mobx.js.org/observable-state.html
    ctrl+F "primitives and class instances are never converted to observables"
    Ответ написан
    Комментировать
  • Как понять микросервисы?

    @deliro
    Как понять микросервисы?

    Прочитать соответствующую книгу (а лучше ещё парочку про DDD или хотя бы посмотреть этот доклад)

    Затем ответить на несколько вопросов:
    1. Почему вы решили, что микросервисы что-то вам дадут?
    2. Есть ли у вас настоящие причины для микросервисной архитектуры? (А именно: зоопарк технологий с невозможностью написать 99% на одном языке; более тысячи разработчиков; сложность выкатки монолита в виде часов прогонов CI/CD — тестов, билда, деплоя, стопоров выкатки в виде кучи проблем из-за разработчиков; вы такие же большие как гугл, убер, амазон и т.п.). Или вам просто нравится модное слово "микросервисы"?

    Не получится создать хорошую микросервисную архитектуру без умения создать хороший модульный монолит. В этом случае вы получите не только все проблемы плохого монолита: высокая связанность, каскадные падения, долгий CI/CD; но и все проблемы микросервисов: их надо оркестрировать (у вас же есть команда, которая будет поддерживать инфраструктуру?); каждому микросервису нужно своё CI/CD (и хорошее); сеть может (и будет) лагать и обрываться; длительность запросов увеличится на порядок(ки) (особенно если выбрать какой-нибудь JSON-RPC over HTTP); нужно предусмотреть failover strategy (например, идемпотентные ретраи. Вы же уже знаете про correlation id, саги и что делать, если прилетел network error на запрос в другой сервис "списать 10 баксов"?) и circuit breakers; трейсы и логи, которые не пришлось бы искать по сотням .log файлов от каждого сервиса; бизнес-логика расползётся по разным микросервисам и нарушит SRP (пофиг, что нарушит, важнее то, что это починить будет сильно сложнее). Список можно продолжать долго.
    Ответ написан
    11 комментариев