Samples Development
Goals of Samples
- Explain briefly how's and why's of Zero/sMash, then link to more concept info in the more detailed part of Developer's Guide. Users will pick up the technology faster by example, and are not likely to start by 'sitting down' and reading the Dev Guide or Overview. This means providing comments in code as well as detail in the doc that discusses sample.
- Provided a guided path from simple to more complex functions of Zero. Lead users to samples from Download/Getting Started. Make some samples incremental, so that they build on previous samples, or have sample with a few logical stopping points. Show how samples relate to each other. Don't assume users will do samples in exact order as listed though.
- Provide realistic apps that are representative what customers would do.
- Show best practices and what Zero is really good at, situational apps. Not sure everyone understands what a situational app is, so provide good examples.
- Prove that Zero/sMash is good technology. Show things that are complex in other languages/technologies and how easy it is in Zero/sMash.
- Make sure all the samples are located in the same place, so that can be found easily.
- Make sure all the samples cover steps using CLI, AB, and Eclipse plugin.
- Make sure the existing samples work on new runtime and tooling.
- Explain how to test or exercise the samples. Verify that it's working as expected.
Samples template
Use this template when writing samples.
Sample title
(Title needs to be phrased for someone that knows nothing about Zero/sMash. Avoid acronyms or Zero-specific terms unless they are evident from the surrounding text.
What’s covered
(Briefly explain what users will learn from the sample.)
Assumptions
(Explain any prereqs or assumptions, like if it's recommended they do another sample before this one, though forcing order should be avoided where possible.)
Steps using the CLI (anchor link to later in sample doc)
Steps using App Builder (anchor link to later in sample doc)
Steps using Eclipse (anchor link to later in sample doc)
Steps using CLI
1.
2.
Steps using App Builder
1.
2.
Steps using Eclipse
1.
2.
Conclusion/Next steps
(Explain what was covered, and what to do next. Point them to next logical sample if possible.)
(Mention files that exist that they may want to use or borrow from.)
Samples change recommendations as of 8/08
Specific samples needed
Entered in
Bug 5583
Recommended order of Samples
Today's order (8/08)
suggest
suggest CLI
suggest AB
employee demo
PHP employee demot
ZRM demo
Using the flow samples - contains instructions for all flow samples
Atom (books.demo)
OpenID
Office monitor
Open AJAX client mashup
Ones not listed under Samples:
- ZRM quick start tutorial
- flow samples -
- simple feed flow (cnn and Yahoo news, then modify for US only)
- hello world with Assemble - why would you want to do hello world as a flow?
- groovy extension (exchange rate)
- JMS extentions protocol
Recommended order
Hello World
- need way to do this via CLI
Other zero specfic stuff - global context, app dir, config, REST, JSON, etc
ZRM demo
This one is very different from others.
ZRM quick start (not currently listed in Samples section of the DG TOC, it's under ZRM section)
suggest.demo
combine ZRM demo and quick start and suggest?? YES.
MORE DOJO examples
Employee demo - use this to cover basic REST and DOJO, database access that's not ZRM
- Groovy (need to clarify that it's Groovy)
- PHP
Flow - Using flow samples and Creating a simple Assemble flow (and others under Getting started with Assemble flow and Using flows). combine??
ATOM
RSS (needed?, we have one using flow)
JMS
Office monitor using PHP
Open AJAX
OpenID
Manual Tests
Key functionality is tested, as much as possible, with automated JUnit tests in each component. Checks for functionality that cannot be tested via automated means is summarized as a set of
manual tests. This section seems out of date.
More info
IBM's samples development and delivery requirements
Old samples and potential samples