• Сделать атрибуты в JSON обязательными?

    jaxtr
    @jaxtr
    JavaEE/Spring-разработчик
    Можно попробовать JSON-валидацию при помощи схемы.
    Ответ написан
    Комментировать
  • Как правильно создавать процесс-демон на java?

    jamakasi666
    @jamakasi666 Куратор тега Java
    Просто IT'шник.
    Проще и лучше идти по пути наименьшего сопротивления, лучше использовать screen или обернуть удобными скриптами.
    Ответ написан
    Комментировать
  • Как создать ПОЛНУЮ ленту RSS из стены Сообщества ВКонтакте?

    riky
    @riky
    Laravel
    берем апи https://vk.com/dev/wall.get и пишем простенький скрипт.
    Ответ написан
    Комментировать
  • Почему простой запрос очень долгий?

    @RoverWhite
    Очевидно потому что при таком синтаксисе запроса, вот эта часть
    SELECT COUNT(`statistic`.`id`) FROM `statistic` WHERE `statistic`.`pid` = `products`.`id`
    будет выполняться 10000 раз
    Вот так должно быть быстрее
    UPDATE `products` p
    INNER JOIN (SELECT COUNT(*) as cnt, `statistic`.`pid` FROM `statistic` GROUP BY `statistic`.`pid`) as sta ON p.`id` = sta.`pid`
    SET p.`statistic` = sta.`cnt`
    Ответ написан
    3 комментария
  • Возможно ли восстановить рекпликацию?

    MaxDukov
    @MaxDukov
    впишусь в проект как SRE/DevOps.
    да, все верно понимаете.
    выбираем "хороший" сервер, с него перезаливаем "плохой", перезапускаем репликацию.
    howto
    Ответ написан
    1 комментарий
  • В чем разница внедрения зависимостей по ссылке или по значению?

    EugeneP2
    @EugeneP2
    Java Dev
    value - для примитивов, стрингов, ${пропертей} и #{Spring Expression Language}.
    ref - если нужно заинжектить бин. В ref указывается id бина
    Ответ написан
    Комментировать
  • Этично ли при работе над проектом избавляться от посредников?

    Я охреневаю. Все такие крутые бизнесмены, судя по комментариям, только денежные отношения и похрену этика.
    Этика бизнеса - это не сферический конь в вакууме, это набор устоявшихся, неписаных правил, взаимодействия участников процесс. Сюда -же относятся и понятия репутации, имени фирмы, истории марки, и т.д., т.е. большая часть нематериальных активов, которые имеют вполне реальную финансовую оценку.
    Кидать посредников - плохо. Это удар по Вашей репутации, в перспективе потеря какого то кол-ва заказов, и принятие на себя не свойственных Вам функций.
    Да, Вы срубили сейчас чуть больше бабла, но потом этот посредник к Вам с заказом больше никогда не придет. Еще 5-10 таких заходов и Вы получите определенную репутацию хоть и в узких кругах.

    Посредников, конечно, надо давить, торговаться, ограничивать в их хотелках, и договариваться. Ничего не поделаешь - это коммерция. Но кидать, на мой взгляд, себе дороже.
    Ответ написан
    5 комментариев
  • Чем отличается JDBC от ORM?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Для начала упростим JDBC до общего случая Data Access Object (DAO).

    Суть DAO сводится к тому, что у нас есть объект, инкапсулирующий в себе работу с хранилищем данных. Ну то есть весь SQL и все детали работы с хранилищем вшиты в него. Причем их может быть множество (не пихать же вообще всю работу с базой данных в один объект).

    Словом, основная задача DAO - предоставить механизм работы с базой данных скрывая детали внутри себя.

    ORM (Object-relational mapping) - это, если опять же упростить, общая идея конвертации "объектов" между системами с несовместимыми типами. Ну то есть как объекты из базы мэпятся на объекты.

    Если под ORM брать мощные реализации вроде Hibernate, то тут становятся очевиднее минусы конкретно этой реализации. А именно - работать это будет эффективно когда вам нужно построить объектную модель логики приложения, нежели модель данных. Такие подходы хорошо работают в приложениях с реально сложной логикой, где вам бы хотелось в коде передать суть того, как все работает в реальности. Например как именно происходит автоматизация бизнес процесса. С реальными объектами и т.д.

    Для вещей вроде генерации репортов ORM такого плана приносят больше вреда чем пользы. ORM очень хорошо работают в операциях на запись, ито только если речь идет о взаимодействии небольшого количества объектов (пара сотен например, или десятков но не тысяч), когда логика взаимодействий этих объектов сложная, или правил много. Если вам скажем нужно обновить все значения в таблице - сделать это через SQL намного удобнее.

    Ну и в целом, ORM и DAO это весьма разные концепции, они о разных вещах. То есть у вас может быть использовано и ORM и DAO. Или ORM внутри использующее DAO... это не столь важно.
    Ответ написан
    9 комментариев
  • В чем сложности разработки он-лайн сервисов?

    nki
    @nki
    bezkart.ru готовая система лояльности
    Технический сложностей особо нет. Все сложности в продвижении и монетизации таких сервисов.
    Ответ написан
    Комментировать
  • Что такое ElasticSearch?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    Знаете, я с вами соглашусь, что хорошую вводную по Elastic трудно найти. Пока сам не переварил доков и не набил шишек многие элементарные понятия оставались для меня неясными. Поэтому вот моя вводная: Elastic можно использовать как NoSQL БД, только надо быть внимательным, т.к. всё-таки его основная задача поиск, а не удовлетворение функций БД. Например, если вы не настроили хранение исходных данных, а только индексацию, то свои данные вы уже не извлечёте из него. НИКОГДА. Только отдельные выражения, удовлетворяющие условиям поиска. Всё, тупик. Так же нельзя повторно индексировать уже загнанные в него данные. Т.е. перед загрузкой данных надо грамотно настроить индексацию, т.к. перестроить индекс, как это делается в реляционной БД невозможно. Нужно придумать новую схему индексации и перезалить данные в Elastic. Именно поэтому основное использование Elastic - как дополнение к существующей БД из которой данные можно перезалить по одному или полностью в Elastic (можно, конечно сделать схему Elastic->Elastic, но тоже есть нюансы).
    Ещё пару слов про схему. Это ЛОЖЬ, что в Elastic нет схемы данных. Она как раз есть и ооочень жёсткая. Жёсткая до того, что однажды определив, вы не сможете её поменять. Изначально Elastic оказывает медвежью услугу, разрешая вам дополнять схему по-умолчанию, но когда вы разберётесь с этой темой, то можете обнаружить, что Elastic "понастроил" такого у себя внутри, что остаётся только охреневать и переделывать всё явно, отказавшись от его "услуг" по автоматическому добавлению полей в схему.
    Так же в Elastic очень непросто строить сложные запросы на поиск и агрегатные запросы. Совершенно неинтуитивно. Но если освоитесь, то будет вам счастье. )))
    Несмотря за такие "страшные" вещи - Elastic классная система и по производительности агрегатных запросов не уступает платной версии MSSQL в поиске в многопроцессорных системах (проверял на одинаковых аппаратных конфигурациях с 16 ядрами). Так что если вам хочется большую скорость в агрегатных запросах и главное - это бесплатность, то берите и осваивайте Elastic. Мощности и возможности у него огромные. Но... нужно потратить приличные усилия на изучение.
    Ответ написан
    1 комментарий
  • Как остановить параллельное выполнение?

    @Free_ze
    Пишу комментарии в комментарии, а не в ответы
    У треда должна быть обертка, в которой будет булево свойство (interruptionRequested, например), которую треду необходимо проверять самостоятельно между атомарными операциями своей полезной нагрузки. ("Скопировал файл, проверил - false, скопировал следующий, проверил - false, скопировал еще один, проверил - true, завершился").

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

    qonand
    @qonand
    Software Engineer
    Собственно главный вопрос - зачем? зачем Вам изменять СУБД? какие для этого причины? Если у Вас вполне устраивает функционал MySQL, если у Вас база справляется с нагрузками, тогда не нужно делать лишнюю никому не нужную работу.

    На счет проблем при переезде с одной БД на другую - тут Вам никто точно не скажет будут проблемы или нет, т.к. не известна какая специфика проекта, как он организован, насколько он независим от базы и т.п.

    В любом случае переде тем как принимать решение переводить проект на другую СУБД или нет, нужно понимать все ПЛЮСЫ перевода и все МИНУСЫ, и комплексно оценивать стоит игра свечь или нет. Как по мне postgresql лучше mysql по многим параметрам, но если нет явных причин менять СУБД - не стоит этого делать
    Ответ написан
    Комментировать
  • Как изменить значения поля типа ENUM?

    qonand
    @qonand
    Software Engineer
    Вы можете добавить значения в ENUM поле обычным SQL-запросов, например
    ALTER TABLE mytable MODIFY COLUMN mycolumn ENUM('val1','val2','val3','val4','val5');
    Ответ написан
    1 комментарий
  • Почему не работает запрос SQL LIKE диапазон значений?

    Держи решение, подходит как раз под твои условия
    SELECT * FROM `pole` WHERE `name` REGEXP '(^[0-9])';

    Работает только на первое слово в строке, если нужны будут другие условия, соответственно и регулярка будет другая, составить регулярное выражение можешь здесь .
    Ответ написан
    1 комментарий
  • Где почитать про проектирование баз данных(nosql) с практическими примерами?

    используя nosql-базы

    Шаг 1. Убрать из лексикона термин "NoSQL". Хотя бы временно.
    как наиболее правильно хранить пользовательские данные, комментарии, лайки, медиа-данные.

    Шаг 2. Выписать или запомнить три важнейших свойства любой СУБД:
    • модель данных: что является элементом данных, что является коллекцией элементов, чего в СУБД должно быть постоянное количество, есть ли схема и в каком виде, как обеспечиваются связи между элементами данных на уровне модели;
      Пример: MongoDB, элемент данных - документ, описывается как JSON-документ с некоторыми специфичными для Монги расширениями. Коллекция элементов - коллекция документов. Количество коллекций более-менее постоянное, количество документов растёт.
    • ограничения и гарантии физической реализации модели данных - какие операции какую сложность имеют, какую цену (в плане пространства на устройстве хранения и процессорного времени) имеет каждая используемая структура данных или алгоритм; какие параметры как будут расти во время эксплуатации БД.
      Пример: графовые БД, имеющие "настоящий" графовый движок, т.е. такой, который хранит физические ссылки из одной вершины на другую, гарантируют константное время выборки связанных вершин. В связи с этим их выгодно использовать для сильносвязанных нечасто изменяющихся данных (графы друзей в социалочках и т.п.)
    • инструментарий логического и физического уровня: по сути это предыдущие пункты более подробно - какие структуры данных доступны, в частности какие есть индексы, какие способы выборки/фильтрации/сортировки присутствуют; для чего гарантируется транзакционность (особо важный вопрос); где находится база в CAP диаграмме; какие есть средства логического уровня, например представления (view);
    Вспомните любую социальную сеть, где над каждым постом есть куча комментариев, лайков, репостов

    Шаг 3. Научиться ставить задачу с точки зрения обрабатываемых данных:
    • какие данные будут иметь постоянный объем или расти медленно, а какие - быстро и постоянно;
    • какие будут запросы к данным, что будет выбираться как есть, а что нужно будет дополнительно агрегировать;
    • какие запросы будут плановые, а какие придётся выполнять внепланово;
    • какой нужен уровень доступности, какова ценность хранящихся данных и цена простоя.

    Шаг 4. Ознакамливаться с СУБД здесь: nosql-database.org и выбирать нужную с учётом:
    • вашей задачи;
    • порога вхождения;
    • наличия доступных специалистов.
    Ответ написан
    2 комментария
  • Как правильно избежать дублирование view кода?

    Djaler
    @Djaler
    Сеньор-помидор
    Например, Thymeleaf умеет в подключение разных файлов в один как фрагментов.
    Ответ написан
    Комментировать
  • В каких случаях лучше использовать NoSQL, а в каких SQL?

    Вот вам развёрнутый ответ.
    Пользовался NoSQL и SQL

    Не могли вы пользоваться NoSQL, вы пользовались какой-то конкретной моделью данных и конкретной СУБД.
    какую БД лучше использовать

    Ни NoSQL ни SQL это ни БД, ни СУБД.
    Был бы признателен за ссылку на статью или развёрнутый ответ, чтобы в будущем я мог при проектировании проекта сразу определится с выбором базы данных.

    В формате "ответ на Тостере" невозможно сравнить существующие сейчас модели данных и уж тем более дать советы по выбору СУБД. Начните с другого: оставьте историко-маркетологический термин "NoSQL" в стороне и начните с рассмотрения реальных моделей данных и их популярных реализаций:
    - колоночная СУБД;
    - хранилище "ключ-значение";
    - документно-ориентированная БД;
    - графовая БД;
    Ответ написан
    2 комментария
  • Какой оптимальный инструмент для эмуляции HLoad нагрузки на веб-сервер?

    zo0m
    @zo0m
    full stack developer
    давно таким не занимался, но когда-то чуть ли не стандартом был jmeter.apache.org
    Ответ написан
    Комментировать