--- author: Josef Pospíšil date: 2018-02-26 title: The Intro --- # Contemporary Backend Development --- ## Good Old Friends * Hello again! * I hope you are not scared ;-) --- ## Organization * One interesting link * Clash of Titans Groups * Practice * All in Groups (6 of them) --- ## Link -> CoT * I will show you one link * CoT about the link * At least 20 minutes * No more than 25 minutes --- ## Week * Monday - Tools, APIs * Tuesday - Serving * Wednesday - Storage * Thursday - All together * Friday - Evaluation --- ## More Practice Hopefully I'll get you to practice little more than last semester. --- ## Any questions Speak now, or be silent for the week. --- ## Let's Go! === --- author: Josef Pospíšil date: 2018-02-27 title: Tools, APIs & more --- # Contemporary Backend Development --- ## Monday - Tools, APIs --- ## Link of the Day * AI https://intelligence.org/2017/10/13/fire-alarm/ --- ## Github * Repo: https://github.com/pepe/culs-backend-summer-2018 * Star or Fork as First Task --- ## Little aside * Frontend * Serverless, containers, microservices --- ## Project Backend for storing and managing presentation files for Showrum. --- ## Project specification * Presentation management * User management * User authentication and authorization --- ## Tools - Basics * Atom Editor * Google Chrome Canary * Hands-on --- ## Tools - Remoting * SSH, RDP, TeamViewer * Curl, Wuzz * Hands on --- ## Tools - Docker * Container driven development * Prepared machines * Multi-platform * Hands-on --- ## Tools - Docker * Dockerfile * Simple static hosting * Sample project * Hands-on --- ## APIs - Basics * Application Programming Interface * Interface definitions * Every SW has it --- ## APIs - Web * Representational state transfer * Swagger * JSON API * Apiary --- ## GraphQL * By FB * New paradigm getting traction * Declarative * Today's task --- ## GraphQL ``` { film(id: "ZmlsbXM6MQ==") { title director releaseDate planetConnection { planets { name }}}} ``` --- ## Second aside * FaaS * IaaS * PaaS * SaaS --- ## Q&A === --- author: Josef Pospíšil date: 2018-02-27 title: Serving --- # Contemporary Backend Development --- ## Tuesday - Serving --- ## Link of the Day https://blog.rescuetime.com/nir-eyal-digital-distraction/ --- ## Languages * Imperative * Object Oriented * Functional * Hybrid --- ## Imperative * C * Lua * Out of favor these days --- ## Object Oriented * SmallTalk * Java, C#, C++, Swift * Ruby, Python, PHP * In full swing --- ## Functional * Lisp, Clojure, Racket * Haskel, OCaml, Elm * Elixir, Erlang --- ## One I forgot to mentioned * Golang --- ## Hybrid * Almost All of the already mentioned * JavaScript --- ## Frameworks * Ruby - Ruby on Rails * Python - Django * Java, Scala - Play * PHP - Symphony * JavaScript - Feathers.js --- ## Express.js * Node.js based * Very simple a configurable * Used heavily * Hands on --- ## HTTP servers * Apache * Nginx --- ## Hosting service providers * Digital Ocean * Amazon AWS * Microsoft Azure * Hands on --- ## Bonus - Serverless * Front-end rich applications * Use services for all the tasks * Auth0 - https://auth0.com * AWS Dynamo, Lambda - http://aws.amazon.com * OpenSensors - https://www.opensensors.io === --- author: Josef Pospíšil date: 2017-02-28 title: Storage --- # Contemporary Backend Development --- ## Wednesday - Storage --- ## Link of the Day https://ar.al/notes/encouraging-individual-sovereignty-and-a-healthy-commons/ --- ## Kinds * File * Databases --- ## File formats * Binary * CSV * Markdown * XML * JSON --- ## Databases * Relational * Key/Value * Document * Graph --- ## Relational * MySQL * PostgreSQL * Oracle * MSSQL --- ## Key/Value * Redis * Riak * AWS DynamoDB * LevelDB --- ## Document * MongoDB * CouchDB * RethinkDB --- ## Graph * Neo4J * OrientDB * ArangoDB --- ## Search engines * Lucene * ElasticSearch * SolR --- ## MongoDB * JSON based * Dynamic Schema * Query Language --- ## Express.js statuses * Set on response * No need for any other information --- ## Mongoose.js * Access MongoDB from JS * Very Simple API * Models * Querying === --- author: Josef Pospíšil date: 2017-03-01 title: All together --- # Contemporary Backend Development --- ## Thursday - All together --- ## Link of the Day https://auth0.com/blog/glossary-of-modern-javascript-concepts/ --- ## What is needed for tomorrow * Clash * Project * Test --- ## Docker compose * Run more containers at once * Create links between them * Change attributes of Dockerfile === --- author: Josef Pospíšil date: 2017-03-02 title: Final words --- # Contemporary Backend Development --- ## Friday - Final words --- ## Link of the Day https://www.surveymonkey.com/r/RNHG7DX --- # +420 774 278 707