Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

А как такая хрень вообще происходит?

2378  1 2 3 4 5 6 7 все
alex445 коренной житель27.01.23 00:44
NEW 27.01.23 00:44 
в ответ Срыв покровов 26.01.23 21:48
насчёт Unit of work ты меня убедил

Он есть

Мы даже что-то подобное у себя используем.

Только кроме функций из методичек insert, remove и get у нас например есть GetListWithIncludes<TEntity>(Expression<Func<TEntity, bool> condition, Expression<Func<TEntity, object> include)

или UpdateOneProperty<TEntity>(int id, Action<TEntity> setter)


Я боюсь, если кто-то решит мигрировать на другой ОРМ, нам всем станет очень больно.

Щас натравлю на вас DBA, которые скажут, что эта хрень должна быть в хранимках. А любая орм хранимку-то дёрнет без проблем.


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

#61 
alex445 коренной житель27.01.23 00:48
NEW 27.01.23 00:48 
в ответ Программист 26.01.23 21:59
Но за 20 лет столько всего изменится, что никакие крутые теории не спасут.
Особенно, когда всё начиналось с гаража х лет назад.

Я сейчас работаю в проекте, который начался боьше 20 лет тому назад. И у нас до сих пор есть куски кода, которые уже 20 лет работают. И уже хрен знает сколько лет в проекте используется оракл, черти сколько лет тому назад был спроектирован слой взаимодействия с БД и за последние 2 года там было пара расширений и пара багфиксов.

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

А UI за 20 лет тоже без изменений? А если с изменениями, как старое дерьмо с новым UI стыкуется? Через пачку абстракций?

#62 
alex445 коренной житель27.01.23 00:49
NEW 27.01.23 00:49 
в ответ Программист 26.01.23 22:35

Только что перешли на .Net 4.8

Когда будем переходить дальше - вопрос.

Вы щас на новые вакухи собесы по Дотнету не пройдёте. Или вы подучиваете новые версии Дотнета и Шарпа "в стол"?

#63 
alex445 коренной житель27.01.23 01:02
NEW 27.01.23 01:02 
в ответ MrSanders 27.01.23 00:26
И да, это имеет смысл. Лучше с самого начала добавить "тупой" сервис, который "тупо вызывает репозиторий", чем через два года пытаться разодрать монструозный репозиторий на собственно репозиторий и сервис. И пытаться понять что делать с сервисами, которые вызывались напрямую из этого репозитория и как убирать тучу обратных связей.

Для управления всеми этими сервисами нужен отдельный сервис. Или лучше система сервисов. Иерархическая. Там должен быть мастер-сервис, подсервисы, и рядовые сервисы. Там же нужно продумать систему специализированных сервисов-хостов для всех этих сервисов. Репозиторий сервисов тоже был бы неплох. Также может пригодиться фабрика репозиториев сервисов по созданию сервисов.

#64 
alex445 коренной житель27.01.23 01:05
NEW 27.01.23 01:05 
в ответ MrSanders 27.01.23 00:33
Если вы не какой-нибудь SAP или Твиттер, то и свой фреймворк, и продукт на его основе, и команды поддержки для всех клиентов вы навряд ли потянете. Впрочем, уже по второму кругу пошло обсуждение.

В нулевых я работал на фирме, которая делала сайты. И у нее - сюрприз! - был свой самописный CMS. Который мы развивали. А сайты делались на этом CMS-е. Клиентов было что-то в районе 40-50 фирм. Никаким сапом там не пахло. Нас в бекэнде было 3 человека. И тянули, и развивали и для клиентов новые свистелки реализовывали. Так что помолчи уже, за умного сойдёшь.

В нулевые у каждого школьника был свой фреймворк. И с теми не столь обширными веб-технологиями это ещё как-то было поддерживаемо небольшими командами. Сейчас либо вы очень большой, либо вас раздавят.

#65 
Программист коренной житель27.01.23 07:48
NEW 27.01.23 07:48 
в ответ alex445 27.01.23 00:22
Значит, у вас есть команды, специализирующиеся по ормам. Либо челы, знающие несколько ормов. Либо вы берёте только те проекты, по технологиям которых имеете спецов.

Либо можно просто сделать абстракцию, которая будет независима от ОРМа и тогда можно брать все проекты :)


Мы как бы всё ещё говорим о конторе, клепающей на заказ сайты и прочие проекты, а не поддерживающей своё костыльное болото десятилетиями?

Именно так. И как показывает практика, работать на "своем костыльном болоте" получается гораздо эффективнее (как минимум с точки зрения бизнеса).

#66 
Программист коренной житель27.01.23 07:52
NEW 27.01.23 07:52 
в ответ alex445 27.01.23 00:48, Последний раз изменено 27.01.23 07:53 (Программист)
А UI за 20 лет тоже без изменений? А если с изменениями, как старое дерьмо с новым UI стыкуется? Через пачку абстракций?

UI с изменениями. Пару лет назад начали мигрировать UI с WinForms на WPF, сейчас вот закончили этот процесс. UI отделена от бизнес логики. Так было и в WinForms.


А что, есть такие, кто не отделяет UI от бизнес логики? смущхаха

#67 
Программист коренной житель27.01.23 07:55
NEW 27.01.23 07:55 
в ответ alex445 27.01.23 00:49
Вы щас на новые вакухи собесы по Дотнету не пройдёте. Или вы подучиваете новые версии Дотнета и Шарпа "в стол"?

Не доучиваю. Хотя надо бы наверное посмотреть в сторону Core итд... но я пока что не пересекаюсь с Web'ом вообще никак.

#68 
Срыв покровов патриот27.01.23 08:02
NEW 27.01.23 08:02 
в ответ alex445 27.01.23 00:28
Тогда почему вы боитесь забыть, если за вас всё равно напомнят? Если напомнят, значит всё в порядке. Проблемы нет.

я не боюсь забыть, мне лень все это писать.

#69 
Срыв покровов патриот27.01.23 08:08
NEW 27.01.23 08:08 
в ответ Программист 27.01.23 07:52
Пару лет назад начали мигрировать UI с WinForms на WPF, сейчас вот закончили этот процесс

интересно, что где-то тоже ещё разрабатывают не веб-приложения. Не хочет заказчик?

#70 
Срыв покровов патриот27.01.23 08:10
NEW 27.01.23 08:10 
в ответ alex445 27.01.23 00:44
Щас натравлю на вас DBA, которые скажут, что эта хрень должна быть в хранимках. А любая орм хранимку-то дёрнет без проблем.

ты молодёжь попробуй заставь писать pl/sql

Да и это пришлось бы на каждый пук писать свою хранимку.
А с инклудами вообще можешь забыть.

#71 
Срыв покровов патриот27.01.23 08:13
27.01.23 08:13 
в ответ alex445 27.01.23 00:44
Ну и для пачки методов с изъёпистыми запросами целый паттерн городить не надо. Просто поместите их в ваш класс изъёпистых запросов и всё.

Нет уж лучше так, чем 100500 методов типа
GetCustomerByIdWithAdress

GetCustomerByNumberWithOrders

GetOrdersByDateWithCustomers

И т.д.

#72 
Программист коренной житель27.01.23 08:52
NEW 27.01.23 08:52 
в ответ Срыв покровов 27.01.23 08:08
интересно, что где-то тоже ещё разрабатывают не веб-приложения. Не хочет заказчик?

Мы делаем софт для машин. Ну и соответственно нужно UI для управления этими машинами.

#73 
Murr патриот27.01.23 09:36
Murr
NEW 27.01.23 09:36 
в ответ Срыв покровов 26.01.23 20:39

Можно пример, чего там в ЕФ встроено?

-----

А смысл ЭТО спрашиать - архитектуру и реализации он все одно не смотрел.

#74 
Murr патриот27.01.23 09:40
Murr
NEW 27.01.23 09:40 
в ответ Срыв покровов 26.01.23 21:05

называется компилятор

-----

Это фигня!

У настоящих пограммистов он называется - рантаим у клиента...

#75 
Murr патриот27.01.23 09:44
Murr
NEW 27.01.23 09:44 
в ответ Программист 26.01.23 21:08

Ну так посмотри на бралбкасов - они на законодательном уровне запрещают данный процесс бульбашским ляпистричеством... ну если только фильтровать через лабритов...

#76 
Срыв покровов патриот27.01.23 09:52
NEW 27.01.23 09:52 
в ответ Программист 27.01.23 08:52
Мы делаем софт для машин. Ну и соответственно нужно UI для управления этими машинами.

а UI тоже на машинах работает?

#77 
Программист коренной житель27.01.23 10:17
NEW 27.01.23 10:17 
в ответ Срыв покровов 27.01.23 09:52
а UI тоже на машинах работает?

Да

#78 
alex445 коренной житель27.01.23 12:40
NEW 27.01.23 12:40 
в ответ Срыв покровов 27.01.23 09:52

Мы делаем софт для машин. Ну и соответственно нужно UI для управления этими машинами.

а UI тоже на машинах работает?

В чём проблема? У меня на старой работе тоже делали софт для машин. Подключаешься к автомобильному компу и шуруешь там. Мы газовали, крутя крутилку в интерфейсе нашей программы.

#79 
alex445 коренной житель27.01.23 12:43
NEW 27.01.23 12:43 
в ответ Программист 27.01.23 07:48
Либо можно просто сделать абстракцию, которая будет независима от ОРМа и тогда можно брать все проекты :)

Зависит от качества и уровня проработки этой вашей абстракции. Чтобы использовать все возможности ормов (не то что одной, а хотя бы нескольких), да ещё обновлять свою абстракцию с обновлениями ормов, абстракция должна быть сложнее любого этого орма по архитектуре. Ну и соответствующая команда на эту бандуру.


А если тяп-ляп, лишь бы простые команды поддерживала, то можно, конечно, и на коленке слепить кусок костыля.

#80 
1 2 3 4 5 6 7 все