|
|
|
Видимость private, почему разработчику знают, что нужно пользователю?
|
|||
|---|---|---|---|
|
#18+
FororBasil A. Sidorov, автор... пока не установлен диспетчер безопасности. Редкость - да, но всё-таки. А разве нельзя его точечно настраивать, скажем для таких-то классов можно рефлекшн, для всех остальных нельзя? ну вот, пример: есть класс - полилиния от оракле JGeometry http://docs.oracle.com/cd/B19306_01/appdev.102/b14373/oracle/spatial/geometry/JGeometry.html - у него массив точек можно достать через getOrdinatesArray() Код: java 1. 2. 3. 4. 5. - мне нужно добавить точку к линии. Хакать этот класс или нет? )))) - если да, то предупредить ли работодателя? ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2014, 17:53 |
|
||
|
Видимость private, почему разработчику знают, что нужно пользователю?
|
|||
|---|---|---|---|
|
#18+
Ну так создай новый массив ординат (для новой полилинии) и создай ее заново. В чем проблема? IMHO 1. С полилинией подводных камней не вижу, но например для зоны, попытка добавления точки явно может привести с созданию некоректных зон (типа бабочки). 2. Как я понимаю, полилиния может быть не только полилинией, но и MULTIPOLYLINE. Тогда, тоже, добавление точки не такое уж и простое становится. 3. Ну и вообще, это больше объекты для хранения информации, а не для манипулирования и расчетов. IMHO ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2014, 23:40 |
|
||
|
Видимость private, почему разработчику знают, что нужно пользователю?
|
|||
|---|---|---|---|
|
#18+
Leonid Kudryavtsev, вот я получил объект из БД Код: java 1. 2. 3. 4. 5. в том и вопрос. Для модификации внутреннего поля рекомендуется создать новый объект с конструктором и совсем новым массивом точек. Код: java 1. Так? ЗЫ. Я и говорю, что такие большие классы защищают от ....(сабж). Могут быть некорректности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2014, 00:07 |
|
||
|
Видимость private, почему разработчику знают, что нужно пользователю?
|
|||
|---|---|---|---|
|
#18+
Petro123, Некорректности? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2014, 00:27 |
|
||
|
Видимость private, почему разработчику знают, что нужно пользователю?
|
|||
|---|---|---|---|
|
#18+
smackmychi, ну да. Метода setXXX нету. Пробовать записать в память ещё 2-30 double? Есть контракт на класс. Там всё написано. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2014, 00:40 |
|
||
|
Видимость private, почему разработчику знают, что нужно пользователю?
|
|||
|---|---|---|---|
|
#18+
Petro123, Интересно, а со строками такое кого-нибудь припаривает? И чем может быть обусловлена невозможность обновления состояния объекта в данном случае? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2014, 10:41 |
|
||
|
Видимость private, почему разработчику знают, что нужно пользователю?
|
|||
|---|---|---|---|
|
#18+
smackmychiИнтересно, а со строками такое кого-нибудь припаривает? Кого-нибудь- да :D smackmychiИ чем может быть обусловлена невозможность обновления состояния объекта в данном случае? Изначально- безопасность. Но нашёлся ещё один профит- финал-объекты сильно ускоряют многопотчный код. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2014, 11:14 |
|
||
|
Видимость private, почему разработчику знают, что нужно пользователю?
|
|||
|---|---|---|---|
|
#18+
smackmychi, представим объект квадрат. Если к нему добавить точку недокументированным способом - он перестанет быть данным типом. "Если бы у бабушки были яйца..." .. Обусловлена ТЗ в котором не нужен полиморфизм или морфинг квадрата. Зачем делать класс дороже? Строка тоже имеет ограничения. В винде, если записать в память после символа окончания - испортим соседние объекты и получим "страшную ошибку для дельфистов". В Java всё делают для безопасного кода)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2014, 11:17 |
|
||
|
Видимость private, почему разработчику знают, что нужно пользователю?
|
|||
|---|---|---|---|
|
#18+
Petro123, То есть с "бабушкиными" классами все ок? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2014, 11:27 |
|
||
|
Видимость private, почему разработчику знают, что нужно пользователю?
|
|||
|---|---|---|---|
|
#18+
smackmychiPetro123, То есть с "бабушкиными" классами все ок? для дедушки - да)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2014, 11:38 |
|
||
|
Видимость private, почему разработчику знают, что нужно пользователю?
|
|||
|---|---|---|---|
|
#18+
Petro123, Тогда пойду позвоню скорее, чтобы final и private не трогали. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2014, 13:28 |
|
||
|
Видимость private, почему разработчику знают, что нужно пользователю?
|
|||
|---|---|---|---|
|
#18+
Petro123 Упростить Модель предметки - обязанность программиста.Бизнес аналитика. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2014, 11:49 |
|
||
|
Видимость private, почему разработчику знают, что нужно пользователю?
|
|||
|---|---|---|---|
|
#18+
For All, Угу. Он в тексте ворда, а ты в классах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2014, 12:24 |
|
||
|
Видимость private, почему разработчику знают, что нужно пользователю?
|
|||
|---|---|---|---|
|
#18+
Petro123Угу. Он в тексте ворда, а ты в классах.Упрощать ещё больше то, что он наупрощал? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2014, 12:48 |
|
||
|
Видимость private, почему разработчику знают, что нужно пользователю?
|
|||
|---|---|---|---|
|
#18+
For All, Бизнес аналитик понятия не имеет о программиоовании. И это хорошо. Так что, делать private или нет, решает либо программист. Либо много людей у кодировщика - системный архитектор, системный аналитик, тим лидер и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2014, 13:18 |
|
||
|
Видимость private, почему разработчику знают, что нужно пользователю?
|
|||
|---|---|---|---|
|
#18+
Petro123, в идеальной вселенной может кто-то и думает "делать private или нет", в реальном мире поджимают сроки и делают по принципу, что не public, то private . Ни кто не думает о том, как будут расширять его класс другие разработчики. А если думают, то в очень специфичных случаях, например, в ситуациях, когда класс явно создается для того, чтобы его расширяли через наследование в клиентском коде. Причина тому, банальна, поджимают сроки, дедлайны горят, еще тесты писать... Кому надо сделают собственный бранч, а мы может и примет данные изменения, а может и нет. Я лишь хочу найти золотую середину, между созданием бранча всего проекта и использованием reflection. Но вижу, ни кто не поддерживают такую идею, у меня же нет времени пока ей заниматься ибо пилю другой проект. Но может в будущем обдумаю это более детально. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2014, 15:03 |
|
||
|
Видимость private, почему разработчику знают, что нужно пользователю?
|
|||
|---|---|---|---|
|
#18+
Fororв идеальной вселенной может кто-то и думает "делать private или нет", в реальном мире поджимают сроки и делают по принципу, что не public, то private . Ни кто не думает о том, как будут расширять его класс другие разработчики. А если думают, то в очень специфичных случаях, например, в ситуациях, когда класс явно создается для того, чтобы его расширяли через наследование в клиентском коде. Это неправда, если говорить о проектировании библиотек, которые ориентируются на большое количество пользователей, каждое поле проектируется и рассматривается с прицелом на расширение, иначе срок жизни таких библиотек будет чуть больше чем 0. Конечно косяки случаются, но это скорее исключение и зависит прежде всего от квалификации программистов. Такое ощущение что вы никогда не разрабатывали библиотек ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2014, 15:22 |
|
||
|
Видимость private, почему разработчику знают, что нужно пользователю?
|
|||
|---|---|---|---|
|
#18+
Foror, кто как пишет, это свойство характера. (у некоторых нет времени и мусор выносить).... Я лично всегда закрываю по максимуму (если это не тяжело в IDE). Когда компилятор ругается - открываю )))) На 10 наследников не вижу, но на один уровень выше - думаю) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2014, 15:27 |
|
||
|
Видимость private, почему разработчику знают, что нужно пользователю?
|
|||
|---|---|---|---|
|
#18+
Petro123... в том и вопрос. Для модификации внутреннего поля рекомендуется создать новый объект с конструктором и совсем новым массивом точек. ... Так? Если рекомендуется в доке/ноте Oracle и проблем нет, то делать по доке. Если проблемы есть, то без изменения кол-во объектов (размерности) ordinates, можно просто попытаться в ordinates[ нужное_вписать ] присвоить новый массив точек. Если верить декомпилятору, должно прокатит. Но лучше на такое поведение не закладываться. А то сейчас хочется "точку добавить" (что можно), завтра захочется тип фигуры сменить (с линии на зону или обратно - imho вполне законное желание юзера) и наступит облом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2014, 15:30 |
|
||
|
Видимость private, почему разработчику знают, что нужно пользователю?
|
|||
|---|---|---|---|
|
#18+
Leonid Kudryavtsev, +1 да, проблем нет - всё сделал. Хибер, насколько знаю, не особо дружит с ГИС - полями. Но, я понимаю, слишком специфическая область. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2014, 16:23 |
|
||
|
Видимость private, почему разработчику знают, что нужно пользователю?
|
|||
|---|---|---|---|
|
#18+
забыл ник, авторникогда не разрабатывали библиотек Сейчас разрабатываю и если я еще буду думать, о том, как мои классы будут расширять внешние программеры, то мои либы не увидят продакшен. Тут банально не хватает времени просто продумать взаимосвязи между классами, а еще тесты нужно писать. авториначе срок жизни таких библиотек будет чуть больше чем 0 С чего это? Библиотеки разрабатываются, чтобы их просто подключить и юзать через интерфейсы - это 95% их use case. Зачем библиотеке думать о том, как её будут расширять другие программеры? Если вы подразумеваете фреймворк, то да, это важная вещь, но с другой стороны тут также думают лишь о клиентских классах. А вот заботу о расширении internal классов, я видел лишь в tapestry 5, да и то, там хватает своих гемороев. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2014, 16:57 |
|
||
|
Видимость private, почему разработчику знают, что нужно пользователю?
|
|||
|---|---|---|---|
|
#18+
Ну если FororСейчас разрабатываю и если я еще буду думать, о том, как мои классы будут расширять внешние программеры, Тут банально не хватает времени просто продумать взаимосвязи между классами То может Foror то мои либы не увидят продакшен. и к лучшему? FororС чего это? Библиотеки разрабатываются, чтобы их просто подключить и юзать через интерфейсы - это 95% их use case. Зачем библиотеке думать о том, как её будут расширять другие программеры? Если вы подразумеваете фреймворк, то да, это важная вещь, но с другой стороны тут также думают лишь о клиентских классах. А вот заботу о расширении internal классов, я видел лишь в tapestry 5, да и то, там хватает своих гемороев. HttpClient для вас это библиотека или фреймворк? Правильно, большая часть кода не должна волновать клиента. В местах где скорее всего понадобится кастомизация и вводят интерфейсы в качестве точек расширения, как ни странно после тщательного обдумывания взаимосвязи между классами. Если вы используете библиотеку\фреймворк и вам нужно лезть внутрь имплементации - это или говно-библиотека, или очень редкий случай, или вы используете библиотеку не для того, для чего она изначально задумывалась. Из этих 3 вариантов, валидный только "очень редкий случай", вводить для этого новую языковую конструкцию - юред, рефлекшн вполне годен для этого. Остальные два случая - это ошибка проектировщика, либо на стороне библиотеки, либо на стороне клиента ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2014, 17:22 |
|
||
|
Видимость private, почему разработчику знают, что нужно пользователю?
|
|||
|---|---|---|---|
|
#18+
FororСейчас разрабатываю и если я еще буду думать, о том, как мои классы будут расширять внешние программеры, то мои либы не увидят продакшенВаши библиотеки должны проектироваться так, чтобы у их пользователей не возникало желания "расширять(ся)". P.S. Наследование не единственный и, часто, не лучший вариант использования ООП. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2014, 18:03 |
|
||
|
Видимость private, почему разработчику знают, что нужно пользователю?
|
|||
|---|---|---|---|
|
#18+
FororPetro123, в идеальной вселенной может кто-то и думает "делать private или нет", в реальном мире поджимают сроки и делают по принципу, что не public, то private . Ни кто не думает о том, как будут расширять его класс другие разработчики. А если думают, то в очень специфичных случаях, например, в ситуациях, когда класс явно создается для того, чтобы его расширяли через наследование в клиентском коде. На самом деле вытаскивая любые потроха наружу (даже в protected) нужно понимать, во-первых, как это будет использоваться, а, во-вторых, принимать на себя обязательства не изменять это. Если же автор не готов к этому- да, лучше private. Вообще разработка общедоступных библиотек- это очень сложная вещь. Давно известно правило- "пока у тебя нет трёх применений библиотеки- ты её хорошо не сделаешь". Сделать без этого могут единицы людей. Причём "использовать" и "расширять"- это очень разные вещи, которые надо проектировать отдельно. Так что вполне может оказаться, что интерфейс библиотеки был взят с потолка. Многие из шаблонов проектирования сделаны для того, чтобы помочь делать хорошо сразу. Правда в итоге всё одно пришли к "simple code"- делать просто, а когда найдутся применения- допилить. Но это возвращает обратно к "трём примерам использования". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2014, 10:08 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38740827&tid=2126630]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
161ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
58ms |
get tp. blocked users: |
2ms |
| others: | 198ms |
| total: | 459ms |

| 0 / 0 |
