- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
толсто. очень.
Иногда ругаются некоторые кодеры ананимусы на CMS, мол она из "говно-кода" сделана. Ну а на моей скромной практике эта CMS работает и не пыхтит.
Вопрос такой: что мне, как пользователю, этот "говно-код"?
Интересно насчет DLE в частности...
Как пользователю - вообще все равно, вы же пользователь, какая разница какой там на сайте код? Работает, и слава богу)
Как владельцу ресурса - в случае если захотите расширить функционал вашего проекта, говнокод станет основной причиной для увеличения сроков и стоимости, т.к. разработчику сначала придется разобраться в говнокоде на что потребуется n-е кол-во времени.
Вопрос такой: что мне, как пользователю, этот "говно-код"? .
Пользователю нет никакого дела. Дело до этого разработчику, которому нужно навесить какую-то свою фичу. Иногда совершенно плевая работа занимает кучу времени из-за невменяемости исходного кода. А иногда код читается как беллетристика - все прозрачно, красиво оформлено, снабжено комментариями и понятно куда что втыкать. Еще лучше когда и в код лезть не надо - есть документированное API. Одна из претензий к DLE по вашей ссылке - как раз к API
Говнокод всё подряд, это норма.
Извините меня, у вас замечательный скрипт, но... :)
Потраченных денег было не жалко. Но использовать было совершенно нереально.
mr.Phoenix, скиньте пример неговнокода, например, на JavaScript, хотя бы 10 летней давности..по возможности вашего.
---------- Post added 24-09-2012 at 22:57 ----------
Поправка, который тогда являлся хорошим кодом и сегодня, а не вызывает тысячу фейспалмов.
Ну вот код (моя правка 1997 года неизвестного источника), который продолжаю использовать и сейчас. Правда не js, а це.
int match (char *pattern, char *str) {
for (; *pattern && *str; ++pattern, str++) {
if (*pattern == '*') {
while (*++pattern == '*');
for (; *str; str++) if (match(pattern, str)) return 1;
break;
} else if (*pattern != '?') {
if (*str != *pattern) return 0;
}
}
return (*pattern == '*') ? 1 : *str == *pattern;
}
Вот еще хороший пример рождения не говнокода. Правда, многабукф.
_vb_,
Ну в статье не совсем ясная оптимизация, проработать так 6-25к строк кода и будет, возможно, лучше но по моему сразу можно писать достаточно хорошо, оптимизация прироста производительности не дает, а читабельность падает - только автор знает каким хитрым способом и от чего он решил отказаться.
Поубирал скобки и говорит так лучше, а мне со скобками лучше везде где они есть или вообще без них как в том же Питоне.
А вот как потом лопатиш такой оптимизированный код где "все лишнее" выпили, так и начинаешь играть в разгадывание ребуса. Хорошо если код маленький, а если его много, начинаются проблемы.
Либо свой так оптимизировать. В скорости я не вижу никаких значительных плюсов, время уходит больше на это все, отладка... да то же самое, если ты сам оптимизировал и может совсем не то же самое, если не ты (т.е. отладка логики работы, потому что отладка остальных ошибок в принципе вообще пофиг какой код). Ценность его за это не повышается для конечного пользователя, время увеличивается на разработку.
Вот приведите пример, чем в практическом смысле это лучше?
Ayavryk, о как говнокодеры возбудились. На воре и шапка горит :D
_vb_,
Ну в статье не совсем ясная оптимизация, проработать так 6-25к строк кода и будет, возможно, лучше но по моему сразу можно писать достаточно хорошо, оптимизация прироста производительности не дает, а читабельность падает - только автор знает каким хитрым способом и от чего он решил отказаться.
Вообще то в отрывке речь о том, что
Если речь о конкретном примере, то для меня разобраться в том, что делает (и как работает) код в варианте 2 гораздо легче, чем в варианте 1.
Ида, обратите внимание на присутствие комментариев в 1 варианте, и их отсутствие во 2. 🚬
Вариант 1.
DWORD WINAPI SecondThread (LPVOID lpwThreadParm) {
BOOL fDone = FALSE;
DWORD dw;
while (!fDone) {
// Wait forever for the mutex to become signaled.
dw = WaitForSingleObject(g_hMutex, INFINITE);
if (dw == WAIT_OBJECT_0) {
// Mutex became signalled.
if (g_nIndex >= MAX_TIMES) {
fDone = TRUE;
} else {
g_nIndex++;
g_dwTimes[g_nIndex - 1] = GetTickCount();
}
// Release the mutex.
ReleaseMutex(g_hMutex);
} else {
// The mutex was abandoned.
break;// Exit the while loop.
}
}
return(0);
}
Вариант 2.
Вот приведите пример, чем в практическом смысле это лучше?
Хороший код значительно сокращает затраты времени на его сопровождение и развитие. Как новым человеком, так и автором спустя полгода-год. Меньше мест, куда при правках можно пристроить источник глюков.
Все зависит от задач, можно код затачивать под определенные условия, а придет "левый" программист и скажет "фу, что за говнокод" и такого наоптимизирует и нафакторизирует, что система начнет еле корячиться. А потом еще скажет "это виноват прошлый программист, он тут столько костылей наставил!" и потребует переписать систему.
И даже если ему разрешат переписать систему и начнет он её переписывать в лучших традициях чистого кода Роберта Мартина, то через определенное количество времени на его место придет другой программист и скажет "фу, что за говнокод". Говнокод - это реальность. Чистый, оптимизированный, понятный, расширяемый код - это фантастика. У каждой задачи свой хороший код. Если примерять этот код на другие задачи, то он станет говнокодом.
По поводу DLE - есть новостной портал музыкальной тематики. Посещаемость 4000 уников/сутки, просмотров до 12000/сутки. Стоит на виртуальном хостинге стоимостью $4/месяц. Свою лицензию окупил уже 100500 раз. Может там и нет MVC и компонентной структуры, но зачем усложнять систему, если она выполняет свою задачу? Всё лучшее враг хорошего.
P.S. Кусочек хорошего листинга в 20 строк - это разговор не о чем, когда проекты состоят из 10 000 строк и более, то этот кусок в 20 строк может выглядеть уже не так выигрышно.
Все зависит от задач, можно код затачивать под определенные условия.
Оно конечно, но можно хотя бы оформлять в соответствии с какими-то общими правилами, снабжать минимальными комментариями где что лежит, давать осмысленные названия. Самый самый минимум. Хотя бы.
Ayavryk, о как говнокодеры возбудились. На воре и шапка горит :D
Вы о себе? Обо мне? О ком?
Если обо мне, напомните при каких обстоятельствах вам приходилось править мой программный код? Я вроде ничего не распространяю ни за деньги ни за бесплатно.
Ayavryk, о твоем дипломированном оппоненте, который не видит разницы между говнокодом и устаревающими технологиями.