Leonardo Nascimento

5.6K posts

Leonardo Nascimento banner
Leonardo Nascimento

Leonardo Nascimento

@leonardo386

💗 A passionate of the frontend world 👾, curious, problem solver, a calm person. My addiction is JavaScript and ☕️.

Natal-RN Katılım Nisan 2010
1.1K Takip Edilen457 Takipçiler
Leonardo Nascimento retweetledi
Dr Milan Milanović
Dr Milan Milanović@milan_milanovic·
𝗟𝗲𝗮𝗿𝗻 𝗳𝘂𝗻𝗱𝗮𝗺𝗲𝗻𝘁𝗮𝗹𝘀 𝗻𝗼𝘁 𝗳𝗿𝗮𝗺𝗲𝘄𝗼𝗿𝗸𝘀 We developers like to learn new stuff and try it ASAP. That stuff consists mainly of new frameworks and tools (such as React, Angular, Spring, Web Forms, etc.). Yet, those frameworks usually have 𝗮 𝘀𝗵𝗼𝗿𝘁 𝗹𝗶𝗳𝗲, 𝟮 𝘁𝗼 𝟱 𝘆𝗲𝗮𝗿𝘀 𝗮𝘁 𝘁𝗵𝗲𝗶𝗿 𝗯𝗲𝘀𝘁. Instead of learning frameworks, which are needed to some extent, we should focus more on learning fundamentals. 𝗟𝗲𝗮𝗿𝗻𝗶𝗻𝗴 𝘁𝗵𝗲 𝗳𝘂𝗻𝗱𝗮𝗺𝗲𝗻𝘁𝗮𝗹𝘀 𝗼𝗳 𝘀𝗼𝗳𝘁𝘄𝗮𝗿𝗲 𝗱𝗲𝘃𝗲𝗹𝗼𝗽𝗺𝗲𝗻𝘁 allows a developer to understand the underlying principles and concepts common across different frameworks and programming languages. This understanding allows for more flexibility and adaptability when working with new technologies or facing problems that a specific framework may not quickly solve. Additionally, a strong understanding of the fundamentals can lead to 𝗺𝗼𝗿𝗲 𝗲𝗳𝗳𝗶𝗰𝗶𝗲𝗻𝘁 𝗮𝗻𝗱 𝗲𝗳𝗳𝗲𝗰𝘁𝗶𝘃𝗲 𝘂𝘀𝗲 𝗼𝗳 𝗳𝗿𝗮𝗺𝗲𝘄𝗼𝗿𝗸𝘀, as the developer can better understand how to customize and extend them to meet specific needs. Take an example of a web application that allows users to upload and share images, e.g., Ruby on Rails, and its functionalities for image processing. If the number of users increases, we could struggle with performance issues if we know only the framework well. Yet, if we understand the fundamentals of web development, we could try to identify bottlenecks and try different solutions, such as using CDN-s, optimizing image sizes, using various storage solutions, etc. So, which fundamentals to learn: 🔹 𝗔𝗹𝗴𝗼𝗿𝗶𝘁𝗵𝗺𝘀 🔹 𝗗𝗮𝘁𝗮 𝘀𝗼𝘂𝗿𝗰𝗲𝘀 🔹 𝗗𝗲𝘀𝗶𝗴𝗻 𝗽𝗮𝘁𝘁𝗲𝗿𝗻𝘀 🔹 𝗗𝗶𝘀𝘁𝗿𝗶𝗯𝘂𝘁𝗲𝗱 𝗖𝗼𝗺𝗽𝘂𝘁𝗶𝗻𝗴 𝗣𝗮𝘁𝘁𝗲𝗿𝗻𝘀 🔹 𝗧𝗲𝘀𝘁𝗶𝗻𝗴 🔹 𝗦𝘆𝘀𝘁𝗲𝗺 𝗗𝗲𝘀𝗶𝗴𝗻 🔹 𝗖𝗹𝗲𝗮𝗻 𝗰𝗼𝗱𝗲 Try to learn those fundamentals, buy and read these books: 🔸 𝗧𝗵𝗲 𝗣𝗿𝗮𝗴𝗺𝗮𝘁𝗶𝗰 𝗣𝗿𝗼𝗴𝗿𝗮𝗺𝗺𝗲𝗿 🔸 𝗖𝗼𝗱𝗲 𝗖𝗼𝗺𝗽𝗹𝗲𝘁𝗲 🔸 𝗗𝗲𝘀𝗶𝗴𝗻 𝗣𝗮𝘁𝘁𝗲𝗿𝗻𝘀: 𝗘𝗹𝗲𝗺𝗲𝗻𝘁𝘀 𝗼𝗳 𝗥𝗲𝘂𝘀𝗮𝗯𝗹𝗲 𝗢𝗯𝗷𝗲𝗰𝘁-𝗢𝗿𝗶𝗲𝗻𝘁𝗲𝗱 𝗦𝗼𝗳𝘁𝘄𝗮𝗿𝗲 🔸 𝗜𝗻𝘁𝗿𝗼𝗱𝘂𝗰𝘁𝗶𝗼𝗻 𝘁𝗼 𝗔𝗹𝗴𝗼𝗿𝗶𝘁𝗵𝗺𝘀 🔸 𝗖𝗹𝗲𝗮𝗻 𝗖𝗼𝗱𝗲 #programming #developers #softwaredesign
Dr Milan Milanović tweet media
English
37
317
2.3K
156.7K
Leonardo Nascimento retweetledi
Dr Milan Milanović
Dr Milan Milanović@milan_milanovic·
𝗗𝗼 𝗬𝗼𝘂 𝗡𝗲𝗲𝗱 𝗧𝗼 𝗞𝗻𝗼𝘄 𝗔𝗹𝗹 𝗗𝗲𝘀𝗶𝗴𝗻 𝗣𝗮𝘁𝘁𝗲𝗿𝗻𝘀? The answer is no. Even though we have 23 design patterns, around 10 are mostly used in everyday development. Knowing which patterns exist overall is good, but you need to know these very well. Design patterns can be divided into three main types: 𝟭. 𝗖𝗿𝗲𝗮𝘁𝗶𝗼𝗻𝗮𝗹 𝗣𝗮𝘁𝘁𝗲𝗿𝗻𝘀 These design patterns deal with object creation mechanisms, trying to create objects in a manner suitable to the situation. Important patterns in this group are: 🔹𝗙𝗮𝗰𝘁𝗼𝗿𝘆: This pattern allows delegating the instantiation logic to factory classes. The Factory Method creates objects without exposing the instantiation logic to the client. 🔹𝗦𝗶𝗻𝗴𝗹𝗲𝘁𝗼𝗻: The Singleton pattern ensures that a class has only one instance and provides a global point of access to it. It's useful when exactly one object is needed to coordinate actions across the system. 𝟮. 𝗦𝘁𝗿𝘂𝗰𝘁𝘂𝗿𝗮𝗹 𝗣𝗮𝘁𝘁𝗲𝗿𝗻𝘀 These patterns deal with the composition of classes and objects that form larger structures. Important patterns in this group are: 🔹𝗔𝗱𝗮𝗽𝘁𝗲𝗿: This pattern works as a bridge between two incompatible interfaces. It wraps an existing class with a new interface to become compatible with the client's interface. 🔹𝗙𝗮𝗰𝗮𝗱𝗲: The Façade pattern provides a unified interface to a set of interfaces in a subsystem. Façade defines a higher-level interface that makes the subsystem easier to use. 🔹𝗗𝗲𝗰𝗼𝗿𝗮𝘁𝗼𝗿: This pattern dynamically adds/overrides behavior in an existing method of an object. This pattern provides a flexible alternative to subclassing for extending functionality. 🔹𝗣𝗿𝗼𝘅𝘆: The Proxy pattern provides a surrogate or placeholder for another object to control access to it. In its most general form, a proxy is a class functioning as an interface to something else. 𝟯. 𝗕𝗲𝗵𝗮𝘃𝗶𝗼𝗿𝗮𝗹 𝗣𝗮𝘁𝘁𝗲𝗿𝗻𝘀 These patterns are specifically concerned with communication between objects and how they interact and distribute work. Important patterns in this group are: 🔹𝗖𝗼𝗺𝗺𝗮𝗻𝗱: The Command pattern encapsulates a request as an object, thus allowing users to parameterize clients with queues, requests, and operations. 🔹𝗧𝗲𝗺𝗽𝗹𝗮𝘁𝗲 𝗠𝗲𝘁𝗵𝗼𝗱: This pattern defines the program skeleton of an algorithm in a method called template method, which defers some steps to subclasses. 🔹𝗦𝘁𝗿𝗮𝘁𝗲𝗴𝘆: The Strategy pattern defines a family of algorithms, encapsulates each one, and makes them interchangeable. Strategy lets the algorithm vary independently from clients that use it. 🔹𝗢𝗯𝘀𝗲𝗿𝘃𝗲𝗿: This pattern defines a one-to-many dependency between objects so that all its dependents are notified and updated automatically when one object changes state. Check out this helpful cheat sheet below. Also, check my full e-book on Design patterns: github.com/milanm/DesignP… #technology #softwareengineering #programming #techworldwithmilan #developers
Dr Milan Milanović tweet media
English
11
296
1.2K
76.1K
Leonardo Nascimento retweetledi
Sahn Lam
Sahn Lam@sahnlam·
Software Testing Basics Testing is crucial in software development to verify applications operate as expected, meet requirements, and run reliably. Key testing methods: 1. Unit Testing: Validates individual code components in isolation to ensure they function properly. 2. Integration Testing: Verifies that different system components and modules interconnect and interact correctly. 3. System Testing: Evaluates the complete system against business and technical requirements. Confirms overall system functionality. 4. Load Testing: Examines system performance under anticipated peak usage levels to uncover bottlenecks. 5. Error Testing: Deliberately inputs invalid data to verify appropriate error handling and recovery. 6. Test Automation: Uses scripts to automate execution of test suites. Improves efficiency, consistency, and coverage. Over to you: What approaches do you take when testing functionality in your software projects? Do you emphasize any specific testing methods or focus areas? – Subscribe to our weekly newsletter to get a Free System Design PDF (158 pages): bit.ly/496keA7
Sahn Lam tweet media
English
5
235
773
35.4K
Leonardo Nascimento retweetledi
Nikki Siapno
Nikki Siapno@NikkiSiapno·
The most popular deployment patterns explained: Utilizing the right deployment pattern is crucial for seamlessly integrating new features and updates. It reduces the risks, avoids interruptions, and delivers a smooth user experience. There are many possible approaches, let's look at 5 of the most popular deployment patterns: Blue/Green Deployment Renowned for zero downtime, this method uses two environments, Blue and Green. One hosts the live version while the other tests the new version. After comprehensive testing without affecting live traffic, users are transitioned to the updated environment. If an issue is discovered after switching environments, it is relatively easy to switch back. The main challenge is the cost and complexity of managing two environments. Canary Deployment Named after canary birds in mines, it starts by rolling out changes to a small subset of users. This allows for monitoring performance and gathering feedback. If successful, you gradually extend the update to more users. It excels in minimizing user impact during updates due to isolation of a small set of users. Rolling Deployment Updates software in phases, rather than all at once. It incrementally upgrades different segments of the system, ensuring most of it remains operational during the deployment. It can be ideal for critical systems that require continuous operation. However, it extends the total update time and might introduce temporary inconsistencies. Feature Toggles Think of feature toggles as on-off switches for new features. They allow teams to deploy features quietly, turning them on for specific users when it makes sense. Feature toggles support strategies like canary releases and A/B testing. The challenge lies in managing numerous toggles, which can become complex and risk feature conflicts. A/B Testing Comparable to a scientific experiment, A/B testing offers two variations of a feature to different user groups to gauge which performs better. It's a go-to for validating user preference and effectiveness of new features, based on concrete data like user engagement or ease of use. Each deployment pattern stands out for specific strengths: • Blue/Green for safety and zero downtime. • Canary for controlled, low-risk rollouts. • Rolling for maintaining continuous operations. • Feature Toggles for flexible feature management. • A/B Testing for data-driven user insights. The right deployment pattern varies depending on the project's needs and objectives. Recognizing these differences allows teams to choose the best approach for a successful and user-centric software release. —— A big thank you to our partner Postman who keeps our content free to the community. Whether you’re working with gRPC, HTTP, GraphQL, WebSockets or even MQTT, Postman has you covered. Check it out: drp.li/postman-reques…
Nikki Siapno tweet media
English
9
145
704
35.2K
Chris Staudinger
Chris Staudinger@ChrisStaud·
One of the best and simplest ways to learn OOP with Python is officially here! To get your FREE copy: • Like • Reply "👋" • Follow me (so I can DM you)
Chris Staudinger tweet media
English
1.4K
254
2.3K
412.6K
Leonardo Nascimento retweetledi
Mohit Panchal
Mohit Panchal@itsbookgains·
🧘‍♂️
Mohit Panchal tweet media
QME
2
136
806
49.7K
Leonardo Nascimento retweetledi
Chema
Chema@Chemaclass·
Software engineering is about becoming experts at learning.
English
15
150
882
0
Leonardo Nascimento retweetledi
Flomatika
Flomatika@flomatika·
ICYMI, the Governance Obeya can be a one-stop shop that addresses most of the concerns related to visibility at various levels. One of them is visibility of progress. Read the blog to find out how you can make the most out of it bit.ly/3lM2oKU
Flomatika tweet media
English
0
1
2
0
Leonardo Nascimento retweetledi
Prof. Feynman
Prof. Feynman@ProfFeynman·
If you focus on the failures, you will continue to suffer. If you focus on the lessons, you will continue to grow. 🧠
English
58
2.1K
10.9K
0
Leonardo Nascimento retweetledi
Elon Musk
Elon Musk@elonmusk·
Twitter DMs should have end to end encryption like Signal, so no one can spy on or hack your messages
English
36.1K
91.1K
1.3M
0
Leonardo Nascimento retweetledi
Prof. Feynman
Prof. Feynman@ProfFeynman·
You learn nothing from life if you think you're right all the time. 🧠
English
70
2K
10.8K
0
Leonardo Nascimento retweetledi
Prof. Feynman
Prof. Feynman@ProfFeynman·
Memorization is not Learning. 🧠
English
149
2.2K
12.3K
0
Leonardo Nascimento retweetledi
Gal Gadot
Gal Gadot@GalGadot·
This day last year we released the first IMPACT trailer to the world. This project is still the epiphany of #internationWomensDay in my eyes - extraordinary women, from different places working endlessly to better the world.
Gal Gadot tweet mediaGal Gadot tweet mediaGal Gadot tweet media
English
76
305
5.8K
0
Leonardo Nascimento retweetledi
Hugh Jackman
Hugh Jackman@RealHughJackman·
Happy International Women’s Day. Let’s face it, you all make the world a much better place. #InternationalWomensDay
English
256
841
13.3K
0
Leonardo Nascimento retweetledi
Eric Elliott
Eric Elliott@ericelliott_·
How to speed up developers: * Give them one task at a time to focus on * Avoid context switches * Cut meetings * Avoid interruptions
English
24
209
1.2K
0
Leonardo Nascimento retweetledi
Prof. Feynman
Prof. Feynman@ProfFeynman·
Do not use your energy to worry. Use your energy to believe, to create, to learn, to think and to grow.
English
96
4.7K
20.5K
0
Leonardo Nascimento retweetledi
vitalik.eth
vitalik.eth@VitalikButerin·
Paradox of diversity: if every organization within society must fully reflect the diversity of that society's members, then there can be no diversity *between* organizations in that society.
English
935
1.4K
11.9K
0
Leonardo Nascimento retweetledi
Prof. Feynman
Prof. Feynman@ProfFeynman·
Direction is much more important than speed. 🧠
English
109
3.3K
17.8K
0