Модераторы: LSD, AntonSaburov

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Советы по хорошему стилю, начинающим гурятам от матёрых гурей :) 
:(
    Опции темы
val_vp
Дата 20.6.2007, 11:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 37
Регистрация: 15.11.2006
Где: Днепродзержинск

Репутация: нет
Всего: нет



Прочитал и офигел как много копий ломается о скобки smile
а рекомендации по хорошему стилю уже давно выработаны как общие:
Цитата

есть  Code Conventions for the JavaTM Programming Language написан в далеком 1999 году

и
Дж.Блох Effective Java
так и корпоративные в виде разных Code convension (кстати построенные на sun Code Conventions) и полиси

но и те и другие сходятся в том, что стиль должен обеспечивать код сопровождаемый и читаемый (indents, {}, tabs vs. spaces), и сам стиль предотвращает различные ошибки и неудачности типа: для блока try {…} catch (…) ставь finally; не throws Exception, а кидай че-нибудь вразумительное (Illegalstatement...) и то только когда это ОЧЕНЬ НУЖНО (пример из жизни слышал на програмерской фирме фразу, а мы return-ами уже не пользуемся ма кидаем эксепшны)

Поэтому, ИМХО, советы лучше давать в виде ссылок на эти источники.
можно еще добааить в свете Java5 
не злоупотреблять boxing/unboxing
и использовать generics
PM MAIL WWW   Вверх
batigoal
Дата 20.6.2007, 11:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 24
Всего: 151



Цитата(val_vp @  20.6.2007,  12:12 Найти цитируемый пост)
Прочитал и офигел как много копий ломается о скобки smile
а рекомендации по хорошему стилю уже давно выработаны как общие:

Эти стандарты очень часто переопределяются на уровне организации. И, в частности, пункт о скобках у нас тоже оговорен вразрез с Java Conventions.

Это сообщение отредактировал(а) batigoal - 20.6.2007, 11:30


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
val_vp
Дата 20.6.2007, 11:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 37
Регистрация: 15.11.2006
Где: Днепродзержинск

Репутация: нет
Всего: нет



batigoal, дык проблема хорошего стиля это не столько indents и скобки (это просто плагином устанавливается раз написанным -- я тоже "дома" всю интенданцию табуляцией делаю на фирме 4 пробела) сколько делать его читаемым, сопровождаемым и "с защитой от глупых ошибок".
Да вот пример прям рядом как сделать код несопровождаемым:
http://forum.vingrad.ru/forum/topic-159672.html
dB = (float) (Math.log(value==0.0?0.0001:value)/Math.log(10.0)*20.0);
PM MAIL WWW   Вверх
_Y_
Дата 20.6.2007, 11:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1651
Регистрация: 27.11.2006

Репутация: 5
Всего: 34



Цитата(niasilil @ 18.6.2007,  19:40)
Для eclipse есть очень Checkstyle плагин

Не могли бы Вы чуть больше о нем рассказать?

И еще. Здесь много говорится о скобках и числе строчек кода в них. Гуру, выскажите свое мнение об операторах, занимающих несколько строчек.


--------------------
Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:)
PM MAIL WWW   Вверх
batigoal
Дата 20.6.2007, 12:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 24
Всего: 151



Есть еще, кстати, Jalopy, тоже неплохая вещь.


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
nornad
Дата 20.6.2007, 14:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1079
Регистрация: 16.2.2007
Где: в Караганде

Репутация: 16
Всего: 31



Цитата(val_vp @  20.6.2007,  14:12 Найти цитируемый пост)
можно еще добааить в свете Java5 
не злоупотреблять boxing/unboxing

Ну, не знаю, насколько это актуально. В 5-ой и 6-ой жабе автобоксинг - вполне нормальная штука и делать явное приведение, имхо, глупо. Посему хотелось бы узнать - зачем?


--------------------
Три достоинства программиста: Леность, Нетерпение и Гордость
Ларри Уолл
PM MAIL WWW ICQ Skype MSN   Вверх
LSD
Дата 20.6.2007, 14:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 210
Всего: 538



Всем любителям выносить все в константы рекомендую почитать эту статейку smile


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
fixxer
Дата 20.6.2007, 14:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 672
Регистрация: 14.9.2006
Где: Саратов, Россия

Репутация: 6
Всего: 27



Цитата(nornad @ 20.6.2007,  14:26)
Цитата(val_vp @  20.6.2007,  14:12 Найти цитируемый пост)
можно еще добааить в свете Java5 
не злоупотреблять boxing/unboxing

Ну, не знаю, насколько это актуально. В 5-ой и 6-ой жабе автобоксинг - вполне нормальная штука и делать явное приведение, имхо, глупо. Посему хотелось бы узнать - зачем?

Код

List<Integer> list = new ArrayList<Integer>();
list.add(3);
list.add(2);
list.add(1);
list.remove(1); //Внимание!


Вы можете на вскидку сказать, что удалиться из списка, второй элемент или Integer со значанием 1?

Это сообщение отредактировал(а) fixxer - 20.6.2007, 15:04


--------------------
user posted image
PM MAIL ICQ   Вверх
LSD
Дата 20.6.2007, 14:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 210
Всего: 538



Цитата(nornad @  20.6.2007,  15:26 Найти цитируемый пост)
Ну, не знаю, насколько это актуально. В 5-ой и 6-ой жабе автобоксинг - вполне нормальная штука и делать явное приведение, имхо, глупо. Посему хотелось бы узнать - зачем?

Вопрос не в явном приведении, а в том что вообще boxing/unboxing снижает производительность. А автобоксинг к тому же, еще маскирует от программиста опастность возникновения NullPointerException.

Добавлено через 2 минуты и 18 секунд
Цитата(fixxer @  20.6.2007,  15:31 Найти цитируемый пост)
Вы можете на вскидку сказать, что удалиться из списка, первый элемент или Integer со значанием 1?

Я смог smile


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
nornad
Дата 20.6.2007, 15:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1079
Регистрация: 16.2.2007
Где: в Караганде

Репутация: 16
Всего: 31



Цитата(fixxer @  20.6.2007,  17:31 Найти цитируемый пост)

Вы можете на вскидку сказать, что удалиться из списка, второй элемент или Integer со значанием 1?

Насколько я понимаю, тут удаление должно идти по индексу.  smile 


--------------------
Три достоинства программиста: Леность, Нетерпение и Гордость
Ларри Уолл
PM MAIL WWW ICQ Skype MSN   Вверх
niasilil
Дата 22.6.2007, 02:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 325
Регистрация: 4.6.2007
Где: USA

Репутация: 8
Всего: 9



Цитата(_Y_ @ 20.6.2007,  11:59)
Цитата(niasilil @ 18.6.2007,  19:40)
Для eclipse есть очень хороший Checkstyle плагин

Не могли бы Вы чуть больше о нем рассказать?

Много не расскажешь. Он предлагает вставлять комментарии где надо, подмечает где скобка не на том месте, предлагает переделать входные параметры в final. Достаточно много настроек, можно под себя построить то что не надо высвечивать. Вобщем, после него код очень красиво смотрится. 
Вот скачай и попробуй. Ах да, бесплатный. 
http://eclipse-cs.sourceforge.net/



--------------------
SCJP 5.0, SCJD
PM MAIL   Вверх
Entry_N3
  Дата 22.6.2007, 22:21 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 446
Регистрация: 8.2.2007

Репутация: нет
Всего: нет



Предлагаю идти от противного: "как писать нечитаемый код (гарантированная работа на всю жизнь ;-)"  smile 

P.S. Только не надо писать что-то вроде "Из того, что на улице нет дождя, вовсе не следует, что на улице светит солнце". Это и так ясно.  smile 
PM MAIL   Вверх
Samotnik
Дата 22.6.2007, 23:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: 8
Всего: 191



2 LSD  Извиняюсь за offtop, просто новую тему глупо создавать!! 
 Хотел узнать, а что означает эксепшн NullPointerException ?  У меня он выскакивает, но все работает!!
PM MAIL   Вверх
Entry_N3
  Дата 23.6.2007, 00:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 446
Регистрация: 8.2.2007

Репутация: нет
Всего: нет



Samotnik
Thrown when an application attempts to use null in a case where an object is required. These include:
*Calling the instance method of a null object.
*Accessing or modifying the field of a null object.
*Taking the length of null as if it were an array.
*Accessing or modifying the slots of null as if it were an array.
*Throwing null as if it were a Throwable value.
Applications should throw instances of this class to indicate other illegal uses of the null object.

user posted image

Шучу, по себе знаю, что иногда лучше спросить, чем самому искать ответ  smile 
PM MAIL   Вверх
Samotnik
Дата 23.6.2007, 00:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: 8
Всего: 191



Entry_N3     smile    Пасибо!  
PM MAIL   Вверх
Страницы: (4) Все 1 2 [3] 4 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0967 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.