Boris A Dolgov

Boris A Dolgov
Рейтинг
215
Регистрация
04.07.2007

borisko@vaio:~$ cat /etc/issue

Welcome to \s \r (\l)

Упс :(

Да, 64. Но в некоторых случаях (вроде бы, на некоторых VPS на XEN) этого недостаточно - нужно ещё написать file /bin/ls и убедиться, что не только ядро, но и окружение 64битные.

uname -m

10 символов

zexis:
Комментариев в коде много не бывает. Делать комментарии по русски некто не запрещает.

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

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

Чаще всего руководствуются правилом "не больше 50 строк или не больше 4-5 табов перед очередным оператором. Более-менее серьезный код, увы, сейчас показать не могу.

из какого-то плагина к billmanager

Price findPrice(int priceId)

{
for (vector<Price>::iterator p = cnf.prices.begin(); p != cnf.prices.end(); ++p)
{
if (p->id == priceId) return *p;
}
throw logic_error("No price found");
}
string getLogin(int id)
{
auto_ptr<ResultSet> res(msql->executeQuery("SELECT username FROM vhost WHERE pid=" + boost::lexical_cast<string>(id)));
if (res->rowsCount() != 1) throw logic_error("Not one username");
res->next();
return res->getString("username");

}
void processOrder(int id, bool activate)
{
initSql();
int realOrder = findRealOrder(id);
Server server = findServer(realOrder);
Price price = activate ? findPrice(findOrdPrice(id)) : findPrice(-1);
int realUid = findUid(realOrder), myUid = findUid(id);
if (realUid != myUid) throw logic_error("Client doesn't have this item.");
string login = getLogin(realOrder);

ChangeRequest r(server, price, login);
r.process();
}

Код ужасен :)

Увы, сейчас нет достаточно времени прочитать целиком и выдать конкретные замечания, но в общем:

  • Излишние комментарии, комментарии по-русски
  • Отсутствие табуляции и пробелов, или их излишнее наличие, но indent спас чтение дальше :)
  • Чисто сишный код в cpp-файле (разве что используются передачи по ссылке)
  • Функции по несколько экранов, принимающие десяток параметров
  • На стэке выделяются большие куски данных
  • Странные функции, которые объявлены как возвращающие что-то, но ничего не возвращающие
  • Всё в одном огромном файле
  • ОЧЕНЬ странные места вроде inArray_str

Вообще, 3+ за старание.

Осталось выучить boost и stl и написать то же самое в 30 строк.

Exhang:
Например Вам?

Тут пару месяцев назад все собирались скидываться и выкупать исходники с правом перепродажи. Но. как всегда, дальше разговоров дело не пошло.

NifigaSebe:
А swap по умолчанию бывает на OpenVZ ?

В openvz вообще не бывает свопа.

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

В теории, XEN-впска при прочих равных расходует меньше памяти, чем openvz.

Рестарт php и просмотр логов, почему он падает.

Valmon:
И что вы с этим блоком будете делать? Брать стоит блок не менее /23, так как есть практика ставить фильтры на блоки менее 23 у магистралов.

5 лет назад?

Всего: 2610