Как Вы портируете проект с открытым исходным кодом? [закрытый]

6
задан Kane 5 February 2010 в 12:48
поделиться

2 ответа

Для .Net можно использовать механизм коммерческих правил, например InRule или .Net версию IBM ILOG Rules или FICO Blaze Advisor. Все они упрощают предоставление правил бизнес-пользователям таким образом, чтобы они могли безопасно их редактировать, предоставляя при этом технические крючки/API для упрощения интеграции механизма правил и их выполнения.

-121--3723797-

Я действительно не думаю, что это вопрос, на который можно объективно ответить. В конце концов речь идет о людях и о том, с чем они чувствуют себя комфортнее. Вот почему, например, Facebook разработала компилятор PHP-C + + (с помощью которого производительность Java также может стать меньше) вместо того, чтобы просто нанимать разработчиков C++ для выполнения Задания.

С другой стороны, платформа Java предлагает некоторые интересные новые подходы, такие как Grails (который в основном представляет собой обертку Groovy вокруг Spring ) и Lift , а также. Это делает разработку Frontend более быстрой и простой (я все еще нахожу, что это настоящая боль с простым Java), и вы можете объединить преимущества, которые другие языки имеют с вашей существующей Java кодовой базой и опытом (btw. большинство упомянутых фреймворков не нуждаются в J2EE среде выполнения, простой установки Tomcat с примерно 5M и установленной JRE должно быть достаточно). Так что речь идет не только о языке программирования Java.

И если вы действительно не можете решить, что вы просто запустить PHP на Java (работает также для Ruby , Python , Javascript ...).

-121--4557547-

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

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

Подумайте об этом так, почему вы переносите его на .Net? Я хотел бы сказать, что вы находитесь в одной из двух ситуаций, в одной из которых вы застряли, используя .Net из-за работы (doh, sorry!) или вы , как .Net, потому что это предлагает вам некоторое преимущество. Во второй категории, которая означает, что вы выбрали его вместо Java, так что при портировании вы хотели бы воспользоваться всеми функциями, которые заставили вас выбрать .Net.

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

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

Я бы порекомендовал следить за разработкой Noda Time, которая представляет собой попытку Джона Скита перенести Joda Time с Java на .Net. Джон фактически документирует этот опыт в следующем блоге:

http://noda-time.blogspot.com/

Я бы порекомендовал следить за блогом, страницей групп Google для этого проекта и проектом кода Google. Группы Google и ссылки на кодовые страницы можно найти в одной из публикаций в блоге.

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