Хочу рассказать о текущем состоянии дел по NoDeny и коснуться немного истории.
Все заметили, что с какого-то времени мы перестали выпускать релизы. Тому несколько причин.
Во-первых, последние несколько лет я хотел поставить точку и выпустить абсолютно завершенный продукт. Это было не просто. NoDeny начал создаваться в те времена, когда правил игры "Домашние сети" практически-то и не было. Постоянно вылазили новые требования и я пристраивался под них, что требовало постоянного изменения концепции. С другой стороны, билинг уже продавался и мне постоянно приходилось обеспечивать совместимость с уже устаревшими подходами. Приходилось не только писать новый код, но и адаптировать старый под новый. Я трудился и ждал момента, когда настанет тот час, когда я поставлю жирную точку, выпущу stable и засяду с нуля писать новый NoDeny, не отягощенный старыми подходами.
К сожалению, у меня было такое громадное количество идей, что я не успевал их реализовать. А те, что пытался - только оттягивали тот час X. В конце-концов мне пришлось вырезать некоторые перспективные вещи, чтобы разработка NoDeny не превратилась в бесконечный процесс.
Во-вторых, после того как мы поставили точку,
я уехал на канары я занялся разработкой NoDeny с нуля для WiFi сети Приватбанка. К сожалению, я ошибся в одном - я написал новый ахуенный движок рендеринга, который был просто красавэц, но я не учел, что я единственный носитель этого, поэтому NoDeny без поддержки не будет развиваться. А для изучения движок довольно сложный. Если в кратце, то в движке весь html представляет собой кучу объектов, которые могут содержать в себе другие и т.д. Даже языковые сообщения тоже были объектами. Короче, я решил, что в таком виде NoDeny слишком сложен внутри.
В-третьих, после неудачной попытки, я решил обновить код существующего NoDeny так, чтобы внешне он выглядел как и старый, но по коду был посовременнее. Вы будете смеяться, но это тоже оказалась неудачная попытка т.к. изменений я внес настолько дохренища, что это равнялось переписыванию всего биллинга. Писать же NoDeny с нуля - это не имеет смысла. И вот почему: практически все фичи всех устраивают и доступны. Я не вижу смысла полного переписывания биллинга ради нескольких фич и самого факта, что код будет новый. Тем не менее я понимаю, что есть несколько недостатков и проблемных мест текущей реализации.
Итак, я начал третью попытку - обновить код NoDeny, но сделать прослойку для совместимости с некоторыми модулями, которые потребовали б очень значительного времени для обновления.
Какие я вижу основные пункты, на которые обращу внимание в первую очередь:
- база и скрипты в cp1251. Надо в utf8
- дизайн уже раздражает. Хардкодинг структуры html
- отсутствие поддержи динамических ip
- отсутствие хуков на некоторые события
Третья версия 52 версии
уже правится во всю. Я практически перешел на utf8. Сменил дизайн. Сделал шаблоны для основных элементов. Добавил больше ООП в код.
На первом этапе мне понадобится всестороннее тестирование административного интерфейса. Я думаю через недельку я вас попрошу этим заняться, а в это время займусь внедрением динамических ip.