|
Тема |
Сериозно? [re: Colombino] |
|
Автор |
G.Kreisel () |
|
Публикувано | 19.12.04 12:17 |
|
|
Е, пак стана флейм.
> "Но C/C++ програмистите рядко алокират в унес като жабарите. Ако на един добър C++ програмист му се налага да алокира множество малки обекти ще го направи с по-големи блокове и placement new, или с по-сложен RecordManager. "
Ами от доста време работя на едно място, където се пише САМО на C++, (големи проекти - по към 200000 - 250000 реда C++) и познай какво?
1. Въпреки, че честно казано кода се влачи като ... задник, никой не е намерил време, желание, смелост, etc. да напише и едно единствено placement new. Даже си мисля че ако някой го направи ще го обвинят че се прави на интересен и само затормозява работата etc. Девиза е - не искаме нищо прекалено странно, нищо прекалено добро и нищо прекалено лошо :)
2. Единствения път когато имам спомен да се е работило по управлението на паметта беше когато ми възложиха "задачка": Find the memory damage.
3. Това че не си виждал повторно използване на деалокирана памет най-вероятно означава че просто проектите по които си работил не са натрупали критична маса хакове в тях :) Веднъж това стане ли, после чакай само проблеми.
Незнам за какво са деструкторите. Наличието им предполага, че в един момент трябва да кажеш - ами вече свърших с този обект и повече няма да ми трябва. Т.е. това не предполага ли ръчно управление на паметта? Или пък някакъв стек за локалните променливи и като се излезе от scope се викат деструктори?
По този начин не се ли връзва езика с управлението на паметта? Т.е. все едно казваш: Този език е направен само за ръчно упревление на паметта - квито и техники за автоматично управление да се измислят този език няма да ги ползва. И всичко това само за да можеш да "забравиш" да викнеш (например) .close() на локалния обект. Тарикатско!
И във връзка с това се сетих за един много неприятен случай:
написва някой една функция която има за параметър указател към обект.
void BadFunction( Object *pObj ); //uses the object pointed to by pObj in some mumbo-jumbo
Някой друг иска да ползва тази функция:
{
Object my("local");
BadFunction( &my );
}
След като написва това Някой II се сеща, че не му е ясно какво точно прави BadFunction()! Дали тази функция просто взима някакви данни от обекта за да си свърши сметката или запомня указател към тези данни? (И след малко някой се опитва да използва този указател? (щото ако е така ще падне дебъгване))
Представи си че BadFunction реализира комуникация по мрежа - изпраща данни за Обекта по мрежата. Тогава ако този който е писал функцията е имал мозък сигурно можеш да се надяваш че той е копирал всичко което му трябва и my може спокойно да бъде унищожен. На практика обаче:
BadFunction е била написана за конкретен случай (такива най ги мразя :) ) и тогава (за ефективност) не са написали копиране (защото строго погледнато не е било необходимо). Сега някой друг се опитва да използва вече написан код и бива изненадан неприятно - за да изпозва кода, първо трябва да го прочете, а после трябва и да го пренапише :)
Това е проблема с неясните интерфейси. И е наистина шибан проблем. Особено в големи, писани набързо проекти, без ясна ръководна идея ... айде да спирам с критиките че току-виж съм се оказал на улицата :)
What evil shall I do today?
|
| |
Защо Java
| Kaндидaт Джaбap
| 13.12.04 19:49 |
Re: Защо Java
| RepeatableRead
| 14.12.04 00:49 |
Re: Защо Java
| Гypy
| 14.12.04 01:11 |
САП, а ?
| ЯPOCTcлaв
| 14.12.04 09:20 |
Re: Защо Java
| nasko
| 14.12.04 09:43 |
Re: Защо Java
| nasko
| 14.12.04 09:53 |
А вие защо биете негрите, а ?
| ЯPOCTcлaв
| 14.12.04 10:14 |
Re: А вие защо биете негрите, а ?
| nasko
| 14.12.04 11:24 |
От много жаба елементарни неща не разбираш
| ЯPOCTcлaв
| 14.12.04 11:48 |
Re: Защо Java
| Mypy
| 14.12.04 12:27 |
Re: Защо Java
| Гypy
| 14.12.04 21:25 |
Re: Защо Java
| Mypy
| 15.12.04 11:40 |
Или защо C#, защо .NET и др. подобни защота
| ЯPOCTcлaв
| 14.12.04 09:16 |
Re: Защо Java
| жaбa
| 14.12.04 09:41 |
Re: Защо Java
| ЯPOCTcлaв
| 14.12.04 09:51 |
Re: Защо Java
| Pekoнcтpykтop
| 14.12.04 10:17 |
По следните причини:
| pyrx
| 14.12.04 12:56 |
Опит за отговор
| Masklin
| 14.12.04 15:51 |
Re: Опит за отговор
| fd
| 14.12.04 17:56 |
Re: Опит за отговор
| Questor
| 14.12.04 18:15 |
Не беше ли...
| G.Kreisel
| 14.12.04 19:09 |
Re: Опит за отговор
| фд
| 14.12.04 19:31 |
Re: Опит за отговор
| Questor
| 14.12.04 19:41 |
Re: Опит за отговор
| фд
| 14.12.04 21:16 |
Re: Опит за отговор
| Barracuda
| 15.12.04 09:05 |
Re: Опит за отговор
| fd
| 15.12.04 11:04 |
да ама никой не отчита, че
| ~!@$%^amp;*()_+
| 15.12.04 19:49 |
Теоретично,
| Masklin
| 16.12.04 12:24 |
Re: Теоретично,
| Nero
| 17.12.04 13:48 |
Re: да ама никой не отчита, че
| Nero
| 17.12.04 13:45 |
Re: Опит за отговор
| nasko
| 15.12.04 09:47 |
Re: Опит за отговор
| Pekoнcтpykтop
| 15.12.04 12:09 |
Re: Опит за отговор
| Гypy
| 16.12.04 01:02 |
Re: Опит за отговор
| lnformatora
| 16.12.04 01:44 |
Re: Опит за отговор
| Pekoнcтpykтop
| 17.12.04 11:51 |
Не са точно глупости
| Masklin
| 15.12.04 10:21 |
Re: Опит за отговор
| Paдo
| 15.12.04 08:26 |
Като по учебник
| Colombino
| 15.12.04 10:04 |
Доста си краен
| Masklin
| 15.12.04 10:46 |
Re: Доста си краен
| Colombino
| 15.12.04 12:11 |
Мда
| Masklin
| 15.12.04 12:43 |
Re: Като по учебник
| Nero
| 17.12.04 13:40 |
Re: Като по учебник
| Colombino
| 17.12.04 15:08 |
Re: Като по учебник
| Nero
| 17.12.04 15:54 |
Бе кви неизползвани обекти!
| Colombino
| 17.12.04 16:41 |
Re: Бе кви неизползвани обекти!
| Nero
| 17.12.04 19:09 |
Re: Като по учебник
| Pekoнcтpykтop
| 17.12.04 18:18 |
Re: Като по учебник
| Colombino
| 17.12.04 18:38 |
Re: Като по учебник
| Pekoнcтpykтop
| 17.12.04 19:12 |
Re: Като по учебник
| Nero
| 17.12.04 19:16 |
Re: Като по учебник
| Colombino
| 17.12.04 19:42 |
GC
| G.Kreisel
| 17.12.04 19:13 |
Re: GC
| Nero
| 17.12.04 19:33 |
Лисп
| G.Kreisel
| 17.12.04 19:51 |
Re: Лисп
| Nero
| 17.12.04 20:07 |
Това е несериозно
| Colombino
| 17.12.04 20:23 |
Re: Това е несериозно
| Дeшeв
| 17.12.04 23:56 |
Re: Това е несериозно
| Paдo
| 18.12.04 11:39 |
Re: Това е несериозно
| Дeшeв
| 18.12.04 22:44 |
Re: Това е несериозно
| Paдo
| 19.12.04 10:50 |
Re: Това е несериозно
| жaбa
| 20.12.04 10:53 |
Re: Това е несериозно
| lngon
| 18.12.04 15:37 |
Не е същото
| Colombino
| 18.12.04 16:24 |
Re: Не е същото
| lngon
| 18.12.04 22:16 |
Сериозно?
| G.Kreisel
| 19.12.04 12:17 |
Re: Сериозно?
| fg
| 19.12.04 13:17 |
Re: Сериозно?
| Colombino
| 19.12.04 16:11 |
Re: Сериозно?
| Questor
| 19.12.04 17:48 |
Кажи и на нас тая конвенция, де
| Colombino
| 19.12.04 23:48 |
Re: Кажи и на нас тая конвенция, де
| Paдo
| 20.12.04 10:07 |
Re: Кажи и на нас тая конвенция, де
| Pekoнcтpykтop
| 20.12.04 10:45 |
Re: Кажи и на нас тая конвенция, де
| Paдo
| 20.12.04 11:02 |
Re: Кажи и на нас тая конвенция, де
| Pekoнcтpykтop
| 20.12.04 11:10 |
Re: Кажи и на нас тая конвенция, де
| Paдo
| 20.12.04 12:02 |
Re: Кажи и на нас тая конвенция, де
| Questor
| 20.12.04 12:17 |
Re: Като по учебник
| qwerty
| 22.12.04 23:40 |
Многоплатформеност
| Colombino
| 23.12.04 02:53 |
Re: Многоплатформеност
| Johny Cage
| 23.12.04 10:13 |
Re: Многоплатформеност
| dc
| 23.12.04 11:07 |
Re: Многоплатформеност
| qwerty
| 23.12.04 20:30 |
Re: Като по учебник
| Nero
| 23.12.04 12:40 |
Re: Като по учебник
| dc
| 23.12.04 15:04 |
Re: Като по учебник
| qwerty
| 23.12.04 20:26 |
Re: Като по учебник
| tonio
| 25.12.04 21:30 |
Re: Като по учебник
| Язвaджия
| 25.12.04 22:23 |
Re: Опит за отговор
| Dark_Dirk
| 17.12.04 20:50 |
А?!?
| Colombino
| 17.12.04 21:16 |
Re: Опит за отговор
| asdf
| 18.12.04 13:40 |
за без пари
| G.Kreisel
| 19.12.04 12:24 |
Re: Защо Java
| Kaндидaт Джaбap
| 14.12.04 18:06 |
Тип приложения
| pyrx
| 14.12.04 22:57 |
Re: Защо Java
| Oracle
| 16.12.04 13:53 |
Re: Защо Java
| Questor
| 16.12.04 14:20 |
Oracle
| Oracle
| 16.12.04 15:52 |
Re: Oracle
| Mиpaж
| 17.12.04 11:45 |
Не обобщавай
| Colombino
| 17.12.04 12:15 |
Re: Не обобщавай
| Pekoнcтpykтop
| 17.12.04 12:27 |
Java IDE
| Colombino
| 17.12.04 12:40 |
Re: Java IDE
| Pekoнcтpykтop
| 17.12.04 13:06 |
Re: Java IDE
| Duncan Griffin
| 17.12.04 13:57 |
Re: Java IDE
| Pekoнcтpykтop
| 17.12.04 17:51 |
O Santa simplicitas!
| Colombino
| 17.12.04 17:58 |
Re: O Santa simplicitas!
| Pekoнcтpykтop
| 17.12.04 18:03 |
Re: O Santa simplicitas!
| Duncan Griffin
| 17.12.04 18:15 |
Re: O Santa simplicitas!
| Pekoнcтpykтop
| 17.12.04 18:20 |
Re: O Santa simplicitas!
| Colombino
| 17.12.04 18:28 |
Re: O Santa simplicitas!
| Pekoнcтpykтop
| 17.12.04 18:45 |
Re: Защо Java
| purist
| 20.12.04 07:04 |
Re: Защо Java
| Гypy
| 20.12.04 07:50 |
Тва да не е някаква тайна?
| Colombino
| 20.12.04 09:11 |
Re: Защо Java
| voyager
| 20.12.04 10:40 |
Re: Защо Java
| efd
| 20.12.04 10:53 |
Re: Защо Java
| xxx
| 24.12.04 15:32 |
azureus - 3 милиона
| purist
| 26.12.04 00:14 |
Re: azureus - 3 милиона
| Гypy
| 26.12.04 00:39 |
Re: azureus - 3 милиона
| purist
| 26.12.04 02:38 |
Re: azureus - 3 милиона
| xмм
| 26.12.04 01:34 |
Re: azureus - 3 милиона
| purist
| 26.12.04 02:33 |
Re: azureus - 3 милиона
| qwerty
| 26.12.04 11:39 |
Re: azureus - 3 милиона
| Hmm
| 26.12.04 13:08 |
Re: azureus - 3 милиона
| Дeшeв
| 26.12.04 15:35 |
Re: azureus - 3 милиона
| Questor
| 26.12.04 14:41 |
Re: azureus - 3 милиона
| purist
| 26.12.04 19:29 |
Re: azureus - 3 милиона
| Дeшeв
| 26.12.04 15:20 |
|
|
|
|