Цитата (twin @ 1.09.2016 - 20:03) |
Цитата (Guest @ 1.09.2016 - 15:50) | а symfony фреймворк это не сборка библиотек? |
Нет конечно.
|
Цитата |
Symfony Components are a set of decoupled and reusable PHP libraries. You can use any of these components in your own applications independently from the Symfony Framework http://symfony.com/components |
Цитата |
А выдрать либу можно хоть откуда. |
Видимо это и есть ваш варварский способ программировать.
Но я уже понял, вести конструктивный диалог с вами невозможно. Вы всё всегда лучше всех знаете, даже лучше самих разработчиков. Вы настоящий программист со знанием гугл переводчика. Настоящий эксперт!
GuestТак покажи уже код, наконец-то. Без кода ты букашка, а с кодом - человек
_____________
Обучаю веб-программированию качественно и не дорого:
http://school-php.comФрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
Цитата (Guest @ 2.09.2016 - 16:58) |
Видимо это и есть ваш варварский способ программировать. |
Не, это не наш метод. Наш метод - велосипеды.
Я серьёзно.
Цитата (Guest @ 2.09.2016 - 16:58) |
Но я уже понял, вести конструктивный диалог с вами невозможно. |
Cтесняюсь спросить. Конструктивно, это как? Со всем соглашаться?
Цитата (Guest @ 2.09.2016 - 16:58) |
Вы всё всегда лучше всех знаете, даже лучше самих разработчиков. |
Ну ладно, соглашусь. Пусть будет сборка компонентов, если хочется её так использовать. Только мне опять не понятно, а причем тут вообще symfony? Это к вопросу
Цитата (Guest @ 31.08.2016 - 13:30) |
1. Почему таких решений как набор независимых symfony компонентов нет в мире процедурного программирования? |
Так и на ООП больше нету
Ну чухнули ребята перспективу SOA, молодцы. Сняли сливки. Это не отменяет других парадигм. Больше скажу, их компоненты можно использовать
рядом с процедурными в своем приложении. Как раз и приятно, что ООП все больше поворачивается лицом к народу.
Цитата (Guest @ 2.09.2016 - 16:58) |
Вы настоящий программист со знанием гугл переводчика. Настоящий эксперт! |
Обидеть меня не получится, мне плевать на оскорбления. Да к тому же я не скрываю свой bad еnglish, для того и тему создал, чтобы помогли с переводом.
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
Цитата (inpost @ 2.09.2016 - 21:03) |
Guest Так покажи уже код, наконец-то. Без кода ты букашка, а с кодом - человек |
Не покажу. Эта задача не уровня программиста, а уровня веб-мастера и нет принципиальной разницы как она будет решена. В софтверную компанию приходят с другими задачами, как правило с задачами по автоматизации бизнеса. Там сначала моделируют предметную область заказчика. Если доменная модель получается крупная, её делят на сабмодели. Сабмодели могут реализовываться разными группами программистов. Затем всё вместе собирается в конечный продукт. Ты как программист не можешь там писать как веб-мастер на процедурной лапше, у тебя просто ничего не будет работать и тебя выгонят. Там нужно следовать контрактам, которые были определены архитекторами на этапе проектирования доменной модели. Потому что, тот участок кода, который нужен для того, чтобы заработал твой участок кода, еще может быть не написан, но это не повод ничего не делать, ты всё равно должен писать код и проверять его работоспособность юнит-тестами. В это время даже никто не знает, на каком фреймворке будет работать приложение и будет ли это опенсорц фреймворк или для приложения будет написано своё request-response окружение для http протокола. Грамотная ООП архитектура позволяет не делать таких предположений и отложить решение по окружению до момента реализации доменной модели в виде кода.
Очень просто. Достаточно сходить на полгода поработать в крупную софтверную компанию. И сразу будет понятно, почему не работает процедурный код и зачем все эти контракты, стандарты, спецификации, протоколы, правила, паттерны, слои приложения и всё остальное на чем держится вся эта индустрия. Гарантирую, что розовые очки сразу снимешь, это тебе не блог на вордпресе пилить.
Цитата (Guest @ 4.09.2016 - 23:08) |
Очень просто. Достаточно сходить на полгода поработать в крупную софтверную компанию. |
Вот!!! Вот это и есть камень преткновения.
Тоже самое написал brevis, с чего все и пошло:
Цитата |
Вот в таких условиях жизненно необходимо форматировать программистам мозги. Чтобы все думали и кодили одинаково. Чтобы их легко можно было заменять. |
И еще раньше сказал Пол Грэм:
Цитата |
по моему мнению, за исключением некоторых специализированных областей применения, объектно-ориентированность ничего не даёт хорошим программистам, она очень привлекательна для больших организаций. ООП - это приличный способ написания путаного лапшеобразного кода, позволяющий строить программы в виде серии патчей. Большие организации всегда были склонны разрабатывать программное обеспечение таким образом, и думаю, этому и через сто лет не измениться. |
Понятно, что гораздо легче управлять теми, кто ходит строем.
Но только причем тут остальные? Почему вы решили, что ваше ООП удобно
всем?
Далеко не все работают в крупных конторах по 100 человек. В основном команды гораздо меньше. А многие вообще в одно рыло работают.
Так какого хрена им навязываются "лучшие практики", если они являются лучшими только для огромных компаний? Если у классического ООП это единственное преимущество перед мультипарадигмой.
Это и есть лейтмотив статьи. Если ты программист, не стоит кидаться в крайности. Ну а если кодер на конвеере, то такова твоя незавидная судьбинушка.
Шучу, выбор каждого достоин уважения.
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
У меня при чтении некоторых участников форума возникает такое же чувство, когда я вижу котиков. Глумиться нехорошо, но в тоже время так забавно, что сил никаких нету.
Потому что, если это CRUD приложение, то такой сайт быстрее сделать на RAD фреймворке, потому что там много готового, оттестировано, поддерживается и точно работает, чем писать с нуля опираясь на библиотеки. Это вполне логично, внушительная экономия времени.
Если это проект с сложной бизнес-логикой, то использовать будут подход, который я выше написал, где процедурное программирование просто перестает работать.
Получается, что процедурное программирование никому не нужно. Типичный сайт на фреймворке может напоминать процедурный код, но даже в этом случае, классы помогают собрать разрозненые функции в более крупную единицу и таким образом лучше организовать код, чем когда все функции выгружаются в глобальный скоуп.
Есть участки программ, где нужно учесть возможность менять поведение. В процедурном коде мы должны будем плодить управляющие конструкции:
function (...) {
if (...) {
} elseif (...) {
} else {
}
}
Хуже всего, такой код нужно читать, чтобы понять что там происходит и как-то выяснять в какую ветку мы всё таки попадаем. Чтобы добавить новое поведение, нужно изменить этот код, добавив еще одну ветку и за одно возможно что-нибудь поломать. В фреймворке с инверсией зависимостей, мы с помощью полиморфизма избавимся от этих управляющих конструкций и необходимости изменять код при добавлении нового поведения, код будет однозначно читабельнее.
Конечно, можно протащить идею инверсии зависимостей и в процедурный код. Но для меня это садомазо, усираться, что ооп ничего не дает и при этом тащить оттуда клевые нужные фишки, вместо того, чтобы взять его и использовать.
То есть уже есть кое-какой профит от ооп. Дальше я рассказывать не буду, что в крупных приложениях часто делают архитектуру в 4 слоя, с однонаправленным потоком данных и что это дает. Потому что об ооп архитектуре пишут целые книги и в одном посте это всё невозможно объяснить, чтобы показать еще более значительный профит от ооп.
Кстати забыл упомянуть, что фреймворк никак не ограничивает разработчика в реализации любых его фантазий на экране любого девайса. А то некоторые думают иначе.
Цитата (Guest @ 5.09.2016 - 03:02) |
Получается, что процедурное программирование никому не нужно. |
Да кто говорит о процедурном программировании то? Статья о том, что не нужно кидаться в крайности. Вот сейчас я подготовил дебаггер для
этого цикла.
Вот это место для чего писать на ООП? Ради чего корячиться?
Почему у меня там так, объясню.
1. Этот дебаггер можно подключить куда угодно, с любым автозагрузчиком или вовсе без него.
2. В процессе гораздо проще писать dbg($var); чем \PhpBugsnore\Debugger($var);
Или вот тут. На кой ляд мне там объект, сохранять его, таскать туда-сюда, внедрять, контейнеры всякие, тонны кода, если просто нужно сохранить состояние. Объект мне там вообще не нужен, статический класс как раз что доктор прописал.
И так везде. Если удобнее использовать процедуру, я буду её использовать. Ровно как и любую другую парадигму. Не смотря на то, что в ваших книгах по архитектуре считают это bad-practics
Кстати. Не подскажешь хорошую книжку по архитектуре Веб-приложений? Желательно на PHP. А то все книги, что мне попадались, для этого мало подходят. Они в основном для десктопа написаны.
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
Guest, не спорь с twin по поводу ООП, это бесполезное занятие, в конце ты придешь лишь к тому выводу, что Коля слишком сильно погряз в болоте простых сайтиков. Ему не нужно ООП - в силу отсутствия большого количества кода, а кода у него мало потому, что проекты которые он реализует не сложны по своей сути. Мои слова подверждены его же словами. Например, было такое сообщение, где он писал, что переписывает код проекта через каждые n лет практически полностью. Так как я работаю с весьма сложной системой, то скажу, что я бы никогда бы не стал переписывать ту систему с которой я работаю.
_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
Цитата (twin @ 5.09.2016 - 07:37) |
В процессе гораздо проще писать dbg($var); чем \PhpBugsnore\Debugger($var); |
если кодовая база новая и написана правильно, лучше вообще использовать контрольные точки и дебаггер(xdebug и тп), а не эту кустарщину.
_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
Цитата (chee @ 7.09.2016 - 14:20) |
Так как я работаю с весьма сложной системой, то скажу, что я бы никогда бы не стал переписывать ту систему с которой я работаю. |
Ты хочешь сказать, что если проект написан на 4 версии, то ну его нафиг трогать?
Ты не переписываешь проекты потому, что пользуешься какой то CMS, на сколько я помню. За тебя это делают её разработчики.
У нас сумашедшие нагрузки и я не могу позволить себе такую расточительность. Да, в объеме кода наверняка я проиграю тебе. Но не в объеме функционала.
Потому что видел твой пет-прект. Сто с лишним классов задействовать для "привет мир"... Да меня бы уволили давно.
А переписать проект не сложно. Это называется рефакторинг. Я же не с чистого листа это делаю.
И да, спорить со мной бесполезно. Потому что я прав на своей колокольне. Ничем ООП не лучше мультипарадигмы. И я это докажу, когда тему доделаю.
Цитата (chee @ 7.09.2016 - 14:34) |
если кодовая база новая и написана правильно, лучше вообще использовать контрольные точки и дебаггер(xdebug и тп), а не эту кустарщину. |
Кто тебе мешает? Или может заставляет кто? Не используй кустарщину.
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
Цитата (twin @ 7.09.2016 - 18:50) |
Ты хочешь сказать, что если проект написан на 4 версии, то ну его нафиг трогать? |
Да, его можно только латать, устраняя устаревшии функции. Новый же функционал выводить в свои абстрации, а эти абстрации подключать через адаптеры, которые архитектурно будут не противоречить старой системе. То что у тебя возникают такие вопросы, доказывает, что с легаси-кодом ты не очень то работал.
Цитата (twin @ 7.09.2016 - 18:50) |
Ты не переписываешь проекты потому, что пользуешься какой то CMS, на сколько я помню. За тебя это делают её разработчики |
В том числе и поэтому. Но многие вещи там написаны отвратно, но они работают. Очень чешутся руки, так и хочется сделать нормально, но когда понимаешь на сколько там переплетенная логика, насколько все держится в притык, становится понятно, что это невозможно.
Цитата (twin @ 7.09.2016 - 18:50) |
У нас сумашедшие нагрузки и я не могу позволить себе такую расточительность. Да, в объеме кода наверняка я проиграю тебе. Но не в объеме функционала. |
Ты проиграешь и в объеме кода и в функционале, я тебе гарантирую.
Цитата (twin @ 7.09.2016 - 18:50) |
Кто тебе мешает? Или может заставляет кто? Не используй кустарщину. |
эм, ну я говорил про твое решение. Оно вообще никому не нужно, кроме тебя и твои учениковю
_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
Цитата (chee @ 7.09.2016 - 15:35) |
Да, его можно только латать, устраняя устаревшии функции. Новый же функционал выводить в свои абстрации, а эти абстрации подключать через адаптеры, которые архитектурно будут не противоречить старой системе. То что у тебя возникают такие вопросы, доказывает, что с легаси-кодом ты не очень то работал. |
Ну уж нет, спасибо. Я лучше перепишу все заново. И да, не работал я с легаси. Потому что у нас всегда актуальные версии проекта.
Цитата (chee @ 7.09.2016 - 15:35) |
В том числе и поэтому. Но многие вещи там написаны отвратно, но они работают. Очень чешутся руки, так и хочется сделать нормально, но когда понимаешь на сколько там переплетенная логика, насколько все держится в притык, становится понятно, что это невозможно. |
Вот тут я тебе ну вообще не завидую. Мало того, что тонны кривого кода, так еще и нет возможности написать нормально. Ужс. И все это ваше ООП. Как раз в статье про обезъяну с бананом написано.
Цитата (chee @ 7.09.2016 - 15:35) |
Ты проиграешь и в объеме кода и в функционале, я тебе гарантирую. |
Не гарантируй. Ты просто наверное думаешь, что я один этим занимаюсь? И переписываю один? Не думай, нас на сегодня 6 программистов. Так что остынь.
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
Цитата (chee @ 7.09.2016 - 15:35) |
эм, ну я говорил про твое решение. Оно вообще никому не нужно, кроме тебя и твои учениковю |
А я и не навязывал. Просто предложил, почему нет. В фреймворках же есть, и
народ интересуется. Может кому и понравится. По крайней мере он функциональнее xdebug (ну в части вывода информации на экран).
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.