• Complain

Paranj - Test driven development in Ruby: a practical introduction to TDD using proble and solution domain analysis

Here you can read online Paranj - Test driven development in Ruby: a practical introduction to TDD using proble and solution domain analysis full text of the book (entire story) in english for free. Download pdf and epub, get meaning, cover and reviews about this ebook. City: Berkeley;CA;New York;NY, year: 2017, publisher: Apress, genre: Children. Description of the work, (preface) as well as reviews are available. Best literature library LitArk.com created for fans of good reading and offers a wide selection of genres:

Romance novel Science fiction Adventure Detective Science History Home and family Prose Art Politics Computer Non-fiction Religion Business Children Humor

Choose a favorite category and find really read worthwhile books. Enjoy immersion in the world of imagination, feel the emotions of the characters or learn something new for yourself, make an fascinating discovery.

Paranj Test driven development in Ruby: a practical introduction to TDD using proble and solution domain analysis
  • Book:
    Test driven development in Ruby: a practical introduction to TDD using proble and solution domain analysis
  • Author:
  • Publisher:
    Apress
  • Genre:
  • Year:
    2017
  • City:
    Berkeley;CA;New York;NY
  • Rating:
    3 / 5
  • Favourites:
    Add to favourites
  • Your mark:
    • 60
    • 1
    • 2
    • 3
    • 4
    • 5

Test driven development in Ruby: a practical introduction to TDD using proble and solution domain analysis: summary, description and annotation

We offer to read an annotation, description, summary or preface (depends on what the author of the book "Test driven development in Ruby: a practical introduction to TDD using proble and solution domain analysis" wrote himself). If you haven't found the necessary information about the book — write in the comments, we will try to find it.

Paranj: author's other books


Who wrote Test driven development in Ruby: a practical introduction to TDD using proble and solution domain analysis? Find out the surname, the name of the author of the book and a list of all author's works by series.

Test driven development in Ruby: a practical introduction to TDD using proble and solution domain analysis — read online for free the complete book (whole text) full work

Below is the text of the book, divided by pages. System saving the place of the last page read, allows you to conveniently read the book "Test driven development in Ruby: a practical introduction to TDD using proble and solution domain analysis" online for free, without having to search again every time where you left off. Put a bookmark, and you can go to the page where you finished reading at any time.

Light

Font size:

Reset

Interval:

Bookmark:

Make
Bala Paranj 2017
Bala Paranj Test Driven Development in Ruby 10.1007/978-1-4842-2638-4_1
1. The Basics
Bala Paranj 1
(1)
Atlanta, Georgia, USA
This chapter will discuss coding kata, basic terminology, overcoming difficulty in TDD, and how to improve your TDD skills over time. We will look at the distinction between intent and implementation and its role in coming up with elegant solutions. We will briefly discuss the basics of Test Driven Development (TDD) and how problem-solving skills fit into TDD. We will also cover designing test cases, assertion, Canonical Test Structure, and how to avoid common mistakes.
Terminology
This section will introduce you to the basic terminology required to grasp the material in this book. We will look at basic terms such as kata , coding kata , domain , problem domain , and solution domain .
Kata
Kata is a Japanese word meaning form . In martial arts, it describes a choreographed pattern of movements used to train yourself to the level of muscle memory. The focus is on making small improvements during practice. Figure shows a choreographed pattern of movements in martial arts.
Figure 1-1 A choreographed pattern of movements Coding Kata A coding kata - photo 1
Figure 1-1.
A choreographed pattern of movements
Coding Kata
A coding kata is a short exercise that is thirty minutes to an hour long. It can be coded in many different ways. It is likely that coding katas have many solutions. The focus is on learning when you work through them. The goal is to practice in order to improve your skills, not to achieve perfection.
Domain
What comes to mind when you hear terms such as equity , debt , gross margin , and net income ? How about contour , contrast , opacity , and form ? Heres another example: parallel , ordinate , arc , and angle . A domain is defined as a specific sphere of activity or knowledge. The first example corresponds to finance. The second example corresponds to visual communication, and the third corresponds to geometry. Figure shows three different domainsfinance, visual communication, and mathconsisting of abstractions found in those domains.
Figure 1-2 Examples of domains Problem Domain The problem domain refers - photo 2
Figure 1-2.
Examples of domains
Problem Domain
The problem domain refers to real-world things and concepts related to a problem.
Solution Domain
The solution domain refers to real-world things and concepts related to a solution.
Domain Expert
A domain expert is someone with special knowledge or skill in a particular domain. For instance, an accountant is an expert in the accounting domain. The development of accounting software requires knowledge in two different domains, namely accounting and software.
Domain Knowledge
Domain knowledge is expertise in a particular problem domain. It is a critical ingredient in coming up with abstractions that create elegant solutions.
Defining the Problem Domain and the Solution Domain
When you read a problem statement in a textual form, you will find concepts in the problem statement. You can list the concepts you find and group them to come up with the problem domain name. Figure illustrates the process of coming up with the problem domain name from a given problem statement.
Figure 1-3 Process of finding the domain name Lets now see an example of - photo 3
Figure 1-3.
Process of finding the domain name
Lets now see an example of problem domain and solution domain. Lets say you have leaking sink problem in your kitchen. You search on the Internet for the term leaking sink . The phrase leaking sink is found in the problem domain. Once you read about the solution to this problem, you learn about things like: clevis screw, stopper rod, clevis, retaining nut and so on. These terms belong to the solution domain. You watch a video and find out that you need to buy a retaining nut to fix the leak. You now start using this term found in the solution domain, retaining nut , to find the nearest store carrying this item. So, the term: retaining nut belongs to the solution domain.
Learning TDD
Learning by Coding Kata
Why coding Kata? Test Driven Development (TDD) is a difficult but learnable skill. So, in order to answer this question, we need to look at why TDD is difficult.
TDD is not a testing technique. Its an analysis technique, a design technique, really a technique for all activities of development.
Kent Beck, Test Driven Development by Example
By using the small but precise nature of the coding kata to practice these skills separately, you can move past this difficulty and hone your TDD skills. So, coding kata is the best way to learn TDD. How do you practice a coding kata? You will work through a coding kata by following the five steps of TDD, which will be discussed in an upcoming section.
Learning Retrospective
After you complete a coding kata using TDD, reflect on the TDD practice session. Ask yourself the following questions:
  • What went well during the TDD session?
  • What went wrong during the TDD session?
  • What can I do differently next time to improve?
The answers to these questions will tell you where you need to focus your efforts in your next practice session so as to improve your skills. Its a good idea to keep a journal that records the coding kata name and the answers to these questions for each practice session.
Intent vs. Implementation
In this section, we will discuss the intent and implementation, or the specification and implementation. We will look at examples to illustrate the differences between intent and implementation, why we need to separate them, and how to separate them in the code.
Intent
The dictionary definition of intent is determined to do something . If you want to travel in your car, your intent is to drive your car. You dont reach into the transmission and pull levers to drive. You can drive without knowing the details of the car engine. You use the visible parts of the car, such as the steering wheel, gas pedal, brake, and gears, to drive. You can express your intent by using the public interface of the car. In programming terms, the intent-revealing drive() method is used. The public interface would consist of things you can do to a car, such as start, stop, drive, turn, and so on.
Implementation
The things under the hood of the car make up the implementation. Only your car mechanic knows about the details of the car engine. You may be aware of the 3.0 liter V-6 engine, but you have no idea of how it works. There could be methods that are internal to the class, such as burn_fuel() , that are not part of the public interface of the car. This means the user does not directly invoke any private methods of the car.
Intent and Implementation
We will now see three examples of intent and implementation, the difference between them, and why we need to separate them.
Next page
Light

Font size:

Reset

Interval:

Bookmark:

Make

Similar books «Test driven development in Ruby: a practical introduction to TDD using proble and solution domain analysis»

Look at similar books to Test driven development in Ruby: a practical introduction to TDD using proble and solution domain analysis. We have selected literature similar in name and meaning in the hope of providing readers with more options to find new, interesting, not yet read works.


Reviews about «Test driven development in Ruby: a practical introduction to TDD using proble and solution domain analysis»

Discussion, reviews of the book Test driven development in Ruby: a practical introduction to TDD using proble and solution domain analysis and just readers' own opinions. Leave your comments, write what you think about the work, its meaning or the main characters. Specify what exactly you liked and what you didn't like, and why you think so.