|
|
|
Strict private
|
|||
|---|---|---|---|
|
#18+
asutp2defecatorпропущено... ты же назвал сторонников полиморфизма безумными а ведь полиморфизм это другое, не то, что ты только что описаля назвал безумными не тех, кто адекватно использует различные области видимости в классах/необходимые элементы для перекрытия в зависимости от задачи, а тех, кто желает изменять все что вздумается наследному классу и ненавидит strict private))). я не использую strict private и прочие дебильные генерики с твоей точки зрения я - безумный сторонник полиморфизма ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2018, 21:53 |
|
||
|
Strict private
|
|||
|---|---|---|---|
|
#18+
makhaonавторНо как же бесит при этом муторная сверка исходников после обновления... Дифф в помощь. Автоматический или руками пробежаться. Винмержем я, например, инди свожу за час-полтора. У меня правок десятка два мест. Шансов, что их добавят, я думаю, около нуля. Быстрее руками свести. Особенно если надо не часто. я через Araxis Megre свожу, ещё быстрее получается ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2018, 21:54 |
|
||
|
Strict private
|
|||
|---|---|---|---|
|
#18+
makhaonДифф в помощь. Автоматический или руками пробежаться. Бесит не потому, что долго, а потому, что идиотское занятие. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2018, 22:00 |
|
||
|
Strict private
|
|||
|---|---|---|---|
|
#18+
Из одной мертвой галактики, ИМХО нововведение хорошее, его действительно удобно использовать при рефакторинге, но одного его недостаточно. Использование сторонних компонентов (да и своих тоже), тут естественно плохо что нельзя что-то достать. Было бы неплохо иметь задекларированный потайной доступ к приватным объектам (недекларированный есть и не очень хороший). Например, в питоне и ряде других языков неплохая парадигма, это позволило бы простым поиском отслеживать в своих да и чужих исходниках необходимость улучшения компонента . по поводу задания\не задания виртуальности, ИМХО тут бы помогла реализация механизмов АОП - тогда бы эта проблема просто исчезла. PS: на каждый болт должна быть своя гайка, иначе использование превращается в гумно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2018, 09:34 |
|
||
|
Strict private
|
|||
|---|---|---|---|
|
#18+
А у всех ли будет Delphi 2007 и выше ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2018, 10:16 |
|
||
|
Strict private
|
|||
|---|---|---|---|
|
#18+
DimaBr, да, у всех. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2018, 10:20 |
|
||
|
Strict private
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)Было бы неплохо иметь задекларированный потайной доступ к приватным объектам 1) Если такое понадобилось - плохо спроектированная архитектура. 2) Если приперло, есть RTTI ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2018, 10:22 |
|
||
|
Strict private
|
|||
|---|---|---|---|
|
#18+
Кмк, легче при обновлении сторонних библиотек накатить диффом элементарные изменения, нежели ловить подводные камни. Если исходники есть - то можно и выстрелить себе в ногу, если очень хочется: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2018, 11:04 |
|
||
|
Strict private
|
|||
|---|---|---|---|
|
#18+
X-Citekealon(Ruslan)Было бы неплохо иметь задекларированный потайной доступ к приватным объектам 1) Если такое понадобилось - плохо спроектированная архитектура. 2) Если приперло, есть RTTI1 - о чём и речь, но наш мир не идеален, и это нужно очень часто, а изменить компонент возможности нет - зачем сопротивляться очевидному? 2 - ИМХО лечилка хуже болезни, так как ошибки в декларациях при динамическом исполнении невозможно поймать при компиляции. Пока самый адекватный способ это баг в компиляторе с " with self do " в хелпере ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2018, 12:09 |
|
||
|
Strict private
|
|||
|---|---|---|---|
|
#18+
Соколинский Борис, Ок, переопределили метод, вытащили из текущей версии реализацию, добавили свой код. Пришла новая версия, в которой метод переписали. Что-то поменялось? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2018, 12:53 |
|
||
|
Strict private
|
|||
|---|---|---|---|
|
#18+
makhaonСоколинский Борис, Ок, переопределили метод, вытащили из текущей версии реализацию, добавили свой код. Пришла новая версия, в которой метод переписали. Что-то поменялось? +1. Вопросы видимости - в том числе вопросы протокола общения заказчика с пользователем. То есть, если можешь и хочешь лезть в кишки, то без претензий к разработчику насчет того, что в очередном апдейте изменилась внутренняя реализация. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2018, 13:03 |
|
||
|
Strict private
|
|||
|---|---|---|---|
|
#18+
makhaonОк, переопределили метод, вытащили из текущей версии реализацию, добавили свой код. Пришла новая версия, в которой метод переписали. Что-то поменялось? Не понял вопроса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2018, 13:35 |
|
||
|
Strict private
|
|||
|---|---|---|---|
|
#18+
Соколинский Борис, Перегрузили виртуальный метод, утащили код, частично поменяли поведение. А его поведение опять поменялось в оригинальном классе. И опять сводить? :) Сильно ли тут перегрузка поможет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2018, 13:53 |
|
||
|
Strict private
|
|||
|---|---|---|---|
|
#18+
makhaon, Эта ситуация принципиально проще. В идеале: 1. Смотрим в whatsnew отличия версий и решаем, нужно ли что-то менять у себя. 2. Если нужно - сравниваем свою надстройку с измененной базовой реализацией и выбираем одно из 3 решений 2а. оставить все как есть 2б. убрать собственный фикс если он уже присутствует в штатной версии. 2в. переписать надстройку. Собственно, только п. 2в может потребовать каких-то осмысленных действий. Но это намного проще тотального сличения исходников даже с помощью соответствующих инструментов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2018, 14:39 |
|
||
|
Strict private
|
|||
|---|---|---|---|
|
#18+
жесть когда юзаешь крэкеры для доступа к приватам а в новой версии layout класса поменялся и новые члены воткнули не в конец ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2018, 15:15 |
|
||
|
Strict private
|
|||
|---|---|---|---|
|
#18+
vavan, или вообще все кишки переписали к черту и ни одного старого private члена не оставили. А то и класс-адаптер подсунули, вместо старого, а реализацию в каком-нибудь вебсервисе заховали. Нефик лезть в private, то есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2018, 15:20 |
|
||
|
Strict private
|
|||
|---|---|---|---|
|
#18+
чччДНефик лезть в private, то естьв неидеальном мире увы приходится ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2018, 15:24 |
|
||
|
Strict private
|
|||
|---|---|---|---|
|
#18+
Соколинский Борисmakhaon, Эта ситуация принципиально проще. В идеале: 1. Смотрим в whatsnew отличия версий и решаем, нужно ли что-то менять у себя. 2. Если нужно - сравниваем свою надстройку с измененной базовой реализацией и выбираем одно из 3 решений 2а. оставить все как есть 2б. убрать собственный фикс если он уже присутствует в штатной версии. 2в. переписать надстройку. Собственно, только п. 2в может потребовать каких-то осмысленных действий. Но это намного проще тотального сличения исходников даже с помощью соответствующих инструментов.при таком подходе нужно использовать исключительно собственноручно написанные классы и компоненты... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2018, 15:24 |
|
||
|
Strict private
|
|||
|---|---|---|---|
|
#18+
asutp2нужно использовать исключительно собственноручно написанные классы и компонентыв идеале с собственным компайлером и на своей оси ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2018, 15:26 |
|
||
|
Strict private
|
|||
|---|---|---|---|
|
#18+
vavanasutp2нужно использовать исключительно собственноручно написанные классы и компонентыв идеале с собственным компайлером и на своей оси однозначно :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2018, 15:27 |
|
||
|
Strict private
|
|||
|---|---|---|---|
|
#18+
X-CiteЕсли у вас более одного класса в модуле, и они могут пересекаться, то лучше strict. +1 Когда 2 и более класса в одном модуле, они получают доступ к своим private элементам. Что бы это исправить, ввели новое словечко - strict private По идее, любой private и так должен быть strict private. Не знаю, о чём думало Ембрякоделло или как её там по имени. Если ты не разрабатываешь компоненты, то лучше использовать 1 модуль=1 класс. Private в Delphi - это недоразумение. А пример от X-Cite - это хороший пример того говнокода, который потом получается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2018, 15:30 |
|
||
|
Strict private
|
|||
|---|---|---|---|
|
#18+
Valery_BЕсли ты не разрабатываешь компоненты, то лучше использовать 1 модуль=1 класс. Явист детектед)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2018, 19:24 |
|
||
|
Strict private
|
|||
|---|---|---|---|
|
#18+
Valery_B... Если ты не разрабатываешь компоненты, то лучше использовать 1 модуль=1 класс. ... А как ты реализуешь два класса в раздельных модулях, чтобы в каждом классе было поле типа другого класса? Это не C#, тут от циклических ссылок в uses компилятор благим матом вопит. Думаешь, в дельфи монструозных размеров модули создают из-за гигантофилии? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2018, 19:31 |
|
||
|
Strict private
|
|||
|---|---|---|---|
|
#18+
Valery_BX-CiteЕсли у вас более одного класса в модуле, и они могут пересекаться, то лучше strict. +1 Когда 2 и более класса в одном модуле, они получают доступ к своим private элементам. Что бы это исправить, ввели новое словечко - strict private По идее, любой private и так должен быть strict private. Не знаю, о чём думало Ембрякоделло или как её там по имени. Если ты не разрабатываешь компоненты, то лучше использовать 1 модуль=1 класс. Private в Delphi - это недоразумение. А пример от X-Cite - это хороший пример того говнокода, который потом получается. дурная мысль заразна, гон на Embarcadero тоже не месту ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2018, 19:46 |
|
||
|
Strict private
|
|||
|---|---|---|---|
|
#18+
чччДValery_B... Если ты не разрабатываешь компоненты, то лучше использовать 1 модуль=1 класс. ... А как ты реализуешь два класса в раздельных модулях, чтобы в каждом классе было поле типа другого класса? Это не C#, тут от циклических ссылок в uses компилятор благим матом вопит. Думаешь, в дельфи монструозных размеров модули создают из-за гигантофилии? Это решается разделением абстракции от реализации ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2018, 19:46 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39614578&tid=2041140]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
41ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
| others: | 238ms |
| total: | 359ms |

| 0 / 0 |
