_vb_

_vb_
Рейтинг
104
Регистрация
25.07.2009

А сайт рушный или буржунетский?

zexis:

Рекомендации такие.

Добавил в закладки :)

Vadim89:
А на django есть готовые CMS?

Есть такой проект Pinax, можете на него посмотреть. Но не думаю, что использование готовой сборки оттуда даст сильный профит по сравнению с собственной сборкой с нуля из стандартных джанговых компонентов.

И если будете смотреть в сторону джанго, то в качестве бд советую присмотреться к PostgressSQL. Это изначальная джанговая БД, его еще опенсорсным ораклом называют. Для больших нагрузок он имхо, получше mysql будет.

Segey:
Нет, все таки мне интересно увидеть пример того про что вы говорите т.е. мне бы это было интересно. Джанго хороший пример, но только никак не подходит и за довольно большого кол-ва комментариев

Нет скорее всего такого примера, если говорить о реальных проектах (не примерах). Речь об идеале, а он по определению недостижим. Можно говорить только о степени приближения к идеалу.

Но, повторюсь, недостижимость идеала вовсе не означает того, что к нему не нужно стремиться.

Segey:

Мне вот приходится думать о нескольких разнородных вещах и отсутствие комментариев при какой угодно порядочности кода создают мне проблемы.
...
Я вам больше про то, что экономить время и не делать то что можно не делать по моему лучше

Не могу себе представить, как наличие комментов в коде может помочь определиться в отношении сколько нибудь большого проекта. Пусть те же 20-30К строк кода, из вашего примера. Тут уже играют роль другие вещи - наличие доков, какого то комьюнити и т.п. Даже график чекинов за последние полгода-год имхо больше скажет, если речь об опенсорсе.

Segey:
_vb_,

Ну вам конечно как специалисту без этого понятно, по красоте кода что это значит, если комментарий убрать :)

Речь совсем не о том, чтобы взять произвольный модуль и сразу сказать что и как он делает. Мне трудно представить себе, когда это может понадобится.

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

Я не буду утверждать, что там нет запутанных мест, требующих комментов. Проект все таки достаточно большой. Может, просто повезло оба раза.

Я вам про другое пытаюсь сказать. Комменты в коде в подавляющем большинстве случаев это костыли, подпирающие неряшливый код. Но вам ведь победить надо, да?

Segey:

Ну выше вы привели в пример его как проект где это вообще отсутствует :D Так приведите настоящий, без всяких "оговорок", где дружелюбие в самом коде и там правда не нужны эти пояснения :) А то выходит комьюнити так дружно, что все таки следует нормальным правилам и все документирует как и надо, а не режет :) Они кстати видели как строки то не экономят? Ужас один, вообще не думают об этом

Ну да, судя по кол-ву смайликов, требований и вопросов, вы настоящий интенет-воин и знатный боксер по переписке. Вы меня победили, признаю. Довольны? 🚬

php.developer:
Ввиду того, что на "це" не пишу, не могу не спросить - сильно он изменился за 15 лет?

Нет, не менялся.

Segey:
multipartparser.py

Вы его вообще видели?

Видел, видел :)

Докстринги - это способ генерации документации. А комменты в коде - это дружелюбие джанговского комьюнити. Если их убрать, код останется таким же ясным. Попробуйте поэкспериментировать на досуге.

Segey:
документация так же нужны.

Документация обязательно нужна. Но комментарии в коде - это не документация.

Segey:

Приведите уже в пример какое нибудь ПО по вашей модели которое в таком виде работает развивается и всем классно все с ходу понимают и никому не нужно ничего там пояснять. :)

https://www.djangoproject.com/

Кода там существенно больше 30К строк.

NEOmancer:
Чтобы снизить растущую производительность компьютеров программисты научились пользоваться фреймворками (С)

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

NEOmancer:

У меня один знакомый программер хорошо знает ZF и чтобы не тратить время на изучение поступающих проектов, везде его использует. Надо дописать модуль для WP - подключает к нему ZF и пишет модуль, надо дописать функционал для проекта на YII - подключает к нему ZF и реализовывает то что нужно.

Гений или идиот?

Просто жестокий человек. По отношению к своим заказчикам.

NEOmancer:
я написал кучу говнокода и еще напишу и не стыжусь этого, потому что работаю в "веб-студии"
...
Вот такие вот пироги. Вот такая вот реальность.

P.S.: Были у нас именитые и элитные "чистокодеры", которые по несколько дней мусолят свои задачи, но в условиях рынка такие, к сожалению, не выживают. Им нужно идти в большие и долгосрочные проекты, где они смогут себя проявить. Я бы сам в такой проект пошел бы, но... программистов много, а таких проектов - мало.

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

А насчет того, что каждый программер (я в том числе) написал говнокода гораздо больше, чем кода, которым можно гордиться - кудыж от этого деться. Жисть такая. Но это совсем не отменяет стремления к совершенству. :)

Segey:
_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.

DWORD SecondThread(void *ThreadParm)
{
while(Index < MAX_TIMES &&
WaitForSingleObject(Mutex, INFINITE) == WAIT_OBJECT_0)
{
if (Index < MAX_TIMES)
Times[Index++] = GetTickCount();
ReleaseMutex(Mutex);
}
return(0);
}
Segey:

Вот приведите пример, чем в практическом смысле это лучше?

Хороший код значительно сокращает затраты времени на его сопровождение и развитие. Как новым человеком, так и автором спустя полгода-год. Меньше мест, куда при правках можно пристроить источник глюков.

Всего: 1614