-
Notifications
You must be signed in to change notification settings - Fork 2k
uncategorized es6_note
backend focus: This documentation is more relevant to Puter's backend than frontend, but is placed here because it could apply to other areas in the future.
One important shortcoming in the ES6 class syntax to be aware of is that it discourages the use of expressions as methods.
For example:
class ExampleClass extends SomeBase {
intuitive_method_definition () {}
constructor () {
this.less_intuitive = some_expr();
}
}
Even if it is known that the return type of some_expr
is a function,
it is still unclear whether it's being used as a callback or
as a method without other context in the code, since this is
how we typically assign instance members rather than methods.
We solve this in Puter's backend using a trait called
AssignableMethodsTrait
which allows a static member called METHODS
to contain
method definitions.
Method Composition is the act of composing methods from other constituents. For example, Sequence allows composing a method from smaller functions, allowing easier definition of "in-betwewen-each" behaviors and ways to track which values from the arguments are actually read during a particular call.
This wiki is generated from the repository. Do not edit files the wiki.
You are reading documentation for Puter, an open-source high-level operating system.
Getting started with Puter on localhost is as simple as:
git clone https://github.com/HeyPuter/puter.git
npm install
npm run start