sanjar-notes / backend Goto Github PK
View Code? Open in Web Editor NEWBackend web development fundamentals
Backend web development fundamentals
Link to course: https://frontendmasters.com/courses/fullstack-v2/
Why + what?
Consider the example of an Ecommerce store, the general buy process has the following steps:
Place order -> Pay -> Dispatch -> *transition from warehouses -> arrive at local warehouse -> out for delivery -> delivered -> cancel/return? -> refund?
A lot is going on here. I have of courses omitted multiple possible states at each point.
Checkout:
https://youtube.com/playlist?list=PLOspHqNVtKAAXDobTc9kBWwnfgzNV2k_a - databases, streaming, OS level concepts, SQL, querying etc
https://youtu.be/78k5-LZwLBo?si=ZqZQz27Usjx-VFNX
50 Billion messages per day at WhatsApp.
It's good to know when to switch the tool
Monitoring system, IDK what those are.
Examples - Grafana, Prometheus
Was reading Networking by Forouzan, but it's too long and time consuming. Not practically useful if read page to page.
I want an app where my cursor position is shown to the person I'm video calling (say we're going through some code on their browser). It's one way comm, but how do I send my cursor coordinates without them 'listening' or the other way around.
The issue is I don't want to create a chrome plugin with a 'server' app that you need to install
The home/
files could be useful. Archived https://github.com/sanjar-notes/rest-web
https://youtube.com/c/sudoCODE
REST API expectations
Express full tutorial - https://youtu.be/SccSCuHhOw0
Middlewares in Express - https://youtu.be/lY6icfhap2o
These videos are exhaustive.
https://youtu.be/0CSyIBHQy9g?si=IzT7_RVjUYgjPK63 ~2h Freecodecamp
Much needed
Yesterday, I wrote some Ruby (Rails) code just because request keys that were decided for an API differed from the column name (which Rails defaults to for request keys).
This mapping code was non-trivial, since one has to not reset something if the request doesn't have the key (think undefined vs null in JS). - Also, the form used on the frontend had a set of generic validators, for showing wrongly entered values. I had to add a custom validator if value was 'oneOf' a given array of fixed values.
I thought this was a stupid way to code, atleast if you own both the server and client app.
So, if the backend could just generate a "type" file with
This would solve a lot of communication tasks, and cosmetic mappings.
sse-ws-http-tcp (ChatGPT conv)
I still have some doubts, ChatGPT was hallucinating about minute details, it seems.
https://www.atatus.com/blog/, docker, k8s, redis, mqs. ~500 blogs
What is logging in backend lingo.
Examples - APM, Loki
I have not learnt about database abstractions like ORMs, CLI tools, etc.
Learn them
Important. Knowledge about scaling stuff and what things matter - allow for more efficiency and simplification (less instances, less app code).
Video: https://youtu.be/gSQoA4SYhJY?si=yTGTZByLeKbPAX_R - What happens before the backend gets the Request - Hussein Nasser
Important for growth phase/roles for an app/company.
source: https://www.reddit.com/r/ExperiencedDevs/comments/pyleqb/recommendation_reading_booksblogs_for_best/
The Design of Web APIs by Arnaud Lauret is the best I've found so far. I've looked at a lot of other resources, including some mentioned already in this thread, and have been generally unimpressed. Apart from Fielding's paper, which everyone should read as a primer, I haven't seen anything better when it comes to an in depth look at RESTful design.
Gaurav Sen at YouTube
https://youtu.be/FqljO9B5grM (8 min)
I want to learn this because it's a full-duplex communication protocol, which HTTP isn't.
Resources:
The goal is to just understand enough to think about the effects of this tech, i.e. implementation details are necessary only if they change the interface of the tech.
Learn about HTTP (in depth) from the following resources:
Remember, the goal is to learn as less as possible, but understand as much as possible. Implementation details matter, only if they change the interface of the tech.
https://youtu.be/LTH9m4HkeYY?si=c1R3XA7ubhSarzrW "I wish I had 10 years ago"
Kafka/RabbitMQ - examples.
A message queue is a job batching/handling system.
What is it, add it.
e.g. Spanner, BigTable, Borg
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.