Перейти к содержимому

Фото
- - - - -

Продуктивная разработка на PHP


  • Вы не можете создать новую тему
  • Please log in to reply
20 ответов в этой теме

#1 Voland

Voland
  • Пользователь
  • 272 сообщений

Отправлено 01 Август 2007 - 15:58

Надоело копипастить куски кода, хочется чего-то более продуктивного и гибкого.
Кто что посоветует? Может какие фрэймворки?

Сообщение изменено: Voland (01 Август 2007 - 16:07 )

  • 0

#2 Setor

Setor
  • Постоялец
  • 1 890 сообщений
  • Откуда:Эстония, Таллин

Отправлено 01 Август 2007 - 16:12

Даа, с такой проблемой думаю, сталкивается каждый разработчик. Из готовых вещей можно посмотреть Symfony, Zend Framework, Limb. Но все они очень тяжёлые и далеко не каждый проект сможет под ними работать. Есть более лёгкие решения, но в плане функциональности они конечно, уступают своим старшим братьям.

Я например, пишу свой фреймворк и по ходу разработки различных проектов возникают проблемы, приходится что-то придумывать, т.е. фреймворк - это не панацея от всех бед, просто набор функционала. К последним словам особенно относится Limb, остальные же решения более монолитны.

P.S. Хоть одна интересная тема за последний месяц ;)
  • 0

#3 Voland

Voland
  • Пользователь
  • 272 сообщений

Отправлено 01 Август 2007 - 16:24

Первые два уже смотрел, они действительно тяжеловаты. Сейчас рассматриваю CodeIgniter и гляну Limb.

А делать своё это снова изобретать велосипед...
  • 0

#4 Setor

Setor
  • Постоялец
  • 1 890 сообщений
  • Откуда:Эстония, Таллин

Отправлено 01 Август 2007 - 19:22

Voland, ну, тогда посмотри prado и solar.

А делать своё это снова изобретать велосипед...

Своё всегда родное ;) У меня есть один весомый аргумент в пользу своего - оно лишено недостатков других фреймворков. Я попросту взял различные идеи из каждого. Но больше всех мне конечно, симпатизирует Symfony. Да и вообще, для меня большую ценность представляет документация, нежели код.

Взять например, Zend Framework - крутой, раскрученный, а поди найди на нём хоть один реальный ОС проект... Я видел парочку, это убожество.

гляну Limb.

Он наверное, тебе тоже не понравится ;)

Мне нравится их идея, ядро системы составляет обычная цепочка фильтров. Всё гинеальное просто ;) Но у меня всётаки сначала контроллер, а потом уже цепочка фильтров всем заправляет.

Вспомнилась одна тема на каком-то форуме, человек спрашивал совета. Его программист установил symfony чтобы написать пару простеньких скриптиков. Что-то вроде гостевушки ;) 10 мегабайт и полторы тысячи файлов...
  • 0

#5 Voland

Voland
  • Пользователь
  • 272 сообщений

Отправлено 01 Август 2007 - 20:01

Да, несомненно своё роднее но на написание нужно время.
Может подскажеш что хорошее почитать на тему mvc pattern.
  • 0

#6 Setor

Setor
  • Постоялец
  • 1 890 сообщений
  • Откуда:Эстония, Таллин

Отправлено 01 Август 2007 - 20:41

Да, несомненно своё роднее но на написание нужно время.
Может подскажеш что хорошее почитать на тему mvc pattern.

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

По поводу mvc... В сети полно инфы на эту тему. Мне очень нравится реализация данного паттерна в Symfony.

P.S. а может тебе нужна универсальная CMS? Т.е. CMF
  • 0

#7 Voland

Voland
  • Пользователь
  • 272 сообщений

Отправлено 03 Август 2007 - 08:01

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

Правда, готовых решений не нашел, посему пишу сам.
  • 0

#8 Setor

Setor
  • Постоялец
  • 1 890 сообщений
  • Откуда:Эстония, Таллин

Отправлено 03 Август 2007 - 17:59

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

PEAR, Smarty - там всё есть :)

Я же разрабатываю платформу для создания веб-приложений различной сложности. Сегодня наверное, самой прибыльной нишей является создание сайтов-визиток (5-6 тыс. за штуку). На всё уходит от 3х до 7дней. По этому, я считаю, нужно иметь небольшую CMF для поднятия подобных сайтов и добавления им уникальных возможностей, которые не охватишь в обычной CMS, т.к. часто CMS системы создаются с таким монолитным уклоном, что модификация их поведения очень дорого обходится или попросту невозможна.

хочется чего-то более продуктивного и гибкого.

ООП, паттерны проектирования, экстримальное программирование
  • 0

#9 Voland

Voland
  • Пользователь
  • 272 сообщений

Отправлено 13 Август 2007 - 12:29

Таки остановился на CodeIgniter.
Лимб показался несколько запутанным хотя и очень гибким.
Ваяю магазинчик. :)
Кстати, может кто напишет в приват текущие цены на разработку сайтов/магазинов и т.п.

А то надоело работать на дядю-начальника и ждать зарплаты.
  • 0

#10 Vladson

Vladson

    XTGamers.com

  • Постоялец
  • 1 921 сообщений
  • Откуда:Эстония, Таллинн

Отправлено 13 Август 2007 - 13:06

текущие цены

Всё зависит от тебя, сможешь продать свои услуги дорого, получишь много, не сможешь получишь мало. (я видел приделы от 50 до 5000 зелёных)

Таки остановился на CodeIgniter.

Хороший выбор, мне он тоже нравится, хотя я его редко использую...
  • 0
Один Владсон может за...ать всех, кроме себя самого. Два Владсона могли бы за...ать абсолютно кого угодно, но Владсон единственный и неповторимый. ©Vladson

Вы либо способны перелопатить тонны информации и отсеять лишнее, либо программистом не будете. ©Psih

Не вазелин, а бизнес-гель ©Avagraen

#11 Setor

Setor
  • Постоялец
  • 1 890 сообщений
  • Откуда:Эстония, Таллин

Отправлено 13 Август 2007 - 23:48

Таки остановился на CodeIgniter.
Лимб показался несколько запутанным хотя и очень гибким.
Ваяю магазинчик. :)
Кстати, может кто напишет в приват текущие цены на разработку сайтов/магазинов и т.п.

А то надоело работать на дядю-начальника и ждать зарплаты.

CodeIgniter вроде как гибрид между PHP4/5, я же предпочитаю полностью ОО решения. К тому всё и идёт ;) Лёгкий фреймворк, не пользовался, но смотрел исходники. Вроде ничего.

Лимб - это мясо ;)

А что магазинчик будет продавать, если не секрет?
  • 0

#12 ParadoxL

ParadoxL
  • Постоялец
  • 4 756 сообщений
  • Откуда:Edinburg

Отправлено 30 Август 2007 - 10:34

Года три назад начал ваять свой фреймворк, если можно так выразиться. В общем по сути напоминает JSF движок, тока на PHP. Правда более простой и менее функциональный, но при необходимости расширяемый. Сейчас вот подумывают наваять для Eclipse плагины для работы с ним, чтобы можно было предоставить общественности ... но как всегда жуткая нехватка времени. Так что наверно его можно отнести будет скоро к очередным мертвым проектам.
  • 0
Victoria nulla est, Quam quae confessos animo quoque subjugat hostes ...
Верю в смерть после жизни, любовь после секса и в крем после бритья ...

#13 zedirtybastard

zedirtybastard
  • Пользователь
  • 499 сообщений

Отправлено 11 Октябрь 2007 - 13:24

расскажите мне про Cake, посмотрел его, вроде ничего, по крайней мере рельсовские идеи мне очень импонируют.
  • 0

#14 Setor

Setor
  • Постоялец
  • 1 890 сообщений
  • Откуда:Эстония, Таллин

Отправлено 11 Октябрь 2007 - 13:52

расскажите мне про Cake, посмотрел его, вроде ничего, по крайней мере рельсовские идеи мне очень импонируют.

Вряд ли кто-то тебе тут что-то сможет рассказать. Гугл в помощь. Моё мнение - не катит, т.к. он написан под 4-ку, а это уже вчерашний день. Я считаю, не стоит сегодня зацикливаться на этом, не тратить время и искать FW с нормальной объектной моделью на PHP5, т.к. поддержка PHP4 накладывает определённые ограничения и не всегда это удобно. Особенно парят амперсанды. Смотри ссылку, я думаю, там всё написано.
  • 0

#15 Setor

Setor
  • Постоялец
  • 1 890 сообщений
  • Откуда:Эстония, Таллин

Отправлено 11 Октябрь 2007 - 14:06

P.S. глянул я на него, идеи неплохие. В целом довольно удобно, но не знаю, как он поведёт себя на сложных проектах.
  • 0

#16 zedirtybastard

zedirtybastard
  • Пользователь
  • 499 сообщений

Отправлено 12 Октябрь 2007 - 12:42

P.S. глянул я на него, идеи неплохие. В целом довольно удобно, но не знаю, как он поведёт себя на сложных проектах.

Мы делали небольшой проект на рельсах, могу сказать, что это ОФИГЕННО удобно
  • 0

#17 Setor

Setor
  • Постоялец
  • 1 890 сообщений
  • Откуда:Эстония, Таллин

Отправлено 12 Октябрь 2007 - 13:00

Мы делали небольшой проект на рельсах, могу сказать, что это ОФИГЕННО удобно

Охотно верю. Я сам пытаюсь создать FW, который делал бы за меня большую часть работы, но ещё столько впереди... Нет особо времени им заниматься. Можно конечно взять уже готовое решение, но обычно, когда я так делал, у меня возникали проблемы и приходилось ковырять чужой, плоходокументированный исходный код, чтобы изменить или добавить какую-то функциональность. Ещё могу сказать одну вещь - универсальных на 100% скриптов не бывает, каждый раз клиент придумает какую-то закавырку, которая красиво звучит на словах, но на деле потребует приличных телодвижений, так что даже когда пишешь сам - не факт, что сможешь использовать наработку в следующем проекте, каждый раз приходится её немножко подгонять напильником.
  • 0

#18 zedirtybastard

zedirtybastard
  • Пользователь
  • 499 сообщений

Отправлено 12 Октябрь 2007 - 14:07

В рейлс-фреймворках замечательным является то, что фактически тебе даются хелперы, для работы с контроллерами, абстаркционный слой для БД и какой-нить темплейт-engine (в каке там вообще вроде используется нативный похапе, никаких смарти), функционал этих модулей скорее типичный и более подходит для RAD девелопмента, а так, чтобы взять хитрозакурченный проект и реализовать его только силами какого-либо фреймворка - утопическая мечта, на елку залезть и на х.. сесть все равно не получится, и тут уже все упирается в стоимость проекта. Все-таки времена, когда можно было грести бобло лопатой за по сути элементарную работу уже прошли, если браться за уникальную работу не-менйстрим, то есс-но многие фреймворки идут лесом, но это тоже зависит от разработчика, интересно ему ломать голову с непонятной хренью или легче и проще просто лупить цмски по 300 баксов.

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

Сообщение изменено: zedirtybastard (12 Октябрь 2007 - 14:24 )

  • 0

#19 Setor

Setor
  • Постоялец
  • 1 890 сообщений
  • Откуда:Эстония, Таллин

Отправлено 12 Октябрь 2007 - 14:56

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

Конечно, все мы знаем, что на 100% универсального ФВ не бывает, но я считаю, что можно написать основу для практически любого проекта. Единственное условие - проект должен быть не пустяковый, ибо затраченные ресурсы не будут окупаться. Довольно абстрактной площадкой является LIMB - он больше похож на набор библиотек, разработчики свели к минимуму количество зависимостей. Он мне нравится, но я например, не хочу использовать их шаблонную систему WACT или мне не нравится его производительность. Каждый фреймворк часто навязывает какие-то мудрёные библиотеки (один Propel чего стоит ;)).

По этому я стараюсь использовать только свои разработки. Мой FW насчитывает около полумегабайта кода и ~100 файлов. Ставить его куда попало смысла нет, существует некая грань, начиная с которой его можно использовать: магазины, доски объявлений, аукционы и т.п. Для более мелких проектов у меня есть более лёгкая его версия, она является CMF системой с поддержкой PHP4. Если первый обладает невероятной гибкостью, то честно сказать, реализуя на CMF различные нестандартные сайты средних размеров, я понимаю, что с универсальностью дела обстоят туго. Не всегда получается полностью исключить дублирование кода и CMF накладывает свои ограничения на работу контроллеров или использование кода из других модулей.

Самой большой проблемой имхо, является отображение на одной странице нескольких различных компонент (голосование, новости, баннеры и т.д.). Зачастую, для включения одной компоненты нужно подгрузить несколько файлов (3-4). Представим, что на странице надо вывести сборную солянку всяких блоков - без кеширования далеко не уйдёшь. Часто ещё эти компоненты должны между собой общаться... Из-за использования FW сильно падает производительность, ведь можно было создать 1 скрипт в ~1000 строк кода с парой инклудов, натянуть какой-нить Смарти и сложная страница сайта готова) Правда, поддержка этой страницы будет стоить программистам лысины ;) Т.е. нужно решать проблему взаимосвязей различных компонентов системы и тогда можно делать практически всё, что угодно.

По поводу ЦМСок - я всегда советую людям купить ЦМС и натянуть на неё дизайн, когда они просят меня написать им ЦМС :)

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

Есть доля правды. Но если постоянно использовать и развивать свой FW, можно быть вполне счастливым. Сегодня ведь с нуля практически ни кто уже не пишет. Постоянно юзаются какие-то библиотеки. Просто в PHP туго обстоят с этим дела, в других же языках возможности пошире, производительность лучше и пол дела уже неплохо написано до нас :) Т.е. является стандартом де-факто.
  • 0

#20 zedirtybastard

zedirtybastard
  • Пользователь
  • 499 сообщений

Отправлено 15 Октябрь 2007 - 17:09

Посмотрел я Limb, нипанравилось, зачем-то взяли эти бредовые идеи из ASP.NET и прикрутили их к похапе, хотя их активрекорд очень хвалили где-то. В целом, что меня сильно раздражает почти во всех фреймворках, так это однобокая заточенность для работы с view, я понимаю, что среднестатическому девелоперу для щастья больше и не надо, но если я хочу получить данные, скажем в формате JSON без рендеринга лэйаута, то возникают некоторого рода проблемы.
Посмотрел в каке хелпер для работы с prototype.js, ужаснулся и поскорее постарался забыть
  • 0

#21 Setor

Setor
  • Постоялец
  • 1 890 сообщений
  • Откуда:Эстония, Таллин

Отправлено 15 Октябрь 2007 - 19:16

Посмотрел я Limb, нипанравилось, зачем-то взяли эти бредовые идеи из ASP.NET и прикрутили их к похапе, хотя их активрекорд очень хвалили где-то. В целом, что меня сильно раздражает почти во всех фреймворках, так это однобокая заточенность для работы с view, я понимаю, что среднестатическому девелоперу для щастья больше и не надо, но если я хочу получить данные, скажем в формате JSON без рендеринга лэйаута, то возникают некоторого рода проблемы.
Посмотрел в каке хелпер для работы с prototype.js, ужаснулся и поскорее постарался забыть

На в кус и цвет... Я во всех фреймворках смотрю только идеи. View - не нравится, не используй. У меня например, сделано как в симфонии, не хочешь вида - его и не будет. Есть правда, одна проблемка - вид создаётся после выполнения экшена (action), а мне бы нужен его экземпляр в самом экшене, я бы добавл в него методов вроде setPageTitle и т.п. В симфонии Response отвечает за эти задачи, но мне кажется, это идеологически неправильно, по этому возможно, буду пересматривать эту модель. Реализацию фронт контроллера и фильтров я почти полностью позаимствовал у симфонии, но мне ещё очень симпатизируют фильтры в Лимбе, т.к. там контроллер тоже является фильтром, что я считаю, довольно гибким решением.

Имхо, фреймворк не должен ничего навязывать разработчику, любой компонент должен легко заменяться или отключаться. И сам фреймворк должен из себя предоставлять набор пакетов, как в Лимбе. У каждого FW есть какие-то свои косяки, по этому я собираю все лучшие идеи и реализую их у себя. Если кому интересно, можно их пообсуждать.
  • 0