MrPi

Рейтинг
18
Регистрация
05.05.2025
Александр Воробьев #:
Для того что бы создать свою таблицу наследуешься от DataManager, описываешь поля, потом консолькой создаешь файл аннотаций. все. Далее можно $user->setName(), $user->getName(). (вот whereName кстати нет :) ) мне нравится.

$user->getName() - т.е. при таком вызове вы не обращаетесь к экземлпляру класса $user с публичным методом getName, а вызываете условно СТАТИЧНЫЙ метод abracadabra или не метод, а объект?

или всё же метод getName() где через QB получаете значение поля user из БД?

Александр Воробьев #:
она выполняется.... как там она под капотом __call или 100500 геттеров важно ли?.
Для ДЕБАГА важно. Вам важно писать на php? Вот есть нативные вызовы, синтаксический сахар, конструкции. Это нативные. Это база. Вы пришли в школу и вас учат, что 2x2=4, а после, какой-то фреймворк решил, что 5. Какая разница, ведь выполняет? И дальше везед стал писать для вывода в результат 5 - 2х2. Пришел разраб и сделал, как велит сам язык, получил 5 и думает, как так? Вы понимаете, что если начинаете разработку на фреймворке, то возможно настанет момент, что даже наличие какого-то метода или поддержка условного redis будет не нужна и вы решите его закомментить, что бы никто из команды его случайно не стал использовать, а упадет у вас авторизация пользователей, потому. что магия и User::register был не статичный метод класса User, а магия. А многие следуют принципам YAGNI и удаляют то, что не нужно. Лишний метод - лишний потенциальный баг, когда кто-то из разрабов найдет его и решит использовать (он же ведь есть в ядре, значит доступен). Но будет висеть на нем лишь один вызов, который надо было реализовать как 100 предыдущих, через другую конструкцию.. А через несколько лет для оптимизации, решишь удалить класс, а по итогу сломал приложение.
Александр Воробьев #:
Ну магия же. несколько строк и у нас полноценный браузер (ну тут источник url только не задан). Разве не магия?

Вы видиммо не понимаете о чем я пишу? Магия не в том, что метод возвращает. Магия не в том, что ты не понимаешь. Магия в том, что смотря на вызов ты ожидаешь одно, а получаешь другое. Animals::dog('woof') - кажется в класс Animals есть статичный метод dog. Лезешь в класс, а там нет его. Есть колбэк и ты уже работаешь не с классом, а с объектом и не с dog. И вообще он никак не относится к классу, а является частью QB.

Представь, что в php ты присваиваешь переменной значение $name = 'Johny', а по факту создал класс John(). Или пишешь new Animals() , а по факту экранировал переменную - echo $name.

Или все равно не ясно?

Александр Воробьев #:
Я ведь могу сказать: "Это синтаксис фреймворка". "точка" :)
Что за синтаксис фреймворка переопределяющий синтаксис языка? Зачем? Это для людей? Ну так необходимо делать очевидные вещи еще более очевидными
Александр Воробьев #:
Где та грань где кончается магия и начинаются "синтаксис" и "встроенные"?
Грань в синтаксисе. Не надо переопределять базовый синтаксис языка. давайте в python вместо def функций писать abracadabra. Это нарушает очевидность вещей. Я повторю, возможно для кого-то это приемлемо, но для меня нет. Я хочу смотреть на вызов и понимать по именованию имен и вызову откуда этот метод и как связан в контексте
Александр Воробьев #:
Любой фреймворк, любая библиотека что то "скрывает",

Считаете? Хогвартс в разработке лучшие практики?

User::whereName('Johny');

Что здесь, как думаете? Статичный, публичный метод класса?)

Sly32 #:
Я тоже не всегда классы использую как ООП,  иногда просто удобнее сгруппировать общие методы или хранить настройки.

Именно так и делаю. Очень удобно приватные и публичные методы определять. Но в процедурном стиле тоже легко. Добавить namespace в файл функций и приватные писать с __ privateFunction() к примеру. Ну или определиться с командой.

Чистое ФП не видел нигде. Впрочем как и чистое ООП. Всегда мешают. 

Sly32 #:
Ну слушай, можно же даже на этом форуме немного прочитать инфы про оппонента, прежде чем спрашивать)

Предлагаешь мне ознакомиться с биографией каждого, кому отвечаю?)

Sly32 #:
Это ты путаешь) У вас странное представление о ООП и его принципах.

Так как ты понимаешь инкапсуляцию и наследование? В ООП для веба всегда спрашиваю, а как работаешь с SESSION, COOKIE, POST, GET к примеру?

Sly32 #:
Ты сможешь оценить код на Пайтон?

100%. Я на пайтоне начинал. Но единственный на тот момент выход в веб был через django фреймворк. А после решил, что нужен язык, который появился в следствии развития веба и создан  для него.

Александр Воробьев #:
и если он не нужен, то его можно не использовать.

Ключевое. Потом пригодится)

Александр Воробьев #:
Вы же сами выше писали "не хочу ни чего лишнего".

Где писал? Я хочу простоту топора. Писал, что придерживаюсь принципов KISS DRY YAGNI.

Александр Воробьев #:
Вообще все это индивидуально ИМХО

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

Александр Воробьев #:
Да даже echo "hello world" магия, вам же не надо знать как устроено.

Вы путаете мягкое с горячим. Синтаксис языка и магические методы фреймворка

TheVS #:
с большим трудом справляются с написанием самых простых нейронок. 
Печально. Кремниевй долине не быть
Анти БОТ #:
Да уже летали, в первой половине прошлого века. Падали, правда, быстро и ярко.

Ой, началось. Вы про 1937 год? Так меньше половины погибло. Сколько при падении самолёта погибает? 

Продумать конструкцию, что бы не сгореть сверху, когда водород загорится? За 100 лет научились? Если бы углубились в разработку, то точно придумали бы оптимальный баланс. Но + экология, + туризм на смену круизным лайнерам. + Посадка где угодно, хоть в тайге. + Автономность недельная и больше. Если солнечными панелями обвесить. + Габариты груза не ограничиваются трубой самолёта. Дом многоквартирный на изи перевезти. Ну и виды, а так же сфера эксплуатации. С ангарами придумали бы точно. Не строили бы их, а рыли бы котлованы под них, подземные

Всего: 319