Aleksandr
Странно это все
Éminence grise
Ну я тут пришел месяц назад в контору, как второй поток команды. Предыдущую уволили полностью, потому как за своими принципами они умудрились превратить систему в полностью немодифицируемую. Там был OOП головного мозга с неизлечимым диагнозом "дебил перечитавший" в главных - результат: сам вылетел, парней испортил, не знаю смогут ли они из этого выползти, и оставил такое, что проще стереть, чем поддерживать. Не думаю, что такой сейчас на рынке не будет просто послан, как некомпетентное животное.
Фил Ранжин
Эм
Фил Ранжин
а кто его пошлёт то?
Éminence grise
А кто его возьмет? Если на одно действие он 17 классов городит?
Vladislav
Почему? Выброс некоторых исключений при определенных ситуациях может быть частью контракта
Потому что оно все неявное :/ Не указано в возвращаемых значениях, но это про исключения в целом
Фил Ранжин
так он на собесе расскажет про паттерны, про ООП, про опыт лидинга, с руками оторвут
Éminence grise
Кому сейчас нужно что то, кроме быстрой реализации и быстрой работы
Éminence grise
И сколько продержится?
Фил Ранжин
Фил Ранжин
я проверял, можно три месяца вообще ничего не делать, и тебя не увольняют
Фил Ранжин
да с год
а больше года нахуй где-то работать?
Éminence grise
А потом уволят. И так дальше. А кто себе такого будущего хочет? Вот я и говорю, что что бы не испортить себе карму наработанными привычками - от таких начальников надо бежать. Я вот бегаю, если прижимает.
Фил Ранжин
не оч выходит конеч, но что поделаешь
Éminence grise
а больше года нахуй где-то работать?
За год я систему не подымаю, миниму - 2 года.
Фил Ранжин
именно поэтому я и не люблю работать больше года
Фил Ранжин
там уже ответственность начинается
Éminence grise
А вот тут вопрос в амбициях - хочешь денег и уважухи, бери ответсвенность и тяни так, чтоб потом за тобой не плевались, а радовались. Не хочешь, нет. Уходить надо так, что б оставшиеся звонили, советовались, становились учениками и последователями. Тогда жизнь прожита не в пустую.
Éminence grise
Никогда, а локации ты в РПГ выносишь не только из за лута, но из за экспы, вот и определись, что на твоем левеле важнее
Éminence grise
В шарпе это уже делает таск
Согласен, но оч криво
Bonart
Согласен, но оч криво
Зато он уже широко распространен
Фил Ранжин
Идиоматичный для платформы путь
Bonart
Идиоматичный для платформы путь
Пишите не на платформе а с помощью платформы
Éminence grise
А для будущего уже тупик, это мое личное IMHO, я ведь не от хорошей жизни на функциональщину подсел. Мне пришлось переосмысливать все, что бы результативность своей работы повысить.
Éminence grise
Я в csharp с 2001 и ВЕСЬ путь ООП прошел - от прога до архитекта, понял что тупик
Фил Ранжин
Фил Ранжин
эта платформа меня насилует, и я ничего с ней не могу поделать
Фил Ранжин
томушт код тупо не сбилдится, если я вот эту всю хуйню писать не буду
Фил Ранжин
он самый
Éminence grise
Интерфейс с сеттерами - фи
Фил Ранжин
и не поспоришь ведь. Ведь в C# так делают. Ведь это идиоматично для C#. Так что хуярь ка фил миллиард хуйни, которую никто и читать не будет
Фил Ранжин
Интерфейс с сеттерами - фи
это как раз тот, который должен был плеваться эксепшнами
Фил Ранжин
я решил что похуй, и будет вот так. Так везде на проекте, всем похуй, мне тоже
Фил Ранжин
будем обмазывать вмы валидацией
Éminence grise
С чего бы это? У него же стринги? С какой радости? Что можно сделать не так просетапив стринг?
Фил Ранжин
потому что там по идее не стринги, а энамы должны быть.
Фил Ранжин
и не только энамы
Éminence grise
потому что там по идее не стринги, а энамы должны быть.
Ну так типизируй. В идеоматичном dotnet есть например тип Uri -а это строка
Фил Ранжин
так всё равно придётся валидацию в vm делать
Фил Ранжин
не биндить же Uri к текстбоксу
Éminence grise
А теперь идеологический вопрос - а с чего ты взял в в VM должно быть что то кроме строки?
Фил Ранжин
м?
Éminence grise
Ну VM - это прокладка между попыткой пользователя что то вбить и реальностью, определяемой правилами. Вот с чего ты взял, что маппинг реальности и попвткой - 1::1. В модели строгая типизация, в VM -строка плюс IDataErrorInfo. По соглашению, зависищяму от сценария - в модель.
Фил Ранжин
да, понял тебя. У меня кейс, когда vm-пользователей модели - несколько. Хотелось бы, что бы проверка юзера описывалась один раз. Как устроить?
Éminence grise
Вариантов много, но я пользую чаще всего два - первый - это строгая типизация входов, когда на входе модели ты падаешь. Мне не очень нравится, потому как эксепшен приходится как то прокидывать до IDataErrorInfo. Это то, похоже, что ты хочешь сделать. Второй - модель чистая, а рядом validator для интерфейса, что у тебя описан, например FluentValidator. Только интерфейс этот - ViewModel, а не модель. Таким образом ты как бы изолируешь ошибку ввод от ошибки программиста.
Éminence grise
То есть твой интерфейс - это интерфейс ViewModel. К нему валидатор. А потом метод у модели (статический) - ValidationError Model.TryAssign(viewModel, out model)
Фил Ранжин
ага
Éminence grise
Понял идею?
Éminence grise
Или поподробней?
Фил Ранжин
Или поподробней?
давай подробнее
Фил Ранжин
во-первых - что такое чистая модель?
Фил Ранжин
просто класс / структура с геттерами и сеттерами?
Éminence grise
Ща накидаю.
Éminence grise
Минут 5 обожди.
Éminence grise
https://gist.github.com/ijsgaus/4e69ce5275ca91860f06322f0c08c457 Вот так как то
Éminence grise
Показал теперь еще и view model
Éminence grise
Там же
Фил Ранжин
Спасибо большое) теперь понял. Так и сделаю
Shub
Елизавета, я дико извиняюсь, но давно хочу спросить: ты замужем уже?
Shub
Не труднее, чем на хаскеле. Тут объектно озабоченных программистов на F# персадить, уже трагедия вселенского масштаба... Если бы была возможность, я бы писала на идрисе.
Bonart
он самый
Стайлкоп - это не платформа, а кризис в голове того кто это старье продвинул
Фил Ранжин
у нас в тиме несколько джунов
Фил Ранжин
удалёнщиков
Фил Ранжин
хорошо, что есть стайлкоп
Bonart
хорошо, что есть стайлкоп
Говно этот стайлкоп - большинство правил в лучшем случае бесполезны в худшем вредят
Bonart
.editorconfig лучше, но его в ci хз как пихать
Фил Ранжин
у нас и то и то