Pull to refresh

Comments 19

Не критики ради, просто интересно. Почему выбрали названия: add(), remove(), modify(), find() вместо принятых в SQL: insert, update, delete, select?

Уважаемый комментатор, большое спасибо за интересный вопрос!

Я выбрал такие названия методов, как add(), remove(), modify(), find(), чтобы отойти от стандартных SQL терминов insert, update, delete, select. Моя цель - создать полноценную ORM библиотеку, а не просто обёртку над SQL.

Поэтому я постарался использовать более абстрактные и понятные названия методов, которые лучше отражают суть действий с объектами, нежели специфичные SQL команды. Это помогает сделать код на Rust более естественным и выразительным при работе с базами данных.

Надеюсь, я смог объяснить причину такого решения. Если у Вас остались вопросы или другие предложения по улучшению библиотеки, я с удовольствием их обсужу!

Блин, имейте совесть. Хватит отвечать через ЧатГПТ.

Вам шашечки или доехать? вот ответ без ИИ - вы за него минусуете

Мне живое, человеческое общение. Нафига писать тремя абзацами Гптшного жополизания то, на что надо было ответить человеческим языком?

"Так захотелось" - содержание вашего ответа. Непонятно зачем, но ладно, пусть будет. Я ещё в жизни не видел ОРМщика, у которого add и modify были бы вместо insert и update.

Не пойми меня неправильно, нет ничего плохого, что ты хочешь попробовать раскрутить на Хабре свою самописную библиотеку.

Но уж, пожалуйста, не надо устраивать тут фарс и рассказывать с помощью чат-бота о том, как замечательно, что вышла уже версия 1.0.*! У тебя семь звёзд и полтора месяца коммитов. Про это бибиотеку знают твои друзья.

Ну так возьми и напиши открытыи текстом: "Ребят, строю свою ОРМ на расте. Вот работает так кто и так то. Столкнулся с тем-то при порте на MySQL" Проект в зачатке, но большие планы.

Никто тебя обижать не будет. Ты на самом деле закомитил много кода. Напиши ты своими словами об этом коде.

Вместо этого ты буквально тихо привераешь, используя ГПТ. Ты рассказываешь о том, как наконец-то вышла такая крутейшая библиотека! Уууу!

Да твою в поперек. Держи плюсик. Только учти, над написанием этого комментария я трудился больше, чем ты над написанием всей этой статьи. Я считаю, что время других - ценно. Поэтому я лично отвечаю текстом, который сам пишу. А не отмазываюсь бесполезной ГПТнёй.

И уж темболее, когда тебя ОРМщики спрашивают: "нафига надо было менять четыре самых фундаментальных слова в ОРМ?" Уж изволь. Вылезай из чата, и начинай брать отвественность за свой код. Я не говорю что он плох. Я говорю что этой ГПТшкой ты показываешь неуважение и безответственность к своим читателям.

Достойный ответ. Ещё раз - у тебя дохрена кода. Пиши о том, как ты его кодил и какие решения ты принимал. Иы быстро станешь первым по расту на Хабре.

Я ещё в жизни не видел ОРМщика, у которого add и modify были бы вместо insert и update.

Посмотрите на EF и EF Core — там используются именно что Add и Remove. Именно что с целью дать семантику коллекций и отойти от таблиц.


А в JPA так и вовсе используется название "persist", видимо чтобы никто не догадался что вообще происходит. Вспоминайте про JPA каждый раз когда кажется что в других ORM есть что-то нелогичное :-)

@Boomburum Алексей, А можно добавить новую причину минуса "Написано нейронкой"?

Не любопытства ради, а как приобрести скил распознавания?

Я статью напишу. Но я бы сказал что это синдром "Никто не ожидает Испанскую Инквизицию".

Если не знаете о чём я - идите и смотрите скетчи Монти Пайтона по ссылке. У них в шоу был такой прикол. Иногда в середине скетча из ниоткуда появялись трое инквизиторов и всё становилось с ног на голову. Это было внезапно.

ГПТ так не умеет. Он просто монотонно балаболит о чём-то. Посмотри на этот текст и на первый коммент. Вопрос в первом комменте - это испанская инквизиция. "Какого чёрта ты делаешь ОРМку, где Update называется Modify?" А ответ на это более чем монотонная балаболка. "Уважаемый комментатор..." Кто в здравом уме такое напишет на Хабре? ГПТ чрезмерно покладист и всеуважающ. Он будет мило отвечать на вопрос "Какого чёрта?"

Ответ должен был быть в стиле: "Я решил началь революцию! Не нужны нам CRUD, будем их переназывать!"

После этого - всё ясно. Снова смотрим на саму статью и видим, что она умещается в один ответ от ГПТ. Возможно её поправили в паре мест, но уж очень она "покладистая". Живой человек, который действительно провёл полтора месяца над написанием ОРМ библиотеки на расте так говорить не будет. У него будет увлечённость и вовлечённость. А тут - абстрагирование.

Хотя, судя по всему, я не особо удивлюсь, если сам код написан только ГПТшкой.

После этого посмотри в комменты пользователя и ты увидишь, что большинство из его комментов это "уважаемый комментатор" [плевал я на тебя, мне лень тебе отвечать, но я буду СЕОшиться на Хабре, поэтому вот тебе болванка]. Потом смотришь на его безличные статьи, из которых только одна набрала какой-то там рейтинг, и понимаешь, что это просто ещё один из многочисленых ГПТГенераторов.

Я так подразумеваю, что тремя комментами к этой статье я сделал больше усилий, чем автор оригинала всеми своими статьями и комментами.

Поэтому и хочу добиться, чтобы контент, сгенерированный ГПТшкой так просто и тагился и скрывался. Это уже сделал Амазон, и на Хабре пора.

Все верно, просто 90% комментаторов, просто пальцы гнут. Устал им отвечать. На счет того что код генерит ИИ. Сам попробуй через ИИ написать такой код как в моих либах) Тебя ждет приятный сюрприз...

Не смотрел твой код. В комменте только написал "не удивлюсь если".

Если ты хочешь раскрутиться на Хабре, то тебе надо не СЕОшить и гнуть пальцы на троллей, а писать мясо в статьях.

Я не говорю что твой код - какашка. Но так ты о нём и пиши. Посмотри на мои статьи. Я просто не отвечаю троллям. Их здесь есть, но я на гих не обращаю внимания. И тебе не стоит. Но, если бы ты не отвечал через ГПТ а просто настаивал на своём мнении, то у тебя бы вышло намного круче.

Ещё раз - у тебя дофига кода в репах. Если он твой - пиши о нём. У тебя карму сливать некуда будет. И забудь про ГПТ. Его можно только на проверку орфографии.

Не смотрел твой код. В комменте только написал "не удивлюсь если".

я посмотрел - я бы не стал пользоваться ORM, которая даже теоретически (пусть там супер пупер экранирование) допускает попадание внешних данных в тело запроса

    fn add<T>(&self, data: T) -> QueryBuilder<T, T, ORM>
        where T: for<'a> Deserialize<'a> + TableDeserialize + TableSerialize + Serialize + Debug + 'static
    {
        let table_name = data.name();
        let types = serializer_types::to_string(&data).unwrap();
        let values = serializer_values::to_string(&data).unwrap();
        let query: String = format!("insert into {table_name} {types} values {values}");
        let qb = QueryBuilder::<T,T, ORM> {
            query: query,
            entity: Default::default(),
            orm: self,
            result: std::marker::PhantomData,
        };
        qb
    }

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

Все верно, просто 90% комментаторов, просто пальцы гнут. Устал им отвечать.

Так не отвечай, это ж главное преимущество интернета: возможность просто не отвечать.

Ребят, наваливайтесь, минусуйте, все мои стать, комментарии, и коды на гитхабе ИИ написал! Аминь!

  • protect() - экранирует строку от SQL-инъекций


Зачем это нужно? Нет, я понимаю что такое SQL инъекция и что плохо когда неконтролируемые внешние данные могут попадать в код строящий запросы к базе, я о другом - ЗАЧЕМ вообще разрешать такому коду попадать в запросы? Уже 100 лет в обед, во ВСЕХ СУБД имеется механизм параметризованных запросов, если нужно внешние данные использовать при, например фильтрации, сортировке и т.д. Вероятность неправильно сделать экранирование (накосячить, не знать и т.д.) весьма высока причем даже самим создателям БД, которые знают синтаксис досконально, а цена такой ошибки просто может быть фатальной.

В общем, мой посыл - что подставлять внешние данные в тело запроса, должно быть ЗАПРЕЩЕНО, на уровне код стайла и никаких тут не может быть исключений.

Sign up to leave a comment.

Articles