redstone-dart / redstone

A metadata driven microframework for Dart.
http://redstone-dart.github.io/redstone
MIT License
342 stars 42 forks source link

Development Model #106

Closed cgarciae closed 8 years ago

cgarciae commented 9 years ago

The current proposal is this:

Example:

class SomeClass
{
    C newMethod(A a, B b)
    {
        throw new UnimplmentedError();
    }

    D existingMethod (F f, H h, X newParam)
    {
        // Existing code
        ...
        // New Code
        if (someCondition)
        {
            throw new UnimplmentedError();
        }
        ...
    }
}
group ("New Feature X", ()
{
    test ("some test", ()
    {
        throw new UnimplementedError();
    });
});

The benefits of this are that once we agree what is to be implemented, and after we write the "interfaces" as empty methods/code branches and the empty tests, then development becomes easier because anybody can just look for missing sections and implement them, they just have to make sure it passes its corresponding tests, if there are none or are empty then its his job to also implement these.

azenla commented 9 years ago

I like it. Although, I would like to point out that we should always follow the Dart Style Guide.

azenla commented 9 years ago

Also @cgarciae, we have the meta label for issues that deal with non-code/documentation stuff, like this.

cgarciae commented 9 years ago

@kaendfinger Totally agree on the style guide. If I made/make any errors, please tell me :) Will use tags, sorry, I don't regularly tag issues.

cgarciae commented 9 years ago

@kaendfinger Should we include development information like this at the end of the roadmap? Maybe like some standard conventions on how to write code and develop.

azenla commented 9 years ago

@cgarciae No problem, I don't use them much either, but I think for something this popular it is necessary.

This is what it looks like with the Style Guide:

class SomeClass {
  C newMethod(A a, B b) {
    throw new UnimplmentedError();
  }

  D existingMethod(F f, H h, X newParam) {
    // Existing code
    ....
    // New Code
    if (someCondition) {
      throw new UnimplmentedError();
    }
    ...
  }
}
azenla commented 9 years ago

https://www.dartlang.org/articles/style-guide/