Как у меня есть сменная архитектура в Ruby on Rails?

Я не собираюсь пытаться на самом деле ответить на Ваши вопросы здесь - вместо этого я перенаправлю Вас к книге который я видящий рекомендуемый для совета относительно этой темы: Параллелизм Java на практике .

Одно слово предупреждения: если там ответы здесь, ожидают, что довольно многие из них будут неправы. Одна из причин, я не собираюсь отправлять детали, - то, потому что я вполне уверен , я был бы понимать ее превратно в, по крайней мере, некоторых отношениях. Я не имею в виду непочтительности вообще к сообществу, когда я говорю, что возможности всех, кто думает, что они могут ответить на этот вопрос, на самом деле имеющий достаточно суровости для разбираний в нем, является практически нулевым. (Joe Duffy недавно нашел немного моделью памяти.NET, которая была удивлена. Если он может понять его превратно, так могут смертные как мы.)

я предложу некоторое понимание всего на одном аспекте, потому что это часто неправильно понимается:

существует различие между энергозависимостью и атомарностью. Люди часто думают, что атомарная запись энергозависима (т.е. Вы не должны волноваться о модели памяти, если запись является атомарной). Это не верно.

Энергозависимость о том, будет ли один поток, выполняющий чтение (логически, в исходном коде), "видеть" изменения, внесенные другим потоком.

Атомарность о том, существует ли шанс, что, если изменение замечено, только часть изменения будет замечена.

, Например, возьмите запись в целочисленное поле. Это, как гарантируют, будет атомарным, но не энергозависимым. Это означает это, если мы имеем (запускающийся в foo.x = 0):

Thread 1: foo.x = 257;
Thread 2: int y = foo.x;

для y возможно быть 0 или 257. Это не будет никакое другое значение, (например, 256 или 1) из-за ограничения атомарности. Однако, даже если Вы знаете, что в "стенное время" код в потоке 2 выполняемых после кода в потоке 1, могло быть нечетное кэширование, доступы памяти, "перемещающиеся" и т.д. Создание переменной x энергозависимый зафиксирует это.

я оставлю остальных до настоящих кристально честных экспертов.

7
задан Tachyons 22 December 2014 в 11:40
поделиться

1 ответ

ОБНОВЛЕНИЕ 2015: на этот вопрос ответили в 2009 году, многое изменилось

Плагины были заменены Gems and Engines Для получения всей необходимой информации о двигателях: http://guides.rubyonrails.org/engines.html

Engines are a fantastic way of building encapsulated and reusable code for your rails apps.

Original Answer for Reference

On the development side Rails Engines and/or plugins is probably what you are looking for.

Rails Engines are small subsets of an application that can be dropped into any of your Rails applications and handle common parts of the application from scratch.

Say for example your social networking application has a wiki, blog, chatroom etc. You would more than likely want to create a wiki engine, blog engine and chatroom engine.

Engines allows you to re-use such functionality within different applications so you do not have to repeat yourself.

Take a look at: http://rails-engines.org/

Some support for ‘engine’ plugins has был объединен с ядром Rails codebase in Rails 2.3.

I would also recommend taking a look at some public projects say on github and see how people have used engines.

Take a look at some engines:

Other useful links for reading

In functionality terms you could still have an admin area that could activate certain features ie. your blog or wiki by allowing users access to such areas with a permissions/roles system.

If you want to build a CMS which supports some kind of extensions like in Wordpress or Joomla then you will have to either build it and provide guidlines or at least look into how you would upload/install Engines/Plugins from a user perspective.

Not sure on the security implications of this

Redmine has put this kind of functionality into their awesome application. You may want to dig around the source code for tips and clues

Finally Adva_CMS has basically adopted this approach and have created a number of Engines for their CMS application

HTH

15
ответ дан 6 December 2019 в 10:01
поделиться
Другие вопросы по тегам:

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