• Что значит внедрить СМЭВ в проект?

    @GoldGoblin
    какие ведомства? Какие нормативно правовые или внутренние акты регламентируют это взаимодействие?
    Внедрить можно все самая большая проблема если передаются данные секретно или сов. секретно.
    Ответ написан
    2 комментария
  • Как инициализировать maven в проекте?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Java
    Седой и строгий
    Правой клавишей по проекту, выбрать пункт Add framework support, выбрать Maven. Будет создан pom.xml. Открываете его в редакторе, нажимаете Alt+Insert, выбираете пункт Dependency, добавляете из списка нужные.
    Ответ написан
    1 комментарий
  • Как распарсить json в Python?

    @gill-sama
    ну или для вашего случая
    for k in test['set']['item']:
        print(k['i']['n'])
    Ответ написан
    3 комментария
  • Как распарсить json в Python?

    sim3x
    @sim3x
    r = requests.get(protimg)
    for item in r.json():
       if ...
    Ответ написан
    Комментировать
  • Какие способы работы с cookie бывают в java?

    lolchtoo
    @lolchtoo
    java разработчик
    Это нормальная практика хранить сессию в памяти. Например Map
    Ответ написан
    Комментировать
  • Как получить поле из контекста?

    @aol-nnov
    @ConfigurationProperties, например
    а потом sp-el и понеслась
    @Value("${name}")
    private String name;
    Ответ написан
    Комментировать
  • Как востановить бинарное дерево?

    @Mercury13
    Программист на «си с крестами» и не только
    Если одним префиксным/инфиксным/постфиксным — то, разумеется, нет. А если двумя — дело уже интереснее (при условии, разумеется, что все узлы разные).
    Ну, например, как восстановить дерево, которое было пройдено сначала префиксно, потом постфиксно (самый сложный и интересный случай). Признаюсь сразу: полное восстановление невозможно, ведь ситуации «без левых сыновей» и «без правых сыновей» различить нельзя.

    Если длины не совпадают, СТОП: некорректные данные.
    В префиксном обходе корень в начале, в постфиксном — в конце. Если они не одинаковы, СТОП: некорректные данные.
    Если в обходе один элемент — с этим всё понятно.
    Второй элемент префиксного обхода — левый сын. Ищем его в постфиксном обходе. Если он предпоследний — перед нами та самая ситуация «у дерева один сын», и рекурсивно запускаем алгоритм на обходах без корня.
    В противном случае выкусываем подстроки нужной длины (реально или виртуально), дважды запускаем алгоритм рекурсивно.

    Пример: у нас дерево.
         a
      b    c
    d  e   f

    Префиксный обход abdecf, постфиксный debfca. Корень a, левый сын b, он в постфиксном обходе на третьей позиции. Рекурсивно запускаем алгоритм на парах bde/deb и cf/fc.
    Ответ написан
    Комментировать
  • Что такое enterprise разработка на самом деле?

    @miksir
    IT
    Enterprise разработка - это разработка, направленная на решение проблем бизнеса. В отличии от разработки для решения проблем конечных пользователей.

    На самом деле нет каких-то зафиксированных принципиальных характеристик, которые присущи только EA. По-этому, в разговорной речи понятие "энтерпрайз" может значить весьма разные вещи. С одной стороны энтерпрайз - не про увлечение модой с переписыванием всего, как только появится новый тренд. Ибо это _дорого_, так как цена ошибки дорога. С другой стороны - совсем не обязательно, что это 20-летние технологии. Конкретный бизнес сам для себя выбирает модели развития и обновления стека технологий. С одной стороны - это сложность ПО, бизнес-логики. С другой - сложность понятие весьма относительное.

    Но если все же пытаться выделить какие-то характерные черты, я бы назвал несколько:
    * устойчивость к трендам (использование их, когда они пройдут стадию моды и перейдут к стадии заинтересованности крупными игроками, ибо никому не нужны технологии, которые через год умрут и их поддержка будет дорожать каждый день).
    * сложная и непостоянная бизнес-логика, давление на нее из множества источников
    * результат сложной переменчивой бизнес-логики в совокупности с длительным использованием продукта приводит к целям снижения стоимости поддержки за счет стоимости первоначальной разработки, производительности и потребляемых ресурсов. ООП, SOLID, Unit Test/TDD, DDD - все эти популярные буквы - последствия "энтерпрайза", когда мы готовы серьезно подходить к написанию кода для облегчения его последующего изменения.
    * слабо заметный вклад конкретного программиста, проистекает из сложности ПО

    Требования к программисту... ну я бы сказал, усидчивость, вдумчивость, исполнительность... хм, а что, в каких-то других областях другие требования к программистам? Хотя, конечно, в противоположность, можно назвать способ разработки "быстро-быстро и в продакшн". Но, к слову, такие ситуации могут и в энтерпрайзе возникнуть.

    По-этому, стоит рассматривать не энтерпрайз/не энтерпрайз, а конкретные компании с конкретными требованиями и циклами разработки.
    Ответ написан
    1 комментарий
  • Что такое enterprise разработка на самом деле?

    @d-stream
    Готовые решения - не подаю, но...
    Достаточно "в лоб": enterprise - это "промышленное", остальное - кустарное -)

    Ну и в аналогиях: строительство домика на даче силами шабашников- исполнители могут достаточно вальяжно обходится с нормами и т.п. формально нет ни надзора, идет манкирование лицензиями... Строительство точно таких же домиков, но к примеру по госзаказу - проект, сметы, согласования, надзоры...
    Ответ написан
    Комментировать
  • Что такое enterprise разработка на самом деле?

    @private_tm
    JAVA dev
    Для тех кого не пугают старые технологии и аутсорс и привлекает одна из высших ЗП в области программирования и важна стабильность.
    Ответ написан
    Комментировать
  • Что такое enterprise разработка на самом деле?

    @vanillathunder
    enterprise - это дописывание и поддержка проектов которые пишут по 5-10 лет. Зарплата обычно выше средней на рынке. Главное требование - это терпение.
    Ответ написан
    1 комментарий
  • DDD Agregate, Entity, Repository понятным языком?

    @miksir
    IT
    Entity - сущность бизнеса. То, что еще называют "моделью", хотя этот термин так засрали, что лучше и не вспоминать про него. С чем работает наша проблемная область? С Клиентом, с менеджером, с заказов, с товаром - это и будут сущности. Важный момент - у сущности есть уникальный идентификатор.

    Репозиторий - это коллекция сущностей, паттерн по управлению сущностями. Из репозитория мы их получаем, в репозиторий отправляем. Конкретная реализация репозитория на persistence уровне уже занимается сохранением и поиском сущностей в базах данных.

    С аггрегатом и просто и сложно. Когда мы проектируем нашу предментую область, мы можем выделить такие сущности, которые не должны использоваться в отрыве от какой-то другой. Например, есть сущности "конкурс" и "фото на конкурс". Последняя не может существовать без конкурса, не может использоваться без него. При этом, именно "конкурс" мы будем спрашивать - сколько фото пришло. Удаляя конкурс - нужно удалить все фото этого конкурса. В таких случаях, мы определяем сводные (aggregate) границы и выделяем главную сущность (aggregate root или сводный корень). Ссылаться "извне", т.е. из других сущностей, не входящий в аггрегат мы можем только на сводный корень. Запрашивать из репозитория можем только сводный корень. И т.п., там много ограничений. Основная идея тут - инкапсулировать взаимодействие связанных сущностей внутри сводных границ, упростив таким образом глобальные взаимодействия.
    Ответ написан
    4 комментария
  • Для каких целей используют Raspberry Pi Compute Module?

    krimtsev
    @krimtsev
    В статье написано же https://geektimes.ru/post/284706/

    > В числе первых Compute Module 3 применила в своих продуктах компания NEC, которая использовала его в широкоэкранных дисплеях нового поколения. Такие дисплеи с диагональю до 96" предназначены для использования в публичных местах: школах, офисах, магазинах, на вокзалах и т.д.
    Ответ написан
    Комментировать
  • В каких случаях стоит использовать object pooling?

    По моему опыту JVM отлично оптимизирует пулы объектов уже на уровне виртуальной машины, если вы сделаете пулл, чтобы переиспользовать старые объекты, то скорее всего это может быть даже медленнее, в лучшем случае также быстро.
    Ответ написан
    Комментировать
  • JDBC всегда стараться использовать PreparedStatement?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Лучше всего использовать именно PreparedStatement, если не используете какой нибудь ORM.
    1) Это безопасно, так как исключает позможность SQL-injection
    2) Это типо-безопасно - java-way.
    3) Это быстро, в некоторых типах jdbc-драйверов они компилируются в хранимые процедуры на стороне базы (например в sybase/mssql и oracle) или в псевдокод на стороне java, а также они кешируются.

    Пользуйте везде, где можно именно PreparedStatement - javarevisited.blogspot.ru/2012/08/top-10-jdbc-best...
    и javarevisited.blogspot.ru/2012/03/why-use-prepared...
    Ответ написан
    1 комментарий
  • В чем разница внедрения зависимостей по ссылке или по значению?

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

    Rou1997
    @Rou1997
    Работая с JDBC, вы непосредственно работаете с базой данных, ORM же представляет "обертку" для того же JDBC, которая (ORM) реализует паттерны, обеспечивающее большее удобство, помогает ускорить разработку, очевидно что лучше предпочитать второе, но первое проще для простых задач, более гибко, а также помогает освоить второе.
    Ответ написан
    Комментировать
  • Чем отличается 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 комментариев
  • Чем отличается JDBC от ORM?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    JDBC- интерфейс для sql-запросов. Работаете с голыми sql-запросами и оперируете таблицами, строками, колонками и значениями. Если результаты запроса нужно положить с объекты, то сами их туда распихиваете.
    ORM - интерфейс для мапинга классов на таблицы, строки, колонки и значения базы данных. Работаете с java-объектами, sql-запросы за вас формирует ORM. Другими словами, не задумываетесь (почти), каксоставить sql-запрос, вытащить из него данные и раскидать значения по своим классам.
    Предпочтительнее конечно работать с ORM, так как все за вас будет оптимизировано и закешировано. Конечно, нужно будет знать, не только как работает ваша база данных, но и как работает ваш ORM.
    Ответ написан
    Комментировать
  • Как добавить параметры ядра в iptables?

    Допишите вначале файла: !#/bin/bash
    и дайте права на исполнение вашему скрипту #chmod +x путь_к_скрипту
    Ответ написан
    Комментировать