Каков Ваш опыт с Доктриной ORM? [закрытый]

Вы можете использовать Programmable Filter для замены значений ниже -99999 на NaN. При условии, что данные не являются vtkMultiblockDataSet, вы можете использовать следующий скрипт в программируемом фильтре:

import numpy as np
from vtk.numpy_interface import dataset_adapter as dsa

# name of the array
name = 'name'
# limit
limit = -99999

array = inputs[0].PointData[name].copy()
array[array<=limit] = np.nan
out = dsa.WrapDataObject(self.GetOutput())
out.PointData.append(array, name)

Примечание: если интересующие данные - это данные ячейки, замените PointData на CellData в сценарий.

Примечание 2: скрипт был протестирован на ParaView 5.6.

26
задан Dennis 6 October 2015 в 19:47
поделиться

7 ответов

Я не эксперт в Doctrine - я только начал ее использовать, и должен признать, что это немного неоднозначный опыт. Это многое для вас делает, но не всегда сразу понятно, как сказать ему сделать то или это.

Например, при попытке использовать файлы YAML с автоматическим обнаружением отношений отношение «многие ко многим» не транслировалось правильно. в определение модели php. Никаких ошибок, как вы упомянули, потому что он вообще не рассматривал его как многие-ко-многим.

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

3
ответ дан 28 November 2019 в 06:09
поделиться

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

Поскольку мне приходилось генерировать свои модели из баз данных, а не наоборот, мои модели слишком близки к базе данных: поля имеют очень похожие имена. в столбцы базы данных, чтобы получить объекты, которые вы должны запрашивать в том, что является важным sql (где мне поместить этот код и как его проверить?) и т.д.

В конце концов мне пришлось написать сложную оболочку для Доктрина, которая заставляет меня задаться вопросом, не было бы проще просто использовать старый подход дао / модели и исключить доктрину из поля зрения. Жюри еще не решено. Удачи!

4
ответ дан 28 November 2019 в 06:09
поделиться

Мы использовали продвижение с Symfony в течение 2 лет и доктрина с симфонией более 1 года. Я могу сказать, что переезд в ORM с MVC Framework был лучшим шагом, который мы сделали. Я бы порекомендовал прилипать к доктрине Eventhough, требуется некоторое время, чтобы узнать, как работать с ним. В конце концов вы найдете свой код более читаемым и гибким.

Если вы ищете какое-то место, где начать, я бы порекомендовал учебное пособие на работу на работу Symfony http://www.symfony-project.org/jobeet/1_4/doCtrine/en/ (главы 3 , 6 покрывает основы) и, конечно, доктрина документации.

Как я написал выше, мы уже некоторое время используем доктрину. Чтобы сделать нашу работу более комфортной, мы разработали инструмент под названием ORM Designer (www.orm-designer.com), где вы можете определить модель БД в графическом пользовательском интерфейсе (больше нет YAML-файлов :-), которые совсем не плохо ). Вы можете найти там также некоторые полезные учебники.

9
ответ дан 28 November 2019 в 06:09
поделиться

Мой опыт звучит похоже на ваш. Я только начал использовать доктрину и никогда не использовал прогрев. Однако я очень дезаппирован в доктрине. Это документация ужасна. Плохо организован и довольно неполный.

6
ответ дан 28 November 2019 в 06:09
поделиться

У меня смешанные чувства. Я мастер в SQL только потому, что его так легко проверить. Вы можете быстро протестировать операторы SELECT, пока не получите нужные результаты. А рефакторить - проще простого.

В Doctorine, да и в любой ORM, так много уровней абстракции, что это почти похоже на OCD (obsessive/compulsive). В моем последнем проекте, в котором я опробовал Doctrine, я столкнулся с несколькими стенами. Мне потребовалось несколько дней, чтобы найти решение для того, что я знал, что мог бы написать на SQL за несколько минут. Это так расстраивает.

Я просто ворчу. Сообщество разработчиков SQL огромно. Сообщество/поддержка Doctrine мизерна. Конечно, вы можете посмотреть исходники и попытаться разобраться в них... и это те проблемы, на решение которых уходят дни.

Итог: не пробуйте Doctrine или любую ORM, не запланировав много времени на самостоятельное изучение.

42
ответ дан 28 November 2019 в 06:09
поделиться

Propel and Doctrine использует PDO. PDO имеет много открытых ошибок в Oracle Database. Все они связаны с полями CLOB. Помните об этом, прежде чем начинать новый проект, если вы работаете с Oracle. Ошибки открыты много лет назад. Doctrine и PDO будут аварийно завершены при работе с Oracle и CLOB

6
ответ дан 28 November 2019 в 06:09
поделиться

После некоторого исследования различных ORM библиотек для PHP, я остановился на PHP ActiveRecord. Мое решение было принято из-за минимальной конфигурации, легковесности библиотеки и отсутствия генерации кода. Doctrine просто слишком мощная для того, что мне нужно; то, что PHP ActiveRecord не делает, я могу реализовать в своем уровне обертки. Я бы посоветовал уделить время и изучить ваши требования к ORM и посмотреть, предлагает ли простой вариант, такой как PHP ActiveRecord, то, что вам нужно, или же лучше использовать домашнюю реализацию активной записи.

3
ответ дан 28 November 2019 в 06:09
поделиться
Другие вопросы по тегам:

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