Size: a a a

NodeUA - JavaScript and Node.js in Ukraine

2021 September 05

АП

Алексей Попов... in NodeUA - JavaScript and Node.js in Ukraine
А ответ на второй вопрос какой?
источник

EK

Evgen K in NodeUA - JavaScript and Node.js in Ukraine
Показать что типизация в шарпе архаичная и слабенькая)
источник

EK

Evgen K in NodeUA - JavaScript and Node.js in Ukraine
И уж точно никогда не позволит писать так лаконично
источник

EK

Evgen K in NodeUA - JavaScript and Node.js in Ukraine
И надежно. Ибо легаси. А что бы писать хоть чтото подобное - на помощь приходят типы в рантайме, аля рефлексия
источник

АП

Алексей Попов... in NodeUA - JavaScript and Node.js in Ukraine
источник

EK

Evgen K in NodeUA - JavaScript and Node.js in Ukraine
Я знаю как этот паттерн реализовывается в шарпе) это же не ответ на мой вопрос)
источник

АП

Алексей Попов... in NodeUA - JavaScript and Node.js in Ukraine
А, ну покажите
Только мой аргумент был другой, что на на шарпе писать просто
источник

АП

Алексей Попов... in NodeUA - JavaScript and Node.js in Ukraine
Пример даже конкретно этот кейс рассматривает - логгирование
Что не так?
источник

EK

Evgen K in NodeUA - JavaScript and Node.js in Ukraine
Ну дело не в логировании было. Я ставлю акцент на том как сделать декоратор что бы он сохранял оригиналуную типизацию?
источник

EK

Evgen K in NodeUA - JavaScript and Node.js in Ukraine
В шарпе ку бойлерплейта, логгеррепозиторий почти послеостью воучную прописан и если делать рефакторинг оригинального интерфейса придется и рукапи все типы подправлять. А частности как задекорировать лямбды или методы надежно?
источник

EK

Evgen K in NodeUA - JavaScript and Node.js in Ukraine
Опять же логгеррепозиторий будет работать только с конкретным интерфейсом , а для других сущностей так же придется бойлерплейтить.
источник

АП

Алексей Попов... in NodeUA - JavaScript and Node.js in Ukraine
А в примере она не сохраняется?
Ну и раз уж пошла такая тема, искать преимущества одного языка и выпячивать их, встречный вопрос - вот выше там озвучен был Пойнт про то, что в жаве/шарпе/плюсах можно не задавать значения для полей класса. Причём этот Пойнт был озвучен в плане безопасности в сравнении с ТС - в тс их задавать обязательно
Но ведь в ТС есть partial, это не смущает? Что безопаснее, иметь 0 в неинициализированном поле, или undefined?
источник

EK

Evgen K in NodeUA - JavaScript and Node.js in Ukraine
Чем больше когда сервисного, тем сложее выделить бизнес логику
источник

EK

Evgen K in NodeUA - JavaScript and Node.js in Ukraine
)) ну опишите свойство ссылочного типа и посмотрите какое там значение по умолчанию)
источник

АП

Алексей Попов... in NodeUA - JavaScript and Node.js in Ukraine
Точно не undefined ;)
источник

EK

Evgen K in NodeUA - JavaScript and Node.js in Ukraine
Это правда, да xD
источник

EK

Evgen K in NodeUA - JavaScript and Node.js in Ukraine
А по поводу undefined - ts null safe яп, он не даст к полю обратится без явной проверки. И классно что эти вечные проверки так задалбывают что начинается складываться впечатление что модели с опциональными полями это чтото попахивающее и уже в твою доменную логику должны приходить целостные модели, без опций - и это мотивирует на написание хорошего кода. В си шарпе всем пофигу, в первую очередь компилятору
источник

АП

Алексей Попов... in NodeUA - JavaScript and Node.js in Ukraine
Но эта null safety есть только в ide, о чём не стоит забывать
источник

И

Иван in NodeUA - JavaScript and Node.js in Ukraine
В широком смысле (что я здесь делаю, за что мне платят деньги, какие проблемы мы решаем) — да, надо понимать весь контекст. В узком смысле (какое значение принимает переменная/функция конкретно в этой строчке кода) — нет, весь контекст не нужен.
источник

EK

Evgen K in NodeUA - JavaScript and Node.js in Ukraine
Так в этом весь поинт null safety - давать гарантии на этапе компиляции, а не рантайма. Мне не известны null safe япы в рантайме
источник