Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Флейм (http://www.flasher.ru/forum/forumdisplay.php?f=53)
-   -   Быдлокод? (http://www.flasher.ru/forum/showthread.php?t=146816)

orcpochta 20.11.2010 18:04

>>но в целом это кажется признаком не очень хорошего стиля.

Можно подробней, чем не угодил стиль в случае, когда в каком-то месте программы надо получить список локаций с одним конкретным статусом (даже если статусов более двух)?

Можно, конечно, предположить, что вам не понравилось, что используется магическая строчка "OPEN", а не статическая константа какого-нибудь класса вроде LocationStatus.OPEN, но при чем же здесь как таковая фильтрация xml с занесением результатов в вектор?

iNils 20.11.2010 18:05

А может и не существует. Может разбор вообще ведется после определенного действия пользователя, которого может и не быть.
Это как с if, в зависимости от числа условий, сложность и вложенность if может быть различной.
Не давно была тема про "?:". Там тоже звучали слова про "читабельность". Вот сейчас у меня в проекте есть список действий в switch, больше десятка. Но в зависимости от дополнительного условия, эти действия могут запускаться с разными числами. Типа
Код AS3:

offset = isFace ? 10 : 8;

И если использовать if else, то все это разрастается в высоту и становится не читабельным. Но в повседневной жизни "?:" не очень удобен.

Здесь так же. Решается конкретная задача и для этой задачи такой вид кода допустим. Будет другая задача, можно будет пересмотреть код. Будет третья, тоже может придется. А еще... можно писать комментарий над строкой.

Кстати, написание regexp тоже смахивает на быдлокодерство, предлагаю разбирать строки вручную с помощью if и indexOf :D

f.g.programmer 20.11.2010 21:29

?: и regexp прекрасно справляются со своими задачами не уменьшая читабельности, а иногда и улучшая, если ими не злоупотребляют, как здесь с фильтром.

Хороший стиль это субъективное понятие, каждый сам выбирает для себя правила (обычно они включают в себя большинство более менее общепринятых).
В целом - это умение писать читабельный предсказуемый код, который не раздражает написавшего и тех, кто его читает.

iNils 20.11.2010 21:34

f.g.programmer, вот и фильтр прекрасно справился со своей задачей )
Хотите увидеть настоящий быдлокод?
Код AS3:

function sample (flag:Boolean) {
        if (flag == true) {
                ///
        }
}


orcpochta 20.11.2010 23:03

В чем здесь быдлостность кода?)))

Bgg 20.11.2010 23:09

Видимо стоит писать так:
Код AS3:

if (flag)
//вместо
if (flag == true)

ах да, наверно ещё не указано что функция возвращает void

iNils 20.11.2010 23:11

Цитата:

Сообщение от orcpochta (Сообщение 951162)
В чем здесь быдлостность кода?)))

Вот Bgg верно заметил :)

i.o. 20.11.2010 23:18

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

Вот это, например, быдлокод. Как думаете, что здесь вычисляется?
Код AS3:

function midVal(X, Y)
{
    return (Math.max(X, Y) - Math.min(X, Y)) / 2 + Math.min(X, Y);
}

Вообще-то среднее арифметическое. Что достаточно было бы записать как 0.5*(X + Y).

orcpochta 20.11.2010 23:54

Цитата:

Сообщение от iNils (Сообщение 951164)
Вот Bgg верно заметил :)

мне кажется это просто хеллоуворлдство, а не быдлокодерство - код-то доступен в своем осмыслении по самое не могу)))

ir73 21.11.2010 00:12

Код AS1/AS2:

function sample (flag:Boolean) {
        if (flag.toString() == "true") {
                ///
        }
}



Часовой пояс GMT +4, время: 18:14.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.