hyperstack-org / hyperstack-org/hyperstack

class rename details

オープン
#40 コメント 1 件 リアクション 0 件 担当者 0 名 GitHub で見る
主要言語
JavaScript
スター
538
フォーク
41
PR マージ指標
30日以内にマージされた PR はありません

説明

Current direction:

```ruby
Hyperstack::Component::Mixin # include this to create a component class
class MyComponent
include Hyperstack::Component::Mixin
end

# typically we expect the application to create a master HyperComponent base class
# using the mixin similar to ApplicationController or ApplicationRecord

Hyperstack::Component::ReactAPI # public module giving low level access to React methods

Hyperstack::Component::Internal::RenderingContext # a private internal module

# Above applies to store as well, i.e. Hyperstack::Store::Mixin

# Models are slightly different because we already have an ApplicationRecord structure:
class ApplicationRecord < ActiveRecord::Base
# makes ApplicationRecord and children isomorphic
include Hyperstack::Model::ActiveRecordAdapter
...
end

# in future we will have adapters for other ORMs and dbs as well.

# Hyperstack::Operation is also different, in that it is not sensible to use it as a mixin. Instead
# Hyperstack::Operation is the base class of all operations.
```

As I am converting current code to this format I am thinking that this name structure is slightly redundant and that we would do well to drop the Mixin, thus we would have:

```ruby
Hyperstack::Component # include this to create a component class
class MyComponent
include Hyperstack::Component
end
# typically we expect the application to create a master HyperComponent base class
# using the mixin similar to ApplicationController or ApplicationRecord

Hyperstack::Component::ReactAPI # same as currently proposed but...
# because ReactAPI is now a direct descendent of the mixin inside of the application components
# you can directly say ReactAPI.

Hyperstack::Internal::Component::RenderingContext # swap Internal and Component to
# avoid polluting application components name space

# Above applies to store as well, i.e. Hyperstack::Store is the mixin

# Models don't change from current proposal

# Hyperstack::Operation could stay the same but because its a class (not a module) we could
# change it to Hyperstack::Operation::Base, and have its predefined subclasses be:
# Hyperstack::Operation::ServerOp and Hyperstack::Operation::ControllerOp
```

Its just an idea...

コントリビューションガイド

コントリビューションガイドを開く

評価

この issue はまだ評価されていません。

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。