• Как мне импортировать тип ErrnoException из @types/node?

    khusamov
    @khusamov Автор вопроса
    ReactJS, NodeJS, TypeScript, Sencha ExtJS
    Нашел ответ. Оказывается тип уже импортирован каким-то чудесным образом. Просто надо было правильно указать его имя NodeJS.ErrnoException

    server.on('error', (error: NodeJS.ErrnoException) => {
    Ответ написан
    Комментировать
  • JSON тип данные в MySQL, в чем минус?

    @DenisDangerous
    Минусов много. Основной - не обеспечить целостность данных. И возможности выборки очень ограничены. Лучшее применение JSON в mysql это хранение каких-либо конфигов
    Ответ написан
    Комментировать
  • JSON тип данные в MySQL, в чем минус?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    По большому счету это денормализация базы.
    Денормализацию стоит применять когда Вы 100% понимаете что делаете, получая в каких-то конкретных условиях ускорение каких-то конкретных запросов, взамен теряя в гибкости при дальнейшей разработке и в производительности во всех остальных местах.

    Попробую расписать на Вашем примере (хранить категории поста в свойстве поста в json) чтобы было понятней:

    Тут все отлично пока Вам просто нужно выводить категории у поста.

    Как только нужно искать по категории - начинаются проблемы, какой нибудь JSON_CONTAINS - будет дико медленным на нормальном объеме данных (ведь ему нужно выполниться для каждой строки таблицы, а индексов то и нет).

    Решение - заводить еще одну денормализованное свойство для категорий - в котором хранить id постов.
    Но дальше всплывают новые задачи которые в нормализованной базе решаются за 5 секунд, а в денормализованной - нужно опять же кодить:
    - поиск по нескольким категориям сразу
    - расчет количества постов у категорий
    - итд итп.

    К чему это я все?
    К тому что используйте 3 НФ, и только когда упретесь в реальную производительность базы - начинайте думать про денормализацию.
    Ответ написан
    Комментировать
  • Как в 20 17 учить node.js?

    OlegOleg1980
    @OlegOleg1980
    программист
    Есть мнение, что мода на NodeJS уже уходит.
    Прошла эйфория по поводу универсальности данного продукта, и, много думать надо, где вы будете применять его. Разве что в качестве платформы для сборки проекта...
    P.S. Чтобы не закидали камнями, добавлю, что любой продукт также нужно оценивать с точки зрения его производительности, а у вышеуказанного в этом плане есть ряд неустранимых пока недостатков.
    Ответ написан
  • Для чего идеальна MongoDb? Примеры приложений, где монга будет лучше mysql?

    @xfg
    Высокопроизводительные распределенные интернет-приложения. Конкретные примеры: amazon.com, netflix.com, ebay.com. NoSQL движение возникло как ответ на проблемы масштабируемости. Реляционные базы ориентируются на требования ACID и как следствие имеют проблемы с горизонтальным масштабированием. Для таких баз необходимо реализовывать шардинг на уровне приложения. Но тогда будет необходимо отказаться от ACID, объединения таблиц и контроля целостности. В таком случае реляционная база теряет все козыри перед NoSQL. Но оставляет на плечах разработчика заботу о шардинге.

    Интернет забит вопросами о том как жить без транзакций в NoSQL. Но бизнес-процессы в реальной жизни не являются транзакционными. Вы не можете человека, который покушал в вашем ресторане, а теперь отказывается платить по счетам заставить сделать роллбек вашей еды. Фактически посетитель вам бросил эксепшен. И даже если вам удастся извлечь еду из вашего посетителя, то маловероятно, что она будет готова к последующему употреблению. Но можно взыскать с него все затраты через суд и придти таким образом в согласованное состояние. Любому бизнесмену это очевидно. Но программисту нет. Он хочет транзакционно. Но пишет систему для автоматизации бизнес-процессов. Парадокс.
    Ответ написан
    7 комментариев
  • Как правильно выполнить DELETE?

    BuriK666
    @BuriK666
    Компьютерный псих
    DELETE FROM table WHERE (page_id, template_id) IN (SELECT page_id, template_id FROM table WHERE ....)
    Ответ написан
    Комментировать
  • Как достигается отказоустойчивость Hadoop?

    al_gon
    @al_gon
    Просто хороший курс на русском https://stepik.org/course/Hadoop
    Ответ написан
    Комментировать
  • Какой тип нужно использовать для загрузки pdf 30 mb в mysql?

    Kwisatz
    @Kwisatz
    Больше web-приложений, хороших и разных
    никакой. Хранение файлов это задача файловой системы, не нужно этим грузить СУБД
    Ответ написан
    Комментировать
  • Стоит ли учить сегодня ASP.NET и можно ли на этом заработать?

    @Free_ze
    Пишу комментарии в комментарии, а не в ответы
    Начнем с терминологии, а то хейтеры тут не особо разбираются =) Между ASP и ASP.NET MVC разница примерно такая же, как между Java и JavaScript.
    Java - это язык, как и C#. Под них есть свои веб-фреймворки, такие как JavaEE, Spring для Java или ASP.NET MVC, NancyFX для C#.


    Учить ASP (classic ASP) или ASP.NET (который Web Forms) с нуля уже не стоит. А вот ASP.NET MVC - отличный выбор. Это уже достаточно зрелый фреймворк, на котором работает много серьезных проектов (таких, как StackOverflow) и которая востребована на рынке как в России, так и в мире.

    Сам C# достаточно интересный, активно развивающийся язык. Платформа себя чувствует неплохо на любых популярных устройствах. Хорошо развивается .NET Core, являющийся переосмыслением монолитного .NET Framework, позволяющий разрабатывать компатные кросслатформенные приложения, в том числе и с использованием ASP.NET Core, которые можно развертывать самостоятельно, без огромного сервера за спиной, аналогично Node.js.

    Конечно, с ASP.NET MVC не пофрилансишь и сайты-визитки разрабатывать не так удобно =) Но поддерживать крупные приложения - одно удовольствие.

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

    shindakioku
    @shindakioku
    Не сайтоклепатор
    Не читал, но девочку не кидайте :)
    Ответ написан
    Комментировать
  • Простой проект Symfony плюс DDD?

    @dzubchik
    Недавно столкнулся из похожей проблемой, сейчас пробуем применять практики DDD в проекте на symfony. Советую посмотреть на репозитории:

    https://github.com/codeliner/php-ddd-cargo-sample
    https://github.com/dddinphp/blog-cqrs
    https://github.com/TheBigBrainsCompany/symfony-cqr...

    А также почитать статьи и книги:
    Ответ написан
    Комментировать
  • Чем отличается active record от data mapper?

    qonand
    @qonand
    Software Engineer
    Оба эти паттерна предназначаются для преобразования данных из реляционного представления в объектное. Разница в том как они это делают и как они организованы, если в вкратце:
    ActiveRecord - это объект, который хранит данные и содержит логику взаимодействия с БД.
    Преимущества: простота, удобно использовать на небольших проектах.
    Недостатки: паттерн нарушает множество принципов в частности Single Responsibility Principle, его использование как правило делает код сильно связанным, из за чего на сложных проектах его использовать невозможно.
    DataMapper - объект хранящий логику взаимодействия с БД. Он не хранит данные как ActiveRecord
    Преимущества: позволяет построить слабосвязанную архитектуру, разделить приложения на слои

    Более подробно можете почитать у Фаулера, да и просто погуглить можно, на эту тему уже много материалов написано на просторах интернета.
    Ответ написан
    Комментировать
  • Eslint Best practices?

    maxfarseer
    @maxfarseer
    https://maxpfrontend.ru, обучаю реакту и компании
    Во многих статьях вижу конфиг от airbnb, список правил тут

    В .eslintrc есть возможность "унаследовать конфиг". Например,

    {
      "extends": "eslint:recommended", // унаследовали от eslint:recommended
      ...
      "rules": { // переопределили/добавили свои правила
        "no-debugger": 0,
        "no-console": 0,
        ...
      }
    }
    Ответ написан
    Комментировать
  • Как отфильтровать по количеству связанных моделей?

    qonand
    @qonand
    Software Engineer
    используйте joinWith

    например:
    Author::find()->joinWith( 'posts', true, 'INNER JOIN' )
    Ответ написан
    Комментировать
  • Что должен знать SQL разработчик?

    darthunix
    @darthunix
    Знаю PostgreSQL, Ubuntu, DICOM и медицину.
    Наверное, знать надо все и до бесконечности. Я тоже работаю с PostgreSQL, для разработки и администрировании по моему горькому опыту нужно знать:
    1) Linux
    • стандартный набор консольных утилит
    • система выдачи прав на файлы
    • знания про работу с памятью для тюнинга БД
    • lxc (возможность поднять кучу легковесных контейнеров с разными базами очень помогает)
    • уметь настраивать фаервол (чтобы у сервера БД не торчало лишнее наружу)
    • ssh проброс портов с удаленного компьютера (чтобы удобно подключаться к БД)
    2) Система контроля версий - git, svn и т.д.
    3) PostgreSQL
    • внутренняя работа под капотом (для тюнинга производительности)
    • FTS, триграммы, plproxy
    • pgtap для тестирования
    • система версионирования схемы бд (я рекомендую pyrseas)
    • балансировщики, репликация, PIT бэкапы (рекомендую barman)
    • FDW для подключения к разным другим источникам данных

    А вообще, смотри видео и читай доклады с pgconf и документацию по PostgresPro, это хорошо помогает быть в курсе последних тенденций.
    Ответ написан
    7 комментариев
  • Что быстрее изучается web или android направления?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Проще - изучается, разумеется, Web: всё держится на тегах и спецификации, и результат виден сразу!
    Про Android - нужно учить минимум язык Java на базовом уровне и структуру приложения, чтобы написать что-то примитивное.

    Всё же зависит от задачи:
    1. ресурсоёмкое приложение для мобильного устройства - только нативная разработка.
    2. веб-страница, формы и т.д. что-то примитивное - достаточно web: html/js и "обернуть" в приложение через PhoneGap.
    Ответ написан
    Комментировать