@dlangru

Страница 634 из 719
Pavel
20.07.2018
08:21:41
А уже сделали новую систему 2018+, при этом некоторые клиенты хотят работать на старых и все три надо обязательно поддерживать.

Stepanos
20.07.2018
08:27:19
Pavel
20.07.2018
08:32:49
Тогда стори будут в 2 раза дольше делаться

Ievgenii
20.07.2018
08:32:58
надо закрьівать стори с покрьіием тестами и описанием доки :)
Да, наверное. Но на это не всегда хватает времени. Да и желания...

Google
Pavel
20.07.2018
08:33:05
Да и тесты там такие что тоже хрен поймешь. Тесты тоже надо документировать

Stepanos
20.07.2018
08:33:53
:) оу, тестьі и есть лучшая документация... Я в D либки как раз по тестам начинаю вникать

Pavel
20.07.2018
08:34:11
Вот на среднем проекте у нас все было очень хорошо с девопсом, хорошее покрытие, тесты юнитовые, функциональные, немного приемочных, на каждый коммит прогон тестов. Но и там было малореально что-то понять стороннему человеку.

:) оу, тестьі и есть лучшая документация... Я в D либки как раз по тестам начинаю вникать
Тест показывает "механические" контракты "что подали на вход" -> "что должно быть на выходе". Но они не объясняют смысла данного компонента в системе, его роль и важность.

Stepanos
20.07.2018
08:35:09
> Но и там было малореально что-то понять стороннему человеку. :) то есть не программисту?

Pavel
20.07.2018
08:35:19
Программисту тоже

Stepanos
20.07.2018
08:35:31
что вьі там пишете такое масштабное?

Pavel
20.07.2018
08:38:29
Оно настолько непонятное что не описать в одном абзаце )

Dark
20.07.2018
08:40:15
Не удивительно, что код сторонний человек не прочитает

Pavel
20.07.2018
08:42:22
В общем результат то на самом деле простой. Мы генерим pdf документы которые выглядят приблизительно так http://www.labchem.com/tools/msds/msds/LC26750.pdf

В базе есть тысячи компонентов из которых делаются товары/продукты, также в базе лежат тысячи продуктов от разных компаний. Каждый компонент в продукте может иметь разные физико-химические свойства, выжигать глаза, отравлять среду и т.д. Есть международные стандарты на то как описывать такие продукты. Называется MSDS, OSHA и т.д. Есть десятки шаблонов PDF документов, которые могут быть на десятках языков. Мы генерим описание компонентов продукта во всех этих комбинациях.

У компонентов есть разные категории, классификации, ярлычки и т.д. которые навешиваются в документ по определенным правилам.

Примерно так выглядит граф принятия решений на одном из пяти шагов визарда создания продукта. На скрине две ветви из четырех.

Google
Pavel
20.07.2018
08:48:32
Там десятки классов, констант всяких. Даже если все это покрыть тестами то любой прогер все равно хрен поймет какой во всем этом смысл и что вообще происходит.

Dark
20.07.2018
08:49:02
Конечно, не поймет

Это же узкоспециализированный продукт

Pavel
20.07.2018
08:50:08
Ага, у нас есть несколько слоев аналитиков и менеджеров, которые нам говорят - "пойди вот туда и добавь такую то опцию в 16 секцию для Канады на французском и китайском языке" Мы просто это имплементируем.

Pavel
20.07.2018
08:50:42
Чую там ORM! :з
Ну старая система была на yii, и там был ActiveRecord.

Новая на C#+angular, и тут вроде как бы Entity Framework

Denis
20.07.2018
08:50:59
То что вот вы описали делается обычными средствами за месяц

а если на ORM то года за 3

:)

Pavel
20.07.2018
08:51:26
То что вот вы описали делается обычными средствами за месяц
Там все эти изменения надо версионировать.

Denis
20.07.2018
08:51:33
Зачем?

Pavel
20.07.2018
08:51:38
Ну затем, так сказали.

Denis
20.07.2018
08:51:43
Понятно

Pavel
20.07.2018
08:51:50
То есть автор может захотеть откатить содержимое компонентов документа на полгода назад.

Denis
20.07.2018
08:51:52
Надо миграции для БД, а версионировать не надо

Pavel
20.07.2018
08:52:06
Надо миграции для БД, а версионировать не надо
Что значит не надо? Это бизнес-требование.

Pavel
20.07.2018
08:52:29
Правки в компонентах и документах вносятся слоями через ревизии, у каждой правки есть ответственные авторы.

Denis
20.07.2018
08:52:35
Что значит не надо? Это бизнес-требование.
я думал речь о версиях схемы БД

Google
Pavel
20.07.2018
08:52:57
Ну для схем мы юзали миграции и было нормально, однако это меньшая из проблем.

Stepanos
20.07.2018
08:56:16
а реализованьі алгоритмьі принятия решений на скриптовом язьіке?

Pavel
20.07.2018
08:59:27
На TypeScript

на стороне ангуляра

Ну еще этот граф дублируется в бекенде на C# конечно, потом он сериализуется и отправляется клиенту на фронт чтобы тот смог по шагам спрашивать вопросы

Pavel
20.07.2018
09:01:28
Я за год где-то въехал.

Ievgenii
20.07.2018
09:01:30
НО! Тестов нет)))

У нас стадо тестировщиков)))

Pavel
20.07.2018
09:02:46
Скажем так. У нас тоже сложный громадный проект. Но при наборе новеньких, а набор происходит регулярно, в него въезжают за месяц-два. Хотя там все построенно на событиях, очередях и версионности.
Думаю все просто, если даже самый громадный проект удается описать какими то едиными законами, тогда человек поймет. В нашем случае единого закона нет, а есть просто сотни-тысячи локальных правил, поэтому за всем этим трудно увидеть лес.

Ievgenii
20.07.2018
09:03:33
И последний раз ну ОЧЕНЬ сильно разнесли на модули

И в системе сейчас дохренищя моделуй с интерфейсами

И все что ты можешь накосячить сводится только к одному модулю

Ну или саб-модулю

На счет каких-то "законов", у нас их нет. Есть свод правил. которым нужно следовать и будет все хорошо

Вот для примера, сколько миграций за последние 2 года



Остальные были почищенны... Уж сильно больно на них смотреть)))

Google
Ievgenii
20.07.2018
09:08:31
Это еще впадло пулиться))))

Denis
20.07.2018
09:10:36
https://habr.com/post/417629/#comment_18901655 про дельфи мысль

Вот для примера, сколько миграций за последние 2 года
Какую БД юзаете и какой тул для миграций?

Ievgenii
20.07.2018
09:16:57
Какую БД юзаете и какой тул для миграций?
Нативный yii-вский миграционный движек

Denis
20.07.2018
09:17:29
и как он вам?

Ievgenii
20.07.2018
09:17:33
Кто?

Denis
20.07.2018
09:17:35
чую, скоро мы тоже придём к миграциям

движок миграционный

Admin
ERROR: S client not available

Ievgenii
20.07.2018
09:17:44
Та норм

Что от него там нужно)))

В микросервисах сами написали

Там не так уж и сложно его сделать самому

Если нужно, конечно

Pavel
20.07.2018
09:18:58
По сути миграции это довольно примитивный механизм - пишешь 2 скрипта - один накатывает миграцию, другой откатывает. И тулза миграций просто следит какая миграция была выполнена а какая нет.

А вот если начинаются фичи сравнения схем БД и прочее, это уже гораздо жестче конечно

Stepanos
20.07.2018
09:19:31
а что используете? liqubase?

Pavel
20.07.2018
09:20:01
симфониевские миграции пляшут от ORM - сначала описываешь таблицы в виде классов, а по ним уже сравнивается схема и генерятся тексты sql запросов.

Oleg
20.07.2018
09:22:52
@chebotarevp а чем pdf-ки генерите?

Google
Pavel
20.07.2018
09:23:20
https://github.com/mpdf/mpdf

Evil
20.07.2018
10:48:32
https://github.com/mpdf/mpdf
Хорошая штука, юзал в одном проекте давно

Можно еще Aspose

https://www.aspose.com

Но он платный

pandoc.org

Идеально

Oleg
20.07.2018
11:44:01
про pandoc слышал

кстати, никто не сталкивался с необходимостью scp из кода вызвать?

есть ли может либа какая?

чтобы кроссплатформенно было

Pavel
20.07.2018
11:51:35
Я видел есть либа на си для работы с ssh и к ней D-биндинги

Filio
20.07.2018
12:26:18
Я видел есть либа на си для работы с ssh и к ней D-биндинги
это ты сейчас описал состояние доброй половины библиотек для D

Ievgenii
20.07.2018
13:22:48
)))

Maxim
20.07.2018
13:56:55
Ну так это же хорошо, что в D относительно лего делать C-биндинги)

Pavel
20.07.2018
14:08:35
Мне думается что не очень

Получается, для тех кто не знает си, вроде библиотека и на D написана, а в то же время подправить и развивать ее нельзя. Какой-то мутант.

Stepanos
20.07.2018
16:35:15
вайб уже собирается последним компилятором?

Denis
20.07.2018
16:38:36
Stepanos
20.07.2018
16:38:49
dmd

Ievgenii
20.07.2018
18:36:03
Лучше вижуалстудии ничего нету)
Борланд Делфи 6-7 имхо лучшая за все время

Страница 634 из 719