Aleksandr
контроллеры - это пхпшный олдскул
Aleksandr
именно
Aleksandr
верно. 50 штук - мало, если что
Aleksandr
но зачем?
Aleksandr
делай явнее. у тебя же не во всех хэндлерах может быть зависиомсть от db
Aleksandr
зависимости нужны только те, которые нужны
Aleksandr
"может быть"
Nikita
Если количества кода не увеличивает и копипасты никакой нет, то почему бы и нет, keep it simple.
Aleksandr
наследование ради передачи общей функциональности - дурной тон
Aleksandr
все эти god object - это то, за что не любят пхп и пхпшников
Aleksandr
от того, что ты контроллер назвал базовым хэндлером, суть не поменялась
Aleksandr
смотри: наследование вида Shape => Square/Round/Triangle - это правильное наследование. BasicHandler => PostHandler/DeletePostHandler итд - это непраивльное наследование. смысл понятен? во втором случае это сделано только для передачи общей функциональности (db там и тд)
Nikita
Наследование - отстой
Nikita
Nikita
god bless composition
Nikita
ave rob pike
Aleksandr
god bless composition
примерно так)
Aleksandr
давай так: сначала правильно, потом все остальное
Aleksandr
чушь
Aleksandr
к тому же присвоение переменной значения - это не копипаст
invariance
Aleksandr
но зачем это в базовом? вынеси отдельно.
Aleksandr
это же не хелпер, а обработчик запроса
Aleksandr
это не хелпер
Aleksandr
хэндлер - не хелпер.
Aleksandr
а ты пихаешь в него хэлперы
Aleksandr
создай сабпакет http или response и создай там функции
Roman
https://github.com/maxpert/raspchat/releases/tag/v1.0.0-alpha
Pawel
Наследование - отстой
Хуже. Наследование - зло в чистом виде. В том числе и Shape —> Triangle / Square, Потому что shape - это интерфейс с методами Draw и Area. А типу, который этот интерфейс реализует, не надо ничего знать ни про какой Shape
⏺ Vаdim
Ага в шарпах хочешь тред - наследуся. Хочешь еще чегото наследуйся - ужос
Pawel
контроллеры - это пхпшный олдскул
ASP NET построен на контролерах, так что таки нет, не олдскул. И люди дико обижаются, когда им говоришь, что ASP NET гавно
⏺ Vаdim
Ееееее👍
Nikita
Хуже. Наследование - зло в чистом виде. В том числе и Shape —> Triangle / Square, Потому что shape - это интерфейс с методами Draw и Area. А типу, который этот интерфейс реализует, не надо ничего знать ни про какой Shape
Концептуально, наследование придумано для избегания дублирования кода и открытия для расширения, но это можно достигать и другими способами, той же композицией и утиной типизацией
Nikita
В сишарпе очень строгая типизация, и под него самые современные и продвинутые средства статичечкого анализа и рефауторинга кода. В го такого никогда не будет
ainu
И самый лучший пример когда надо отправить сообщение на внешний сервер например Гуглу для пуш уведомления в хром. Пхп пока курл не даст ответ - висит. В го делается двумя символами (go funcname())
Pawel
Концептуально, наследование придумано для избегания дублирования кода и открытия для расширения, но это можно достигать и другими способами, той же композицией и утиной типизацией
это да, но так можн осказать вообще про всё в программировании - ну там функции, дженерики, макросы, что угодно. Вопрос в том, что полезно, а что вредный оверинжененринг
ainu
Ну про пхп это спорно. Очень спорно. Но чат не тот чтобы про него спорить
Pawel
В сишарпе очень строгая типизация, и под него самые современные и продвинутые средства статичечкого анализа и рефауторинга кода. В го такого никогда не будет
а каких средств рефакторинга нехватает в Го? ничего в голову не приходит решарпер кстати должен сдохнуть тоже, ибо он чемпион по тормозам, даже казуальную студию уделывает
Nikita
Просто цпп и жава развиваются эволюционным путем, то шарп - революционным. Каждая новая версия - переворот
⏺ Vаdim
Кстати ищу backtester trading strategy для go. На питон полно в основном для 2х на шарпах тоже не мало, хотябы тотже stocksharp welthlab ninjatrader. На R тоже много всего. Ищу на go
Nikita
На уровле CLR там совместимость с самым первым шарпом
Pawel
Если брать группу языков: цпп, жава и скала, то шарп самый продуманный
не, самая продуманная джава. С# - чисто под виндовз и unity, а net core ихня фигня полная
Nikita
не, самая продуманная джава. С# - чисто под виндовз и unity, а net core ихня фигня полная
Чем в жаве абстрактный класс от интерфейса отличается и зачем нужны статические методы а последнем?
⏺ Vаdim
Кстати ищу backtester trading strategy для go. На питон полно в основном для 2х на шарпах тоже не мало, хотябы тотже stocksharp welthlab ninjatrader. На R тоже много всего. Ищу на go
Нашел один. Парень пилит на гитхабе. Загоняешь в неск строк свою стратегию и код показывает прибыльность ее например к сбербанку или биткоину ..... но сырая еще (интерфейсы с питона взял)
Nikita
Женерики впервые появились в шарпе 2
Nikita
До этого только шаблоны в плюсах были
Nikita
Линкью появилось в шарпе 3, сейчас это стандарт типа rxextensions во втором ангуляре
Pawel
Чем в жаве абстрактный класс от интерфейса отличается и зачем нужны статические методы а последнем?
я не говорю что джава хороша. Джава - гавно, но она лучше C#. Хороший - Го.
Nikita
В го постоянно приходится хитрить с типизацией
⏺ Vаdim
https://github.com/dirkolbrich/gobacktest/blob/master/README.md Если кому интересно риск прибыль на любом инструменте хоть на биткоинах. Но сыровато пока. С примерами
Nikita
Если тебе надо int32 в int64 - то надо явно это делать, а как передать говно в interface{} - так пожалуйста
Nikita
Потом сишарп - первый нормальный язык с функторами, замыканиями
Nikita
Сишарповская модель асинхронности считается эталонной
Pawel
Потом сишарп - первый нормальный язык с функторами, замыканиями
я про то, что ЯП щас ни кому не нужен без рантайма. JVM работает в любом ведре, а net нормально только под вендой и в юнити
Nikita
Async-Await спизжен в питоне и жаваскриптк
⏺ Vаdim
я про то, что ЯП щас ни кому не нужен без рантайма. JVM работает в любом ведре, а net нормально только под вендой и в юнити
NetCore сырой опенсорс но работает в линуксе без моно. Если нужны свежие либы упрется в моно конечно
Pawel
Сишарповская модель асинхронности считается эталонной
после нормального синхронного многопоточного кода в Го от асинк-авейт хочется блевать
Nikita
Потом дотнет первая платформа, в которой придумали абстракцию над тредами ос
Roman
Сишарповская модель асинхронности считается эталонной
асинхронность ради асинхронности не нужна.
Pawel
Потом дотнет первая платформа, в которой придумали абстракцию над тредами ос
так делать многопоточнасть на тредах ос в 2017 - это отстой
Nikita
так делать многопоточнасть на тредах ос в 2017 - это отстой
Когда в шарпе придумавали как сделать платформу асинхронной, еще никаких го не существовало
Nikita
Была концепция зеленых тредов, корутин, но чисто теоретическая
Nikita
Сейчас шарпу дышат в спину
Nikita
И дотнету
Nikita
А до этого это была самая продвинутая и передовая плвтформа
⏺ Vаdim
Для вин
Pawel
Когда в шарпе придумавали как сделать платформу асинхронной, еще никаких го не существовало
не-а, модель многопоточности, используемая в Го, старая как гавно мамонта. Просто некрософт в неё не умеет пока. Они опробоввали асинхронщину, дав лемингам F#, когда прокатило, впихнули её в C#. Это чисто не правильное инженерное решение, у некрософта таких 90%