Биллинговая система Nodeny
22 Ноября 2024, 16:12:11 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Прекращена поддержка версии Nodeny 49
 
   Начало   Помощь Поиск Войти Регистрация  
Страниц: [1]
  Печать  
Автор Тема: Адаптация под Ver 52  (Прочитано 7985 раз)
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4790



Просмотр профиля
« : 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 в основном позволяет выудить какое-то количество опечаток, что случаются, а главное постоянно мешает юзать глобальные переменные, что заставляет писать код минимально их используя

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

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

Карма: 13
Offline Offline

Сообщений: 575


Скажи спасибо - подними карму.

https://t.me/smv https://t.me/smv_wz
Просмотр профиля Email
« Ответ #1 : 11 Ноября 2009, 11:20:48 »

Версия 51  будет аналогом 49 ( ограничение в 300 абонентов) ?
Записан

Nodeny общение
https://t.me/nodeny_chat
Andrey Zentavr
NoDeny
Старожил
*

Карма: 29
Offline Offline

Сообщений: 301



Просмотр профиля
« Ответ #2 : 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Мб логов что хочет фавикону.
Записан
versus
Администратор
Спец
*****

Карма: 21
Offline Offline

Сообщений: 845


44306843
Просмотр профиля WWW Email
« Ответ #3 : 11 Ноября 2009, 19:51:10 »

Версия 51  будет аналогом 49 ( ограничение в 300 абонентов) ?

да, полагаем что так
Записан
VitalVas
NoDeny
Спец
*

Карма: 60
Offline Offline

Сообщений: 991



Просмотр профиля WWW
« Ответ #4 : 11 Ноября 2009, 19:53:25 »

а 52 версию нада будет опять покупать???
Записан
goletsa
NoDeny
Спец
*

Карма: 21
Offline Offline

Сообщений: 973


Просмотр профиля
« Ответ #5 : 12 Ноября 2009, 06:33:44 »

Искоробки там будет линейка с домами и данные из dopdata на странице договора?

Записан
VitalVas
NoDeny
Спец
*

Карма: 60
Offline Offline

Сообщений: 991



Просмотр профиля WWW
« Ответ #6 : 13 Ноября 2009, 18:25:01 »

а реально, нужно будет покупать или будет обновления как с 48 на 50 версию???
Записан
versus
Администратор
Спец
*****

Карма: 21
Offline Offline

Сообщений: 845


44306843
Просмотр профиля WWW Email
« Ответ #7 : 13 Ноября 2009, 21:28:25 »

Я думаю что будет какой то период, в котором можно будет обновится бесплатно с 50 до 52, конечно если совпадает количество клиентов в сети  купленным лицензиям в нашей базе данных.
Конечно потом тем кто не смог перейти вовремя, посчитал что не надо или не докупил лицензии придется купить 52 версию. Как например сейчас с 48 версией. Простой поддерживать старые версии ресурсов нет.
Но пока рановато делить шкуру не выпущенной версии.
Записан
VitalVas
NoDeny
Спец
*

Карма: 60
Offline Offline

Сообщений: 991



Просмотр профиля WWW
« Ответ #8 : 13 Ноября 2009, 22:39:06 »

получается что если я обновлю биллинг, то моя лицензия останется как и была и я смогу получать обновления?Непонимающий
Записан
versus
Администратор
Спец
*****

Карма: 21
Offline Offline

Сообщений: 845


44306843
Просмотр профиля WWW Email
« Ответ #9 : 13 Ноября 2009, 23:10:47 »

это риторический вопрос или что то не понятно из моего прошлого сообщения ?
Записан
VitalVas
NoDeny
Спец
*

Карма: 60
Offline Offline

Сообщений: 991



Просмотр профиля WWW
« Ответ #10 : 13 Ноября 2009, 23:26:14 »

ето било написано для уверенности  Улыбающийся
Записан
Страниц: [1]
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.20 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!