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

Все, что вы хотели знать о программизме, но боялись спросить.
tasko
Графоман
Сообщения: 18705
Зарегистрирован: 20 июл 2003, 09:16
Откуда: Торонто

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

Сообщение tasko »

Marmot писал(а): Код искать полезно и нужно, но при этом важное умение вырезать из него то, что надо и , не сломав, вставить в свой кусок :)
Код из инета - это руководство к действию, технологический путь.
Аватара пользователя
Mel'nik
Завсегдатай
Сообщения: 407
Зарегистрирован: 22 май 2007, 19:09
Откуда: Burnaby

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

Сообщение Mel'nik »

Пока читал про русский код, вот что в канадском нашел :-) и такое непервый раз.
Формат автора сохранен:
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: Русский и индуский код

Сообщение Stanislav »

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

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

Сообщение 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 все это нафиг соптимизирует...
Аватара пользователя
Mel'nik
Завсегдатай
Сообщения: 407
Зарегистрирован: 22 май 2007, 19:09
Откуда: Burnaby

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

Сообщение Mel'nik »

Ето да, и на старухy, как говорится бывает проруха, но неужто сложно было написать хотябы так
if (msg.trim().equals(""))
{
}
else if (msg.indexOf("and") >= 0)
{
//NOTHING
}
else
{
//NOTHING
}
и все встало бы на свои места. До сих пор благодарен своему канадскому преподу по яве за то что по "пальцам линейкой" учил так делат'
Аватара пользователя
Marmot
Графоман
Сообщения: 39283
Зарегистрирован: 17 фев 2003, 17:58
Откуда: Caulfeild
Контактная информация:

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

Сообщение Marmot »

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

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

Сообщение 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 же с очевидностью цикл крутит.
Аватара пользователя
Marmot
Графоман
Сообщения: 39283
Зарегистрирован: 17 фев 2003, 17:58
Откуда: Caulfeild
Контактная информация:

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

Сообщение 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 :)
Аватара пользователя
Mel'nik
Завсегдатай
Сообщения: 407
Зарегистрирован: 22 май 2007, 19:09
Откуда: Burnaby

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

Сообщение Mel'nik »

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

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

Сообщение Marmot »

Mel'nik писал(а):Y меня опыта просто недостаточно, ето просто маленький пример наболевшего :-)
Хмм, ну вот когда ты на Java попишешь 13 лет, вот тогда и начинай ругаться, я за это время наделал столько всего, типа вот этого, что теперь всегда сначала пытаюсь понять глубинный смысл кажущейся глупости. Хотя, если честно, в том коде, с которым мне приходится работать настоящих глупостей мало, почти совсем нету :)
Аватара пользователя
sz
Маньяк
Сообщения: 1266
Зарегистрирован: 17 фев 2003, 19:34

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

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

Это же хорошо - не городить фреймворки :)
Аватара пользователя
Marmot
Графоман
Сообщения: 39283
Зарегистрирован: 17 фев 2003, 17:58
Откуда: Caulfeild
Контактная информация:

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

Сообщение Marmot »

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

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

Сообщение Stanislav »

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

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

Сообщение Marmot »

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

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

Сообщение Stanislav »

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