X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Модный велосипед
Degradator
Degradator
Topic Starter сообщение 12.12.2014, 21:58; Ответить: Degradator
Сообщение #1


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

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

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

Html структура должна быть построена таким образом, чтобы при нажатии на динамически подгруженую надпись, она сама превращалась в инпут, и на блуре данные автоматически изменялись, при условии наличия прав доступа.

Реализуем крутейший алгоритм авторизации и аутентификации, удобную систему прав доступа, запилим поддержку и работу с транзациями, впилим АОП, артемий лебедев все застилит, и можно будет начинать биз.

Короче вот такой план.
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Arks
Arks
сообщение 12.12.2014, 23:06; Ответить: Arks
Сообщение #2


мне кажется его уже написали в ASP.NET MVC
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Arks
Arks
сообщение 12.12.2014, 23:09; Ответить: Arks
Сообщение #3


На самом деле в разработке фреймворков уже давно нету велосипедов, т.к. все технологии давно известны и продиктованы спросом на определенные механизмы взаимодействия пользователя и приложения. От того что у них будет еще одна реализация набитая костылями - они не станут "модными" или "новыми".
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Degradator
Degradator
Topic Starter сообщение 12.12.2014, 23:43; Ответить: Degradator
Сообщение #4


От того что у них будет еще одна реализация набитая костылями

Надо учесть предыдущие разработки и стырить оттуда самые сочные идеи.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Degradator
Degradator
Topic Starter сообщение 17.12.2014, 16:16; Ответить: Degradator
Сообщение #5


Итак, дело сдвинулось с мертвой точки, я зарегал репозиторий на ассембле, теперь можно смело начинать писать код, откатывать, комитить, переписывать и проч и проч и проч.
На данный момент закинул жаваскрипт, который должен будет реализовывать функции создания-обновления-удаления данных отображения для сущностей из формата json, и два маленьких жаваскрипта, которые расширяют Element, и String. Сейчас обновляются только текстовые данные, надо будет допилить возможность изменения изображений. На этих выходных постараюсь закинуть свои велосипеды, которые я успел написать за последнее время.

Если кто-то хочет принять участие, то пишите сюда (или мне в личку), разберемся с репозиорем и правами доступа.
Не знаю удастся ли зайти без авторизации, никогда не делал собственный репозиторий
https://subversion.assembla.com/svn/forweb/trunk/
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Degradator
Degradator
Topic Starter сообщение 21.12.2014, 16:15; Ответить: Degradator
Сообщение #6


Добавлен статический класс для работы с базой данных, который возвращает ассоциативные массивы при выборках, реализует добавление данных и выполнение запросов.

В ближайшем будущем, надо будет расширить его, и впилить туда возможность иcпользовать различные диалекты SQL. Сейчас вменяемо работает с MySQL. Возможно, стоит впилить методы для удаления и обновления (в принципе, они не нужны, есть метод DB::query($query), при помощи которого можно делать что угодно).

Сейчас работаю над реализацией ОРМ оболочки, базой для которой служит этот класс. В ОРМ оболочке пока что не реализована ленивая инициализация, когда запилю ее, то можно будет вкомичивать ОРМ велосипед.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Arks
Arks
сообщение 21.12.2014, 17:03; Ответить: Arks
Сообщение #7


Degradator, как я и говорил получается нечто набитое костылями.
Вот некоторые ошибки:
1. невозможно реализовать пул подключений, как и подключение к различным БД. Нет даже намека на разграничение R/W/O операций
2. нет элементарных проверок в коде на возникновение ошибок (пр - функция insert не проверяет заполненность массива data)
3. метод getQueriesCount вообще бредовый, особенно в интерфейсе как и метод getTables. По сути интерфейс работы с БД это подключиться, выполнить запрос, и поддержка (в т.ч. виртуальных)транзакций.
4. нет поддержки транзакций и нет поддержки некоторых базовых даже для mysqli вещей (например перевода в пассивный режим при работы с большими данными). В случае если rowset не влезет в memory_limit получите Fatal error.
5. обработка ошибок подобная увиденной - явно попытка выстрелить себе(или тому кто будет с этим работать) в ногу арбалетным болтом!
6. некоторые методы которые уже относятся скорее к ORM чем к работе с БД вообще возвращают странные результаты - пустой массив, пустую строку и т.п.

Рекомендую для начала попробовать написать к этому барахлу хотя бы простые test-кейсы и unit-тесты, сразу увидите кучу еретических ошибок.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Degradator
Degradator
Topic Starter сообщение 21.12.2014, 18:11; Ответить: Degradator
Сообщение #8


невозможно реализовать пул подключений

Никогда не стояло такой задачи, можно будет подумать
как и подключение к различным БД

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

Не вижу особой разницы, может быть есть какие-то семантические особенности, но помойму нет особого смысла пилить отдельный класс под круд. Раньше пользовался этим классом, оче удобно, пишешь что-то типа DB::getRow(); и получаешь нужную строчку. А сейчас, пишу расширение под орм, так вобщем-то использую только метод query(), которые возвращает result set. То есть, может быть и есть в этом смысл, но не вижу надобности выкидывать рабочий и вменяемый функционал.
нет поддержки транзакций

Нету. Надо допиливать, но это должен быть какой-то другой класс
обработка ошибок подобная увиденной

Там нет обработки ошибок
некоторые методы ... возвращают странные результаты - пустой массив, пустую строку и т.п

Это лучше чем возвращать null или бросать исключение

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


 



RSS Текстовая версия Сейчас: 28.3.2024, 20:15
Дизайн