|
|
|
Программирование на Java - интересно?
|
|||
|---|---|---|---|
|
#18+
chpashaинтересно каковы аргументы против? не хотят отказываться от кучи скобочек? хотя сейчас уже да поздновато. миллион фреймворков ориентируются на "свойства" в виде геттера и сеттера. введи свойства настоящие и либо это все придется дописывать либо радоваться свойствам строго в своем коде и коде тех кому не западло будет доделать.сложность реализации. Почему то нельзя ввести свойства как "синтаксический сахар", потому нужно дорабатывать API & другие подсистемы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2009, 13:30:28 |
|
||
|
Программирование на Java - интересно?
|
|||
|---|---|---|---|
|
#18+
Алексей К, Ну вот. Согласитесь, что все таки приятно, скачав JDK увидеть в нем каталог src. Мне приходилось переделывать компонеты Grid в WinForms и соответственно JTable в Java. Так, несмотря на то, что все, что связано с desktop компонентами сделано добротнее в .net, но добиться результата было проще в java и только потому, что под рукой исходники, работу которых можно проследить в дебаггере, например используя Netbeans IDE. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2009, 13:32:15 |
|
||
|
Программирование на Java - интересно?
|
|||
|---|---|---|---|
|
#18+
chpashaДиез ... Главная проблема, имхо - что делать с checked exceptions; как их объявлять, если геттер или сеттер должны их выбрасывать?хмм...я конечно в яве можно сказать новичек...но геттер кидающий exception это имхо неправильно в принципе. геттер на то и геттер чтоб быть предельно простым даже если он лениво инициализирует переменную. если я обращаюсь к объекту и говорю getProperty() то хапнуть в этом месте исключение - наглость со стороны проектировщика. если реально при ленивой инициализации произошло исключение, пусть мне null вернут и в лог ошибку кинут. хотя возможно (возможно) я не все случаи учитываю. и все же методы со сложной логикой И с икслючениями не должны быть геттерами. они должны быть методами. Во-во :) Либо предполагать, что такое может случиться; либо на уровне компилятора ограничивать тело геттера... С сеттером тоже не все хорошо: если обычное присвоение может выбросить контролируемое исключение, его надо перехватить или пробросить вверх - теряется наглядность свойств. Думаю разработчики Java посмотрели на список возможных проблем и решили забить :)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2009, 13:34:59 |
|
||
|
Программирование на Java - интересно?
|
|||
|---|---|---|---|
|
#18+
chpashaво-вторых меня что-то редко тянуло посмотреть как работает ArrayList. чаще всего (ну я по себе сужу) - приходилось смотреть как работают визуальные компоненты. а просты классы либо делают свое дело и тебе ничего от них не нужно, либо справляются неэффективно и ты пишешь что-то свое.Кстати зря. В том же List<T> есть довольно интересные моменты, которые можно учесть при оптимизации. Например в List<T>..ctor(IEnumerable<T> collection) и List<T>.InsertRange(int index, IEnumerable<T> collection) . Рекомендую, хотя бы ради любопытства. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2009, 13:36:28 |
|
||
|
Программирование на Java - интересно?
|
|||
|---|---|---|---|
|
#18+
Valery Shiskin... но добиться результата было проще в java и только потому, что под рукой исходники, работу которых можно проследить в дебаггере , например используя Netbeans IDE.Как раз такая возможность в дотнете есть. :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2009, 13:38:51 |
|
||
|
Программирование на Java - интересно?
|
|||
|---|---|---|---|
|
#18+
Valery Shiskinchpasha, Коды C# опубликовали (а зачем мне компилятор) . А коды библиотек WindowForms, Asp .Net, Ado .net ? reflector выручал за годы до опубликования кода. как правило хватало просто посмотреть код. даже отладка была не нужна. Valery Shiskin Наcчет OutOfMemory - так правильно запускайте java, что бы она имела доступ ко всей куче, как это делает .net. Ну а насчет самолета, так это ни для кого не секрет, что компания Боинг очень активно использует java. Компьютер US марсохода оснащен java ME так недолго и сервак положить. был реальный случай, скрипт работавший с опенофисом из-за ошибки в коде (не разрывалось соединение со службой по окончании) запустился и не выгрузился n-ое кол-во раз. забило вес мозг, своп и все. пишите письма в суппорт мелким почерком. дебиан умер. но вообще-то это скорее шутка с моей стороны была, просто с подоплекой ;) . уж слишком аналогия была не корректна. естественно все зависит от программиста. просто в яве опять таки бываешь завязан на кучу третьесторонних фреймворков, качество которых может оказаться посредственным (в нете другая заморочка - фреймворков нужных может просто не оказаться, но мы не об этом). я вот месяц переписывался с автором logback-a. не могли отловить глюк с тем, что rollover лога не происходил. пришлось (мне) лезть в код и находить причину. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2009, 13:38:52 |
|
||
|
Программирование на Java - интересно?
|
|||
|---|---|---|---|
|
#18+
VoDAchpashaинтересно каковы аргументы против? не хотят отказываться от кучи скобочек? хотя сейчас уже да поздновато. миллион фреймворков ориентируются на "свойства" в виде геттера и сеттера. введи свойства настоящие и либо это все придется дописывать либо радоваться свойствам строго в своем коде и коде тех кому не западло будет доделать.сложность реализации. Почему то нельзя ввести свойства как "синтаксический сахар", потому нужно дорабатывать API & другие подсистемы.ну как я уже говорил, мне сложно судить о том, чего я в глаза не видел. так что не стану спекулировать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2009, 13:40:59 |
|
||
|
Программирование на Java - интересно?
|
|||
|---|---|---|---|
|
#18+
Алексей Кchpashaво-вторых меня что-то редко тянуло посмотреть как работает ArrayList. чаще всего (ну я по себе сужу) - приходилось смотреть как работают визуальные компоненты. а просты классы либо делают свое дело и тебе ничего от них не нужно, либо справляются неэффективно и ты пишешь что-то свое.Кстати зря. В том же List<T> есть довольно интересные моменты, которые можно учесть при оптимизации. Например в List<T>..ctor(IEnumerable<T> collection) и List<T>.InsertRange(int index, IEnumerable<T> collection) . Рекомендую, хотя бы ради любопытства. помнишь правило про преждевременную оптимизацию ;) . как-то не пришлось на скорость списка жаловаться, вот и не лез ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2009, 13:42:45 |
|
||
|
Программирование на Java - интересно?
|
|||
|---|---|---|---|
|
#18+
chpashaпусть мне null вернут и в лог ошибку кинут. хотя возможно (возможно) я не все случаи учитываю. и все же методы со сложной логикой И с икслючениями не должны быть геттерами. они должны быть методами. Ужас какой. И после каждого set/get проверять на null? Или ожидать, когда NPE над океаном вылетит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2009, 13:43:19 |
|
||
|
Программирование на Java - интересно?
|
|||
|---|---|---|---|
|
#18+
Последний аргумент. Сижу сейчас, борюсь одновременно со Spring + GWT + Google App Engine. Поругиваю потихоньку Sun ( теперь Oracle/Sun), SpringSource ( теперь VMWare/SpringSource). Одно радует: вряд ли у кого-то хватит денег купить Google. Может у MS ? А у последнего скукота и никаких перемен. Пока его никто не покупает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2009, 13:50:53 |
|
||
|
Программирование на Java - интересно?
|
|||
|---|---|---|---|
|
#18+
Leonidvchpashaпусть мне null вернут и в лог ошибку кинут. хотя возможно (возможно) я не все случаи учитываю. и все же методы со сложной логикой И с икслючениями не должны быть геттерами. они должны быть методами. Ужас какой. И после каждого set/get проверять на null? Или ожидать, когда NPE над океаном вылетит?имелся в виду случай когда выбиралось лучшее из двух зол. засовывание сложной логики в геттер мне в принципе кажется неправильным. свойство оно и есть свойство. иначе вы под видом геттера фактически полноценный метод используете. а на счет проверки на null, так все равно приходится проверять. тот же iBatis если возвращает сложный бизнес объект, в нем любое из свойств-объектов может null-ом оказаться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2009, 13:53:45 |
|
||
|
Программирование на Java - интересно?
|
|||
|---|---|---|---|
|
#18+
Leonidvchpashaпусть мне null вернут и в лог ошибку кинут. хотя возможно (возможно) я не все случаи учитываю. и все же методы со сложной логикой И с икслючениями не должны быть геттерами. они должны быть методами. Ужас какой. И после каждого set/get проверять на null? Или ожидать, когда NPE над океаном вылетит?выкидывать Unchecked Exception. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2009, 14:02:29 |
|
||
|
Программирование на Java - интересно?
|
|||
|---|---|---|---|
|
#18+
VoDALeonidvchpashaпусть мне null вернут и в лог ошибку кинут. хотя возможно (возможно) я не все случаи учитываю. и все же методы со сложной логикой И с икслючениями не должны быть геттерами. они должны быть методами. Ужас какой. И после каждого set/get проверять на null? Или ожидать, когда NPE над океаном вылетит?выкидывать Unchecked Exception. так какая разница. то ли NullPointer то ли другой какой :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2009, 14:10:31 |
|
||
|
Программирование на Java - интересно?
|
|||
|---|---|---|---|
|
#18+
VoDALeonidvchpashaпусть мне null вернут и в лог ошибку кинут. хотя возможно (возможно) я не все случаи учитываю. и все же методы со сложной логикой И с икслючениями не должны быть геттерами. они должны быть методами. Ужас какой. И после каждого set/get проверять на null? Или ожидать, когда NPE над океаном вылетит?выкидывать Unchecked Exception. Тоже нехорошо. Пусть есть некий DAL. Геттер лениво подгружает коллекцию из БД, и произошел SqlException - вы предлагаете обернуть его в RuntimeException? Тогда мы теряем всю прелесть иерархии исключений и контроля на уровне компилятора. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2009, 14:10:46 |
|
||
|
Программирование на Java - интересно?
|
|||
|---|---|---|---|
|
#18+
ДиезVoDALeonidvchpashaпусть мне null вернут и в лог ошибку кинут. хотя возможно (возможно) я не все случаи учитываю. и все же методы со сложной логикой И с икслючениями не должны быть геттерами. они должны быть методами. Ужас какой. И после каждого set/get проверять на null? Или ожидать, когда NPE над океаном вылетит?выкидывать Unchecked Exception. Тоже нехорошо. Пусть есть некий DAL. Геттер лениво подгружает коллекцию из БД, и произошел SqlException - вы предлагаете обернуть его в RuntimeException? Тогда мы теряем всю прелесть иерархии исключений и контроля на уровне компилятора. я думаю тут можно начинать спорить, а геттер ли это :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2009, 14:18:34 |
|
||
|
Программирование на Java - интересно?
|
|||
|---|---|---|---|
|
#18+
chpasha Тоже нехорошо. Пусть есть некий DAL. Геттер лениво подгружает коллекцию из БД, и произошел SqlException - вы предлагаете обернуть его в RuntimeException? Тогда мы теряем всю прелесть иерархии исключений и контроля на уровне компилятора. я думаю тут можно начинать спорить, а геттер ли это :) А разве в LINQtoSQL не так делается? Детайл-коллекция - это свойство Мастер-записи, и пока мы к нему явно не обратимся, загрузка из детайл-таблицы не производится. Впрочем, с LINQ глубоко не разбирался, может и неправ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2009, 14:34:40 |
|
||
|
Программирование на Java - интересно?
|
|||
|---|---|---|---|
|
#18+
Диез Впрочем, с LINQ глубоко не разбирался, может и неправ... аналогично ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2009, 14:41:13 |
|
||
|
Программирование на Java - интересно?
|
|||
|---|---|---|---|
|
#18+
ДиезПусть есть некий DAL. Геттер лениво подгружает коллекцию из БД, и произошел SqlException - вы предлагаете обернуть его в RuntimeException? Тогда мы теряем всю прелесть иерархии исключений и контроля на уровне компилятора ."Сначала создали себе проблему, теперь героически её решаем". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2009, 15:01:09 |
|
||
|
Программирование на Java - интересно?
|
|||
|---|---|---|---|
|
#18+
chpashaVoDAвыкидывать Unchecked Exception. так какая разница. то ли NullPointer то ли другой какой :)Exception полетит в момент вызовы getter-а, а NPE - уже при обработке и вполне возможно что в другой под-системе. Но это лирика. по большому счету никто не мешает сделать синтаксис: Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2009, 15:07:00 |
|
||
|
Программирование на Java - интересно?
|
|||
|---|---|---|---|
|
#18+
ДиезТоже нехорошо. Пусть есть некий DAL. Геттер лениво подгружает коллекцию из БД, и произошел SqlException - вы предлагаете обернуть его в RuntimeException? Тогда мы теряем всю прелесть иерархии исключений и контроля на уровне компилятора.в случае общения с БД я соглашусь, но в общем случае все сложнее. Почитайте почему Spring пропагандирует Unchecked. Сам чаще применяю Unchecked. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2009, 15:08:59 |
|
||
|
Программирование на Java - интересно?
|
|||
|---|---|---|---|
|
#18+
Алексей КДиезПусть есть некий DAL. Геттер лениво подгружает коллекцию из БД, и произошел SqlException - вы предлагаете обернуть его в RuntimeException? Тогда мы теряем всю прелесть иерархии исключений и контроля на уровне компилятора ."Сначала создали себе проблему, теперь героически её решаем". Шо, опять? :) Ну ладно: благодаря контролю компилятора, у Java нормальная и стройная библиотека классов, в отличие от FCL. Особенно в плане взаимодействия с внешними ресурсами (IO, DB, Web etc) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2009, 15:11:01 |
|
||
|
Программирование на Java - интересно?
|
|||
|---|---|---|---|
|
#18+
VoDA Почитайте почему Spring пропагандирует Unchecked. Сам чаще применяю Unchecked. Ну дайте ссылку хоть... не найду навскидку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2009, 15:17:52 |
|
||
|
Программирование на Java - интересно?
|
|||
|---|---|---|---|
|
#18+
ДиезНу ладно: благодаря контролю компилятора, у Java нормальная и стройная библиотека классов, в отличие от FCL. Особенно в плане взаимодействия с внешними ресурсами (IO, DB, Web etc)А чего там не так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2009, 15:24:13 |
|
||
|
Программирование на Java - интересно?
|
|||
|---|---|---|---|
|
#18+
Алексей КДиезНу ладно: благодаря контролю компилятора, у Java нормальная и стройная библиотека классов, в отличие от FCL. Особенно в плане взаимодействия с внешними ресурсами (IO, DB, Web etc)А чего там не так? Приведу один пример: - если в Java написано, что Connection.createStatement() должен выбрасывать SqlException в случае проблем, то каждый провайдер и будет его выбрасывать. - а в .NET я _могу_ легко написать свой провайдер, который в DbConnection.CreateCommand() будет выбрасывать всякие левые исключения в б. количестве, никак не связанные с DbException. Понятно, что и в Java-провайдере можно навыбрасывать левых RuntimeExeption'ов при желании, но все-таки исключения как часть контракта метода дисциплинируют разработчиков библиотек. PS. Зря я, наверное, на вашу "провокацию" поддался :) Тема неисчерпаема! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2009, 15:35:11 |
|
||
|
Программирование на Java - интересно?
|
|||
|---|---|---|---|
|
#18+
ДиезVoDA Почитайте почему Spring пропагандирует Unchecked. Сам чаще применяю Unchecked. Ну дайте ссылку хоть... не найду навскидку.Даже и не знаю на что направить. тынц на javadoc. Это DataAccessException. уже отгремели баталии на тему RuntimeException & Spring. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2009, 15:36:59 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=36142187&tid=2130595]: |
0ms |
get settings: |
6ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
32ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
| others: | 298ms |
| total: | 423ms |

| 0 / 0 |
