Биллинговая система Nodeny

Главная категория => Разработка => Тема начата: Efendy от 11 Ноября 2009, 11:02:49



Название: Адаптация под Ver 52
Отправлено: Efendy от 11 Ноября 2009, 11:02:49
Версия 50.32 (49.32) довольно стабильная, есть несколько непринципиальных мелких исправлений, которые я внес уже после выхода, но думаю закончить 50(49) ветку на ней. Погоняйте ее и объявим stable.

Дальнейшее развитие будет 52 и 51 ветка. В данный момент я занят тем, что причесываю весь код так, чтобы его было удобнее понимать со стороны, а также дописывать/адаптировать.

Т.е я хочу поднять слегка качество кода ибо проект развивается очень долго. Главные проблемы качества, это:

1) большое количество глобальных переменных
2) не использование use strict

Первую проблему я уже практически решил, 2я требует еще какое-то время. Изменений много, поэтому будет какое-то время тестироваться.

Подробнее о проблемах.

Глобальные переменные, конечно, зло. Встречается в тексте, скажем, переменная $m_tarif - возникает вопрос, откуда она? где объявлена? что обозначает?

В перле есть несколько способов группирования сущностей. Я решил использовать package, которые изолируют пространства имен. Так у меня все настройки теперь "хранятся" в packagе  cfg:

$cfg::Nodeny_dir
$cfg::Reload_Nets_Time

и т.д

Привилегии администратора: $pr::SuperAdmin, $pr::show_traf, $pr::show_fio и т.д
Данные администратора: $Adm::
Данные сессии: $ses::

и т.д.

Языковые переменные теперь не имеют префикса $Lang_, а тоже имеют свое пространство $Lang:: - так что пока не спешите писать свои языковые файлы, подождите некоторое время.

Также некоторые модули тоже изолированы в паккаджи, а некоторые оформлены как ООП), в частности модуль выполнения sql-запросов, например:

Цитировать
$nsql=nSql->new({
    dbh        => $dbh,
    sql            => "SELECT * FROM users",
    show      => 'line',
    comment => 'Все клиенты'
  });

while( $nsql->get_line( [\%h] ) ) {
  $OUT.="$h{id} = $h{name}".$br
}

2) use strict в основном позволяет выудить какое-то количество опечаток, что случаются, а главное постоянно мешает юзать глобальные переменные, что заставляет писать код минимально их используя

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

Если у кого-то есть предложения по этому поводу - выссказывайтесь


Название: Re: Адаптация под Ver 52
Отправлено: Maks от 11 Ноября 2009, 11:20:48
Версия 51  будет аналогом 49 ( ограничение в 300 абонентов) ?


Название: Re: Адаптация под Ver 52
Отправлено: Andrey Zentavr от 11 Ноября 2009, 11:35:05
Сегодня общался с Версусом на этот предмет.
Есть несколько пожеланий:
Цитировать
Andrey Zentavr ( 10:24:29 )
спасибо.
В догонку - есть пожелание к биллингу:
После отпадания мускула может например умереть ядро или сателлит и после этого само не загружаться. Можно конечно написать watchdog какой-нить скрипт.
Скорее всего правильнее было бы сделать исключение + запись в лог, например:
....Соединение с сервером баз данных ..... утеряно, засыпаем на N секунд..

Andrey Zentavr ( 10:24:51 )
Это можно как-нибудь реализовать в следующих билдах?
Versus NoDeny ( 10:36:44 )
ядро так и делает
Versus NoDeny ( 10:37:01 )
мало того оно складирует трафик в папки до появления соединения с базой
Versus NoDeny ( 10:37:34 )
просто падение мускула может быть тогда когда программа передала запрос в библиотеки перла
Versus NoDeny ( 10:37:49 )
а тот не найдя базу вылетает с ошибкой и тянет за собой ядро
Andrey Zentavr ( 10:38:31 )
Ну вот у меня вылетело вчера примерно так...
11.11.2009 00:54:32 kernel: Для 1528 записей включен режим детального сохранения трафика.
11.11.2009 00:54:32 kernel: 1578 записей в базе и 246 доступ в инет блокирован, 52 не нужна авторизация
11.11.2009 00:54:30 kernel: ====== - СТАРТ ЯДРА NODENY - ======
Out of memory during request for 5040 bytes, total sbrk() is 1072236544 bytes!
11.11.2009 00:45:33 kernel: Для 1528 записей включен режим детального сохранения трафика.
11.11.2009 00:45:33 kernel: 1578 записей в базе и 246 доступ в инет блокирован, 52 не нужна авторизация
11.11.2009 00:45:31 kernel: ====== - СТАРТ ЯДРА NODENY - ======
Can't call method "do" on an undefined value at nodeny.pl line 1961.
DBD::mysql::st execute failed: MySQL server has gone away at nodeny.pl line 1304.
DBI connect('database=bill;host=localhost;mysql_connect_timeout=6;','bill_kernel',...) failed: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) at nodeny.pl line 1800
DBI connect('database=bill;host=localhost;mysql_connect_timeout=6;','bill_kernel',...) failed: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) at nodeny.pl line 488
DBD::mysql::db do failed: MySQL server has gone away at nodeny.pl line 512.
DBD::mysql::st execute failed: MySQL server has gone away at nodeny.pl line 1304.
Andrey Zentavr ( 10:39:09 )
> Out of memory during request for 5040 bytes, total sbrk() is 1072236544 bytes!
Вот эта ошибка раза три была с субботы. Вроде как фикситься настойкой sysctl
Andrey Zentavr ( 10:40:52 )
Просто раньше стоял УТМ, ему это не так критично было.. Срал в логи что ему плохо живёться без Мускула и всё.

Ну и добавте наконец в корень сайта favicon.ico :) А то за три дня у меня апач насрал 50Мб логов что хочет фавикону.


Название: Re: Адаптация под Ver 52
Отправлено: versus от 11 Ноября 2009, 19:51:10
Версия 51  будет аналогом 49 ( ограничение в 300 абонентов) ?

да, полагаем что так


Название: Re: Адаптация под Ver 52
Отправлено: VitalVas от 11 Ноября 2009, 19:53:25
а 52 версию нада будет опять покупать???


Название: Re: Адаптация под Ver 52
Отправлено: goletsa от 12 Ноября 2009, 06:33:44
Искоробки там будет линейка с домами и данные из dopdata на странице договора?



Название: Re: Адаптация под Ver 52
Отправлено: VitalVas от 13 Ноября 2009, 18:25:01
а реально, нужно будет покупать или будет обновления как с 48 на 50 версию???


Название: Re: Адаптация под Ver 52
Отправлено: versus от 13 Ноября 2009, 21:28:25
Я думаю что будет какой то период, в котором можно будет обновится бесплатно с 50 до 52, конечно если совпадает количество клиентов в сети  купленным лицензиям в нашей базе данных.
Конечно потом тем кто не смог перейти вовремя, посчитал что не надо или не докупил лицензии придется купить 52 версию. Как например сейчас с 48 версией. Простой поддерживать старые версии ресурсов нет.
Но пока рановато делить шкуру не выпущенной версии.


Название: Re: Адаптация под Ver 52
Отправлено: VitalVas от 13 Ноября 2009, 22:39:06
получается что если я обновлю биллинг, то моя лицензия останется как и была и я смогу получать обновления????


Название: Re: Адаптация под Ver 52
Отправлено: versus от 13 Ноября 2009, 23:10:47
это риторический вопрос или что то не понятно из моего прошлого сообщения ?


Название: Re: Адаптация под Ver 52
Отправлено: VitalVas от 13 Ноября 2009, 23:26:14
ето било написано для уверенности  :)