@jvmchat

Страница 2637 из 2890
Mikhail
09.07.2018
12:40:19
у меня руки не дошли пока прочитать конкретно

Magzhan
09.07.2018
12:57:19
Плюс, как мне кажется, тесты(вместе с системой типов) в каком-то смысле описывают контракт согласно которому должен работать модуль. Если вы начинаете описывать как должны себя вести приватные методы - вы не описываете требования конкретного этого модуля, а прибиваете гвоздями специфику реализации, которой может не стать после очередного рефакторинга и тесты придется переписывать, получается оверспецификация потому что требуется то что не должно требоваться. А пока этот контракт описывает необходимый минимум можно реализацию менять как угодно не испытывая боли по поддержке тестов. Было бы интересно узнать в каких ситуациях было бы уместно объявлять методы с default доступом для тестов, учитывая что у нас есть возможность рефакторинга и код приватных методов достаточно сложный что потребовал отдельных тестов на них?

Alpha
09.07.2018
13:17:25
Парни, вопрос немного не по теме: вообще, если утрировать 90% существующих потребностей бизнеса, то микросервисы, по-факту, представляют собой просто удобное API к БД?

Фёдор
09.07.2018
13:18:52
если утрировать 90% существующих потребностей бизнеса то любое приложение просто удобное api к бд или другому хранилищу

Google
Alpha
09.07.2018
13:20:11
Ну ок

Koba
09.07.2018
13:21:54
Добрый день! Как программировать на Java под платформу MT4(форекс) ? никогда никакой информации я не нашел

Alpha
09.07.2018
13:24:08
Или какое-то ПО?

Koba
09.07.2018
13:24:43
Alpha Nerd ну да это ПО, но МТ4 это как 1С Предприятие, но для форекса

Alpha
09.07.2018
13:25:10
Alpha Nerd ну да это ПО, но МТ4 это как 1С Предприятие, но для форекса
Берёшь API (который есть) и без задней мысли дёргаешь как тебе нужно

1337
09.07.2018
13:25:20
коба тролль

давний уже

Alpha
09.07.2018
13:25:33
Оу

Ну ок

1337
09.07.2018
13:25:39
Коба, нашел уже библиотечную джава сортировку по методу шелла или пузырька?

Google
Tolegen
09.07.2018
13:26:15
Плюс, как мне кажется, тесты(вместе с системой типов) в каком-то смысле описывают контракт согласно которому должен работать модуль. Если вы начинаете описывать как должны себя вести приватные методы - вы не описываете требования конкретного этого модуля, а прибиваете гвоздями специфику реализации, которой может не стать после очередного рефакторинга и тесты придется переписывать, получается оверспецификация потому что требуется то что не должно требоваться. А пока этот контракт описывает необходимый минимум можно реализацию менять как угодно не испытывая боли по поддержке тестов. Было бы интересно узнать в каких ситуациях было бы уместно объявлять методы с default доступом для тестов, учитывая что у нас есть возможность рефакторинга и код приватных методов достаточно сложный что потребовал отдельных тестов на них?
По моему опыту юнит тесты так и так прибиты к реализации. Особенно, когда все зависимости заменены на моки. Если говорить о более модульных тестах (тестирование компонент, интеграционные тесты, функциональные тесты), то там да - завязываться на реализацию нельзя. Нужно тестировать в black box стиле. Но тут уже вопрос о глубине тестирования и что именно тестируется.

Alpha
09.07.2018
13:26:35
микросервисы — это не про БД
Да понятное дело, просто архитектуру сейчас колупаю.

Таир
09.07.2018
13:26:48
улыбнуло

Alpha
09.07.2018
13:27:21
Оксюморон же.

Таир
09.07.2018
13:29:28
Да понятное дело, просто архитектуру сейчас колупаю.
ну вот непонятен контекст вопроса, напиши подробней

Andrey
09.07.2018
13:29:31
Парни, вопрос немного не по теме: вообще, если утрировать 90% существующих потребностей бизнеса, то микросервисы, по-факту, представляют собой просто удобное API к БД?
Раньше даже было популярно всю логику на процедурах хранить прямо в бд... Если только Апи к бд нужно, то в спринге есть сразу.

Alpha
09.07.2018
13:31:13
ну вот непонятен контекст вопроса, напиши подробней
Ну ок. По-сути, микросервисы нужны для распределения функционала системы по независимым модулям, с целью обеспечения возможностей масштабирования и равномерного распределения нагрузки на каждый модуль.

Это примерно понятно

Просто заметил, что в куче примеров/готовых работ — каждый микросервис имеет БД на беке

Вот и складывается такое впечатление

Митко Соловец?
09.07.2018
13:32:20
а ты опять появился

Koba
09.07.2018
13:32:55
тебе не надоело троллить?

коба тролль

давний уже

Таир
09.07.2018
13:33:03
Просто заметил, что в куче примеров/готовых работ — каждый микросервис имеет БД на беке
как по мне, это вопрос не той категрии, в том плане, что к микросервисам не имеет отношения

Koba
09.07.2018
13:33:33
1337 жирный тролль

Google
Tolegen
09.07.2018
13:34:52
Просто заметил, что в куче примеров/готовых работ — каждый микросервис имеет БД на беке
Ну если микросервисы разделяют одну БД, то они уже не микросервисы) это уже скорее SOA

Alpha
09.07.2018
13:35:21
Ну если микросервисы разделяют одну БД, то они уже не микросервисы) это уже скорее SOA
Не-не, я в том контексте, что для каждого микросервиса своя БД

Митко Соловец?
09.07.2018
13:35:52
задай вопрос нормально

микросервисы вообще не при чем тут

Alpha
09.07.2018
13:36:07
задай вопрос нормально
Не могу, ололо. КВАЛИФИКАЦИИ НЕ ХВАТАЕТ

Я же говорю — диванный интерес

Таир
09.07.2018
13:36:21
Вот и складывается такое впечатление
я бы так сформулировал: 99% API над базой делаются для того, чтобы сузить API самой базы в определенный набор операций, позволяющих гарантировать целостность данных на прикладном уровне

Zelmm
09.07.2018
13:39:42
Друзья, подскажите куда почитать про разработку многокластерного приложения как самого так и его архитектуры.

Mikhail
09.07.2018
13:40:43
я бы так сформулировал: 99% API над базой делаются для того, чтобы сузить API самой базы в определенный набор операций, позволяющих гарантировать целостность данных на прикладном уровне
Ну вообще реляционная база гарантирует целостность данных без вот этого всего. Апи делается, чтобы хомячки могли понять как со всем этим работать

Таир
09.07.2018
13:41:44
она гарантирует не на прикладном уровне

Artjom
09.07.2018
13:42:52
Друзья, подскажите куда почитать про разработку многокластерного приложения как самого так и его архитектуры.
Как-то у меня не связывается эти 2 словосочетания - начинающий разработчик и многокластерное приложение... для начала хотябы простое приложение с тестами и с CI сделать

Zelmm
09.07.2018
13:43:25
Это условно. Можно считать, что начинающий именно в формате многокластерной архитектуры.

Суть не в этом, вопрос остается тем же.

Таир
09.07.2018
13:44:34
и это не сарказм

Sergey
09.07.2018
13:45:15
многокластерный?)

Mikhail
09.07.2018
13:45:15
она гарантирует не на прикладном уровне
Можно примеры что ты имеешь ввиду?

Google
Таир
09.07.2018
13:45:56
Можно примеры что ты имеешь ввиду?
сорри, может термин не совсем правильный, прикладной уровень == бизнес логика, или как там ее

Alpha
09.07.2018
13:51:12
Можно примеры что ты имеешь ввиду?
@tairs Поправь, если неправильный кейс: Мы можем записать в БД данные, корректные с точки зрения БД, но некорректные с точки зрения бизнес-логики. Например, какое-то из полей недолжно быть нулевым с точки зрения логики, но при это нулевое значение поля допустимо в самой БД.

Таир
09.07.2018
13:51:36
Можно примеры что ты имеешь ввиду?
другими словами, СУБД дает целостность логическую, например “нельзя удалять группу, если в этой группе сидит хотя бы 1 человек”, но на прикладном уровне ограничения “нельзя удалять группу, даже если она пустая, пока это не подтвердили сотрудники такой-то должности”

это конечно можно как-то закодировать средствами базы, но это оверкил КМК

Admin
ERROR: S client not available

Mikhail
09.07.2018
13:54:03
другими словами, СУБД дает целостность логическую, например “нельзя удалять группу, если в этой группе сидит хотя бы 1 человек”, но на прикладном уровне ограничения “нельзя удалять группу, даже если она пустая, пока это не подтвердили сотрудники такой-то должности”
Ну с точки зрения БД наличие/отсутствие разрешения - это тоже просто запись в БД, которую ты можешь проверить средствами БД. И добавить такую запись могут только сотрудники с определенными ролями. И никаких противоречий нет.

Alpha
09.07.2018
13:54:11
тогда бд неправильно спроектировано
Ну понятно, что при создании БД это учитывается, просто как пример же.

Zelmm
09.07.2018
13:55:03
ну для начала я бы разобрался с однокластерным
Опять же вопрос не изменился - подскажите плиз куда почитать, если есть какие-то хорошие мануалы по теме.

Таир
09.07.2018
13:56:03
Zelmm
09.07.2018
13:56:13
Спс.

Таир
09.07.2018
13:56:44
Спс.
Модели консистентности еще

Mikhail
09.07.2018
13:56:46
средствами БД много чего можно делать, но я бы не стал
Ну как раз контроль за целостностью данных надо делать в БД, раз уж взяли что-то реляционное, а не монгу

Mikhail
09.07.2018
14:01:18
а если данные о должностях лежат в табличке в гуглдоксе?
а роли пользователей в системе написаны где-то на бумажке?

Таир
09.07.2018
14:02:44
а роли пользователей в системе написаны где-то на бумажке?
это все к тому, что в жизни не все “красиво по учебнику”, данные могут быть разнесены в разные хранилища, и API поверх хранилищ решает эти вопросы

Mikhail
09.07.2018
14:03:58
Ну типа если данные не нормализованы, а бизнес-процессы не формализованы, ни одна система тебе не сможет гарантировать надежность

Google
Dmitry
09.07.2018
14:11:49
Реализуя бизнес-логику на стороне БД, вы жестко привязываетесь к СУБД

Таир
09.07.2018
14:12:06
СУБД вам могут гарантировать целостность данных прикладного уровня, но для этого все данные должны лежать в одной базе, то бишь монолит, но в жизни такое не часто бывает

чаще данные размазаны по разным хранилищам

Tolegen
09.07.2018
14:16:28
Бывают приложения, которым БД не особо нужно. У нас например чисто stateless processing.

БД чисто для отлова ошибок

Sleeping
09.07.2018
14:17:22
Ребята, всем привет. Подскажите что происходит... Создал проект на спрингбут кидаю запрос - ничего. Запустил старый проект - запросы летят нормально. Весь каркас идентичный, все нужные аннотации стоят на своих местах. Психанул создал новый проект, полностью скопировал весь код с сайта спринга, добавил туда свой код который не хотел ловиться и вуаля все полетело. Что я делал не так?

Dmitry
09.07.2018
14:17:39
ИМХО, это часто надуманная проблема
нифига. Сейчас многие хотят соскочить с оракла или mssql на постгрес, но бизнес-логика в хранимках этому очень мешает

Tolegen
09.07.2018
14:18:30
А не так вопрос понял)

Часто вы такое наблюдаете?
Я к тому, что не все на БД завязано.

Mi
09.07.2018
14:19:06
В любом случае логика на уровне бд это немного не ок имхо

Egor
09.07.2018
14:20:27
В любом случае логика на уровне бд это немного не ок имхо
Не говоря о том, что писать на всяких Pl/PgSQL можно только основательно набравшись или имея два магистра

Mikhail
09.07.2018
14:20:27
Бывают приложения, которым БД не особо нужно. У нас например чисто stateless processing.
Ну изначально речь шла о 90%. Ваш случай, очевидно, сюда не попал

Tolegen
09.07.2018
14:21:16
Ну тут вопрос - что считать логикой

UniqueConstraint - это логика?

Mi
09.07.2018
14:21:28
Тригеры и хранимки полезны для решения других проблем, например логи изменений

Страница 2637 из 2890