β¨ CSR, SSR, SSG and ISR
β«οΈCSR: Client Side Rendering: entire website is rendered in the browser.
β«οΈSSR: Server Side Rendering the web pages are rendered on the server and then will be sent to the client
β«οΈSSG: Static Site Generation the web pages are rendered on the build time
β«οΈISR: Incremental Static Regeneration the web pages are regenerated after the defined time
πΈ Page Serve/Render Time is less in CSR compared to SSR, since after the initial assets load, CSR manage to load the rest of the pages very quickly. But in SSR, each page request will be served by the app server.
πΈ Page Serve/Render Time is more in ISR compare to SSG, since ISR periodically requests the updated page from the server.
πΈ ISR does not have the most recent content, since there can be a small window where user gets outdated content, just before the periodic content refresh.
ββββββ
π Readmore here
β Follow @devDastan for more content.
β«οΈCSR: Client Side Rendering: entire website is rendered in the browser.
β«οΈSSR: Server Side Rendering the web pages are rendered on the server and then will be sent to the client
β«οΈSSG: Static Site Generation the web pages are rendered on the build time
β«οΈISR: Incremental Static Regeneration the web pages are regenerated after the defined time
πΈ Page Serve/Render Time is less in CSR compared to SSR, since after the initial assets load, CSR manage to load the rest of the pages very quickly. But in SSR, each page request will be served by the app server.
πΈ Page Serve/Render Time is more in ISR compare to SSG, since ISR periodically requests the updated page from the server.
πΈ ISR does not have the most recent content, since there can be a small window where user gets outdated content, just before the periodic content refresh.
ββββββ
π Readmore here
β Follow @devDastan for more content.
π14π3β€2
β¨ The software development lifecycle (SDLC)
β‘οΈ SDLC outlines software development stages and manages the process from concept to product.
1οΈβ£ Planning: Identify goals, user requirements, and create a project plan to set the project's foundation.
2οΈβ£ Analysis: Analyze user requirements in detail, assess feasibility, and determine necessary resources and timeframe.
3οΈβ£ Design: Develop a detailed plan including user interface, software architecture, and component interactions to solve technical issues beforehand.
4οΈβ£ Implementation: Develop the software, write code, and conduct testing and debugging to shape the software as intended.
5οΈβ£ Testing: Test the software for user requirements and bug-free operation, including unit, integration, and user acceptance testing.
6οΈβ£ Deployment: Deploy stable software to users, either by installation on computers or deployment to servers, ensuring a smooth process.
7οΈβ£ Maintenance: Continuously maintain the software, fixing bugs, making improvements, and ensuring security to sustain its longevity and user satisfaction.
ββββββ
π Books to read:
Software Engineering: A Practitionerβs Approach - Roger S. Pressman
ββββββ
π Article: [here]
π₯ Follow @devDastan for more content.
ββββββ
π Books to read:
Software Engineering: A Practitionerβs Approach - Roger S. Pressman
ββββββ
π Article: [here]
Please open Telegram to view this post
VIEW IN TELEGRAM
β€11π5π1
β¨ Headless CMS
β‘οΈ A Headless CMS separates the presentation layer (front end) from the content repository (back end), allowing content to be delivered to various channels through APIs.
βΌοΈ Headless CMS Pros and Cons:
βοΈ Pros:
1οΈβ£ Multi-channel experience: Content can be delivered across multiple channels.
2οΈβ£ Scalability: Easily adapts to new technologies and platforms without changing the CMS.
3οΈβ£ Flexible & quick development: Allows integration of any codebase or programming language for custom frontend frameworks.
4οΈβ£ Enhanced security: Separation of presentation layer and database reduces security risks.
β Cons:
1οΈβ£ Complexity: High flexibility leads to a more complex architecture.
2οΈβ£ Need for more development support: Requires a team of developers with expertise in various programming languages.
3οΈβ£ Limited tools for content creators: Lack of user-friendly content creation tools may increase non-technical staff workload.
ββββββ
π Article: [here]
ββββββ
#architecture
π₯ Follow @devDastan for more content.
ββββββ
π Article: [here]
ββββββ
#architecture
Please open Telegram to view this post
VIEW IN TELEGRAM
β€12π12
β¨ Concurrency vs Parallelism
β‘οΈ Concurrency means that an application is making progress on more than one task - at the same time or at least seemingly at the same time.
β‘οΈ Parallel execution is when a computer has more than one CPU or CPU core, and makes progress on more than one task simultaneously.
β‘οΈ If multiple CPUs are running multiple threads, the process is Parallel Concurrent.
ββββββ
π Article: [here]
π¬ YouTube Video: [here]
ββββββ
#systemDesign #computerScience
π₯ Follow @devDastan for more content.
ββββββ
ββββββ
#systemDesign #computerScience
Please open Telegram to view this post
VIEW IN TELEGRAM
π12β€8
This media is not supported in your browser
VIEW IN TELEGRAM
β¨ Multiple Window 3D Scene Using Three.JS
π₯ This project demonstrates a unique approach to creating and managing a 3D scene across multiple browser windows using Three.JS and localStorage.
ββββββ
π» GitHub Repository: [here]
ββββββ
#threeJS #GitHub
π₯ Follow @devDastan for more content.
ββββββ
ββββββ
#threeJS #GitHub
Please open Telegram to view this post
VIEW IN TELEGRAM
β€8π€―8π2
β¨ Soft Skill Quote
π¬ Onboarding yourself and reading the documentation can also give you a fresh perspective.
Just like the person in the air freshener commercial who canβt smell their own smelly apartment, the more you interact with a software system, the more biased you become.
A new perspective can make all the difference in identifying problems and solutions that others may miss.
ββββββ
#softSkill #softwareEngineering
π₯ Follow @devDastan for more content.
Just like the person in the air freshener commercial who canβt smell their own smelly apartment, the more you interact with a software system, the more biased you become.
A new perspective can make all the difference in identifying problems and solutions that others may miss.
ββββββ
#softSkill #softwareEngineering
Please open Telegram to view this post
VIEW IN TELEGRAM
β€12π3
β¨ Object.freeze vs Object.seal in JavaScript
β Object.seal prevents adding and/or removing properties from the sealed object and makes every existing property non-configurable.
β Object.freeze does Exactly what Object.seal do, plus It prevents modifying any existing properties.
βοΈ There are Object.isFrozen() and Object.isSealed() methods to check if an object is frozen or sealed.
ββββββ
πΈ Image Credit: [here]
π Stack Overflow Answer: [here]
ββββββ
#JavaScript #Programming
π₯ Follow @devDastan for more content.
ββββββ
ββββββ
#JavaScript #Programming
Please open Telegram to view this post
VIEW IN TELEGRAM
π15β€9π3π1
β¨ JavaScript's Garbage Collection
βΉοΈ The garbage collector in JavaScript is responsible for reclaiming memory occupied by objects that are no longer needed. This mechanism is done using mark-and-sweep algorithm.
βΉοΈ The mark-and-sweep algorithm consists of two main phases:
1οΈβ£ Marking: Garbage collector marks reachable objects from the global object, ensuring none are left unmarked if reachable from a rooted object.
2οΈβ£ Sweeping: Garbage collector reclaims memory from unmarked objects, freeing it up for future use.
π Learn more about the JS's garbage collector's mechanism and best practices on the Medium I have written.
ββββββ
π Article (Written by me!): [here]
ββββββ
#JavaScript #Algorithm
π₯ Follow @devDastan for more content.
ββββββ
ββββββ
#JavaScript #Algorithm
Please open Telegram to view this post
VIEW IN TELEGRAM
π8β€7π€―1
ββββββ
ββββββ
#JavaScript #computerScience
Please open Telegram to view this post
VIEW IN TELEGRAM
π13β€5
We will learn about the security concerns for each layer in the next post. Stay tuned!
ββββββ
ββββββ
#network
Please open Telegram to view this post
VIEW IN TELEGRAM
π6β€5π3π€―1
Physical Layer: Sniffing
Data Link Layer: Spoofing
Network Layer: Man-in-the-Middle (MITM)
Transport Layer: Reconnaissance
Session Layer: Hijacking
Presentation Layer: Phishing
Application Layer: Exploit
We will learn how we can prevent our website from some of these attacks in future posts!
ββββββ
ββββββ
#network #security
Please open Telegram to view this post
VIEW IN TELEGRAM
β€11π4
const counter = new Signal.State(0);
// Read the value of Signal
console.log(counter.get()); // Output: 0
// Change the value of Signal
counter.set(1);
console.log(counter.get()); // Output: 1
ref in VueJS, understanding Signals should pose no challenge.ββββββ
ββββββ
#JavaScript #EcmaScript
Please open Telegram to view this post
VIEW IN TELEGRAM
π8β€4π€―2
β¨ Software Engineering Quote
π¬ In software development, βperfectβ is a verb, not an adjective. There is no perfect process. There is no perfect design. There are no perfect stories. You can, however, perfect your process, your design, and your stories.
π£ Kent Beck
ββββββ
#Agile #softwareEngineering
π₯ Follow @devDastan for more content.
ββββββ
#Agile #softwareEngineering
Please open Telegram to view this post
VIEW IN TELEGRAM
π8β€7π€―2
function Car() {
this.make = 'Lamborghini';
return { make: 'Maserati' };
}
const myCar = new Car();
console.log(myCar.make);ββββββ
#JavaScript #Quiz
Please open Telegram to view this post
VIEW IN TELEGRAM
π€―10π9β€4
Promise.all and Promise.allSettled are two methods provided by JavaScript's Promise API, but they have different behaviors and use cases.Waits for all promises to resolve or rejects immediately if any promise rejects. Resolves with an array of resolved values.
Waits for all promises to settle (resolve or reject) and always resolves. Returns an array of objects representing the outcomes of the promises, including their status and value/reason.
ββββββ
ββββββ
#JavaScript
Please open Telegram to view this post
VIEW IN TELEGRAM
β€8π3
ββββββ
ββββββ
#systemDesign #api
Please open Telegram to view this post
VIEW IN TELEGRAM
β€9π5
Build complex string types using dynamic expressions within backticks.
type Endpoint = `/users/${number}`;
const validEndpoint: Endpoint = '/users/123';
// const invalidEndpoint: Endpoint = '/posts/456'; // Error: Type '"/posts/456"' is not assignable to type 'Endpoint'
representing API responses, URL patterns, or validation formats.
ββββββ
#TypeScript
Please open Telegram to view this post
VIEW IN TELEGRAM
π7β€3
num?const num = parseInt('7*6', 10);For example, in "78", only "7" is valid, so it parses it into the decimal 7, ignoring the "" and "8". Thus, num now equals 7.
ββββββ
#JavaScript #Quiz
Please open Telegram to view this post
VIEW IN TELEGRAM
π8π€―5
