powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Видимость private, почему разработчику знают, что нужно пользователю?
25 сообщений из 124, страница 3 из 5
Видимость private, почему разработчику знают, что нужно пользователю?
    #38732922
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В сях тоже существовали соглашения где функции начинающиеся с "underscore" считались
скрытыми, ядерными, или просто unsafe с точки зрения полезного эффекта. Тоесть
"лучше не трогать" руками если досконально не разобрался. Но думаю что красоты
в коде от этого не добавилось. Особенно плюсы, которые бьют рекорды
по степени загаженности кода различными соглашениями наподобие Венгерских
e.t.c. нотаций, макросов, проприетарных соглашений, библиотечных префиксов
и многое другое.
...
Рейтинг: 0 / 0
Видимость private, почему разработчику знают, что нужно пользователю?
    #38732954
Foror
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alexander A. Sak, а где я говорил только о публичных полях? Я лишь, говорил, что private слишком огораживает разработчика, который хочет залезть во внутренности чужого класса. И сначала подумал о замене protected и private на internal, но потом пришел к выводу, что "дешевле" расширить extends до fork, который позволит расширить чужой класс и дать полный доступ к его кишочкам для работы на свой страх и риск. По крайне-мере это проще, чем делать форк, юзать рефлекш, аоп и прочие костыли.
...
Рейтинг: 0 / 0
Видимость private, почему разработчику знают, что нужно пользователю?
    #38732968
Alexey Tomin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FororAlexander A. Sak, а где я говорил только о публичных полях? Я лишь, говорил, что private слишком огораживает разработчика, который хочет залезть во внутренности чужого класса. И сначала подумал о замене protected и private на internal, но потом пришел к выводу, что "дешевле" расширить extends до fork, который позволит расширить чужой класс и дать полный доступ к его кишочкам для работы на свой страх и риск. По крайне-мере это проще, чем делать форк, юзать рефлекш, аоп и прочие костыли.

Идеология java предполагает, что говнокод писать сложнее, чем на других языках, и это должно сразу бросаться в глаза.
Так что всё правильно- если тебе надо иметь доступ к private полям, то рефлекшн хорошо показывает, что кто-то из вас (тебя и автора библиотеки) идиот.
PS: ничего личного :)

PPS: когда-то давно сам менял значение protected-поля в чужом классе, делая фиктивного наследника и приводя объект (он прилетал снаружи) к моему типу. В delphi так можно :) Тогда считал авторов VCL в данном месте... скажем так... неумными.
...
Рейтинг: 0 / 0
Видимость private, почему разработчику знают, что нужно пользователю?
    #38732979
Alexander A. Sak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FororAlexander A. Sak, а где я говорил только о публичных полях? Я лишь, говорил, что private слишком огораживает разработчика, который хочет залезть во внутренности чужого класса.

Но необходимость возможности огородить все-таки не отрицается?
Получается, вопрос стоит в том, насколько можно разработчику огораживать другого разработчика. И есть предложение огородить разработчика от слишком сильного огораживания. Простите за тавтологию.
...
Рейтинг: 0 / 0
Видимость private, почему разработчику знают, что нужно пользователю?
    #38732980
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пользователь, вооруженный шаблоном Fork сможет унаследовать java.lang.String.
Что из этого выйдет - я не знаю но очевидно старый пьяница Гослинг имел какие-то
основания когда запрещал в явном виде наследование финального иммутабельного
самого распространённого и квази-атомарного типа строк в Javа. Очевидно что здесь
краеугольным камнем стоит идеология языка и важность и значимость использования
именно ОДНОЙ имплементации строк. Возможно так было сделать проще чем бить
по рукам нубасов и в тысячный раз в нотах и гайдах и прочих прокламациях от Sun(Oracle)
отписывать что вы закрашили multithrd. app именно своей мутабельной имплементацией
строк вместо того чтобы взять стандартную.
...
Рейтинг: 0 / 0
Видимость private, почему разработчику знают, что нужно пользователю?
    #38733039
For All
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fororprivate слишком огораживает разработчика, который хочет залезть во внутренности чужого класса и иметь полный доступ к его кишочкам для работы на свой страх и риск.Плохому танцору тапочки жмут
...
Рейтинг: 0 / 0
Видимость private, почему разработчику знают, что нужно пользователю?
    #38733132
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проблема не только в String, вся модель безопасности идет лесом :) Хотя, если одному ленивому программисту это мешает... oracle должен обратить внимание
...
Рейтинг: 0 / 0
Видимость private, почему разработчику знают, что нужно пользователю?
    #38733171
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пускай на Groovy переходит. Там всё либерально. Объявил сущность с филдами. Всё доступно.
...
Рейтинг: 0 / 0
Видимость private, почему разработчику знают, что нужно пользователю?
    #38733173
Alexander A. Sak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Там же вроде тоже есть возможность сделать поле (свойство) private. Получается, не подходит. Только Питон.
...
Рейтинг: 0 / 0
Видимость private, почему разработчику знают, что нужно пользователю?
    #38733174
Foror
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton,
авторвооруженный шаблоном Fork сможет унаследовать java.lang.String
Можно наблюдать опыт JavaScript, там много чего делали со String, но в итоге сошлись на том, что расширять фундаментальные типы, даже банальным добавлением метода - плохой тон. И как-то живут себе, пишут код )

Понятно, что java это довольно консервативная платформа, но тем не менее у неё есть JVM, на которой можно запилить свой ЯП с блэк джеком и дамами легкого поведения )
...
Рейтинг: 0 / 0
Видимость private, почему разработчику знают, что нужно пользователю?
    #38733179
Foror
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
забыл ник,
авторвся модель безопасности идет лесом
Тогда и рефлекшн нужно запретить, там ведь тоже можно сделать setAccessible(true). Но если модель безопасности можно настроить на запрет рефлекшн, то и fork можно запретить, если кому-то это нужно, так что ваш аргумент мимо кассы.
...
Рейтинг: 0 / 0
Видимость private, почему разработчику знают, что нужно пользователю?
    #38733181
Foror
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alexander A. Sak,
авторТолько Питон.
И причем тут питон? Я же на форуме java...
...
Рейтинг: 0 / 0
Видимость private, почему разработчику знают, что нужно пользователю?
    #38733183
Foror
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
забыл ник,
авторесли одному ленивому программисту это мешает
Лень - двигатель прогресса, еще один мимо кассы.
...
Рейтинг: 0 / 0
Видимость private, почему разработчику знают, что нужно пользователю?
    #38733187
Foror
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
For All,
авторПлохому танцору тапочки жмут
Причем тут тапочки и плохой танцор? Отследите логику - мне нужно расширить некоторую функциональность класса, которую разработчик не предусмотрел или не смог допилить. Но при этом, мне не хочется делать форк или поддерживать его библиотеку. Потому что это сложнее, чем сделать наследование вот прям тут в IDE и получить полный доступ к пакетам классов, как своим.
...
Рейтинг: 0 / 0
Видимость private, почему разработчику знают, что нужно пользователю?
    #38733188
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наследование - не единственный вариант использование ООП.
Более того, это не самый лучший вариант.
...
Рейтинг: 0 / 0
Видимость private, почему разработчику знают, что нужно пользователю?
    #38734893
Фотография grasoff.net
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonГде и когда в стандартных java-библиотеках,
открытых библиотеках типа apache commons .... e.t.c. и прочего опенсорца вам вдруг (!) внезапно понадобилось
значение приватной переменной базового класса?myfaces :)
...
Рейтинг: 0 / 0
Видимость private, почему разработчику знают, что нужно пользователю?
    #38734938
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FororFor All,
авторПлохому танцору тапочки жмут
Причем тут тапочки и плохой танцор? Отследите логику - мне нужно расширить некоторую функциональность класса, которую разработчик не предусмотрел или не смог допилить. Но при этом, мне не хочется делать форк или поддерживать его библиотеку. Потому что это сложнее, чем сделать наследование вот прям тут в IDE и получить полный доступ к пакетам классов, как своим.

Расширяйте, кто вам мешает?!
Зачем вам нужны приватные члены класса, для которого нет исходника?
Считайте, что вы о них вообще ничего не знаете.
Скорее всего решение не там где вы ищите. ;-)
...
Рейтинг: 0 / 0
Видимость private, почему разработчику знают, что нужно пользователю?
    #38735052
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FororПонятно, что java это довольно консервативная платформа, но тем не менее у неё есть JVM, на которой можно запилить свой ЯП с блэк джеком и дамами легкого поведения )
Может тебе просто перейти на Груви?
...
Рейтинг: 0 / 0
Видимость private, почему разработчику знают, что нужно пользователю?
    #38735352
Foror
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton, нет, мне проще будет реализовать fork фичу в виде плагина для eclipse, правда я пока не знаю, где там копаться, чтобы расширить валидатор для таких конструкций:


Код: java
1.
2.
3.
4.
5.
public class final XStandardWatchEventKinds fork java.nio.file.StandardWatchEventKinds {

    public static final WatchEvent.Kind<Path> ENTRY_NOT_CATCHED = 
         new StdWatchEventKind<Path>("ENTRY_NOT_CATCHED", Path.class);
}
...
Рейтинг: 0 / 0
Видимость private, почему разработчику знают, что нужно пользователю?
    #38735358
Foror
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mad_nazgul,

авторЗачем вам нужны приватные члены класса, для которого нет исходника?
Еще не сталкивался, чтобы не было исходников, но там где их нет, можно по байт-коду восстановить методы и классы и также форкнуть прямо в коде и сделать свою обертку, в случае необходимости. Но, вообще, я уже устал повторять, одно и тоже читайте внимательнее.
...
Рейтинг: 0 / 0
Видимость private, почему разработчику знают, что нужно пользователю?
    #38735382
Foror
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mad_nazgul,
авторРасширяйте, кто вам мешает?!
Не кто, а что мне мешает. А мешают мне приватные методы и поля, из-за которых приходится использовать Reflection. Как один из недавних примеров, невозможности предусмотреть всё - в Nashorn нельзя было получить доступ к ScriptObject, т.к. он был обернут в ScriptObjectMirror в приватном поле. И тут вы конечно с умничаете и скажете нефиг лезть внутрь. Но мне было удобнее работать со ScriptObject напрямую и я запилил Reflection обертку.

А недавно, спустя несколько месяцев, я увидел новый класс ScriptUtils (если не ошибся с названием), где появились методы wrap и unwrap, чтобы работать со ScriptObject напрямую. И заметьте мне такой метод был нужен несколько месяцев назад и очевидно не мне одному тоже.

Так что, как видите очень простой пример, когда разработчик не смог предусмотреть, то что будет нужно пользователю. При этом, если придерживаться вашей логики, то я должен ждать несколько месяцев, пока нужный доступ откроют официально. Либо пользоваться рефлекшн. Но рефлекшн в более сложных случаях - громоздок. Поэтому нужно альтернативное решение, например такое как fork внутри кода, с использованием фич из АОП.
...
Рейтинг: 0 / 0
Видимость private, почему разработчику знают, что нужно пользователю?
    #38735603
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Заметьте - сделали обёртки, а не превратили приватные поля в публичные.
Так что вы всё равно не правы.
...
Рейтинг: 0 / 0
Видимость private, почему разработчику знают, что нужно пользователю?
    #38735611
Foror
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Basil A. Sidorov, так и я сделал обертку, только использовал для этого reflection ) Это я просто привел как пример, того, что разработчики не знают, что нужно открыть для пользователя. Вообще, спор из интересного обменами мыслями, перешел в какое-то перепирание и не умение вчитываться, в то что я предлагаю.
...
Рейтинг: 0 / 0
Видимость private, почему разработчику знают, что нужно пользователю?
    #38735612
Foror
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Но оно и понятно, почему так, центр внимание смещен на заглавие этого топика, когда мысль ушла совсем в другую плоскость. Нужно просто создавать другой топик обсуждающий концепцию fork.
...
Рейтинг: 0 / 0
Видимость private, почему разработчику знают, что нужно пользователю?
    #38735624
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FororЭто я просто привел как пример, того, что разработчики не знают, что нужно открыть для пользователяпользователюИсправлено мною.Вообще, спор из интересного обменами мыслями, перешел в какое-то перепирание и не умение вчитываться, в то что я предлагаю.Вы предлагаете лечить перхоть гильотиной.
Это, безусловно, надёжно, но создаёт массу весьма неприятных побочных эффектов.
...
Рейтинг: 0 / 0
25 сообщений из 124, страница 3 из 5
Форумы / Java [игнор отключен] [закрыт для гостей] / Видимость private, почему разработчику знают, что нужно пользователю?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]