Почему очень хорошая платформа PHP - Qcodo (или Qcubed - его ответвление) - так непопулярен? [закрытый]

Правильная структура будет

import uuid 

def process_batch(rdd):
    if not rdd.isEmpty():
        result.saveAsTextFiles("/Users/rocket/Downloads/output-{}".format(
          str(uuid.uuid4())
        ) ,"txt")


result.foreachRDD(process_batch)

. Однако, как вы видите выше, для каждой партии требуется отдельный каталог, так как RDD API не имеет режима append.

И альтернативой может быть:

def process_batch(rdd):
    if not rdd.isEmpty():
       lines = rdd.map(str)
       spark.createDataFrame(lines, "string").save.mode("append").format("text").save("/Users/rocket/Downloads/output")
6
задан Pawel 8 May 2009 в 20:10
поделиться

23 ответа

  1. The creator(s) of Qcodo never really promoted the framework, and thus, didn't generate a large following. I believe they created it mostly for their own use, but also offered it up to others. It is awesome if you are looking for a code-generating framework. It does have a learning curve. So to get the most use of it, it's best to spend time studying the examples.

  2. Qcodo has really had no active development for well over a year and there doesn't appear to be much chance that development will continue on Qcodo anytime soon. Qcodo appears to be dying a slow death.

  3. Qcubed, a branch of Qcodo, is under active development and has been since Nov 2008. It was created by users of Qcodo who got frustrated with the lack of Qcodo progress. If you are just getting started, start here and not with Qcodo. But use Qcodo forums to search for problems/questions you may have.

Qcodo and Qcubed are fantastic frameworks. Don't discount or underestimate them just because you've not heard of them.

17
ответ дан 8 December 2019 в 02:00
поделиться

Qcubed и Qcodo используются нами в 3 проектах, и это самые чистые и простые в поддержке проекты, которые у нас когда-либо были! Это отличный материал, и его легко понять. Просто войдите в код, вам не понадобится много руководств.

Сообщество Qcubed на данный момент намного сильнее, поэтому вы можете проверить на форуме Qcodo свои ответы по основным проблемам, но публиковать сообщения на форуме Qcubed.

Мы продолжим оставаться с этим фантастическим продуктом и сообществом!

С уважением, tronics

http://www.twitter.com/qcodo

5
ответ дан 8 December 2019 в 02:00
поделиться

I also came from a dotNet / Codesmith environment. When I picked up a project that wanted to translate a dotNet site to PHP I looked for a framework that could best emulate the way the original application's logic was set up. What I found was either bloated frameworks or frameworks that did not completely fulfill the projects requirements.

I accidentally found QCodo while researching using the MyGeneration tool for PHP code generation. I have not looked back since. The ease of use, ability to quickly build complex applications and the true OO approach QCodo now QCubed uses makes it the best framework for my purposes.

0
ответ дан 8 December 2019 в 02:00
поделиться

http://www.piranhamethod.com/2009/04/09/qcodoqcubed/

Я слышал об этом, и мне это нравится.

0
ответ дан 8 December 2019 в 02:00
поделиться

Никогда об этом не слышал.
Занимаюсь PHP более четырех лет

0
ответ дан 8 December 2019 в 02:00
поделиться

Хотя я слышал о нем (Qcodo ... не об этой вилке), я никогда не пытался его использовать. Существует множество фреймворков, а в них не так много нужды. PR и умственное отношение чрезвычайно важны в такой ситуации, а у Qcodo никогда не было того же. Теперь, когда я определился с горсткой, у меня нет ни времени, ни желания начинать изучать новую структуру.

1
ответ дан 8 December 2019 в 02:00
поделиться

Нет, я никогда об этом не слышал.

Основные из них, о которых я слышал, - это Zend, CakePHP, Symfony, Code Igniter и еще одна или две, которые я могу ' Сразу вспомню имена.

4
ответ дан 8 December 2019 в 02:00
поделиться

Я много лет использовал PHP и никогда о нем не слышал.

33
ответ дан 8 December 2019 в 02:00
поделиться

Я занимаюсь PHP время от времени около 3 лет и никогда о нем не слышал. Попросите кого-нибудь назвать PHP-фреймворк, и вы получите обычных подозреваемых: Code Igniter, Cake, Zend и т. Д.

Думаю, разработчикам QCodo нужно немного поработать над своим маркетингом!

2
ответ дан 8 December 2019 в 02:00
поделиться

Я использую QCodo с бета 2, и теперь я основной участник QCubed, так что да, я слышал о нем.

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

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

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

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

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

В защиту некоторых негативных моментов, сказанных здесь, я просто укажу, что заявки для большинства из предполагаемых «проблем» просто никогда не создавались. И я бы посоветовал любому, кто столкнется с любым из них, пожалуйста, создайте для нас билет, чтобы посмотреть на http://qcu.be .

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

В защиту некоторых негативных моментов. Сказанное здесь, я просто укажу, что билеты на большинство предполагаемых «проблем» просто никогда не создавались. И я бы посоветовал любому, кто столкнется с любым из них, пожалуйста, создайте для нас билет, чтобы посмотреть на http://qcu.be .

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

В защиту некоторых негативных моментов. Сказанное здесь, я просто укажу, что билеты на большинство предполагаемых «проблем» просто никогда не создавались. И я бы посоветовал любому, кто столкнется с любым из них, пожалуйста, создайте для нас билет, чтобы посмотреть на http://qcu.be .

просто никогда не создавались. И я бы посоветовал любому, кто столкнется с любым из них, пожалуйста, создайте для нас билет, чтобы посмотреть на http://qcu.be .

просто никогда не создавались. И я бы посоветовал любому, кто столкнется с любым из них, пожалуйста, создайте для нас билет, чтобы посмотреть на http://qcu.be .

1
ответ дан 8 December 2019 в 02:00
поделиться

I've been using QCodo for 2 years and now I'm with QCubed.

This is the nice way to develop and maintain web applications, as well as, the easiest way to deploy code and test it. Remember that QCubed is now growing in acceptance and it's good for all QCodo's Community.

I think that frameworks can save a lot of development time but it many cases it's not recommended for all yours web developments.

2
ответ дан 8 December 2019 в 02:00
поделиться

Я уже довольно давно использую QCodo, ZCodo, а теперь и QCubed.

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

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

0
ответ дан 8 December 2019 в 02:00
поделиться

Эмуляция ASP.NET или Wicket в PHP - не лучший вариант. Более того, мне не нравится стиль кода.

$this->btnSavePage = new QButton($this);
$this->btnSavePage->Text = "Save";
$this->btnSavePage->Visible = false;

$this->btnCancelEdit = new QButton($this);
$this->btnCancelEdit->Text = "Cancel";
$this->btnCancelEdit->Visible = false;

Венгерская нотация? О, МОЙ БОГ. Мне нужно создать большой объект для создания кнопки? Мне тяжело.

9
ответ дан 8 December 2019 в 02:00
поделиться
  1. Сообщество qcubed не настолько опытно, чтобы продолжать проект с новыми хорошими идеями

    Ерунда

  2. нового кода нет в уровень Майка Хо.

    Ерунда

  3. ошибки в состоянии qforms, формы qcodo / qcubed.

    ??

  4. не популярен.

    Так что

  5. они не хотят продолжать использовать DSL и форвардную инженерию.

    Ваша точка зрения? Все фреймворки, которые не хотят идти вашим путем, ошибаются? Я, например, не хотел бы, чтобы ваши предложения

  6. формы работают только с включенным js.

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

  7. написано на PHP.

    Без комментариев

  8. новая система плагинов плохо спроектирована.

    На основании чего вы так говорите? Я бы сказал чепуху и на это.

Очевидно, что в этом плакате есть какая-то скрытая цель ... Я также внимательно посмотрел на Symphony - и каждый раз я бы предпочел QCubed Symphony. Для больших или маленьких приложений

-2
ответ дан 8 December 2019 в 02:00
поделиться

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

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

0
ответ дан 8 December 2019 в 02:00
поделиться

I have used QCodo/QCubed for 1.5 years now. Started with my own framework, which at some point seemed messy. That's when I started looking for a more mature framework. Luckily I found QCodo. Since then I have never even considered looking for something else. The framework is so flexible and powerful, that you can do everything you want with it.

I had almost no experience with event-driven architecture. So, the beginning was somewhat hard, cause there was few documentation available. But community itself is very active and you probably get answer to your newbie questions in 1-2 days (sometimes even in hours). But currently the documentation level is way better and community is even more active :)

Nothing I can complain about. And if I have some problems/suggestions, I will try to discuss those with core developers. Whining about stuff without constructive discussion is lame imho.

I have used QCodo/QCubed for 3-4 successful projects now. The more I use it, the more I like it :) And also, I'm trying to help developing even better framework whenever I have spare time. And I can say, that I have had more than 10 people, who I have convinced to start using QC now ;) And I hope there will be many more.

QCubed totally rocks!

1
ответ дан 8 December 2019 в 02:00
поделиться

В этом журнале плавания используется mySwimLog

1
ответ дан 8 December 2019 в 02:00
поделиться

Да , мы используем его на Chess.com и в целом очень им довольны. Может возникнуть проблема с попыткой выяснить, как / где хранить все эти QFormStates, когда вы получаете более миллиона просмотров страниц в день. Каждое представление страницы - это собственный QFormState! Мы решили это, поместив их все в кэш памяти! У него действительно есть некоторая кривая обучения, но как только вы это узнаете, вам больше не понадобится документация. На самом деле я полностью отказался от использования QQ и использую все пользовательские sql в наших файлах ORM. QQ просто недостаточно мощен, чтобы выполнять сильно оптимизированные запросы, а точно настроенные запросы более важны, чем абстракция базы данных. В конце концов, сайт должен работать и быть быстрым. Вот один из примеров статического метода ORM в нашем классе User для загрузки случайного пользователя из базы данных (мы использовали его для отображения случайного «внимания пользователя» на странице наших участников). Обратите внимание, как он использует подчиненную базу данных, не наш мастер (настраиваемая функция). Он также использует кэш памяти, так что случайный пользователь изменяется только каждые 10 минут (600 секунд).

public static function LoadRandom($blnAvatarRequired = true, $blnForce = false) {
  $strCacheKey = MyMemcache::QueryToKey("User->LoadRandom()");
  if($blnForce || false === ($objUser = MyMemcache::G()->GetQuery($strCacheKey))) {
    $objDatabase = QApplication::GetSlaveDbConnection();

    $DaysAgo = new QDateTime(QDateTime::Now);
    $DaysAgo->AddDays(-10); //make sure this is an active member

    // Setup the SQL Query
    $strAvatarReq = $blnAvatarRequired ? ' and u.has_avatar':'';
    $strQuery = "
      select
        u.*
      from
        user u
      where
        u.is_enabled=1 and
        u.create_date > '$DaysAgo'
        $strAvatarReq
      order by
        rand()
      limit
        1
    ";

    // Perform the Query and Instantiate the Result
    $objDbResult = $objDatabase->Query($strQuery);
    $objUser = User::InstantiateDbRow($objDbResult->GetNextRow());
    MyMemcache::G()->SetQuery($strCacheKey, $objUser, null, 600);
  }

  return $objUser;
}
5
ответ дан 8 December 2019 в 02:00
поделиться

Начал пользоваться два года назад. Pro:

  1. генерация кода из базы данных
  2. ORM объектно-ориентированная
  3. простое использование ajax

Минусы:

  1. сообщество qcubed не настолько квалифицировано, чтобы продолжать проект с новыми хорошими идеями
  2. новый код не на уровне Майка Хо.
  3. ошибки в состоянии qforms, формы qcodo / qcubed.
  4. не популярны.
  5. они не хотят идти дальше и использовать DDD и
  6. формы работают только с включенным js.
  7. написаны на PHP.
  8. новая система плагинов плохо спроектирована.

На данный момент Grails кажется лучшим фреймворком, очень ориентированным на DDD, с возможностью использовать любой существующий Java-код, хорошей библиотекой шаблонов, возможностью использовать разные js-фреймворки, построенные на Hibernate и Spring. С помощью Grails можно написать простое веб-приложение или финансовое приложение.

Я надеюсь не использовать PHP в будущем, но, поскольку я знаю Qcubed / Qcodo, я буду использовать его, если это будет необходимо. Для новичков я рекомендую Symfony, большее сообщество, новые плагины, богатый набор функций, у него более безопасное будущее.

Обновления:

  • Нет миграции базы данных, нет возможности отслеживать изменения схемы базы данных
  • Нет схемы, отражающей, какие таблицы генерируются
  • Он не предназначен для реального TDD, нелегко тестировать модели, контроллеры и представления. Они просто добавили среду тестирования к недружественной веб-платформе тестирования
  • . QForms все еще содержат ошибки и могут терять статус при использовании нескольких элементов управления и вызывать ошибку Ajax и блокировать приложение.
  • ORM очень скучно использовать в долгосрочной перспективе ( много болтливого / избыточного кода) и не может быть протестирован с помощью такого инструмента, как консоль Rails, в итоге требуется меньше времени, чтобы использовать чистый SQL и протестировать его с помощью phpMyAdmin.
  • Ошибки и в ORM, иногда я получаю строку, когда я объявляю поле как целое число (запросы, генерируемые кодом).
  • Есть не фронт-контроллер, а система маршрутизации и фреймворк внутри публичного пути! Плагины также устанавливаются по общедоступному пути!
  • Странная структура каталогов не похожа на другие фреймворки MVC, и они считают, что M обозначает ORM только вместо модели.
  • не тег link_to, как Rails или Symfony и многие другие. другие теги.
  • Сложные метаконтроли, которые полезны только для того, чтобы тратить время.
  • Фреймворк сфокусирован на каркасе, тогда как в Rails он не используется часто, поскольку большинство разработчиков используют ориентированный на пользователя дизайн вместо ориентированного на данные.
  • Взгляды полны объектов-> рендеринг, а также JS и пользовательские элементы управления - это боль, которую нужно настраивать, и вместо того, чтобы оставаться внутри шаблона, они находятся внутри класса с логическим сеансом ... все.
  • Он не работает с PHP 5.3 (не тестировался, но должен быть решен) и на Quercus.
  • В Rails / Grails есть множество плагинов, которые делают все.

Я мог бы продолжить, но я думаю, вы поняли идею. Просто изучите Rails или Grails в течение нескольких месяцев, а затем дайте мне знать, что вы думаете.

Я перевожу свой проект Qcodo на Rails, и у меня прекрасная среда, хорошее сообщество, и большая часть инноваций в сети связана с Ruby и Rails. Rails несколько раз был признан лучшим инструментом веб-разработки и единственным инструментом, который может заменить Java или .net

3 (не тестировался, но должен быть решен) и на Quercus.
  • Rails / Grails имеет множество плагинов, делающих все.
  • Я мог бы продолжить, но я думаю, что вы поняли идею. Просто изучите Rails или Grails в течение нескольких месяцев, а затем дайте мне знать, что вы думаете.

    Я перевожу свой проект Qcodo на Rails, и у меня прекрасная среда, хорошее сообщество, и большая часть инноваций в сети связана с Ruby и Rails. Rails несколько раз был признан лучшим инструментом веб-разработки и единственным инструментом, который может заменить Java или .net

    3 (не тестировался, но должен быть решен) и на Quercus.
  • Rails / Grails имеет множество плагинов, делающих все.
  • Я мог бы продолжить, но я думаю, что вы поняли идею. Просто изучите Rails или Grails в течение нескольких месяцев, а затем дайте мне знать, что вы думаете.

    Я перевожу свой проект Qcodo на Rails, и у меня прекрасная среда, хорошее сообщество, и большая часть инноваций в сети связана с Ruby и Rails. Rails несколько раз был признан лучшим инструментом веб-разработки и единственным инструментом, который может заменить Java или .net

    хорошее сообщество, и большая часть инноваций в сети связана с Ruby и Rails. Rails несколько раз был признан лучшим инструментом веб-разработки и единственным инструментом, который может заменить Java или .net

    хорошее сообщество, и большая часть инноваций в сети связана с Ruby и Rails. Rails несколько раз был признан лучшим инструментом веб-разработки и единственным инструментом, который может заменить Java или .net

    2
    ответ дан 8 December 2019 в 02:00
    поделиться
    1. Я никогда не слышал об этом.
    2. Я не использовал это.
    -2
    ответ дан 8 December 2019 в 02:00
    поделиться

    Я думаю, что QCubed великолепен, и в основном из-за того, как вы можете использовать Ajax (вам не нужно писать Jscript, и вам не нужно использовать jQuery).

    Один очень полезный документ: http://www.qcodo.com/demos/QcodoClassLibrary.pdf

    0
    ответ дан 8 December 2019 в 02:00
    поделиться

    Я выбрал QCodo 4 года назад для разработки нашего продукта. Я ни разу не пожалел - теперь мы трое разработчиков этой штуки, и любое решение, отличное от ООП, не сработает. Мы установили с ним почти 50 клиентов - на Apache, IIS, моих платформах SQL и SQLServer, Linux или W2003. F Великолепный дизайн, отличная генерация кода, и его действительно легко разрабатывать, расширять и поддерживать. Я не могу сейчас прочитать никакой другой код ...

    Да, маркетинг довольно плох, и проект зависел только от создателя (Майк Хо). Все это недавно перешло на Git, и скоро маркетинг должен улучшиться. И вот теперь Майк Хо вернулся !!!

    0
    ответ дан 8 December 2019 в 02:00
    поделиться

    Я использовал его в нескольких проектах, связанных с удаленным взаимодействием с Flash, но я использую только ORM в структуре, поскольку мне не очень нравятся такие материалы EDP, как .NET. Этот поток кажется совершенно неправильным для сети без сохранения состояния. Замечательно, если ORM можно будет выпустить как отдельный компонент.

    0
    ответ дан 8 December 2019 в 02:00
    поделиться
    Другие вопросы по тегам:

    Похожие вопросы: