crypto5 wrote:
ARC не ловит циклические референцы, почитайте ка сами.
А зачем их "ловить"? Из просто делать не надо. Один - strong. Остальные - weak.
И никакой ловли.
Мне порой кажется что я один на этом форуме работаю с кодом в 200+к строк.
Weak reference имеет неприятное свойство в неожиданный момент становуится nil-ом, чем больше в языке таких "особенностей", тем падучей программы и апродуктивный процесс разработки.
crypto5 wrote:Мне порой кажется что я один на этом форуме работаю с кодом в 200+к строк.
С вопросами веры спорить сложно
Но я вот всё время с недоверием относился к такому дизайну, когда нету чёткого ответа на вопрос: кто владеет данным объектом?
Я вполне допускаю, что где-то такой дизайн может иметь право на существование. Но вот в собственной практике как-то стараюсь держаться от этого подальше.
Ну раз уж зашла речь - можно привести пример, когда это так необходимо?
crypto5 wrote:Мне порой кажется что я один на этом форуме работаю с кодом в 200+к строк.
С вопросами веры спорить сложно
Но я вот всё время с недоверием относился к такому дизайну, когда нету чёткого ответа на вопрос: кто владеет данным объектом?
Я вполне допускаю, что где-то такой дизайн может иметь право на существование. Но вот в собственной практике как-то стараюсь держаться от этого подальше.
Ну раз уж зашла речь - можно привести пример, когда это так необходимо?
У тебя есть отношение много ко многим между студентами и профессорами. Кто кем владеет?
crypto5 wrote:У тебя есть отношение много ко многим между студентами и профессорами. Кто кем владеет?
А при чём тут reference counting, объекты и т.д.? У меня почему-то сразу нарисовались 3 таблицы в БД.
Ну, или если кому-то вздумается ORM использовать (это до сих пор ещё кто-то делает?), то и профессорами, и студентами владеет кто-то другой. Ну типа HR там, и т.д. Cross-references, разумеется, только weak.
crypto5 wrote:У тебя есть отношение много ко многим между студентами и профессорами. Кто кем владеет?
А при чём тут reference counting, объекты и т.д.? У меня почему-то сразу нарисовались 3 таблицы в БД.
Ну, или если кому-то вздумается ORM использовать (это до сих пор ещё кто-то делает?), то и профессорами, и студентами владеет кто-то другой. Ну типа HR там, и т.д. Cross-references, разумеется, только weak.
Т.е. нужно плодить дополнительную сущность что бы runtime прибил обьекты с кроссылками? Ок.
crypto5 wrote:Т.е. нужно плодить дополнительную сущность что бы runtime прибил обьекты с кроссылками? Ок.
Ну вообще-то и по логике странно ограничивать время жизни профессора или студента существованием кроссылок на него.
Всех студентов какого-нить профессора "исламские террористы" (с) взорвут - и ему что, сразу харакири делать?
Харакири делать несложно, но ведь мы же хотим, чтобы если у него новые студенты появятся, чтобы identity прежняя была, так?
crypto5 wrote:Т.е. нужно плодить дополнительную сущность что бы runtime прибил обьекты с кроссылками? Ок.
Ну вообще-то и по логике странно ограничивать время жизни профессора или студента существованием кроссылок на него.
Всех студентов какого-нить профессора "исламские террористы" (с) взорвут - и ему что, сразу харакири делать?
Харакири делать несложно, но ведь мы же хотим, чтобы если у него новые студенты появятся, чтобы identity прежняя была, так?
Да, можно хранить всех профессоров и студентов, пока память не переполнится.
crypto5 wrote:Да, можно хранить всех профессоров и студентов, пока память не переполнится.
Ну если в вашей модели и профессора, и студенты живут вечно - тогда хреново, да.
Мне всё-таки кажется, что время жизни и тех, и других лучше как-то из соображений бизнес-логики контролировать.
Но если так уж надо только наличием кроссылок - так ведь это элементарно - заводите третью таблицу - исключительно для подсчёта кроссылок - и будет счастье.
crypto5 wrote:Да, можно хранить всех профессоров и студентов, пока память не переполнится.
Ну если в вашей модели и профессора, и студенты живут вечно - тогда хреново, да.
Мне всё-таки кажется, что время жизни и тех, и других лучше как-то из соображений бизнес-логики контролировать.
Но если так уж надо только наличием кроссылок - так ведь это элементарно - заводите третью таблицу - исключительно для подсчёта кроссылок - и будет счастье.
А что именно эта таблица будет делать?
Ну и еще вопрос, это правда рассматривается как более превосходный инструмент по отношению к jvm, где ни о чем не нужно беспокоится, все само саморазрулится и еще и с выигрышем в производительности?
crypto5 wrote:
Ну и еще вопрос, это правда рассматривается как более превосходный инструмент по отношению к jvm, где ни о чем не нужно беспокоится, все само саморазрулится и еще и с выигрышем в производительности?
А jvm все "разруливает" сам, и с производительностью все тип-топ? Тогда это действительно вера.
crypto5 wrote:
Weak reference имеет неприятное свойство в неожиданный момент становуится nil-ом, чем больше в языке таких "особенностей", тем падучей программы и апродуктивный процесс разработки.
Поэтому настоящий программист ничего не должен деаллоцировать. А то не дай бог опять понадобится!
crypto5 wrote:
Ну и еще вопрос, это правда рассматривается как более превосходный инструмент по отношению к jvm, где ни о чем не нужно беспокоится, все само саморазрулится и еще и с выигрышем в производительности?
А jvm все "разруливает" сам, и с производительностью все тип-топ? Тогда это действительно вера.
Вера это упорно игнорировать факты, что да, jvm разруливаем циклические ссылки, а ARC нет, не разруливат, и что да, garbage collectors производительней reference counting.
crypto5 wrote:
Weak reference имеет неприятное свойство в неожиданный момент становуится nil-ом, чем больше в языке таких "особенностей", тем падучей программы и апродуктивный процесс разработки.
Поэтому настоящий программист ничего не должен деаллоцировать. А то не дай бог опять понадобится!
crypto5 wrote:
Вера это упорно игнорировать факты, что да, jvm разруливаем циклические ссылки, а ARC нет, не разруливат, и что да, garbage collectors производительней reference counting.
Вера в то, что альтернативы jvm не существуют. Бедные программеры пишут кривые программы аппы с ручным или reference counting memory management кодом - это неправильные программисты, наверное?
crypto5 wrote:
Вера это упорно игнорировать факты, что да, jvm разруливаем циклические ссылки, а ARC нет, не разруливат, и что да, garbage collectors производительней reference counting.
Вера в то, что альтернативы jvm не существуют. Бедные программеры пишут кривые программы аппы с ручным или reference counting memory management кодом - это неправильные программисты, наверное?
Нет, среди них есть и правильные. Еще странные вопросы есть?
crypto5 wrote:
Нет, среди них есть и правильные. Еще странные вопросы есть?
Да нет, все и так было понятно. С другой стороны, когда вы почитаете что-нибудь за пределами очередной статьи "jvm memory management rulez"? Может, какой-нибудь pet project на Си++ или, не дай бог, под iOS напишите? Разговор будет более контструктивным и без удивлений с вашей стороны.
crypto5 wrote:
Хватит пороть чушь пытаясь скрыть слабость аргументов, я вполне читаю статьи за пределами этой категории.
Из ваших аргументов это не видно. Об ARC вы удивились в этой конкретной ветке. Иди спать, пожалуйста, в вашем тоне видно желание обидеть, но я пока проигнорирую сей факт.
crypto5 wrote:
Хватит пороть чушь пытаясь скрыть слабость аргументов, я вполне читаю статьи за пределами этой категории.
Из ваших аргументов это не видно. Об ARC вы удивились в этой конкретной ветке. Иди спать, пожалуйста, в вашем тоне видно желание обидеть, но я пока проигнорирую сей факт.
Ну так приводите контр аргументы, назидательский тон обоснованный только фразами типа "идите почитайте" выглядит слегка неконструктивно.
crypto5 wrote:
Ну так приводите контр аргументы, назидательский тон обоснованный только фразами типа "идите почитайте" выглядит слегка неконструктивно.
Начните с себя, пожалуйста. Вы сами требуете от других примеров, не приводя ни одного в ответ. Без обид. Спорить о недостатках C++ и ObjC ни разу не видев живого кода, и имея за плечами хоть 200К+ хоть 1М+ кода на Жабе, конструктивизма беседе никак не прибавит. Давайте вместе напишем что-нибудь?