Your Code Is Your Product

I want the code you're writing right now. I want to plug that functionality into my application and see the engine rev to life. Welcome to E3 — the chassis on which a beautiful product can be built out of many independently developed and tested pieces.

The Current Problems with Sharing Code

Almost all open source or 3rd party software has one big flaw. It doesn’t integrate well. Like the time you downloaded that class to add Paypal functionality but then spent a day setting up and testing the callback urls and trying to figure out how to deal with e-checks.

The Integration Problem

Trying to connect two groups of functionality from different developers is hazardous and time consuming. Often times we revert to writing our own code from scratch because the cost of integration is to high.

The Fragmentation Problem

When you start connecting all these different open source pieces your software immediately becomes fragmented and difficult to debug. You end up spending too much time frustrated and not enough time developing awesome products.

The Debugging Problem

Many 3rd party classes or software pieces are loaded with bugs that we don't know about. These bugs come out into our applications and we lose sleep rewriting the code we're trying to implement.

The Security Problem

One of the most dangerous issues developers face in pulling in 3rd party functionality into a web application is the security risk. There is no way to be sure the code you're using is secure. Quality control is almost non-existent in code sharing, even when you're paying for it.

In addition to the problems above, there are issues with code licensing, updating, contributing, and extending. So. What do we do to change all this?

E3 → Assisting Integration

E3 packages functionality into bundles. A bundle is merely a wrapper for your code, a predefined structure to drop your code into so that it will easily integrate with other code. This means you don't have to rewrite your code!

Your Code
Adding Your Code as a Bundle
Using The Code

E3 → Seamless InterConnection

Few things feel quite as good as dropping in a bundle of code and seeing it work perfectly with all the other functionality you have.

E3 takes this seriously. Every bundle is designed to never conflict with any other code, and to integrate itself with your application effortlessly.

Event Handling. A Beautiful Example: Paypal IPN

Paypal has a callback system that sends important data to your application to confirm payment. This callback system has hundreds of options and details that take quite a while to fully understand. You shouldn't have to figure out how to get this information back into your application. All you should have to do is add the bundle, and work with the bundle results.

Bundles can easily add URLs to the routing system. Therefore the paypal bundle you've installed already has a special callback url designated /--paypal/ipn

Using events, when Paypal send the IPN response, the paypal bundle emits an event called paypalResponse. You can handle this event by merely adding the method _on_paypalResponse($data){} to a controller or bundle you're writing. You could then, for example, send out an email to your client confirming payment has been received.

Let's say you were writing an online_store bundle to sell or share with other developers and you wanted to build in paypal functionality. All you would need to do is handle the paypalResponse event in your bundle and you're ready to offer a fully integrated piece of functionality to the world.

Download Evolution

The best way to make sure you're writing great code is to share or sell each piece of functionality you create, independently of the product you're developing.
David Boskovic, Lead Engineer

Always look for and accept criticism. It will help you grow, and become better at what you do.
Kelly Becker, E3 Team Member