|
|
|
Чистый код
|
|||
|---|---|---|---|
|
#18+
Простейший вопрос. как грамотней написать, с точки зрения "хорошего кода". 1) Код: java 1. 2) Код: java 1. где-то слышал, что лучше сначала писать литерал, потом объект который проверяется на null, как например во втором случае. а как вообще грамотней, удобочитаемей , так сказать =)? или может литературу какую посоветуете по написанию чистого кода почитать? ps читал отзывы по книге роберта мартина "чистый код" - довольно неоднозначные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2014, 10:54 |
|
||
|
Чистый код
|
|||
|---|---|---|---|
|
#18+
alex021Простейший вопрос. как грамотней написать, с точки зрения "хорошего кода". 1) Код: java 1. 2) Код: java 1. где-то слышал, что лучше сначала писать литерал, потом объект который проверяется на null, как например во втором случае. а как вообще грамотней, удобочитаемей , так сказать =)? или может литературу какую посоветуете по написанию чистого кода почитать? ps читал отзывы по книге роберта мартина "чистый код" - довольно неоднозначные. ))) если это не шутка, то по барабану, встречал и так и так ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2014, 10:59 |
|
||
|
Чистый код
|
|||
|---|---|---|---|
|
#18+
Смысл в Yoda notation для сравнения отсутствует. Yoda notation в Java используйется для equals, чтобы избежать потенциального NPE. Прямая нотация ближе к английскому, поэтому предпочтительнее. Почитать по теме стоит - Java 8 API Optional, Stream. - Guava - О функциональном программировании вообще. Вот в этой статье как раз разжевывается как и почему функциональный код "чище" то есть "понятнее". http://miles.no/blogg/why-care-about-functional-programming-part-1-immutability http://miles.no/blogg/why-should-we-care-about-functional-programming-part-2-transformations Что именно там у Мартина неоднозначного не знаю. ИМХО, вполне толково и по делу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2014, 11:02 |
|
||
|
Чистый код
|
|||
|---|---|---|---|
|
#18+
rema174))) если это не шутка, то по барабану, встречал и так и так не шутка) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2014, 11:06 |
|
||
|
Чистый код
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, спасибо, как всегда с дельными советами ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2014, 11:08 |
|
||
|
Чистый код
|
|||
|---|---|---|---|
|
#18+
alex0211) Код: java 1. 2) Код: java 1. Если забыть один знак равенства, то в первом варианте компилятор сразу скажет, что null-константе нельзя присваивать значения. С моей кочки зрения это чуть понятнее, чем "требуется булев тип, встретился ...". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2014, 11:12 |
|
||
|
Чистый код
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovЕсли забыть один знак равенства, то в первом варианте компилятор сразу скажет, что null-константе нельзя присваивать значения. С моей кочки зрения это чуть понятнее, чем "требуется булев тип, встретился ...". Это просто наследие C++, где проблема актуальна и к ошибке компиляции не приводит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2014, 11:19 |
|
||
|
Чистый код
|
|||
|---|---|---|---|
|
#18+
Basil A. Sidorovalex0211) Код: java 1. 2) Код: java 1. Если забыть один знак равенства, то в первом варианте компилятор сразу скажет, что null-константе нельзя присваивать значения. С моей кочки зрения это чуть понятнее, чем "требуется булев тип, встретился ...". Интересно, какая IDE позволит без ошибки выполнить 2й вариант.. Если мы говорим о Java ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2014, 13:14 |
|
||
|
Чистый код
|
|||
|---|---|---|---|
|
#18+
Оу, извиняюсь, не так прочитал сообщение, все верно, но в любом случае будет ошибка ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2014, 13:15 |
|
||
|
Чистый код
|
|||
|---|---|---|---|
|
#18+
Cpt. GrayОу, извиняюсь, не так прочитал сообщение, все верно, но в любом случае будет ошибка интересно, где же там ошибка :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2014, 13:49 |
|
||
|
Чистый код
|
|||
|---|---|---|---|
|
#18+
rema174Cpt. GrayОу, извиняюсь, не так прочитал сообщение, все верно, но в любом случае будет ошибка интересно, где же там ошибка :) {...} ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2014, 13:52 |
|
||
|
Чистый код
|
|||
|---|---|---|---|
|
#18+
no56892rema174пропущено... интересно, где же там ошибка :) {...} тогда почему в первом случае не будет ошибки :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2014, 13:55 |
|
||
|
Чистый код
|
|||
|---|---|---|---|
|
#18+
Нет, вопрос был в том, что если случайно не поставить один знак "=" if ( null = object ) Выдаст ошибку: null-константе нельзя присваивать значения if ( object = null ) В Джаве тоже выдаст ошибку: ожидалось boolean, а получили ссылку на объект который не приводиться к boolean, хотя в некоторых языках может и не выдать ошибки, а присвоить ссылке на объект null значение и пойти себе работать дальше ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2014, 13:57 |
|
||
|
Чистый код
|
|||
|---|---|---|---|
|
#18+
rema174no56892пропущено... {...} тогда почему в первом случае не будет ошибки :) А автор и не говорил ( 16827577 ) что в первом случае не будет ошибки. Он решил разобрать только второй.) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2014, 14:06 |
|
||
|
Чистый код
|
|||
|---|---|---|---|
|
#18+
Cpt. Gray, во втором случае будет NPE в рантайме, при компиляции всё ок. Код: java 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2014, 14:06 |
|
||
|
Чистый код
|
|||
|---|---|---|---|
|
#18+
Cpt. GrayНет, вопрос был в том, что если случайно не поставить один знак "=" тогда нужно было рассмотреть еще случаи, если поставить лишний символ или забыть скобочку, или еще одну скобочку, и прочее множество вариантов "если" )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2014, 14:12 |
|
||
|
Чистый код
|
|||
|---|---|---|---|
|
#18+
Вот такой вот паттерн часто встречаю у своих разрабов. Код: java 1. 2. 3. 4. 5. 6. 7. 8. Думаю о смене парадигмы. Но еще не накопил аргументов в пользу. Может пора подойти ближе к XPath/XML, или Lisp/AST. Вобщем нужно "нечто" прозрачное по отношению к обработке NPE. ПО аналогии с Ораклом. Если есть NULL то нет процессинга но и ошибки тоже нет. NULL по сути означает не wild-объект и не неинициализированный а просто молчаливый игнор. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2014, 14:50 |
|
||
|
Чистый код
|
|||
|---|---|---|---|
|
#18+
maytonВот такой вот паттерн часто встречаю у своих разрабов. Бич Java и торопливых кодеров. null значение надо отсекать ближе к источнику, а не в месте применения. maytonДумаю о смене парадигмы. Но еще не накопил аргументов в пользу. Может пора подойти ближе к XPath/XML, или Lisp/AST. Вобщем нужно "нечто" прозрачное по отношению к обработке NPE. ПО аналогии с Ораклом. Если есть NULL то нет процессинга но и ошибки тоже нет. NULL по сути означает не wild-объект и не неинициализированный а просто молчаливый игнор. Java 8/Guava Optional. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2014, 14:53 |
|
||
|
Чистый код
|
|||
|---|---|---|---|
|
#18+
mayton, try-catch(NPE ex){} ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2014, 14:54 |
|
||
|
Чистый код
|
|||
|---|---|---|---|
|
#18+
BlazkowiczJava 8/Guava Optional. Ок. Спасибо. Почитаю. Да там вобщем 90% - сущности Axis. Сгенерированные wsdl2java. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2014, 14:56 |
|
||
|
Чистый код
|
|||
|---|---|---|---|
|
#18+
no56892mayton, try-catch(NPE ex){} ? Мы думали о перформансе. Почему-то считали что такая проверка "стоит дешевле" с точки зрения мегафлопов CPU. Хотя никто до бенчмарков не дошёл. На вход логике довольно часто летят частично-пустые объекты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2014, 14:57 |
|
||
|
Чистый код
|
|||
|---|---|---|---|
|
#18+
maytonДа там вобщем 90% - сущности Axis. Сгенерированные wsdl2java. Инертность в Java очень сильная, к сожалению. Генерикам уже больше 10 лет, а до сих пор не во все API интегрированы. Поэтому ожидать фреймверков с поддержкой лямбд и Optional в скором времени не приходится. Проще генератор пропатчить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2014, 15:00 |
|
||
|
Чистый код
|
|||
|---|---|---|---|
|
#18+
maytontry-catch(NPE ex){} ? Мы думали о перформансе. Почему-то считали что такая проверка "стоит дешевле" с точки зрения мегафлопов CPU. Хотя никто до бенчмарков не дошёл. [/quot] Иногда может быть и быстрее. Особенно если stack trace не разворачивать и серверный FastThrow использовать. Видел недавно бенчмарк. Но что-то не могу нагуглить сходу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2014, 15:04 |
|
||
|
Чистый код
|
|||
|---|---|---|---|
|
#18+
А что генератор? Если у него в WSDL описано что атрибут - implied и это чортов атрибут стоит на 10 уровне вложенности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2014, 15:04 |
|
||
|
Чистый код
|
|||
|---|---|---|---|
|
#18+
BlazkowiczИногда может быть и быстрее. Особенно если stack trace не разворачивать и серверный FastThrow использовать. Видел недавно бенчмарк. Но что-то не могу нагуглить сходу. Да бох с ним. Не надо гуглить. Всё равно мы переписывать на catch не будем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2014, 15:05 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38802059&tid=2126290]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
418ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
| others: | 245ms |
| total: | 761ms |

| 0 / 0 |
