Skip to content

Instantly share code, notes, and snippets.

@ekkinox
Last active January 17, 2019 13:44
Show Gist options
  • Save ekkinox/352cf631907f22e2914b33ff90ace4b1 to your computer and use it in GitHub Desktop.
Save ekkinox/352cf631907f22e2914b33ff90ace4b1 to your computer and use it in GitHub Desktop.
Some ideas for backend
# Approach
- BDD (DDD ?)
- obviously respect of PSR for open source visibility (ease contributions form any level)
# About Symfony usage
- very strong community
- well maintained and documented ready to use core/components (auth, rendering, console, etc)
- PSR standards implementations (even PSR7 if needed)
- good DI component (autowiring, compiler pass, etc)
- easy modular approach for custom needs
- easy to switch from MVC to ADR with SF4
# Scalability compliance
- .env usage eases scaled configurations
- lot of SF compatible vendors to handle whatever market storages (RDBMS, NoSQL, elastic, PSR 6-16 caches, etc)
- native PSR3 logging (monolog)
- easy to dockerize
# IMS standards implementations (QTI, LTI, etc)
- should be PSR compliant + framework agnostic libs (reusable/sharable anywhere)
- wrapped into symfony components for TAO needs
# TAO backend concept
- a TAO core symfomy app could be designed wrapping common needs (=> interfaces definitions)
- and extended with TAO bundled features (construct, roster, report, ...) to compose on need TAO installations (full, partial) (=> interfaces implementations)
- or with customer specific needs bundled features (=> interfaces custom implementations)
- using FLEX (https://symfony.com/doc/current/setup/flex.html) for automated complex dependency management (add / remove)
# Restful apis
- openapiv3 (swagger) usage and benefits
- APIPlatform: https://api-platform.com/ for ideas: hateoas, auto doc generation, etc
# BDD / Testing
- can be done easily on unit/integration/functional level with SF tooling (Web/KernelTestCase)
- can be enhanced with Behat usage (BDD approach, gherkin ubiquitous language for business and tech)
- blackfire usage could be nice
@ekkinox
Copy link
Author

ekkinox commented Jan 17, 2019

delivery component should maybe be handled outside of this stack

  • due to traffic constraints
  • should be a simple app that consumes backend endpoints, easy to scale
  • maybe php is even not a good choice =>lambda golang app that consume backend api ? or serverless app ?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment