[PDF] Lecture 13 - Backend Development.pdf


Lecture 13 - Backend Development.pdf


Previous PDF Next PDF



ITM Development (ITMD)

Back-End Development. This course emphasizes back-end server-side components of web application development. It provides broad coverage of server-side data 



About Relevel Why Relevel Courses? Why become a Backend

Why become a Backend Developer? Is this for You? Weekly Class Schedule ? Placement and Career Support. Course Details.



The Field of Front End Development The Job of a Front End

Students must complete 3 required courses and 2 elective courses to complete the Specialized Certificate in Front End. Web Development. Electives. Students 



ITM Development (ITMD)

Back-End Development. This course emphasizes back-end server-side components of web application development. It provides broad coverage of server-side data 



Course Information* Course Title: 95-482/95-882 Enterprise Web

This course focuses on the development of an enterprise web application with specific processing of the back-end web programming. We will overview the course ...



SOFTWARE DEVELOPMENT BOOTCAMP

Course 5: JavaScript & Front-End Web Development. 15. Milestone Project 1: Browser Game. 15. Course 6: Back-End Development & APIs. 15. Course 7: React & Redux.



Austin Coding Academy

Course Timeline. Intro to Web. Language Basics. Back-End. Front-End. Job Placement. 4 weeks. Page 5. What you'll learn: Solidify your web development foundation.



ITP 304: Back-End Web Development

This course teaches students how to create dynamic data-driven web applications. Students will learn how to design and implement databases to store website 



Front-end development

Use the Terrasoft.MessageMode enumeration to set the message mode. }) /* MixinName is a module where the mixin class is implemented. */ define( 



Path - Back-end Developer - .NET - OpenClassrooms

Oct 15 2021 Describe the role of a back-end developer. Create a plan for completing your ... Follow this course to improve your learning capacity and to.





EIDOSMEDIA ACADEMY

Cobalt Back-end Development. Swing Configuration. Swing Customization. End-User Training. MEDIA. Méthode Media Configuration (Fundamentals).



Model Curriculum for Minor Degree Course in Advanced Web

Server Side Programming with Ruby on Rails. 11. 14. 3C. WD301. Front-end development with React & TypeScript. 14. 16. 3D. WD401. Getting Ready 



ITP 304: Back-End Web Development

The course also covers creating website back-end and connecting it to different database management systems to create live web applications. Students will also 



Course Information* Course Title: 95-482/95-882 Enterprise Web

support (such as mySQL) as well as appropriate front-end development. Heinz web courses are a mix of business technology and analytics



Course Syllabus Course Objectives:

modern techniques of frontend and backend web development commonly used programming tools and best practices. The course is concerned with backend 



Lecture 13 - Backend Development.pdf

Where do we put the logic? Web “Front End”. HTML. CSS. JavaScript. React. “Back End 





Diploma of Information Technology (Back End Web Development

Jul 18 2022 COURSE CODE. ICT50220. QUALIFICATION. Diploma of Information Technology (Back End Web Development) & (Front. End Web Development).

Backend DevelopmentSWE 432, Fall 2016Design and Implementation of Software for the Web

LaToza/BellGMU SWE 432 Fall 20162Show & Tellhttp://www.nytimes.com/interactive/2016/upshot/presidential-polls-forecast.htmlSparklines in NYT

LaToza/BellGMU SWE 432 Fall 2016Today•Why do we need backend programming? •How can/should we structure those backends? •Node.JS3For further reading: https://nodejs.org (Docs + Examples) https://www.npmjs.com (Docs + Examples) https://firebase.google.com/docs/server/setup

LaToza/BellGMU SWE 432 Fall 2016Why we need backends•Security: SOME part of our code needs to be "trusted" •Validation, security, etc. that we don't want to allow users to bypass •Performance: •Avoid duplicating computation (do it once and cache) •Do heavy computation on more powerful machines •Do data-intensive computation "nearer" to the data •Compatibility: •Can bring some dynamic behavior without requiring much JS support4

LaToza/BellGMU SWE 432 Fall 20165Dynamic Web AppsWeb "Front End""Back End"HTMLCSSJavaScriptReactWhat the user interacts withWhat the front end interacts withFirebaseSome other APIPresentationSome logicData storageSome other logic

LaToza/BellGMU SWE 432 Fall 20166Where do we put the logic?Web "Front End"HTMLCSSJavaScriptReact"Back End"FirebaseSome other APIPresentationSome logicData storageSome other logicWhat the user interacts withWhat the front end interacts withFrontendProsVery responsive (low latency) ConsSecurity Performance Unable to share between front-endsBackendProsEasy to refactor between multiple clients Logic is hidden from users (good for security, compatibility, and intensive computation) ConsInteractions require a round-trip to server

LaToza/BellGMU SWE 432 Fall 2016Why Trust Matters•Example: Transaction app function updateBalance(user, amountToAdd)

user.balance = user.balance + amountToAdd; } •What's wrong? •How do you fix that?7

LaToza/BellGMU SWE 432 Fall 20168Dynamic Web AppsWeb "Front End""Back End"HTMLCSSJavaScriptReactFirebaseSome other APIPresentationSome logicData storageSome other logic

LaToza/BellGMU SWE 432 Fall 20169Dynamic Web AppsWeb "Front End""Back End"HTMLCSSJavaScriptReactFirebaseSome other APIPresentationSome logicData storageSome other logicOur own backend

LaToza/BellGMU SWE 432 Fall 2016What does our backend look like?10Our own backendConnection to FrontendWeb "Front End"AJAXLogicPersistent Data

LaToza/BellGMU SWE 432 Fall 2016The "good" old days of backends11HTTP RequestGET/myApplicationEndpointHTTP/1.1Host:cs.gmu.eduAccept:text/htmlweb serverHTTP ResponseHTTP/1.1200OKContent-Type:text/html;charset=UTF-8...Runs a programWeb Server ApplicationMy Application BackendGiveme/myApplicationEndpointHere'ssometexttosendbackDoes whatever it wants

What's wrong with this picture?

LaToza/BellGMU SWE 432 Fall 2016History of Backend Development•In the beginning, you wrote whatever you wanted using whatever language you wanted and whatever framework you wanted •Then... PHP and ASP •Languages "designed" for writing backends •Encouraged spaghetti code •A lot of the web was built on this •A whole lot of other languages were also springing up in the 90's... •Ruby, Python, JSP13

LaToza/BellGMU SWE 432 Fall 2016Backend Spaghetti14

LaToza/BellGMU SWE 432 Fall 201615De-SpaghettificationLecture 10Our own backendLogicPersistent DataConnection to FrontendViewControllerModel

LaToza/BellGMU SWE 432 Fall 2016MVC & Backend Servers•There are a ton of backend frameworks that support MVC •SailsJS, Ruby on Rails, PHP Symfony, Python Django, ASP.NET, EJB... •Old days: View was server-generated HTML •New days: View is an API •Today we'll talk about Node.JS backend development •We will not talk about making MVC backends and will not require you to do so16

LaToza/BellGMU SWE 432 Fall 2016Node.JS•We're going to write backends with Node.JS •Why use Node? •Easy to get into after learning JS (it's JS) •Event based: really efficient for sending lots of quick updates to lots of clients •Why not use Node? •Bad for CPU heavy stuff •It's relatively immature17

LaToza/BellGMU SWE 432 Fall 2016Node.JS•Node.JS is a runtime that lets you run JS outside of a browser •Node.JS has a very large ecosystem of packages •Example: express (web server), nodemon (automatically restarts your server when it changes) •Must be downloaded and installed

https://nodejs.org/en/ •We recommend v4.5.0 LTS (LTS -> Long Term Support, designed to be super stable)18

LaToza/BellGMU SWE 432 Fall 2016More on Modules•How have we been using libraries so far?

•What's wrong with this? •No standard format to say: •What's the name of the module? •What's the version of the module? •Where do I find it? •Ideally: Just say "Give me React 15 and everything I need to make it work!" •This is slowly being fixed for ES6 and on... but Node has a great (non-standardized) approach we can use for backend development19

LaToza/BellGMU SWE 432 Fall 2016A better way for modules•Describe what your modules are •Create a central repository of those modules •Make a utility that can automatically find and include those modules20Your appAssumes dependencies magically existDependencies ConfigurationDeclares what modules you needPackage ManagerProvides the modules to your appModules that magically appear

LaToza/BellGMU SWE 432 Fall 2016NPM: Not an acronym, but the Node Package Manager•Bring order to our modules and dependencies •Declarative approach: •"My app is called helloworld" •"It is version 1" •You can run it by saying "node index.js" •"I need express, the most recent version is fine" •Config is stored in json - specifically package.json21{

"name": "helloworld", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" "author": "", "license": "ISC", "dependencies": { "express": "^4.14.0" }Generated by npm commands:

LaToza/BellGMU SWE 432 Fall 2016Using NPM•Your "project" is a directory which contains a special file, package.json •Everything that is going to be in your project goes in this directory •Step 1: Create NPM project

npm init •Step 2: Declare dependencies npm install --save •Step 3: Use modules in your app

var myPkg = require("packagename") •Do NOT include node_modules in your git repo! Instead, just do

node install •This will download and install the modules on your machine given the existing config!22

LaToza/BellGMU SWE 432 Fall 2016Demo: Hello World Server231: Make a directory, myapp2: Enter that directory, type npminit (accept all defaults)3: Type npminstallexpress--savevarexpress=require('express');varapp=express();varport=process.env.port||3000;app.get('/',function(req,res){res.send('HelloWorld!');});app.listen(port,function(){console.log('Exampleapplisteningonport'+port);});4: Create text file app.js:5: Type nodeapp.js6: Point your browser to http://localhost:3000Creates a configuration file for your projectTells NPM that you want to use express, and to save that in your project configRuns your app

LaToza/BellGMU SWE 432 Fall 2016Demo: Hello World Server241: Make a directory, myapp2: Enter that directory, type npminit (accept all defaults)3: Type npminstallexpress--save4: Create text file app.js:5: Type nodeapp.js6: Point your browser to http://localhost:3000Creates a configuration file for your projectRuns your appTells NPM that you want to use express, and to save that in your project configvarexpress=require('express');varapp=express();varport=process.env.port||3000;app.get('/',function(req,res){res.send('HelloWorld!');});app.listen(port,function(){console.log('Exampleapplisteningonport'+port);});Import the module expressCreate a new instance of expressDecide what port we want express to listen onCreate a callback for express to call when we have a "get" request to "/". That callback has access to the request (req) and response (res).Tell our new instance of express to listen on port, and print to the console once it starts successfully

LaToza/BellGMU SWE 432 Fall 2016Express•Basic setup: •For get: app.get("/somePath", function(req, res){

//Read stuff from req, then call res.send(myResponse) }); •For post: app.post("/somePath", function(req, res){ //Read stuff from req, then call res.send(myResponse)

}); •Serving static files: app.use(express.static('myFileWithStaticFiles')); •Make sure to declare this *last* •Additional helpful module - bodyParser (for reading POST data)25

Putting it together: Firebase + Node

LaToza/BellGMU SWE 432 Fall 2016Moving Firebase into Node•General rule: •If you set your database to be writeable by everyone... then make sure NOBODY has your private key27In our security lecture we'll talk about having some data writable through the web app directly and some only through node. For now, we'll talk about the simplest case: Only allow writes through our node backend.

LaToza/BellGMU SWE 432 Fall 2016Firebase + Node•Step 1: Create a special access key for our Node app to use to access our database •This key will distinguish our node app from the web app •Now you can keep publishing your API key, but have a private key that you never publish publicly •https://firebase.google.com/docs/server/setup 1Creat e a Firebase project in the Firebase console, if you don't already have one. If you already have an existing Google project associated with your app, click Import Google Project. Otherwise, click Create New Project.2Cl ick settings and select Permissions.3Sel ect Service accounts from the menu on the left.4Cl ick Create service account.aEnt er a name for your service account. You can optionally customize the ID from the one automatically generated from the name.bC hoose Project > Editor from the Role dropdown.cSel ect Furnish a new private key and leave the Key type as JSON.dLe ave Enable Google Apps Domain-wide Delegation unselected.eC lick Create.28

LaToza/BellGMU SWE 432 Fall 2016Firebase + Node•Step 2: Configure our database to allow writes from ONLY clients that have authenticated with a private key •Database -> Rules -> Set .write to be "auth != null"29

LaToza/BellGMU SWE 432 Fall 2016Firebase + Node•Step 3: Declare our dependency on firebase •In our project directory, run:

npm install firebase --save •In our app, write: •var firebase = require("firebase"); •Step 4: Copy our downloaded private key (step 1) to our directory and configure Firebase to connect with it30

Demo: Firebase + NodeJS

LaToza/BellGMU SWE 432 Fall 2016What's to come?•How do we create structured APIs? •How do we maintain some state between our backend and frontend? •Privacy & Security •Architecting many services together •Deploying our backend services32

quotesdbs_dbs7.pdfusesText_13
[PDF] back end development definition

[PDF] back end development jobs

[PDF] back end development projects

[PDF] back end development tools

[PDF] back end development tutorial

[PDF] backend deal concert

[PDF] backend developer challenges

[PDF] backend development projects

[PDF] backend or frontend

[PDF] backend web development tutorial

[PDF] bacteriologie clinique pdf

[PDF] bactériologie laboratoire pdf

[PDF] bacteriologie medicala pdf

[PDF] bactériologie systématique pdf

[PDF] badminton academy vernon hills