Страница 2 из 3

Re: Русский и индуский код

Добавлено: 29 сен 2008, 10:31
tasko
Marmot писал(а): Код искать полезно и нужно, но при этом важное умение вырезать из него то, что надо и , не сломав, вставить в свой кусок :)
Код из инета - это руководство к действию, технологический путь.

Re: Русский и индуский код

Добавлено: 29 сен 2008, 11:24
Mel'nik
Пока читал про русский код, вот что в канадском нашел :-) и такое непервый раз.
Формат автора сохранен:
if (msg.trim().equals("")) {
} else if (msg.indexOf("and") >= 0) {
//NOTHING
} else {
//NOTHING
}

Re: Русский и индуский код

Добавлено: 29 сен 2008, 11:26
Stanislav
Mel'nik писал(а):Пока читал про русский код, вот что в канадском нашел :-) и такое непервый раз.
Формат автора сохранен:
if (msg.trim().equals("")) {
} else if (msg.indexOf("and") >= 0) {
//NOTHING
} else {
//NOTHING
}
Явно челу пришла в голову какая то мысль, но потом внезапно ушла... и не вернулась :D

Re: Русский и индуский код

Добавлено: 29 сен 2008, 11:34
Marmot
Mel'nik писал(а):Пока читал про русский код, вот что в канадском нашел :-) и такое непервый раз.
Формат автора сохранен:
if (msg.trim().equals("")) {
} else if (msg.indexOf("and") >= 0) {
//NOTHING
} else {
//NOTHING
}
Ну, если честно у мня тоже такое бывает, после нескольких недель тяжелого дебаггинга, как правило в пустых местах раньше был всякий debug output, инкреминтивование всяких counters и прочая лабуда. Потом лабуда сносится, а if-ы остаются с мыслей их потом еще для чего нибудь поюзать, а потом про это забывается, так и остается висеть всякая хня...
Я даже могу предположить что делал этот фрагмент кода :), у меня похожие обычно остаются в Java-ских catch-ах, а msg из Exception-a. :)
Тем более, что с точки зрения производительности, даже в самом худшем варианте оно ничего плохого не сделает, а лучшем случае Hotspot все это нафиг соптимизирует...

Re: Русский и индуский код

Добавлено: 29 сен 2008, 11:50
Mel'nik
Ето да, и на старухy, как говорится бывает проруха, но неужто сложно было написать хотябы так
if (msg.trim().equals(""))
{
}
else if (msg.indexOf("and") >= 0)
{
//NOTHING
}
else
{
//NOTHING
}
и все встало бы на свои места. До сих пор благодарен своему канадскому преподу по яве за то что по "пальцам линейкой" учил так делат'

Re: Русский и индуский код

Добавлено: 29 сен 2008, 11:56
Marmot
Mel'nik писал(а):Ето да, и на старухy, как говорится бывает проруха, но неужто сложно было написать хотябы так
if (msg.trim().equals(""))
{
}
else if (msg.indexOf("and") >= 0)
{
//NOTHING
}
else
{
//NOTHING
}
и все встало бы на свои места. До сих пор благодарен своему канадскому преподу по яве за то что по "пальцам линейкой" учил так делат'
чего-чего, вам форматирование что-ли не нравится? А вы сорсы JDK когда-нубудь читали?
Я форматирую именно так, как было в оригинале, так же как и асбсолютное большинство Java программеров...

Re: Русский и индуский код

Добавлено: 29 сен 2008, 11:58
sz
Marmot писал(а):
Mel'nik писал(а):
if (msg.trim().equals("")) {
} else if (msg.indexOf("and") >= 0) {
//NOTHING
} else {
//NOTHING
}
Ну, если честно у мня тоже такое бывает, после нескольких недель тяжелого дебаггинга, как правило в пустых местах раньше был всякий debug output
Вообще-то, весьма небезобидная штука. Проблема в том, что оптимизатор не сможет этот вызов выкинуть. Он ведь не знает side effects. Если бы было:
if (i==0) { ...}
else if (i == 1) { //nothing }
else if (i > 10) { //nothing }
Оптимизатор бы разобрался и почикал две проверки. А когда вызов функций стоит, он обязан их все таки вызывать.
А тут не просто вызов, а еще и с циклом внутри. indexOf же с очевидностью цикл крутит.

Re: Русский и индуский код

Добавлено: 29 сен 2008, 12:06
Marmot
sz писал(а): Вообще-то, весьма небезобидная штука. Проблема в том, что оптимизатор не сможет этот вызов выкинуть. Он ведь не знает side effects. Если бы было:
if (i==0) { ...}
else if (i == 1) { //nothing }
else if (i > 10) { //nothing }
Оптимизатор бы разобрался и почикал две проверки. А когда вызов функций стоит, он обязан их все таки вызывать.
А тут не просто вызов, а еще и с циклом внутри. indexOf же с очевидностью цикл крутит.
В общем случае да, но из текста с вероятностью 99.9999% видно что msg это java.lang.String, а про этот класс оптимизатор все очень хорошо знает, в том числе и то что все его методы не имееют side effects. String это один из самых заоптимизириванных классов, круче него только Unsafe, все методы которого прямо инлайнятся в ассемблерные последовательности написанные вручную для каждого типа CPU :)

Re: Русский и индуский код

Добавлено: 29 сен 2008, 12:07
Mel'nik
Marmot писал(а):
Mel'nik писал(а):Ето да, и на старухy, как говорится бывает проруха, но неужто сложно было написать хотябы так
if (msg.trim().equals(""))
{
}
else if (msg.indexOf("and") >= 0)
{
//NOTHING
}
else
{
//NOTHING
}
и все встало бы на свои места. До сих пор благодарен своему канадскому преподу по яве за то что по "пальцам линейкой" учил так делат'
чего-чего, вам форматирование что-ли не нравится? А вы сорсы JDK когда-нубудь читали?
Я форматирую именно так, как было в оригинале, так же как и асбсолютное большинство Java программеров...
Y меня опыта просто недостаточно, ето просто маленький пример наболевшего :-)

Re: Русский и индуский код

Добавлено: 29 сен 2008, 12:13
Marmot
Mel'nik писал(а):Y меня опыта просто недостаточно, ето просто маленький пример наболевшего :-)
Хмм, ну вот когда ты на Java попишешь 13 лет, вот тогда и начинай ругаться, я за это время наделал столько всего, типа вот этого, что теперь всегда сначала пытаюсь понять глубинный смысл кажущейся глупости. Хотя, если честно, в том коде, с которым мне приходится работать настоящих глупостей мало, почти совсем нету :)

Re: Русский и индуский код

Добавлено: 29 сен 2008, 12:30
sz
Marmot писал(а):Ну да, любим мы на чужим кодом поприкалываться, а сами-то мы что пишем, давайте покаемся :)
Да, не знаю.. Случается, конечно, глупостей наделать. Но такого, чтобы на постоянной основе - не знаю. А если бы знал, стал бы делать по другому.
Пожалуй, мой главный недостаток - лень. Кода пишу мало. Но то, что пишу, мне самому, в принципе, нравится.

Кодинг стандарт меняю часто. Если взять мой код пятилетней давности, он совсем по другому отформатирован. Я сейчас вообще полюбил по coding guidelines (есть у нас на фирме такой документ) писать. По большому счету, мне все равно, как форматировать, а тут, во всяком случае, стандартно - не подкопаешься.

По недостаткам.. Ну интерфейс класса иногда делаю перегруженным. Слишком много функций, некоторые можно бы и вынести из класса, как это сейчас считается правильным и кошерным. Но я ленюсь.

Еще очень люблю в чистый интерфейс насовать данных и имплементаций. Но это я, как раз, считаю разумным во многих случаях. Даже собирался у себя в лайф журнале растечься мыслью на эту тему. Но, опять же, ленюсь пока.
Marmot писал(а):Я, например, грешу следующим образом
- no comments, практически, только в самых запутанных местах :), хотя имена идентифицаторов достаточно информативны, например checkConnectionValidRestoreIfNot(Connection conn, int numberOfTries, int timeoutMs);
Нынче есть масса теоретиков, которые считают, что так и надо писать.
Что коммент нужен только в нетривиальном случае.
Во всяком случае, вот такие комменты, действительно, никому нафиг не нужны:
// Calculates the checksum.
// data - the data
// size - data size
// returns - the checksum
int CalculateChecksum( const void* data, int size )

Так что, пойнт есть. Другое дело, что вооружившись этим лозунгом люди вообще перестают комментировать.
Marmot писал(а):- люблю я покопипастить фрагменты собственного кода, вместо того что бы всякие фреймворки городить :)
Это по моему из серии:
- Назовите ваш главный недостаток.
- Да вот, чрезмерно увлекаюсь работой. Прямо вот сижу и оторваться не могу. Надо бы отдыхать больше, но вот такой у меня недостаток.

Это же хорошо - не городить фреймворки :)

Re: Русский и индуский код

Добавлено: 29 сен 2008, 12:36
Marmot
sz писал(а):Это же хорошо - не городить фреймворки :)
Может и хорошо, но не модно, типа как в телогрейке и валенках в театр прийти
Ах да, ненавижу неустаревающую моду на design patterns, когда их суют куда попало, а потом гордо хвастаются, что у них весть код насквозь ими пропитан. И на тебя презрительно смотрят, когда ты не говоришь тоже самое :)

Re: Русский и индуский код

Добавлено: 29 сен 2008, 12:40
Stanislav
Marmot писал(а):
sz писал(а):Это же хорошо - не городить фреймворки :)
Может и хорошо, но не модно, типа как в телогрейке и валенках в театр прийти
Ах да, ненавижу неустаревающую моду на design patterns, когда их суют куда попало, а потом гордо хвастаются, что у них весть код насквозь ими пропитан. И на тебя презрительно смотрят, когда ты не говоришь тоже самое :)
Да-да, и еще мне тот же самый чел, о котором я писал выше, подарил мне книжку про эти самые design patterns и напутствовал - учи Стасик! :D

Re: Русский и индуский код

Добавлено: 29 сен 2008, 12:42
Marmot
Stanislav писал(а):
Marmot писал(а):
sz писал(а):Это же хорошо - не городить фреймворки :)
Может и хорошо, но не модно, типа как в телогрейке и валенках в театр прийти
Ах да, ненавижу неустаревающую моду на design patterns, когда их суют куда попало, а потом гордо хвастаются, что у них весть код насквозь ими пропитан. И на тебя презрительно смотрят, когда ты не говоришь тоже самое :)
Да-да, и еще мне тот же самый чел, о котором я писал выше, подарил мне книжку про эти самые design patterns и напутствовал - учи Стасик! :D
Правильно это человек сделал, он то уж наверное на интервью в телогрейке ходит, а Стасику надо по моде одеваться :)

Re: Русский и индуский код

Добавлено: 29 сен 2008, 12:44
Stanislav
Marmot писал(а):
Stanislav писал(а):
Marmot писал(а):
sz писал(а):Это же хорошо - не городить фреймворки :)
Может и хорошо, но не модно, типа как в телогрейке и валенках в театр прийти
Ах да, ненавижу неустаревающую моду на design patterns, когда их суют куда попало, а потом гордо хвастаются, что у них весть код насквозь ими пропитан. И на тебя презрительно смотрят, когда ты не говоришь тоже самое :)
Да-да, и еще мне тот же самый чел, о котором я писал выше, подарил мне книжку про эти самые design patterns и напутствовал - учи Стасик! :D
Правильно это человек сделал, он то уж наверное на интервью в телогрейке ходит, а Стасику надо по моде одеваться :)
бе-бе-бе-бе-бе-бе-бееееее =P~