[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Даю уроки по программированию на PHP
Страницы: 1, 2, 3, 4
GET
twin
paul85

+ так и есть.

_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
sergeiss
К вопросу о фреймворках и CMS.
Я тут, практически вне зависимости от своего желания, изучаю Друпал. Потому что это было оговорено изначально, когда договор подписывал. "Слава всем богам", что мне не приходится с ним каждый день работать smile.gif Но приходится.
Вот недавно потратил несколько дней на то, чтобы сделать аяксовую форму. Чтобы данные ввели, кнопочку жмякнули, форма ушла на сервер, данные записались в БД или отправились на почту, в браузер пришло подтверждение об успешной отправке.
На нативных функциях, с нуля, написал бы это за несколько часов. А на Друпале - несколько дней. Почему, говорите? Да потому, что половину как минимум пришлось всё равно делать "на нативных функциях"!!! А я, дурак, искал решение "средствами Друпала". А нету его...
Да и сама аяксовая форма (которая средствами Друпала делается) через задницу работает, изначально. В частности, я не могу просто отправить инфу в браузер. Нужно указать, в каком объекте (ДИВе) надо напечатать текст, передаваемый после обработки формы. Пришлось делать скрытый ДИВ, сразу же после отправки формы запускать таймер в JS и проверять содержимое ДИВа. Как только оно становится непустым, я его забираю, обрабатываю, ДИВ очищаю, таймер останавливаю... И в самих данных закладываю инфу и о (не)успешности, и о том, что показать/сделать в браузере. Вот чтобы понять, что надо именно так сделать, пришлось "поплясать с бубном".

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Invis1ble
Совокупность собственных разработок и является фреймворком, по сути. Только зачастую непротестированным, с кривой архитектурой и без документации.

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

twin
Цитата (Invis1ble @ 13.02.2015 - 11:31)
Совокупность собственных разработок и является фреймворком, по сути. Только зачастую непротестированным, с кривой архитектурой и без документации.

Не по сути скорее, а по определению.

Хотя не в этом дело, когда говорят "фреймворк", подразумевают именно фреймворк. А не свой велосипед.

Естественно у каждого, кто не юзает опенсорс, он есть. Но вот у меня рука не поднимется обозвать свои наработки фреймворком. Структура (да и то не всегда одинаковая), набор решений, принципы... Скорее это репозиторий, но не фреймворк.

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

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

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

user posted image
Invis1ble
Именно что по сути.

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

Santehnick
Любая попытка создать на популярном фреймворке что-то действительно интересное приведет к тому, что придется лезть и переписывать много всего внутри.

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

Во-вторых: фреймворк очень и очень прожорливая вещь.

Не. Набросал тестовый проект на Yiiframework 2, самый жирный запрос от клиента отъедает 3.4 мб памяти на nginx. Сервер у которого 1 гб свободной памяти, сможет обслужить 301 запрос одновременно.

То есть, под высокие нагрузки не годится изначально.

Почему? Хайлоад одной машиной не обслуживается. Всё можно масштабировать. Допустим у вас вырос траффик и наступил bottleneck у веб-сервера, веб-сервер больше не может исполнять php-скрипты и умирает. Ок, пришло время отделить фронтенд от бекенд. Теперь фронтенд будет только принимать запрос и проксировать его на бекенд веб-сервер, которых может быть 2,5,10,100 и вообще сколько угодно. Всё что нужно это на каждый из бекенд-серверов залить ваше php-приложение. Какие проблемы? Проблем не будет, если писали на фреймворке, а вот если говнокод собственного приготовления, то скорее всего вы не подумали изначально, что будет с сессиями и проблемы будут у вас. Вы отправитесь в долгий рефакторинг, а ваши пользователи отправятся ко мне.

Если bottleneck наступит у фронтенда, тоже масштрабируется, всё что нужно это прописать домену несколько ip-серверов ваших фронтендов, и запросы на фронты начнут приходить по кругу, т.е. round-robin. База данных тоже масштабируется, ну вы вкурсе.


В них всё сделано для решения задач а-ля "богом забытый интернет магазин".

Не, не согласен. На фреймворке не всегда полностью делается всё приложение, иногда в одном приложении используется несколько фреймворков. Вот смотри. Например, мы хотим крутое развлекательное real-time приложение, чтобы нас полюбили миллионы, как вконтактик. Но на HTTP протоколе вменяемый real-time не сделать. Нужен еще один протокол, WebSocket подойдет. А раз WebSocket, то ему также как и HTTP нужен какой-то демон на сервере, для HTTP за нас все сделали и дали apache/nginx и т.п., а теперь нам нужно своего демона написать, к которому будет подключаться клиент (браузер например). В итоге, у нас два совершенно разных протокола, но нам нужно объединить это всё в одно клёвое приложение. В итоге, всё приложение может состоят из 3 частей, например:

1. Клиент на AngularJS
2. Демон Node.js/socket.io/Express
3. RESTful Api на php/Yiiframework 2

В каждой части свой фреймворк. Но фреймворк на php это только 1/3 всего приложения.

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

Вангую, но нативных технологиях, вас хватит только на классическое веб-приложение из начала двухтысячных.
paul85
Цитата (Invis1ble @ 13.02.2015 - 15:31)
Совокупность собственных разработок и является фреймворком, по сути. Только зачастую непротестированным, с кривой архитектурой и без документации.

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

Ну а что касается тестирования, то что там особенно тестировать-то? =) SQL инъекции да еще пару моментов.

Насчет документации это да. Но тут есть и преимущество, если посмотреть под другим углом. Что мы имеем в популярных фреймворках? Во-первых открытый код. Который любой может скачать и проанализировать на уязвимости. Во-вторых можно надолго заполучить клиента на поддержку. А это, без ложного стеснения, тоже хороший аргумент. Здесь не о том, чтобы напаривать людей, нет. Скорее наоборот, защита, чтобы не послали тебя. Не поменяли на прыщавого щенка, который ужа научился печатать стрелочки но понятия не имеет что они означают.

Или вот этот вот Active Record. От которого лично у меня появляются позывы на опорожнение желудка... Попробовал в RoR ресайзить картинки с помощью PaperClip того же. Отвратительно! Каждое "стандартное" решение поражает своей перегруженностью, но главное там, как правило, нет того, чего тебе действительно нужно!

Хваленая миграция между хранилищами и вовсе полный бред. Это надо было вообще такое придумать!? В каком бреду и кто до такого додумался: унифицировать то, что не может быть унифицировано в принципе! )) Как можно поставить в один ряд SQLite и Oracle!? Как можно доверять разработчикам фреймворка, которые искренне считают, что это возможно?

У меня популярные фреймворки вызывают ассоциацию с китайским базаром. Вроде издалека кажется интересно, что-то там поблескивает, позвякивает. А как подойдешь, то увидишь, что на первый взгляд есть всё, а на поверку нет ничего. Один ширпотреб, который хрен переделаешь еще в нормальную вещь. =))

Ну и опять же, свой продукт ты знаешь вплоть до запятой. Чтобы так же узнать фреймворк типа Yii, понадобится неадекватное количество времени. И ровно к тому моменту, когда ты наконец-то его постигнешь, выйдет новая версия.

Не знаю, вполне возможно мне не хватает опыта и что когда-нибудь я изменю свою точку зрения...
twin
paul85
Цитата
У меня популярные фреймворки вызывают ассоциацию с китайским базаром. Вроде издалека кажется интересно, что-то там поблескивает, позвякивает. А как подойдешь, то увидишь, что на первый взгляд есть всё, а на поверку нет ничего. Один ширпотреб, который хрен переделаешь еще в нормальную вещь. =))
Украл в мемориз biggrin.gif

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

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

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

user posted image
Santehnick
Цитата (twin @ 12.02.2015 - 21:45)
Вариант одного проекта не рассматривается? К примеру тот же преславутый вконтакт. Кто его обойдет? Кто на фреймворке очередную говносеть напишет?

Рассматривается, только я и говорю, что он не взлетит. Реально, что взлетало в рунете с 1997 года? Только 3 проекта. Вот они:

1. Yandex (yandex.ru) 1997
2. Бойцовский клуб (combats.ru) 2002
3. Вконтакте (vkontakte.ru) 2006

Всё, больше ничего в рунете не взлетало, в таких масштабах, что в 2004 все подходили и спрашивали "слыш чувак ты в бэка играешь?", а в 2008 и по настоящее время "слыш, дай ссылку на себя в вк". Да и зачем писать соц. сеть, ты что думаешь соц. сеть это предел и больше не будет проектов, которые выстрелят с таким же успехом? Будут. Тем более HTML5 релизнулся, так что ждём biggrin.gif
Santehnick
Цитата (paul85 @ 13.02.2015 - 17:38)
Yii, понадобится неадекватное количество времени. И ровно к тому моменту, когда ты наконец-то его постигнешь, выйдет новая версия.

Yii2 релизнулся в октябре 2014, так что лет 5 у тебя еще есть в запасе, чтобы его освоить smile.gif
paul85
Цитата (Santehnick @ 13.02.2015 - 21:28)
Набросал тестовый проект на Yiiframework 2, самый жирный запрос от клиента отъедает 3.4 мб памяти на nginx.

Самый жирный запрос классического (full featured) интернет-магазина на моем движке отъел на апаче <1Мб. Это еще при условии, что там крутится такой монстр как шаблонизатор Smarty... По скорости обработки запроса моя поделка по крайней мере в 2-3 раза эффективнее. Вот и весь хрен до копейки. Вам понадобится 3 сервера, а мне один.

Цитата (Santehnick @ 13.02.2015 - 21:28)
то скорее всего вы не подумали изначально, что будет с сессиями и проблемы будут у вас.

Не будет. Сессию хэндлит специальная служебная модель. Остальные классы обращаются за данными к свойствам этой модели. Мне достаточно переписать способ хранения не в сесии, а в Redis. И вообще: http://redis4you.com/articles.php?id=001&n...+handler+in+PHP

Цитата (Santehnick @ 13.02.2015 - 21:28)
иногда в одном приложении используется несколько фреймворков.

Для начала нужно отделить фронтэнд от бэкенда с точки зрения разработки. Совершенно разные направления. Юзабилити, внешний вид - это одно. Скорость работы серверной части - совершенно другое. За границей даже специалисты совершенно разные.

Цитата (Santehnick @ 13.02.2015 - 21:56)
Yii2 релизнулся в октябре 2014, так что лет 5 у тебя еще есть в запасе, чтобы его освоить

Ой, пффффф, бррр, нет... Yii - восновном слизан с RoR. Уж лучше тогда его. Еще Laravel вроде бы как ничего - позволяет легко обходить навязываемые штуки, типа Active Record. Но он, собака, медленный. Ну жесть! У меня платформа девелоперская на базе машины с производительностью 3500bogoMIPS. Так на ней аж на глаз видно, насколько тяжело ворочается этот фрейм.
paul85
Цитата (Santehnick @ 13.02.2015 - 21:50)
Реально, что взлетало в рунете с 1997 года? Только 3 проекта. Вот они:

Это эпичные проекты. Кстати одноклассников забыли.

А есть еще drive2ru, avito, auto.ru, rbk, rutracker, mamba...
twin
Santehnick
Цитата
Всё, больше ничего в рунете не взлетало, в таких масштабах
Ну поведайте нам, что же взлетело на фреймворках?

А почему вообще должно взлетать? Посмотрите на сайт любого более-менее значимого банка. Ну или другие, более-менее серьёзные проекты? Какие стартапы еще, дорвеи может или всякая хрень для сапы? Визитки - то да. Штампуй, не хочу. О чем и речь.

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

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

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

user posted image
sergeiss
Цитата (Santehnick @ 13.02.2015 - 21:28)
Если чего-то не хватает то для приложения пишется расширение или подтягивается от сторонних разработчиков как зависимость в проект. В этом плюс, большое коммьнити предоставляет много расширений.

Я чуть ранее в этой теме про Друпал написал. Что потратил кучу времени, чтобы найти это самое "расширение". А нету его! Но чтобы это понять, пришлось перелопатить кучу всего, куда меня гугл посылал с моими запросами. Всё время была надежда: а вдруг найду? Не нашел. Сделал сам. Если бы сразу делал сам, а не "делал в духе Друпала", то времени ушло бы меньше.
И ведь хрень в том, что такое постоянно smile.gif Ну да, в другой раз я уже знаю, КАК подойти к такой проблеме. Но ведь этих проблем много... И в этом как раз кроется проблема изучения всех CMS и фреймворков.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

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

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