Помощник
|
Модный велосипед |
Degradator
|
Сообщение
#1
|
||
|
|
||
|
|||
Arks |
12.12.2014, 23:06;
Ответить: Arks
Сообщение
#2
|
|
мне кажется его уже написали в ASP.NET MVC
|
|
|
Arks |
12.12.2014, 23:09;
Ответить: Arks
Сообщение
#3
|
|
На самом деле в разработке фреймворков уже давно нету велосипедов, т.к. все технологии давно известны и продиктованы спросом на определенные механизмы взаимодействия пользователя и приложения. От того что у них будет еще одна реализация набитая костылями - они не станут "модными" или "новыми".
|
|
|
Degradator
|
Сообщение
#4
|
|
От того что у них будет еще одна реализация набитая костылями Надо учесть предыдущие разработки и стырить оттуда самые сочные идеи. |
|
|
Degradator
|
Сообщение
#5
|
|
Итак, дело сдвинулось с мертвой точки, я зарегал репозиторий на ассембле, теперь можно смело начинать писать код, откатывать, комитить, переписывать и проч и проч и проч.
На данный момент закинул жаваскрипт, который должен будет реализовывать функции создания-обновления-удаления данных отображения для сущностей из формата json, и два маленьких жаваскрипта, которые расширяют Element, и String. Сейчас обновляются только текстовые данные, надо будет допилить возможность изменения изображений. На этих выходных постараюсь закинуть свои велосипеды, которые я успел написать за последнее время. Если кто-то хочет принять участие, то пишите сюда (или мне в личку), разберемся с репозиорем и правами доступа. Не знаю удастся ли зайти без авторизации, никогда не делал собственный репозиторий https://subversion.assembla.com/svn/forweb/trunk/ |
|
|
Degradator
|
Сообщение
#6
|
|
Добавлен статический класс для работы с базой данных, который возвращает ассоциативные массивы при выборках, реализует добавление данных и выполнение запросов.
В ближайшем будущем, надо будет расширить его, и впилить туда возможность иcпользовать различные диалекты SQL. Сейчас вменяемо работает с MySQL. Возможно, стоит впилить методы для удаления и обновления (в принципе, они не нужны, есть метод DB::query($query), при помощи которого можно делать что угодно). Сейчас работаю над реализацией ОРМ оболочки, базой для которой служит этот класс. В ОРМ оболочке пока что не реализована ленивая инициализация, когда запилю ее, то можно будет вкомичивать ОРМ велосипед. |
|
|
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
|
Сообщение
#8
|
|
|
невозможно реализовать пул подключений Никогда не стояло такой задачи, можно будет подумать как и подключение к различным БД Собственно да, писал в прошлом посте, что надо что-то прикручивать, чтобы удобно было подсовывать разные движки. Пока что это не задача номер 1 По сути интерфейс работы с БД это подключиться, выполнить запрос, и поддержка (в т.ч. виртуальных)транзакций Не вижу особой разницы, может быть есть какие-то семантические особенности, но помойму нет особого смысла пилить отдельный класс под круд. Раньше пользовался этим классом, оче удобно, пишешь что-то типа DB::getRow(); и получаешь нужную строчку. А сейчас, пишу расширение под орм, так вобщем-то использую только метод query(), которые возвращает result set. То есть, может быть и есть в этом смысл, но не вижу надобности выкидывать рабочий и вменяемый функционал. нет поддержки транзакций Нету. Надо допиливать, но это должен быть какой-то другой класс обработка ошибок подобная увиденной Там нет обработки ошибок некоторые методы ... возвращают странные результаты - пустой массив, пустую строку и т.п Это лучше чем возвращать null или бросать исключение
|
|
|
||
|
Текстовая версия | Сейчас: 18.4.2024, 15:54 |