Skip to content

Instantly share code, notes, and snippets.

@Ross-Hunter
Created May 15, 2015 20:24
Show Gist options
  • Save Ross-Hunter/e45f24d4d68ddec94496 to your computer and use it in GitHub Desktop.
Save Ross-Hunter/e45f24d4d68ddec94496 to your computer and use it in GitHub Desktop.
Some architecture stuff in a fake language
# ActiveRecord
## Domain
### /bucket-form
def post params
bucket = params['bucket']
machine = params['machine']
machine.save
bucket.machine_id = machine.id
bucket.save
class Bucket
attrs through Assembly
def save
validate()
Assembly.create(self)
def validate
can_i_be_saved_as_an_assembly
class Machine
attrs through Unit
def save
validate()
Unit.create(self)
def validate
i_have_all_my_stuff?
## Persistence
class Assembly
def save
PG.save
class Unit
def save
PG.save
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Repository
## Domain
#### /bucket-form
class BucketForm bucket_service
def post params
bucket = new Bucket(params['bucket'])
machine = new Machine(params['machine'])
bucket['machine'] = machine
result = bucket_service.create_new_bucket_with_machine(bucket, machine)
if result is bad
respond error
else
respond good
class Bucket
Id
Name
Model
Machine_id
class Machine
Id
Name
Type
class Bucket_Service(IRepository bucketRepo)
def create_new_bucket_with_machine bucket, machine
if not validateBucket
return badness
else
bucketRepo.create(bucket)
machineRepo.create(machine)
def validateBucket
can_i_be_saved_as_an_assembly
## Persistence
class BucketRepo : IRepository<bucket>
def create(bucket)
Assembly.create(bucket)
def read
def udpate
def delete
class MachineRepo : IRepository<machine>
def create(bucket)
Unit.create(bucket)
def read
def udpate
def delete
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment