Код из инета - это руководство к действию, технологический путь.Marmot писал(а): Код искать полезно и нужно, но при этом важное умение вырезать из него то, что надо и , не сломав, вставить в свой кусок :)
Русский и индуский код
Правила форума
Пожалуйста, ознакомьтесь с правилами данного форума
Пожалуйста, ознакомьтесь с правилами данного форума
-
- Графоман
- Сообщения: 18705
- Зарегистрирован: 20 июл 2003, 09:16
- Откуда: Торонто
Re: Русский и индуский код
- Mel'nik
- Завсегдатай
- Сообщения: 407
- Зарегистрирован: 22 май 2007, 19:09
- Откуда: Burnaby
Re: Русский и индуский код
Пока читал про русский код, вот что в канадском нашел
и такое непервый раз.
Формат автора сохранен:

Формат автора сохранен:
if (msg.trim().equals("")) {
} else if (msg.indexOf("and") >= 0) {
//NOTHING
} else {
//NOTHING
}
- Stanislav
- Mr. Minority Report
- Сообщения: 45281
- Зарегистрирован: 19 окт 2005, 16:33
- Откуда: Moscow - Richmond - New Wesт - Burnaby - PoCo
Re: Русский и индуский код
Явно челу пришла в голову какая то мысль, но потом внезапно ушла... и не вернуласьMel'nik писал(а):Пока читал про русский код, вот что в канадском нашели такое непервый раз.
Формат автора сохранен:if (msg.trim().equals("")) {
} else if (msg.indexOf("and") >= 0) {
//NOTHING
} else {
//NOTHING
}

- Marmot
- Графоман
- Сообщения: 39283
- Зарегистрирован: 17 фев 2003, 17:58
- Откуда: Caulfeild
- Контактная информация:
Re: Русский и индуский код
Ну, если честно у мня тоже такое бывает, после нескольких недель тяжелого дебаггинга, как правило в пустых местах раньше был всякий debug output, инкреминтивование всяких counters и прочая лабуда. Потом лабуда сносится, а if-ы остаются с мыслей их потом еще для чего нибудь поюзать, а потом про это забывается, так и остается висеть всякая хня...Mel'nik писал(а):Пока читал про русский код, вот что в канадском нашели такое непервый раз.
Формат автора сохранен:if (msg.trim().equals("")) {
} else if (msg.indexOf("and") >= 0) {
//NOTHING
} else {
//NOTHING
}
Я даже могу предположить что делал этот фрагмент кода


Тем более, что с точки зрения производительности, даже в самом худшем варианте оно ничего плохого не сделает, а лучшем случае Hotspot все это нафиг соптимизирует...
- Mel'nik
- Завсегдатай
- Сообщения: 407
- Зарегистрирован: 22 май 2007, 19:09
- Откуда: Burnaby
Re: Русский и индуский код
Ето да, и на старухy, как говорится бывает проруха, но неужто сложно было написать хотябы так
и все встало бы на свои места. До сих пор благодарен своему канадскому преподу по яве за то что по "пальцам линейкой" учил так делат'if (msg.trim().equals(""))
{
}
else if (msg.indexOf("and") >= 0)
{
//NOTHING
}
else
{
//NOTHING
}
- Marmot
- Графоман
- Сообщения: 39283
- Зарегистрирован: 17 фев 2003, 17:58
- Откуда: Caulfeild
- Контактная информация:
Re: Русский и индуский код
чего-чего, вам форматирование что-ли не нравится? А вы сорсы JDK когда-нубудь читали?Mel'nik писал(а):Ето да, и на старухy, как говорится бывает проруха, но неужто сложно было написать хотябы таки все встало бы на свои места. До сих пор благодарен своему канадскому преподу по яве за то что по "пальцам линейкой" учил так делат'if (msg.trim().equals(""))
{
}
else if (msg.indexOf("and") >= 0)
{
//NOTHING
}
else
{
//NOTHING
}
Я форматирую именно так, как было в оригинале, так же как и асбсолютное большинство Java программеров...
- sz
- Маньяк
- Сообщения: 1266
- Зарегистрирован: 17 фев 2003, 19:34
Re: Русский и индуский код
Вообще-то, весьма небезобидная штука. Проблема в том, что оптимизатор не сможет этот вызов выкинуть. Он ведь не знает side effects. Если бы было:Marmot писал(а):Ну, если честно у мня тоже такое бывает, после нескольких недель тяжелого дебаггинга, как правило в пустых местах раньше был всякий debug outputMel'nik писал(а):if (msg.trim().equals("")) {
} else if (msg.indexOf("and") >= 0) {
//NOTHING
} else {
//NOTHING
}
if (i==0) { ...}
else if (i == 1) { //nothing }
else if (i > 10) { //nothing }
Оптимизатор бы разобрался и почикал две проверки. А когда вызов функций стоит, он обязан их все таки вызывать.
А тут не просто вызов, а еще и с циклом внутри. indexOf же с очевидностью цикл крутит.
- Marmot
- Графоман
- Сообщения: 39283
- Зарегистрирован: 17 фев 2003, 17:58
- Откуда: Caulfeild
- Контактная информация:
Re: Русский и индуский код
В общем случае да, но из текста с вероятностью 99.9999% видно что msg это java.lang.String, а про этот класс оптимизатор все очень хорошо знает, в том числе и то что все его методы не имееют side effects. String это один из самых заоптимизириванных классов, круче него только Unsafe, все методы которого прямо инлайнятся в ассемблерные последовательности написанные вручную для каждого типа CPUsz писал(а): Вообще-то, весьма небезобидная штука. Проблема в том, что оптимизатор не сможет этот вызов выкинуть. Он ведь не знает side effects. Если бы было:
if (i==0) { ...}
else if (i == 1) { //nothing }
else if (i > 10) { //nothing }
Оптимизатор бы разобрался и почикал две проверки. А когда вызов функций стоит, он обязан их все таки вызывать.
А тут не просто вызов, а еще и с циклом внутри. indexOf же с очевидностью цикл крутит.

- Mel'nik
- Завсегдатай
- Сообщения: 407
- Зарегистрирован: 22 май 2007, 19:09
- Откуда: Burnaby
Re: Русский и индуский код
Y меня опыта просто недостаточно, ето просто маленький пример наболевшегоMarmot писал(а):чего-чего, вам форматирование что-ли не нравится? А вы сорсы JDK когда-нубудь читали?Mel'nik писал(а):Ето да, и на старухy, как говорится бывает проруха, но неужто сложно было написать хотябы таки все встало бы на свои места. До сих пор благодарен своему канадскому преподу по яве за то что по "пальцам линейкой" учил так делат'if (msg.trim().equals(""))
{
}
else if (msg.indexOf("and") >= 0)
{
//NOTHING
}
else
{
//NOTHING
}
Я форматирую именно так, как было в оригинале, так же как и асбсолютное большинство Java программеров...

- Marmot
- Графоман
- Сообщения: 39283
- Зарегистрирован: 17 фев 2003, 17:58
- Откуда: Caulfeild
- Контактная информация:
Re: Русский и индуский код
Хмм, ну вот когда ты на Java попишешь 13 лет, вот тогда и начинай ругаться, я за это время наделал столько всего, типа вот этого, что теперь всегда сначала пытаюсь понять глубинный смысл кажущейся глупости. Хотя, если честно, в том коде, с которым мне приходится работать настоящих глупостей мало, почти совсем нетуMel'nik писал(а):Y меня опыта просто недостаточно, ето просто маленький пример наболевшего

- sz
- Маньяк
- Сообщения: 1266
- Зарегистрирован: 17 фев 2003, 19:34
Re: Русский и индуский код
Да, не знаю.. Случается, конечно, глупостей наделать. Но такого, чтобы на постоянной основе - не знаю. А если бы знал, стал бы делать по другому.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 писал(а):- люблю я покопипастить фрагменты собственного кода, вместо того что бы всякие фреймворки городить
- Назовите ваш главный недостаток.
- Да вот, чрезмерно увлекаюсь работой. Прямо вот сижу и оторваться не могу. Надо бы отдыхать больше, но вот такой у меня недостаток.
Это же хорошо - не городить фреймворки

- Marmot
- Графоман
- Сообщения: 39283
- Зарегистрирован: 17 фев 2003, 17:58
- Откуда: Caulfeild
- Контактная информация:
Re: Русский и индуский код
Может и хорошо, но не модно, типа как в телогрейке и валенках в театр прийтиsz писал(а):Это же хорошо - не городить фреймворки
Ах да, ненавижу неустаревающую моду на design patterns, когда их суют куда попало, а потом гордо хвастаются, что у них весть код насквозь ими пропитан. И на тебя презрительно смотрят, когда ты не говоришь тоже самое

- Stanislav
- Mr. Minority Report
- Сообщения: 45281
- Зарегистрирован: 19 окт 2005, 16:33
- Откуда: Moscow - Richmond - New Wesт - Burnaby - PoCo
Re: Русский и индуский код
Да-да, и еще мне тот же самый чел, о котором я писал выше, подарил мне книжку про эти самые design patterns и напутствовал - учи Стасик!Marmot писал(а):Может и хорошо, но не модно, типа как в телогрейке и валенках в театр прийтиsz писал(а):Это же хорошо - не городить фреймворки
Ах да, ненавижу неустаревающую моду на design patterns, когда их суют куда попало, а потом гордо хвастаются, что у них весть код насквозь ими пропитан. И на тебя презрительно смотрят, когда ты не говоришь тоже самое

- Marmot
- Графоман
- Сообщения: 39283
- Зарегистрирован: 17 фев 2003, 17:58
- Откуда: Caulfeild
- Контактная информация:
Re: Русский и индуский код
Правильно это человек сделал, он то уж наверное на интервью в телогрейке ходит, а Стасику надо по моде одеватьсяStanislav писал(а):Да-да, и еще мне тот же самый чел, о котором я писал выше, подарил мне книжку про эти самые design patterns и напутствовал - учи Стасик!Marmot писал(а):Может и хорошо, но не модно, типа как в телогрейке и валенках в театр прийтиsz писал(а):Это же хорошо - не городить фреймворки
Ах да, ненавижу неустаревающую моду на design patterns, когда их суют куда попало, а потом гордо хвастаются, что у них весть код насквозь ими пропитан. И на тебя презрительно смотрят, когда ты не говоришь тоже самое

- Stanislav
- Mr. Minority Report
- Сообщения: 45281
- Зарегистрирован: 19 окт 2005, 16:33
- Откуда: Moscow - Richmond - New Wesт - Burnaby - PoCo
Re: Русский и индуский код
бе-бе-бе-бе-бе-бе-бееееееMarmot писал(а):Правильно это человек сделал, он то уж наверное на интервью в телогрейке ходит, а Стасику надо по моде одеватьсяStanislav писал(а):Да-да, и еще мне тот же самый чел, о котором я писал выше, подарил мне книжку про эти самые design patterns и напутствовал - учи Стасик!Marmot писал(а):Может и хорошо, но не модно, типа как в телогрейке и валенках в театр прийтиsz писал(а):Это же хорошо - не городить фреймворки
Ах да, ненавижу неустаревающую моду на design patterns, когда их суют куда попало, а потом гордо хвастаются, что у них весть код насквозь ими пропитан. И на тебя презрительно смотрят, когда ты не говоришь тоже самое
