Design   2051065

« earlier    

What Is Assumed When Deferring Database Decisions? | 8th Light
Really good post about designing the interface between your application and data store.

One benefit of creating an access layer instead of accessing data through an ORM is that there is not a temptation to throw database access around haphazardly throughout the codebase. Data access patterns are driven by use cases instead of driven by what the ORM is able to do, thereby promoting a clean separation of concerns and a loose coupling of the business logic and persistence layer.

In my mind, this is a good thing. We want clean separations of concerns. Having a loosely coupled and pluggable architecture allows for easy testing and rapid development in the long term. However, there seems to be an assumption, when treating the database as a detail, that the only concern of the data layer is mapping the application's data from the shape the application knows about to the shape the database expects. This is what ORMs have traditionally done. This is what it means to treat the database as a detail, we can plug in a mapping layer that ultimately talks to whatever storage we want.

This is where adherence to this philosophy falls down, because databases are more than just a final resting point for a certain shape of data. Databases have access patterns, and those access patterns affect their usage by their collaborators.
programming  database  design  patterns  architecture  8thLight 
59 minutes ago by jefframnani

« earlier    

related tags

2018  8thlight  accessibility  adobe  alternative  altgdp  amsterdam  antifragility  apple  architecture  archive  art  artificial-intelligence  automation  bari  bestpractices  bio  boards  brand  branding  car  change  chicago  cistern  clos  co-design  code  color  colors  communities  community  complexity  create  creative  css  css3  culture  data  database  democracy  deschooling  design  designer  development  diversity  document  education  end  experience  feel  font  fonts  form  front-end  front  functional  funny  future  gardening  gender  glvo  google  graphic-design  graphic  graphicdesign  graphics  greywater  guide  hack  hacker  hackerethics  hackerspaces  heading  health  helio  history  how-to  how  howto  html  hugo  identity  inspiration  interaction  interface  ios  italia  italy  javascript  jekyll  job  johannawoollcott  kindle  layout  lcars  lcproject  learning  learningbydoing  life  linguistics  linux  look  losangeles  machine-learning  mainnstream  marketing  midcentury  modo  multiverse  navigation  non-linear  nonlinear  notifications  opensource  openstudioproject  openweb  osmosis  osx  palettes  patterns  photoshop  pirates  playbook  podcasts  politics  preview  principles  process  product  productivity  programming  prototyping  psychology  quality  rain-garden  rainwater  react  reactjs  recycled-water  reference  research  responsive  resuse  sharing  southerncalifornia  space  spec  specification  studio  svg  system  systems-thinking  technology  thinking  timeline  twitt  twitter  type  typography  ui-patterns  ui  unschooling  urban-farmer  user-interface  user  ux  visual  vue  vuejs  web-design  web-dev  web-development  web  webdev  widget  wikipedia  wordpress-design  wordpress  wp-design  wp-dev  wp  xeriscaping 

Copy this bookmark: