The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Релиз унифицированной платформы .NET 5 с поддержкой Linux и WebAssembly, opennews (ok), 11-Ноя-20, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


89. "Релиз унифицированной платформы .NET 5 с поддержкой Linux и ..."  +1 +/
Сообщение от Секрет (?), 12-Ноя-20, 15:18 
Ерунду не говорите. Там от близнецов только архитектура выполнения. Синтаксис, логика построения и подход мыследуманья другой в НЕТ немного. Если там сделали, прям как НАДО, нативную компиляция (пошёл проверять), то для бизнеса этот швейцарский нож будет идеален.
Ответить | Правка | Наверх | Cообщить модератору

129. "Релиз унифицированной платформы .NET 5 с поддержкой Linux и ..."  +/
Сообщение от НямНямка (?), 13-Ноя-20, 16:05 
Если "бизнес" уже вложился в JEE переход на новую платформу вряд ли имеет смысл.
Ответить | Правка | Наверх | Cообщить модератору

130. "Релиз унифицированной платформы .NET 5 с поддержкой Linux и ..."  +/
Сообщение от НямНямка (?), 13-Ноя-20, 16:06 
Нет никакой разницы. Для рядового программера всё одинаково.
Ответить | Правка | К родителю #89 | Наверх | Cообщить модератору

138. "Релиз унифицированной платформы .NET 5 с поддержкой Linux и ..."  +/
Сообщение от банан (?), 13-Ноя-20, 16:57 
О да. Все странности скопировали из джавы, даже ковариантные массивы
Ответить | Правка | Наверх | Cообщить модератору

141. "Релиз унифицированной платформы .NET 5 с поддержкой Linux и ..."  +/
Сообщение от НямНямка (?), 13-Ноя-20, 17:08 
Коваритивность вообще решение скорее волевое. Оно не бывает хорошим или плохим. Ну, вернее, оно всегда плохое. Причём без сравнительных категорий.
Ответить | Правка | Наверх | Cообщить модератору

144. "Релиз унифицированной платформы .NET 5 с поддержкой Linux и ..."  +/
Сообщение от НямНямка (?), 13-Ноя-20, 17:39 
К слову, а чем вам ковариативность в данном случае массивов вам мешает? Ну знаете вы, что массивы в Яве ковариативны и что? Кушать теперь не можете? Не пользуйтесь ковариативными массивами, пользуйтесь какой-нибудь обобщённой коллекцией. В чём тут проблема-то?
Ответить | Правка | К родителю #138 | Наверх | Cообщить модератору

151. "Релиз унифицированной платформы .NET 5 с поддержкой Linux и ..."  +/
Сообщение от банан (?), 13-Ноя-20, 20:55 
> В чём тут проблема-то?

У меня проблемы нет, просто, к слову заметил, что в c# затащили всё без разбору.

Вот например методы объекта:

ToString: реальную логику на него завязывать нельзя, так как заколебаетесь неявные приведения к object искать (нетипобезопасно), а иметь у всех объектов метод для дебага - как то непонятно, зачем. Опять же, все по разному понимают, зачем этот метод нужен.

Equals/GetHashCode: У нас была волна собеседований, и первый вопрос, который я задаю - как правильно вот это дело переопределять и когда.

Так вот, часть из кандидатов даже не знает, зачем они нужны (!), другая переопределяет их неправильно, третие вообще переопределяют их просто так, потому, что не знают, нужно ли вот сейчас его переопределить или нет.
Люди с десятилетним опытом тупят на такой мелочи, хотя далеко не джуниоры.

Ответить | Правка | Наверх | Cообщить модератору

152. "Релиз унифицированной платформы .NET 5 с поддержкой Linux и ..."  +/
Сообщение от НямНямка (?), 13-Ноя-20, 22:14 
Понимаете, вопрос эквивалентности очень сложный вопрос. Более того, я не знаю его определённого разрешения. Хотя я -- "определённо" ложик-гик. Для меня Слупецкий-Борковский и Чёрч просто любимые писатели. И я не нахожу ответа как быть при определении эквивалентности или равенства.
Ответить | Правка | Наверх | Cообщить модератору

164. "Релиз унифицированной платформы .NET 5 с поддержкой Linux и ..."  +/
Сообщение от банан (?), 14-Ноя-20, 09:38 
По ощущениям, по назначению Equals/хешкод применяется меньше чем для 10 процентов типов.

А есть эти методы у всех. У репозиториев, сервисов, коллекций, у любых обёрток.  

По такой же логике можно было бы запихнуть в object компаратор для сортировки или dispose. А че, если, возможно, тип будет использоваться, в словарях, то, возможно, по нему надо бы и сотрировку уметь проводить.

По сути, в типе object должен быть только один метод, gettype. В том же расте эквивалентность надо явно писать, только если она используется. Иначе ее тупо нет.

Опять же, про непонимание, как это все работает:
Каждый .net разработчик на собесе говорит: структуры сравниваются по значению.
Окей, говорю я, то есть, если они сравниваются по значению, то у них просто сравниваются байтики и метод equals не будет вызываться для вложенных полей? И тут наверное половина людей тупить начинает.

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

Вероятно, такая архитектура обусловлена отсутствием дженериков на ранних версиях дотнета.

Ответить | Правка | Наверх | Cообщить модератору

165. "Релиз унифицированной платформы .NET 5 с поддержкой Linux и ..."  +1 +/
Сообщение от НямНямка (?), 14-Ноя-20, 12:24 
Не знаю, у меня наличие умолчального поведения эквивалентности или сравнения не вызывает никаких вопросов. Потому что хотя бы одна категория эквивалентности есть у абсолютно всех объектов. Да, по умолчанию объект эквивалентен только самому себе. И это нормально. Вот с хэшами хуже. Но тоже более менее логично.
Механизмы сравнения в Яве у меня тоже особого отторжения не вызывают. Всё понятно устроено. Хотя иногда становится препятствием.
По-моему, вы категорию "значения" слишком буквально понимаете, а она определяется... хм... семантикой домена, т.е. это воля разработчика что считать значением. Главное общие правила транзитивности и рефлективности не забывать и соблюдать. А то иногда такого наворотят, забывая, что если А = Б, то должно быть и Б = А, и если А = Б, а Б = В, то и А = В, а В = А.
И, нет, не вижу как тут наличие или отсутствие обобщений что-то может изменить. Для них же ещё параллельную линию иерархии вкрячили -- эту вашу любимую ковариативность.
Меня скорее смущает, что получаются линии а) типовых отношений, б) отношений сравнения и в) ещё и ковариативности. По-моему, многовато как-то. По-моему, даже среди очень опытных разрабов не многие способны осознать их взаимоотношения. Что, в общем-то, ведёт к неверным решениям. Но как уж есть.
Т.е. проблема не в наличии умолчального поведения, а в непонимании или недостаточной продуманности поведения проектируемого. Да, из-за его переусложнения, на мой взгляд, и общих родовых логических изъянов ООП.
Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру