
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

Mikhail
09.07.2018
13:18:57

Alpha
09.07.2018
13:20:11
Ну ок

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

Alpha
09.07.2018
13:24:02

Tolegen
09.07.2018
13:24:05

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

1337
09.07.2018
13:25:20
коба тролль
давний уже

Alpha
09.07.2018
13:25:33
Оу
Ну ок

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

Google

Таир
09.07.2018
13:26:01


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

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

Alpha
09.07.2018
13:33:28

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

Google

Tolegen
09.07.2018
13:34:52

Alpha
09.07.2018
13:35:21

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

Alpha
09.07.2018
13:36:07
Я же говорю — диванный интерес

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

Alpha
09.07.2018
13:38:07
Вопрос снят, в общем.

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

Mikhail
09.07.2018
13:40:43

Таир
09.07.2018
13:41:24

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

Artjom
09.07.2018
13:42:52

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 человек”, но на прикладном уровне ограничения “нельзя удалять группу, даже если она пустая, пока это не подтвердили сотрудники такой-то должности”
это конечно можно как-то закодировать средствами базы, но это оверкил КМК

Митко Соловец?
09.07.2018
13:52:25
тк констрэйнты ставят по требованиям бизнеса

Admin
ERROR: S client not available

Mikhail
09.07.2018
13:54:03

Alpha
09.07.2018
13:54:11

Таир
09.07.2018
13:54:40

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

Таир
09.07.2018
13:57:27

Mikhail
09.07.2018
14:01:18

Таир
09.07.2018
14:02:44

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

Google

Таир
09.07.2018
14:07:48

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

Mi
09.07.2018
14:17:42

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

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

Egor
09.07.2018
14:20:27

Mikhail
09.07.2018
14:20:27

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

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