[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Открытая разработка проекта MIRA
Страницы: 1, 2, 3, 4
twin
?> эту хрень не нужно в конце использовать. От неё одни проблемы. Это кстати рекомендация в основных стилях.

Скобку ИМХО удобнее открывать под методом. Остальные дело вкуса но именно эти рекомендуется писать в стиле Алемена.
    public function __construct($param, $var)
{
if (isset($var)){
return echo "Class sozdan";
}
}


Конструктор кстати ничего вернуть не может, тем более echo ничего не возвращает, это конструкция. А посему пример некорректен для учебника. :)

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Razzwan
Оцените регистрацию, в том числе, безопастность: http://razzwan.tk/
reg_code = 111, 222, 333 ... и т.д.

_____________
Youtube канал WebDeveloper->Run()
Сайт для души
Gitter
Razzwan
Цитата (twin @ 19.01.2015 - 09:06)
?> эту хрень не нужно в конце использовать. От неё одни проблемы. Это кстати рекомендация в основных стилях.
Да, спасибо. Это уже исправил.

Цитата (twin @ 19.01.2015 - 09:06)
Конструктор кстати ничего вернуть не может, тем более echo ничего не возвращает, это конструкция. А посему пример некорректен для учебника. smile.gif
Для учебника очень даже подходит. Потому что дает хорошо понять, в какой именно момент срабатывает тело функции __construct.

_____________
Youtube канал WebDeveloper->Run()
Сайт для души
Gitter
Razzwan
Цитата (YVSIK @ 18.01.2015 - 15:23)
Возможно это уже было.
только трудно будет собрать команду для такого проекта.
А я и не планирую ее "собирать". Кто захочет - может присоединиться. Если никто не присоединится - я буду сам им заниматься.


Цитата (YVSIK @ 18.01.2015 - 15:23)
1) почему именно MIRA, а не по другому?
)) потому что идея в Мире во всем Мире.


Цитата (YVSIK @ 18.01.2015 - 15:23)
2) Какова роль одного из команды? помощник-участник- и тД.
Это проект некоммерческий. На данном этапе цель - обучение. В будущем цель - польза человечеству. Можно войти на любых адекватных условиях.


Цитата (YVSIK @ 18.01.2015 - 15:23)
4) выбор движка и его связей.
Вообще не понимаю о чем ты? Все свое. Все с нуля. Сейчас цель обучение. Я должен понять, как работают движки, чтоб их использовать.


Цитата (YVSIK @ 18.01.2015 - 15:23)
5) уровень и возможности члена. наверное они как раз и определять его дозволенность
Уровень приемлемый для группы. Возможности безграничны.

Цитата (YVSIK @ 18.01.2015 - 15:23)
А тут
спор неминуем, и приведет он к полному непониманию и прочим-прочим следствиям.
все люди и могут ошибаться, да и не кадый сможет быть объективным и иметь снисхождение.
Поэтому до предметного разговора объявляю себя куратором проекта. Есть предложения? Можем обсудить.


_____________
Youtube канал WebDeveloper->Run()
Сайт для души
Gitter
twin
Цитата (Razzwan @ 23.01.2015 - 00:17)
Для учебника очень даже подходит. Потому что дает хорошо понять, в какой именно момент срабатывает тело функции __construct.

Повторю. Конструктор ничего никуда не возвращает. Использовать в нем return некорректно. Тем более если это учебное пособие.

И echo ничего не возвращает, я говорил уже. Потом дальше. Вот эта строчка лишена смысла
if (isset($var)){
так как переменная $var жестко определена в аргументе. И просто не существует такого развития событий, чтобы она была не определена. А значит нет смысла проверять её существование. Кроме того, в аргументе конструктора определена еще одна переменная, которая вообще нигде не используется.

Так что этот пример - она грандиозная ошибка. Либо сборник ошибок, как больше нравится. Для учебника вообще не годится. :)

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Santehnick
Аутентифицировался чтобы сказать. Есть PSR, используйте их как свой code-style. Объяснять смысла нет, читайте сайт, смотрите участников.

Врядли ты знаешь ооп, скорее только синтаксис. Я объясню в кратце. Наследование это плохо. Article наследуется от DB_Connect. Это жесткое связывание. Будут проблемы с мигрованием из mysql на другую субд. Нужно будет править все файлы, которые наследуются от DB_Connect. Здесь нужно использовать Dependency Injection. В Article нужно передавать объект класса Db_Connect, сам Db_Connect должен реализовывать интерфейс, тогда для описанного интерфейса можно будет написать любой Db_Connect под любую базу данных и быстро переключить проект с одной бд на другую.

Еще пример, сессии. Многие в коде пишут session_start() или $_SESSION['data']. Будут проблемы. Бекенд не всегда обслуживается одним сервером, а в этом случае аутентификация будет слетать, так как каждый запрос пользователя может быть обслужен разными серверами и каждый из них ничего не знает о php-сессиях другого сервера, только о своих собственных. Поэтому нужно использовать другое хранилище, например redis, но так как в коде везде явно писалось $_SESSION['data'], то опять придется править все зависимые файлы. Решается тоже через dependency injection. Нужно два класса, для работы с php-сессиями и для работы через redis, которые реализуют единый интерфейс, во все классы которые работают с сессиями нужно внедрять один из экземпляров этих классов. Тогда всё будет переключаться 1 строкой в конфиге.

Ладно, пора закруглятся, всё равно врядли что-то будет понятно и невозможно объяснить коротко и ясно в рамках форумного поста. Я лишь хотел сказать, что знание синтаксиса ООП, это вовсе не знание самого ООП. Многие паттерны, в том числе и Dependency Injection появились, чтобы решать различные повседневные задачи, но twin тебе написал, что паттерны это "быть как все" не слушай вообще таких людей, паттерны помогают не писать говнокод. Паттерны используют, потому что это быстрый способ решить конкретную проблему. ООП без паттернов - это не ООП, а говно.

Спасибо.
Игорь_Vasinsky
Цитата
. Я объясню в кратце. Наследование это плохо. Article наследуется от DB_Connect. Это жесткое связывание. Будут проблемы с мигрованием из mysql на другую субд

пфф...
он чё фреймворк пишет?

Цитата
паттерны помогают не писать говнокод

использование CMS вообще позволяет ничего не писать.

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
twin
Ух ты!
Santehnick
Цитата
Аутентифицировался чтобы сказать.
Добро пожаловать.
Цитата
но twin тебе написал, что паттерны это "быть как все" не слушай вообще таких людей, паттерны помогают не писать говнокод.
Я такого ТС не писал. Повода пока не было. Однако это действительно "всё", если писать сайтик на три странички, руководствуясь такими постулатами:
Цитата
Будут проблемы с мигрованием из mysql на другую субд.
Будут, только зачем мигрировать? Это как раз и есть говнокод. Дело в том, что у разных СУБД разные возможности. И если писать проект так, что его можно
Цитата
быстро переключить проект с одной бд на другую.
, мы заведомо ограничиваемся использованием только пересечением этих возможностей, что сильно снижает гибкость разработки самого приложения. Допустим MySQL и PosgreeSQL. Собрав интерфейс под эти две СУБД мы не сможем использовать ни курсоры со стороны постгре, ни IGNORE со стороны MySQL, так как первые не поддерживаются второй СУБД и наоборот. А если писать приложение под все возможные СУБД, то останется ужасно куций кусочек SQL. И тут получается нонсенс. С одной стороны мы вроде как пишем "крутое" приложение, имеющее возможность работы с любой СУБД. С другой - оставляем в арсенале только самые простенькие запросы, которые годятся только для хомячков.

Ну и так далее. Собственно я сейчас не собираюсь тут устраивать холивар. Если действительно есть что сказать по существу (не тупо декларируя вычитанные неизвестно где постулаты), прошу покорнейше сюда. А иначе все это пустой звон.

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Santehnick
Цитата
Я такого ТС не писал.
Цитата
Будут, только зачем мигрировать?

Я лишь пример привел, там и более реальный есть с сессиями. Смысл сообщения был в том, что наследование в конечном счете привет к тому, что это будет одно монолитное приложение. Код, который нельзя повторно использовать, нельзя тестировать, нельзя заменять части приложения, ничего нельзя, потому что всё жестко связано друг с другом.

Цитата
А если писать приложение под все возможные СУБД, то останется ужасно куций кусочек SQL. И тут получается нонсенс. С одной стороны мы вроде как пишем "крутое" приложение, имеющее возможность работы с любой СУБД. С другой - оставляем в арсенале только самые простенькие запросы, которые годятся только для хомячков.

Нет, мы не пишем "крутое" приложение, имеющее возможность работы с любой субд. Мы пишем приложение, имеющее потенциальную возможность для расширения, без изменения существующего кода, а реализовать изначально можно только работу с mysql. Это один из принципов solid, конкретно open-closed principle. Если для того, чтобы в будущем добавить поддержку postgreSQL нужно изменить то, что уже было написано, это нарушение принципа OCP. И в этом есть логика, ведь любое изменение существующего кода - это всегда потенциальный риск возникновения багов.

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

И вместо того, чтобы заниматься допилом существующего кода, всё что я сделаю, это напишу новый класс, который реализует интерфейс аутентификации и всё само заработает. А у автора топика ничего не заработает, потому что он мыслил "не шаблонно, не как все" и ему нужно будет дописать еще чуть говнеца к тому, которое у него уже есть, приправив это еще парочкой свежих багов, по вкусу.
bestxp
посмотри PSR стандарты) это ответит на все вопросы и без велосипедов
twin
Santehnick
Я имел ввиду этот топик) Здесь я такого не советовал. Потому что тут не было повода. ТС нигде не написал, что будет разрабатываться фреймворк. Даже наоборот, он указал, что будет разрабатываться конкретный проект.

Все, что вы с таким пылом описали, годно только для фреймворка. Ибо никто и никогда в трезвом уме и при памяти не меняет СУБД у действующего приложения. Такое можно представить только в страшном сне.

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

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

С той же базой. Есть в репозитории несколько легких классов для работы с конкретными СУБД, на кой писать универсального монстра, если те же модели все равно пишутся под конкретику? Не будут запросы для Postgre работать в SQLite и так далее. Значит при переходе с одной СУБД на другую мало универсального класса. Либо нужно кастрировать модели, оставив только то, что работает на пересечении. Это ахилесова пята всяческих ORM. Либо изменять их, что сводит на нет все усилия по "унификации".

С той же стратегией. А кто сказал, что нужно "допиливать код"? Вы просто не знаете, как можно сделать иначе, так как мыслите только шаблонами. Мне никто не запретит так же написать статические классы под каждую сеть, которые будут выдавать определенный набор данных и соединить их где то в одном месте. Можете это назвать стратегией, дело хозяйское, однако такой подход не вписывается в вашу доктрину.

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

Вы всегда говорите - шаблоны, это бэст практикс, потому что так делают все. Только не всегда это оправдано. В данном случае я считаю - нет. Не оправдано. Учиться программировать и учиться шаблонно мыслить - совершенно разные, если даже не полярные вещи.

Вот если бы тема называлась как-нибудь "Пилим свой фреймворк", я бы смиренно молчал.

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
bestxp
Бла бла бла, твин опять одна вода и твое устарелое имхо

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

Знаешь смена БД вполне возможна даже в крупных компаниях, вон газпром на одной из дочек решил отказаться от Oracle в пользу постгреса, из-за возможных экономических проблем в виде санкций и тд

Инструментом пользуются пока он выполняет свои задачи, а когда не может выполнить его меняют, БД такой же инструмент, сегодня MySQL потом миграция на постгрес или оракл или кассандру или какойнибудь ОРМ, при правильном проектировании и если надеются на будущее у проекта тогда делают нормально, а не придумывают велосипед от которого потом будут вешаться сами же, ты тут миллион раз не прав, и ниодного довода ты не приведешь к тому что архитектуру делать нужно не верно


twin
Я в который раз говорю - нет смысла воевать с мельницами. Я не Дон Кихот.

Я предложил практическое сравнение (вернее даже не я, я с энтузиазмом поддержал), вот там можно ломать копья. Мой образец готов два месяца назад, оппонентов ждем. А пока бла бла только с вашей стороны.

Цитата
кому нужен будет программист с велосипедами который не может уже устоявшиеся практики использовать, да никому 99% проблем решено уже, а остальной 1 появляется очень редко
Так называйте вещи своими именами. Какой же это программист, который использует 99% чужого кода... Его и кодером то назвать трудно. Это называется "сборщик на конвеере". Да, ты прав, таких сейчас большинство, и такие специалисты востребованы. Но причем тут программирование?

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
bestxp
Вот ты уходишь от темы, да это тоже программист и то что ты назвал сборщиком
twin
Ни в коем разе. Программист пишет программы, те, которые ты обозначил как
Цитата
99% проблем решено уже

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

Многие программисты выкладывают свои решения в опенсорс. Есть те, кто старается сделать универсальные решения, сиречь фреймворки. Их можно понять. Это их хлеб. Это тоже программисты. А те, кто на любой пук лезет в гугл, не надеясь на свои силы, аргументируя примерно так:
Цитата
любое изменение существующего кода - это всегда потенциальный риск возникновения багов.
уже немного не то.

Другими словами. Есть на заводе КБ. Там люди разрабатывают новые технологии. И есть сборщики на конвеере, которым изменять существующий цикл просто нельзя. Если перенести в нашу сферу, первые - программисты. Вторые - пользователи.

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

Меня всегда поражают высказывания плана
Цитата
Паттерны используют, потому что это быстрый способ решить конкретную проблему.
применительно к таким темам, где люди хотят научиться программировать, а не собирать поделки.

Еще раз повторю, если не услышали. Я бы не возникал, если бы тема называлась "А давайте сделаем суперфреймворк", либо "научите меня паттернам". Но тема называется не так. Если ТС подьяснит, и скажет, что он именно это имел ввиду, я умолкну. Но пока вы со своим узким мировоззрением лезете не в ту степь. Пытаясь заведомо загнать людей в рамки, которые им может и вовсе не нужны.

Я сильно сомневаюсь, что газпром пользовал что то плана симфони или иже с ней. И что он 10 лет ждали, когда же вдруг на них наложат санкции, юзая монструозный класс для работы с любой СУБД. Перевести проект на другую базу можно и так, для этого не обязательно изначально проектировать приложения под все. Данные все равно придется адаптировать, как и запросы.

И вообще. Газпром - это показатель в энергетике, а не а IT. Что там у них особо показательного? Особенно у дочки. Может я не знаю чего...



_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.