0

Suppose I have written a library in a programming language (e.g. Java) to interact with an external component (e.g. a database).

I would now like the community to provide implementations in other languages.

How can I enable and encourage, other developers to provide implementations that are identical in functionality to mine.

Some examples may be:

  • Provide a written specification of behaviour
  • Provide a reference implementation
  • Provide a testing framework so they can validate their implementation (can this be done across multiple languages?)

What other options are available?

WilliamMartin
  • 553
  • 5
  • 15
  • Why such repetition in code? Is [SOA]( http://en.m.wikipedia.org/wiki/Service-oriented_architecture) not an option? – ekostadinov Oct 10 '14 at 20:44
  • For example, there are many libraries in many different languages to work with Redis http://redis.io/clients. The clients should have the same fundamental behaviour. – WilliamMartin Oct 13 '14 at 16:39

1 Answers1

1

Common approach of all that you are after for, can be the abstraction level of Coding conventions. Since they are set of guidelines for a programming languages that recommend programming style, practices and methods for each aspect of a piece program written. These conventions usually cover file organization,indentation, comments, declarations,statements, white space, naming conventions, programming practices,programming principles, programming rules of thumb, architectural best practices, etc.

About

 enable and encourage, other developers to provide implementations that are identical in functionality to mine.

you can use Interfaces (protocols). Even if they are used to define an abstract type that contains no data or code, they also define behaviors as method signatures.

Your examples are good. But in addition to

Provide a testing framework so they can validate their implementation

you can introduce the main ideas of the Test-driven development:

  • Establishing the goals of different stakeholders required for a vision to be implemented

  • Drawing out features which will achieve those goals using feature injection

  • The goal of developer TDD is to specify a detailed, executable design for your solution

  • read more

ekostadinov
  • 6,880
  • 3
  • 29
  • 47