Giter Site home page Giter Site logo

scientist's Introduction

Scientist

Scientist

Build Status Scrutinizer Code Quality Code Coverage Code Climate

Packagist Version Packagist

A PHP experiment library inspired by Github's own Scientist.


Introduction

Scientist is an experimentation framework for PHP that will allow you to refactor and improve upon existing code in a live environment, without incurring risk or breakages.

Simply define an experiment, sit back, and let the results flow in.

<?php

// We need a Laboratory to do science.
$experiment = (new Scientist\Laboratory)

    // Define an experiment with a name.
    ->experiment('experiment title')
    
    // Set a callback containing our control code.
    ->control($controlCallback)
    
    // Set a callback containing our trial code.
    ->trial('trial name', $trialCallback);

// Run the experiment, receiving the control return value.
$value = $experiment->run();

A more detailed description, and full documentation is available.

User Contributed Resources

Users of scientist contribute a variety of resources to enhance the functionality of the application.

Journals

Journals allow experiment data to be sent to data stores for later inspection.

Bridges

Bridges allow for Scientist to be used seamlessly with other frameworks and libraries.

Matchers

Matchers allow for complex types to be matched.

Interfaces

Interfaces allow for experiment data to be viewed in a clear way.

scientist's People

Contributors

arcticlinux avatar bendavies avatar daylerees avatar jeremygiberson avatar localheinz avatar mauro-moreno avatar meadsteve avatar rodnaph avatar tstrijdhorst avatar willrowe avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

scientist's Issues

Provide a grab-and-run example

I read over the website and the local README, but I was missing a "just copy and try" example. Piecing the example together from the docs does work, but for just wanting to test the code, it isn't the most convenient ;).

Having a thing that a user can just copy to a local file, and run, will likely result in the user making a faster decision if they'd like to use this project, or not.

Then again, this might also just be a personal opinion...

test_that_machine_can_determine_start_and_end_times_for_callbacks randomly fail

I'm using vagrant/homestead updated on a Mac

PHPUnit 5.2.1 by Sebastian Bergmann and contributors.

.....................................F....................        58 / 58 (100%)

Time: 352 ms, Memory: 4.00Mb

There was 1 failure:

1) MachineTest::test_that_machine_can_determine_start_and_end_times_for_callbacks
Failed asserting that 1454978585.233325 is less than 1454978585.233325.

/home/vagrant/Code/scientist/tests/MachineTest.php:77

FAILURES!
Tests: 58, Assertions: 106, Failures: 1.

Closure based matchers

Must of the time, the matcher class will consist only of single-function match, so why we can't allow closure based matchers like

$experiment->matcher(function ($control, $trial) {
    return $control == $trial;
});

Documentation links are dead

The link for a more detailed description of the project and the link for the full documentation are dead and both lead to a blank page.

New release

Would it be possible to fix the build and release a new version? Specially the fixes for the chances are a great and very much needed improvement that warrant a new release.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.