[rspec-users] features and form filling - going declarative?
Ben Mabey
ben at benmabey.com
Fri Nov 7 12:00:00 EST 2008
David Chelimsky wrote:
> On Fri, Nov 7, 2008 at 9:58 AM, David Chelimsky <dchelimsky at gmail.com> wrote:
>
>> On Fri, Nov 7, 2008 at 9:54 AM, Matt Wynne <matt at mattwynne.net> wrote:
>>
>>> One technique is to have a single noisy 'declarative' scenario that
>>> explicitly walks around filling things in, then all the rest use more
>>> 'imperative' style steps where most of the detail is buried away.
>>>
>> You've got those backwards :)
>>
>> declarative: when I fill in the form correctly
>> imperative: when I enter "David" in the "Name" field ....
>>
>
> Although - maybe we need to reconsider this naming, because you could
> argue that either are declarative, whereas imperative, meaning
> important/urgent, doesn't really convey the explicit nature. I think
> abstract/concrete could work. Maybe general/specific.
>
> Other ideas?
>
>
To me the words imperative and declarative make sense in the programming
language context... and we are just applying it to roles instead of
computers. For example, this is the explanation given in my programming
languages book[1]:
...declarative languages, in which the focus is on *what* the computer
is to do, and the imperative languages, in which the focus is on *how*
the computer should do it.
Now swap out languages with scenarios and computer with user role:
...declarative scenarios, in which the focus is on *what* the role is to
do, and the imperative scenarios, in which the focus is on *how* the
role should do it.
So, I don't see the word imperative meaning urgent, I see it meaning
explicit. While declarative means the scenario is at a higher level and
not concerned with exactly how the scenario is implemented (much like
use cases.)
That said these terms are programming terms so probably aren't the best
if they are to be customer facing. I like general/specific.
-Ben
[1] Programming Language Pragmatics by Michael L. Scott
More information about the rspec-users
mailing list