×

За фреймворки поговорим

Підписуйтеся на Telegram-канал «DOU #tech», щоб не пропустити нові технічні статті

Добра.
Для проекта встал вопрос выбора фреймворка.
Проект про обработку большого количества excel файлов размером до 15-20 т. строк, с использованием MongoDB (ну и mysql, да)

На руках есть отличное знание ZF1, приемлимое понимание Symfony2.
Но zf1 уже стар, а zf2 производит впечатление монстра, которого даже трогать страшно.
Symfony же отталкивает своей «тяжестью».
Смотрели Yii. Yii2 пока альфа, а v1 не подойдет ввиду запуска новой версии.

Хотя все больше склоняюсь к Symfony но пока еще напрягает необходимость иногда сражаться с самим фреймворком :)
Any advices? Чем пользуетесь вы, почему ваш фреймворк лучше?

p.s. да, я могу нагуглить результаты тестов и прочего. Но интересует именно практический опыт людей, работавших с разными фреймворками

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Коментар порушує правила спільноти і видалений модераторами.

Наприклад дуже добре йде silex. Від малого до великого проекта.

Не знаю какие цели ставите перед собой, но если нет цели типа «выбрать что-то из того, что хотя бы немного знаем и все уже работали с этим (имею в виду всем известные фреймворки, типа ZF, CI, Yii)», то я бы присмотрелся к каким-то новеньким штучкам, вроде Laravel или FuelPHP.

А cakePHP, кто то использовал? Интересует написание модуля для веб-комерции...

На руках есть отличное знание ZF1, приемлимое понимание Symfony2.
Но zf1 уже стар, а zf2 производит впечатление монстра, которого даже трогать страшно.
про zf1 имхо стоит забыть, так как это эпоха ещё того «доPSR-ного» ПХП, а по каким причинам, я перешёл с ZF2 на Symfony2, уже и правда не помню, но основные соображения были исходя из того, что в основном я Java-программер, а на LAMP-е просто фрилансю, когда попадается что-либо интересное и имхо, Симфония + её основной стэк бандлов (от Symfony CMF & Sonata до доктрин и прочего) — золотая середина между энтерпрайзом (ога, в PHP он есть) и средним, потребительским вэбом. Но точно могу сказать, что причина возврата на Symfony (не, ну то, что б прям завязал с Zend-ом, а просто положил его в список с пометкой «прочие») заключалась не в каком-то монстроподобии ZF2 (там всего-то ничего для обычной MVC2/MOVE веб-аппликухи надо, но зато более строгий стиль, ибо лизалось со всё Спринга всё ведь), а просто она мне больше нравится по совокупности множества мелких факторов, которые, суммарно, в конечном итоге и определяют основной фреймвёрк.
Symfony же отталкивает своей «тяжестью».
Смотрели Yii. Yii2 пока альфа
Yii — это то, что его разрабы смогли понять из философии Zend2 & Symfony2 и насколько удалось реализовать основные архитектурные моменты, в их исполнении ;)

В общем, в вашем случае, фреймвёрк видимо прийдётся подбирать под конкретную задачу (в данном случае — обработка экселин), и на мой взгляд, больше подойдут уже упомянутые здесь: Silex или Phalcon + Phalcon Eye (для админки) или вообще уйти от PHP в данном случае

ps: Phalcon — да, годная вещь, есть 3 внутренних проекта реализации вебсервисов и всяких там API, но у него так же имеются свои, хоть незначительные, но всё-таки раздражающие моменты, например: вызов модульного инита («Module DI» — класс, реализующий ModuleDefintionInterface, и выполняющий роль IoC & прочих инициализаторов и автоладингов в Фальконе) только того модуля, раутер для которого совпал (в случае multi-приложения), когда в случае того же Zend2 или Symfony2, механизм построения зависимостей и инициализаций сервисов доступен из коробки и является одной из основных частей ядра фреймвёрка. Имхо, отсутствие «коробочного» механизма построения IoC для всех модулей — одно из самых основных и досадных отличий MVC-архитектуры Фалькона от Симфонии и Зэнда, и пусть даже ценой экономии лишних миллисекунд на отсутствие необходимости поиска и загрузки конфигурационных файлов контейнера.

По поводу phalcon — решил ознакомиться, и это первое, что в мультимодульности насторожило. Но легко решил этот вопрос, если кто с ним будет работать, посмотрите на это:
github.com/...etonApplication
самое интересное внизу README :)

Львинная доля моих проектов написана на Yii первой версии. Сильное сообщество, много документации, библиотека расширений. Проекты легкие в поддержке и расширении. Фреймворк легковесный, но единственный минус это orm. На этом фремворке очень быстрый старт разработки проекта (teamfinding.com за десяток вечеров), но при наступлении хайлоада, нужно перепиливать и кастомизировать все что связано с activerecord.

А без ORM религия не позволяет?)

Читайте чуть внимательнее:

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

Смысл писать без ORM, если это ускоряет разработку в разы. В тоже время, если это бьет по производительности — переписываем и оптимизируем на чистые запросы :)

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

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

Спасибо, Вам так же!
P.S. Вы так ничего и не поняли :)

Дада, конечно, я в этом не разбираюсь совсем.

Смысл писать без ORM, если это ускоряет разработку в разы.
Разработку — нет.
Производительность — возможно, но я не представляю себе места, где выгоднее писать без ORM.
Разве что это совсем простые hello-world-ы.

Ускоряет, к примеру сделал GenericDao и у тебя уже есть crud для любого ентити. Всяко лучше чем на jdbc/jdbctemplate педалить простыни кода.

От себя конечно-же посоветую symfony 2. Никакой там тяжести не будет, если подойти с умом, к тому-же doctrine достаточно мощный при скрупулезной обработке распределенных/сложных/больших данных, вообще его как отдельную либу можно использовать.
Как альтернатива в сторону скорости работы — присоединюсь к тем, кто советует phalcon, это однозначно быстрый фреймворк.

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

Все ж таки потрібно відштовхуватися від складності і потреб проекту. Можливо вам потрібен «ентерпрайз», а можливо баш скрипт :) Zend 2 не сильно монструозний, але складнощі виникають коли хочеш відразу зрозуміти:
1. Систему подій
2. Систему сервісів
3. Взаємодію модулів(роути т.п.).

Хоча поки тільки вивчаю можливості. Зараз склалась думка так працювати можливо і непогано ділиться на частини.

Є російський переклад книги по Romer M. Web Development with Zend Framework 2 Непогано все розкладає по місцям.

Но zf1 уже стар, а zf2 производит впечатление монстра, которого даже трогать страшно

В это утверждение вместо «zf1» и «zf2» подставляй что угодно — и оно останется истинным

Попробуйте Laravel, он в стиле RoR. Одна беда с автокомплитом, но она частично лечится. Есть масса готовых компонентов и куча плюшек, вам пригодятся очереди. Для монги нужно отдельный пакет установить. Из коробки из nosql только redis.

Но большие excel файлы на php лучше не обрабатывать. Этот слой лучше реализовать на java-python. Ни в коем случае не nodejs, я с ним намучался на данной задаче. Как вариант, если csv, можно напрямую забрасывать в монгу, а потом уже разгребать из php.

да там разбора — прочитать данные и записать в массив. все остальное уже в пхп.

Phalcon — весьма

кстати да, смотрел на него.
Не слишком ли он молод?

Делаю проект пару месяцев — пока что «очень хорошо». Не тяжел, в отличие от ZF2 и Symfony, реализация на мой вкус неплохая. Скорость превосходна (неудивительно, C — на это первоначально и купился). Исходники на C доступны — если что, то и поправить можно, хотя риск и присутствует, конечно.

как с хостингом? взлетит ли он на vps, например? или нужно какое-то особое решение?

+nginx+php-fpm — дым из под колес со старта. Как раз для маломощных серверков — идеал по ресурсам. Но, имхо, конечно

окей. большое спасибо за совет. потрогаю на практике

вы использовали его в реальном проекте ?

UPD: уже прочел ответ в следующем вашем сообщении

Я бы не брался за него пока он не превратится в зрелый проект. У нас даже обычный PHP иногда падает в корку и мы даже написали скрипты которые собирают корки со всех серверов и в специальном интерфейсе выводятся данные из них. Ну и соответственно есть человек который их изучает и патчит PHP.
Я почти уверен что phalcon будет падать ещё чаще.

это в контексте Badoo? потому как для таких масштабов фалкон явно пока не готов :)
но если всего кода-то будет — 3-5 небольших классов, почему нет?

Интересно, а под интернет магазин с высокой нагрузкой покатит?Как Вы думаете?

Why not? Хотя тут особо думать не надо, и других слушать также). Ставите упрощенную тестовую конфигурацию с характерными пропорциями запросов (или хотя бы их сборку INVO) и даете на нее то, что считаете «высокой нагрузкой», и столько времени, сколько вам нужно стабильной работы, скажем, до сбоя.

Высоко нагруженная система-высоко разгруженная система.У вас был подобный опыт.Сколько это может занять по времени.Использовали ли Вы уже готовые модули на проекте?Если да.То можно ссылочку...

Проект с применением phalcon в процессе (специфический), вполне удовлетворительное поведение фалькона, веселый фреймворк (не УГ). Мне нравится старт-кит github.com/mruz/base-app. Ссылочка по нагрузке (не моя), к примеру, frameworksdays.com/...n-PHP-Framework

-

Вы не смогли в сленг? :D

Одессу, видимо, давненько не посещали. Утесова вообще не слышали?

я думаю в данном случае что-то вроде «сказать нечего но молчать сил нет». вот и имеем — выпуск задержавшихся газов прямиком в лужу :D

а у Утёсова и Одессы свои правила русского языка?
может, тогда уже по фене?
молчать, да, сил нет, хорошо училась в школе %)

очень рад за Ваше образование.
Только вот что рекрутер забыл в ветке «программирование»?
Ах да! видимо «образование» насаждать :D

Видимо, все же недостаточно хорошо, если путаете ветку форума и академический доклад

я ничего не путаю
доклад? какой доклад?
или вы считаете, что «за» вместо «о» (и «рубли» вместо «гривны» и пр.) — это нормально?

если читать ветку форума «программирование» и отвечать в неё рекрутерам запрещено, то сорри %) (что-то в правилах ДОУ я этого не встречала)

если читать ветку форума «программирование» и отвечать в неё рекрутерам запрещено, то сорри %) (что-то в правилах ДОУ я этого не встречала)

Обсуждение правописания для этого топика все-таки оффтопик, а он не приветствуется, даже от рекрутеров.

Как-то вспоминается про бревно и глаз: /rock’n’roll/ С самого рождения в январе 2000-го «Арчер» выплясывает под заводной ритм IT-бизнеса: инновации, развитие, взлеты, пике и бочки. Мы бьемся грудью, \поем сердцем\, \прокачиваем "dexterity«\ и «intelligence», \лупим по клавишам\ и теннисному мячику.

визуализировал «бьемся грудью». проиграл в голос

как-то вспоминается про переход на личности, прошу не мешать сюда компанию и текст, который писала, увы, не я ;)

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

дело не в запретах.
суть в том, что вопрос задан по программированию. и грамматика имеет вторичное значение, раз уж меня поняли и даже отвечали.
таким образом врыв в «программирование» от рекрутера с последующим чтением «евагелие от граммар-наци» выглядит довольно странным

Коментар порушує правила спільноти і видалений модераторами.

Коментар порушує правила спільноти і видалений модераторами.

Коментар порушує правила спільноти і видалений модераторами.

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

Ну и собственно вопрос к вам — каких плюшек вы ждете от фреймворков?

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

Ну исходя из этих критериев — Symfony2 — ваш выбор.

наверное, я безбожно устарел, но не понимаю: почему так важно выбрать именно фреймворк для решения некоторой конкретной задачи?
Вот я бы начал с выбора технологии из тех, что мне знакомы (php или node.js), а потом бы озаботился поиском алгоритмического решения.. а далее, опираясь на примерные объемы работ, я бы посмотрел нет ли чего подобного в популярных фреймворках..
или так уже никто не делает?..

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

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

А вообще недавно была хорошая статья, что код нужно писать не под фреймворк, а как можно более независимый. kristopherwilson.com/...-the-framework

раскажите что такое фреймоврк или дайте гдето почитать, а то я как то пропустил этот этап развития пхп.

Коментар порушує правила спільноти і видалений модераторами.

Коментар порушує правила спільноти і видалений модераторами.

Підписатись на коментарі