|
|
|
А нужно ли качество кода?
|
|||
|---|---|---|---|
|
#18+
Сергей Силкинdonkey80 Методы длиной в несколько тысяч (!) строк...У меня лично целый список требований к исходному коду – как к его функционалу, так и оформлению. В частности, одно из требований – чтобы объём функции (метода) не превышал одного экрана исходного кода (разумеется, один оператор на одной строке). Пусть народ с малолетства приучается не только как следует кодировать, но и проектировать приложение. Аргументы типа «вот эту функцию нельзя разместить на одном экране» не принимаются в ультимативной форме. Разбить и грамотно структурировать всегда можно (если, конечно, ты не чайник). Предпочтительно конечно же разбивать части по функциональному назначению; но на крайняк можно и чисто механически – просто кусками. Но в любом случае каждая функция (метод) должна быть не то что простая, а очень простая – так, чтобы её можно было окинуть одним взглядом (т.е. быть не больше одного экрана), логика работы должна быть абсолютно понятна не только автору, а и новому человеку, и соответственно чтобы её можно было модернизировать, в том числе и другим людям. ...А если вовремя не обломать некоторых, то рано или поздно вполне можно увидеть такое: весь проект состоит из одной огромной функции main (ну или WinMain или типа того – в общем, точки входа в программу), а дальше... сплошной набор операторов без единой определённой разработчиком функции, да ещё «нормальных» управляющих конструкций почти нет, зато есть куча операторов goto. Хотя программа работает, а разработчик божится, что по-другому никак было сделать нельзя... Если кто-то не видал такие программы - считаем, что ему крупно повезло. А если такие программы ему ещё не давали модернизировать - ему очень крупно повезло вдвойне... я вот не против такого в случае, когда речь идет о string.Substring(). Но часто неважно , что весь проект состоит из одной огромной функции main, важно, что это работает так ,как того хотел потребитель проекта, которму абсолютно неважно, что исполнитель убил все свое время на представление функции размером не больше экрана. Говорю как разработчик, как внедренец и хэлпдеск - прошел все стадии жизни проекта (и не одного) , включая модернизацию, вплоть до его смерти. Для сопровождения проги важно описание хедеров ф-ий и знание условий , на которых это писалось ранее и теперь, алгоритмы иногда попадались такие, что понимать их начинаешь не сразу по просмотру кода, а только после прочтения соответств литературы, о которой в тот момент и не подозреваешь.Теперь как сопровожденец и модернизатор кода поясню,что знание условий , на которых это писалось ранее и теперь. Если ранее этот продукт был коробочным вариантом - извиняйте ,хлопци - это запросто может быть одной ф-ией main, если OEM - другое дело. И модернизировать в первом случае надо начинать не словами - какой м...ль это писал, а вопросом - вы точно хотите модернизировать это боксовое решение? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2011, 11:34 |
|
||
|
А нужно ли качество кода?
|
|||
|---|---|---|---|
|
#18+
ShSergeЯ всегда пишу очень кривой, на ламерский взгляд, код, но простой и эффективный. Чужой код (!) никогда не правлю, а всегда переписываю с нуля. Ну, не весь, а хотя бы функционально законченные куски. Это начальный уровень кодера с амбициями. Говнокодом творение назовут, когда код начнет править другой такой же кодер. Заявляю отвественно, что даже хелловорд -очень эффективный код :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2011, 11:41 |
|
||
|
А нужно ли качество кода?
|
|||
|---|---|---|---|
|
#18+
6275Один экран - это сколько строк?Чтобы взглядом можно было охватить. В прямом смысле слова - один экран. Если несколько (а уж тем более много) экранов - это же в коде почти гарантированно никто не разберётся, кроме автора! Ну разве что вундеркинд какой-нибудь. Но, во-первых, где найти столько вундеркиндов? Или гениев. В подавляющем большинстве народ - это "рабочие лошадки" - в самом хорошем смысле слова (уж тем более не в обиду), но уж никак не гении и не вундеркинды. Во-вторых, если гений и найдётся - он ведь не будет заниматься такой фигнёй как разбираться в чужом коде (да ещё криво написанном); скорее он найдёт себе более творческое занятие. Почему-то никого не удивляет требование проектировать - ну например, автомобиль - технологично - так, чтобы удобно было не только конструктору, сборщику и пользователю, но и механику , который этот автомобиль разбирает и собирает. Хотя тоже можно было бы сделать... - ну как некоторые программы: я собрал, я в этом разбираюсь; а то что другие не могут разобраться - так это проблема этих "ламеров", а мне именно так удобнее было делать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2011, 11:43 |
|
||
|
А нужно ли качество кода?
|
|||
|---|---|---|---|
|
#18+
Новый Годмне пробел даже лишний нельзя поставить, если он не нужен, если речь о том, чтобы сделать фикс а если 2 человека код правят, и один взял, и всё переписал, тогда что? а если code owner и тот кто исправил код это разные люди? это полный пипец, про двух человек -особенно, проходили уже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2011, 11:44 |
|
||
|
А нужно ли качество кода?
|
|||
|---|---|---|---|
|
#18+
qazaqкачество нужно, но без фанатизма. Так же как в нормализованных таблицах нужна иногда денормализация данных))))) Убить неделю на написание указивок как правильно называть локальную переменную или запрещение использовать самописки- методы, потом еще неделю на составление приказа и взятие под подпись , если на написание проги нужна неделя с самописной функцией типа String.Substring() не кажется даже академически оправданным. если потом это будет использоваться для других проектов то почему бы и не заморочится на это. Мне кажется все нужно в меру. если проект разовый простой, команда собралась что бы его написать и разбежаться то тут хватит и словесной договоренности, а если ваша компания занимается разработкой софта, то тут сам Бог велел создавать такие указиловки, но опять же мера нужна, необходимо оставлять свободный маневр для программиста ведь они по большом счету люди творческие и шибко обижаются когда их в жесткие рамки загоняешь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2011, 12:46 |
|
||
|
А нужно ли качество кода?
|
|||
|---|---|---|---|
|
#18+
Сергей СилкинПочему-то никого не удивляет требование проектировать - ну например, автомобиль - технологично - так, чтобы удобно было не только конструктору, сборщику и пользователю, но и механику , который этот автомобиль разбирает и собирает. Хи-хи. Почитай ради интереса заметки практикующих автомехаников. Если вкратце - о технологичности ремонта и думать забыли, как следствие, иногда для смены ерундовой фигнюшки приходится, например, снимать двигатель. Если говорить о коде - у меня были, есть и будут есть функции по 500-1000 строк, но тот, кто в них не сможет разобраться из-за размера, скорее всего, просто не сможет понять лежащую в их основе бизнес-логику. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2011, 13:02 |
|
||
|
А нужно ли качество кода?
|
|||
|---|---|---|---|
|
#18+
mikola1982qazaqкачество нужно, но без фанатизма. Так же как в нормализованных таблицах нужна иногда денормализация данных))))) Убить неделю на написание указивок как правильно называть локальную переменную или запрещение использовать самописки- методы, потом еще неделю на составление приказа и взятие под подпись , если на написание проги нужна неделя с самописной функцией типа String.Substring() не кажется даже академически оправданным. если потом это будет использоваться для других проектов то почему бы и не заморочится на это. Мне кажется все нужно в меру. если проект разовый простой, команда собралась что бы его написать и разбежаться то тут хватит и словесной договоренности, а если ваша компания занимается разработкой софта, то тут сам Бог велел создавать такие указиловки, но опять же мера нужна, необходимо оставлять свободный маневр для программиста ведь они по большом счету люди творческие и шибко обижаются когда их в жесткие рамки загоняешь. среднестатная жизнь проекта до его полной переработки 3 года - стоит ли овчинка выделки? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2011, 14:03 |
|
||
|
А нужно ли качество кода?
|
|||
|---|---|---|---|
|
#18+
Сергей Силкин6275Один экран - это сколько строк?Чтобы взглядом можно было охватить. В прямом смысле слова - один экран. Экраны - они разные бывают. один экран - это сколько на сколько пикселей рабочей области(то есть размер экрана минус размер тулбаров минус размер заголовков окна) на какой шрифт? Сергей СилкинЕсли несколько (а уж тем более много) экранов - это же в коде почти гарантированно никто не разберётся, кроме автора! Если всё так хреново, почему индустрия до сих пор не загнулась? Я кстати не видел ни одной сложной программы(в качестве примера возьмём LLVM или его скаковую лошадку clang - в них что, так сложно разобраться из-за строк кода/ф-цию?) где разбиение на функции = 1 экран(даже 60 строк) было бы оправдано и не превращало бы код в спагетти когда не понятно какая функция откуда вызывается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2011, 14:16 |
|
||
|
А нужно ли качество кода?
|
|||
|---|---|---|---|
|
#18+
qazaqсреднестатная жизнь проекта до его полной переработки 3 года - стоит ли овчинка выделки? В зависимости что за проект. Много от чего зависит, но для будущих проектов стоит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2011, 14:35 |
|
||
|
А нужно ли качество кода?
|
|||
|---|---|---|---|
|
#18+
Новый Годмне просто реально приходиться работать с APAR и PTF переписывание кода это нонсенс Переписывание кода - нонсенс для проектов без нормального (то есть автоматизированного) тестирования. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2011, 15:14 |
|
||
|
А нужно ли качество кода?
|
|||
|---|---|---|---|
|
#18+
qazaqсреднестатная жизнь проекта до его полной переработки 3 года - стоит ли овчинка выделки? Это с учётом тех проектов, которые навернулись через неделю после начала работ, и сваливая в одну кучу ERP-системы и сайты персональных страничек? Не знаю кто как, а я так наблюдаю многолетнюю жизнь даже тех проектов, которым бы сдохнуть ещё до рождения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2011, 15:26 |
|
||
|
А нужно ли качество кода?
|
|||
|---|---|---|---|
|
#18+
8162Если всё так хреново, почему индустрия до сих пор не загнулась?Не то чтобы "хреново", но не беспроблемно (как, впрочем, и везде). Очень сильной стороной компьютерного программирования является то, что здесь идея о том, что "реализованную идею нельзя ликвидировать" возведена в абсолют. Становятся доступные всё более и более сложные вещи. Если лет 20 назад "библиотека" была - это: ввод-вывод (файловый, клавиатурный, экранный), работа с файлами, математические функции, работа с памятью и строками и т.д.; потом появились графические библиотеки - вещи на самом деле очень крутые для своего времени. Ну сейчас этим уже давно никого не удивишь. Сейчас применением нескольких компонентов можно "запросто", буквально играючи создать - текстовый или графический редактор, интернет-браузер, электронную таблицу, любой графический интерфейс пользователя; чуть сложнее, но тоже без проблем на основе уже написанных и отлаженных компонентов создать ERP-систему, компилятор, авиасимулятор, операционку... Так и живём. В этом плане программы не стали сложнее, чем были 20 лет назад (по количеству строк исходного кода), но по функционалу конечно же стали гораздо сложнее. Но вообще-то это не значит, что программы надо писать в пренебрежительном стиле, злоупотребляя тем, что огромное количество компонент уже написано другими, а нам только нужно кое-как их вызвать - и ладно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2011, 17:28 |
|
||
|
А нужно ли качество кода?
|
|||
|---|---|---|---|
|
#18+
softwarerqazaqсреднестатная жизнь проекта до его полной переработки 3 года - стоит ли овчинка выделки? Это с учётом тех проектов, которые навернулись через неделю после начала работ, и сваливая в одну кучу ERP-системы и сайты персональных страничек? Не знаю кто как, а я так наблюдаю многолетнюю жизнь даже тех проектов, которым бы сдохнуть ещё до рождения. это с учетом развития средств программирования и изменений бизнес-процессов заказчика, даже когда ему надо тупо считать 0 и 1. Иногда полезно посмотреть первую рабочую версию и последнюю используемую. Их даже родственниками не назовешь , не то что семейством. Все долгоживущие проэкты начинаются со слов:"Мне вот тут небольшую пристроечку надо сколотить побыстрее..." ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2011, 19:16 |
|
||
|
А нужно ли качество кода?
|
|||
|---|---|---|---|
|
#18+
Сергей Силкин6275Один экран - это сколько строк?Чтобы взглядом можно было охватить. В прямом смысле слова - один экран. Если несколько (а уж тем более много) экранов - это же в коде почти гарантированно никто не разберётся, кроме автора! Ну разве что вундеркинд какой-нибудь. Но, во-первых, где найти столько вундеркиндов? Или гениев. В подавляющем большинстве народ - это "рабочие лошадки" - в самом хорошем смысле слова (уж тем более не в обиду), но уж никак не гении и не вундеркинды. Произошла типичная подмена понятий - за гения тут считают не опытного бойца, так сказать - ветерана боевых действий, а долбодятла с амбициями, страдающего аутизмом, неспособным сосредоточиться и удержать тему при прокрутке экрана, поэтому неудивительно, что есть специфические требования , учитывающие эту проблему ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2011, 19:28 |
|
||
|
А нужно ли качество кода?
|
|||
|---|---|---|---|
|
#18+
qazaq это с учетом развития средств программирования и изменений бизнес-процессов заказчика, даже когда ему надо тупо считать 0 и 1. Иногда полезно посмотреть первую рабочую версию и последнюю используемую. Их даже родственниками не назовешь , Три-ха-ха. Уж на что я нелоялен к "старому плохому коду", но мне только дважды в жизни удалось "полностью переписать". Один результат вышел отличным, один.. не лучше, чем предыдущий. А обычно - берёшься за код и начинаешь вычёсывать проблемы, висящие хорошо если с 2002-го года... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2011, 21:56 |
|
||
|
А нужно ли качество кода?
|
|||
|---|---|---|---|
|
#18+
donkey80Нужно ли прям так биться за качество?Да, нужно. Иначе встаёт проблема ввода новых людей в проект. Наблюдаю сейчас сценку в одном старом успешном проекте, который внутри выглядит как попало даже не потому, что его кривыми руками писали, а потому что полно древнего кода на голом C, но с "рукописными" таблицами виртфункций, наследованием (в т.ч. множественным), аналогами dynamic cast и т.п., На тот момент на многих платформах компиляторы C++ были, мягко говоря, некачественными, вот люди и сотворили. Оно читается. Клиенты довольны. Но появляется новичок, и вместо написания новой функциональности начинает со страшной силой натыкаться на мистические баги, когда какая-то компонента на первый взгляд используется правильно, просто "здесь так не принято", и в итоге новый формально валидный вариант вызова функции приводит к никогда не тестировавшейся комбинации параметров глубоко-глубоко внутри. Другой вопрос, что биться нужно в новых версиях, а не в старых. Переписывание некрасивого рабочего кода разумно приурочивать к новым мажорным номерам версий, а патчи в уже поставленным заказчикам вещах должны быть абсолютно минимальными. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2011, 22:05 |
|
||
|
А нужно ли качество кода?
|
|||
|---|---|---|---|
|
#18+
qazaqсреднестатная жизнь проекта до его полной переработки 3 года - стоит ли овчинка выделки? смотря какого проекта, *nix'ы живут уже десятки лет. единственная "качественная переработка" -- Plan 9 так и не пошла в "продакшн"/широкие-массы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2011, 23:55 |
|
||
|
А нужно ли качество кода?
|
|||
|---|---|---|---|
|
#18+
softwarerНовый Годмне просто реально приходиться работать с APAR и PTF переписывание кода это нонсенс Переписывание кода - нонсенс для проектов без нормального (то есть автоматизированного) тестирования. да есть у нас такое тестирование только с переписыванием кода оно никак не связано. наверно действительно, если когда и нужно код переписывать, это к выходу новой версии, да и то не каждой ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2011, 01:16 |
|
||
|
А нужно ли качество кода?
|
|||
|---|---|---|---|
|
#18+
онолитегqazaqсреднестатная жизнь проекта до его полной переработки 3 года - стоит ли овчинка выделки? смотря какого проекта, *nix'ы живут уже десятки лет. единственная "качественная переработка" -- Plan 9 так и не пошла в "продакшн"/широкие-массы ну если каждый вышенаписавший имеет в своем активе проекты такого класса-беру свои слова обратно.(притом что знаю,в германии и дос-проекты живут, но это - от их жлобства) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2011, 02:15 |
|
||
|
А нужно ли качество кода?
|
|||
|---|---|---|---|
|
#18+
qazaqну если каждый вышенаписавший имеет в своем активе проекты такого класса-беру свои слова обратно.(притом что знаю,в германии и дос-проекты живут, но это - от их жлобства) а зачем им иметь такие проекты? философия юникс (да и ее история) достаточно хорошо показывает, что при продуманном протоколе взаимодействия можно писать маленькие простые программы, а потом эффективно их комбинировать. та же ls весьма простая программа, а используется до сих пор, так же как и куча других стандартный никсовых утилит, которая каждая сама по себе может и тянет максимум на лабораторную работу студента, но в правильной среде они "могут делать чудеса" =) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2011, 02:23 |
|
||
|
А нужно ли качество кода?
|
|||
|---|---|---|---|
|
#18+
k0rvinqazaqну если каждый вышенаписавший имеет в своем активе проекты такого класса-беру свои слова обратно.(притом что знаю,в германии и дос-проекты живут, но это - от их жлобства) а зачем им иметь такие проекты? философия юникс (да и ее история) достаточно хорошо показывает, что при продуманном протоколе взаимодействия можно писать маленькие простые программы, а потом эффективно их комбинировать. та же ls весьма простая программа, а используется до сих пор, так же как и куча других стандартный никсовых утилит, которая каждая сама по себе может и тянет максимум на лабораторную работу студента, но в правильной среде они "могут делать чудеса" =) смею заметить , что речь идет не о философии юникса, а о том, что спорить с человеком, кто сам чего-то полобал и стал специалистом, в чем можно примерно убедиться оценив уровень или класс проекта, в которых этот чел непосредственно участвовал, я не буду, а прислушаюсь к его мнению. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2011, 03:13 |
|
||
|
А нужно ли качество кода?
|
|||
|---|---|---|---|
|
#18+
Новый Годда есть у нас такое тестирование только с переписыванием кода оно никак не связано. Cвязано прямо и непосредственно. При ручном тестировании главенствует принцип "работает - не трогай", исправляя дефект главное - не внести другой, переписывание кода требует крупного повторного тестирования, потому дорого, потому нонсенс. При хорошо поставленном автоматизированном тестировании переписанный код неплохо бесплатно тестируется, соответственно плюсы переписывания (не "переписывания ради переписывания", а "переписывания плохого кода") явно перевешивают. Новый Годнаверно действительно, если когда и нужно код переписывать, это к выходу новой версии, да и то не каждой Не стоит смешивать тёплое с мягким. Переписывать плохой код следует тогда, когда есть причина и возможность. В какую сборку следует включать исправление - другой вопрос, зависящий от кучи прикладных факторов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2011, 09:55 |
|
||
|
А нужно ли качество кода?
|
|||
|---|---|---|---|
|
#18+
softwarer, Вспоминаю, что лет 7 назад, когда я занимался delphi->MS SQL, была задача посчитать переходящие с месяца на месяц больничные по новому алгоритму (это только кусок программы, по зарплате, понятное дело). Предыдущую версию писал "джедай" на делфях. Который, если и обращался к БД, то только в виде "SELECT * FROM ...". Поэтому алгоритм был размазан на несколько (штук пять или даже больше) модулей, т.е. файлов. Задачу надо было решить срочно за три дня. Разобраться в этом коде за три дня мне казалось нереальным. Зато, оказалось, что если на "модификацию" забить и написать на SQL хранимую процедуру, то достаточно внести элементарное изменение в форму (это один модуль), то есть, не вызывать всю эту галиматью, а взять данные из х-ой процедуры, которая успешно была за день написана. Это была не модификация, а чисто переписывание, причём, с использованием принципиально другой технологии. Я это и имел ввиду, когда про переписывание говорил. Поэтому, теперь, когда я слышу про всякие MVC, DAL, ORM и прочие Hibernate, я хватаюсь, как доктор Геббельс, за пистолет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2011, 12:24 |
|
||
|
А нужно ли качество кода?
|
|||
|---|---|---|---|
|
#18+
softwarerПри хорошо поставленном автоматизированном тестировании переписанный код неплохо бесплатно тестируется, соответственно плюсы переписывания (не "переписывания ради переписывания", а "переписывания плохого кода") явно перевешивают.Это зависит от "завершённости" разработки. Если выпускается коробка, то плюсы часто перевешивают. А если выпускается средство разработки, то всегда есть риск, что аппдевелопер ненароком написал нечто, зависящее от недокументированных (и потому не тестируемых) особенностей поведения. У нас лет под 20 назад был замечательный случай. Написали библиотеку для программирования/тестирования неких чудесатых измерительных преобразователей. Поскольку тестирование --- процесс очень длинный, а машины тогда были в дефиците, тем более 286-е, конечная программулина была выполнена в виде 200-килобайтного TSR (terminate and stay resident), который висел в памяти, позволяя во время своей работы гонять всякие текстовые редакторы и прочие не слишком жоркие приложения, оставляя им под 400 килобайт ОЗУ. В один прекрасный день мне удалось распилить библиотеку на отдельно математику и отдельно маленький интерпретатор псевдокода. Стало возможным скомпилировать маленький псевдокод из громоздких входных данных, и в результате TSR-ная программулина была распилена на нерезидентную расчётную часть и маленький TSR-ный интерпретатор псевдокода, под приложения стало оставаться 550 килобайт. Казалось бы, всем лучше. Тем не менее, от юзеров пошли регулярные сообщения об обрывах тестов по непонятным причинам. Выяснилось, что гоняющие тесты но не занятые людьми компы как магнитом притягивали любителей игрушек всех возрастов. И почти все игрушки замечательно работали. Все, кроме "Диггера", который как забирал себе кучу чужих прерываний в цепкие лапки, так уже и не восстанавливал, что через какое-то (значительное) время уносило всю систему в могилу. Но раньше TSR оставлял настолько мало памяти, что "Диггер" вообще не грузился с "not enough memory". А теперь memory стало enough, и он стал запускаться успешно :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2011, 12:36 |
|
||
|
А нужно ли качество кода?
|
|||
|---|---|---|---|
|
#18+
ShSergeЭто была не модификация, а чисто переписывание, причём, с использованием принципиально другой технологии. Я это и имел ввиду, когда про переписывание говорил. И на какую технологию Вы перепишите эту хранимку семилетней давности, когда потребуется к ней вернуться? На пять дельфовых модулей? ShSergeПоэтому, теперь, когда я слышу про всякие MVC, DAL, ORM и прочие Hibernate, я хватаюсь, как доктор Геббельс, за пистолет. http://ru.wikipedia.org/wiki/%D0%99%D0%BE%D1%81%D1%82,_%D0%93%D0%B0%D0%BD%D1%81 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2011, 13:52 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=37097665&tid=1343117]: |
0ms |
get settings: |
11ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
176ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
92ms |
get tp. blocked users: |
1ms |
| others: | 240ms |
| total: | 557ms |

| 0 / 0 |
