Google Tech Talk
January 19, 2010
ABSTRACT
Presented by Samuel Tesla.
Gospecify is a behavior-driven development (BDD) framework for Go. Rather than focus on testing every nook and cranny of some code, it helps a programmer produce an executable specification of that code's behavior. Go's syntax allowed gospecify to be almost as expressive as Ruby's rpsec; however, a few tricks had to be used to achieve the best readability. This talk will introduce BDD concepts and demonstrate how to implement them in Go using gospecify.
Samuel Tesla has had a computer at his fingertips his entire life. He started coding at age six as a maintenance programmer: tweaking a BASIC program his father wrote. Since then, he has always had a passion for telling computers what to do, and especially for programming languages. From niche languages like LaTeX and Inform to general purpose languages like C and Perl; static languages like OCaml and Java to dynamic languages like Smalltalk and Lisp; he loves to learn different ways to program. Currently he works for Engine Yard slinging Ruby at the cloud. In his spare time he likes to code, play guitar, and write fiction.
This is pretty COOL! thank you for sharing!
karlasechler 2 months ago
you are only sweet boy benaughtyman.info
kalhsryimali 9 months ago
Damn, from the title I thought they were talking about Binary Decision Diagrams (BDD), as in The Art of Computer Programming Vol 4, Fascicle 1. =(
flufster777 1 year ago
There's one more BDD framework for Go, called GoSpec. Some differences compared to gospecify:
9:00 - In GoSpec you can have fields which are used in many tests, and all those tests are executed _concurrently_, but the tests are still completely _isolated_. Read the docs for details.
20:40 - In GoSpec you don't need to write parameters for every func() closure, so the syntax has less boilerplate.
orfjackal 2 years ago 2
Very nice :-)
guioximitsu 2 years ago
I have to say the ideas are nice, but the actual code looks weird. It is just an initial feeling I have, but it seems to be this stuff presented here is not the best form to formulate those things in English/Go/Java etc.
cvinos 2 years ago
@llothar68
That's nothing, mine are labeled
"index_of_for_loop_methodName_myName_ClassName_beta"
dannoffs 2 years ago
@llothar68
To each, their own I guess. :.)
caseyburk 2 years ago
@caseyburk
It does look the opposite to me. Identifiers with less then 50 characters are only for mad mens.
I even call my variable not 'i' but 'index_of_for_loop'
llothar68 2 years ago
That code looks pretty gross to me... Too wordy.
caseyburk 2 years ago