The Hidden Parts Every Mid-Level Developer Needs to Know
Milecia McGregor

#JavaScript
#Full_Stack
#Backend
#Frontend
#REST_APIS
#React
#CI/CD
#Git
👨💻 به عنوان یک برنامهنویس شاغل، تو میدونی چطور وظایفت رو با کدهای استاندارد و قرص و محکم، چه در سمت فرانتاند و چه بکاند، به سرانجام برسونی. حالا وقتش رسیده که به مرحله بعدی مسیر شغلیات بری و اون مهارتهای ظریف اما عمیقی رو یاد بگیری که برای تبدیل شدن به یک برنامهنویس ارشد (Senior Developer) لازمه. این کتاب کاربردی، هر چیزی رو که برای ساخت یک اپلیکیشن فولاستک روی پلتفرمهای ابری نیاز داری، بهت نشون میده.
ملیسیا مکگریگور (Milecia McGregor) که خودش مهندس ارشد هست، بهت کمک میکنه تا دید کلی نسبت به سیستم پیدا کنی و بفهمی برنامهنویسهای ارشد چطور به تصمیمات فنی میرسن. تو با اصول طراحی و توسعه آشنا میشی و یاد میگیری چه زمانی ازشون استفاده کنی. همچنین استراتژیهای تعامل با تیمهای مختلف رو یاد میگیری و درک میکنی که تیم محصول چطور تصمیمگیری میکنه.
💡این کتاب در چهار بخش بهت یاد میده که چطور:
📋 طرحهای اولیه رو به تسکهای اجرایی تبدیل کنی و سوالاتی که باید از تیم محصول بپرسی رو یاد بگیری.
⚙️ ملاحظات توسعه بکاند مثل معماری کلی، امنیت و سرویسهای شخص ثالث رو بررسی کنی.
🎨 رابط کاربری پروژه، مدیریت وضعیت (State) و دادهها، پرفورمنس و بقیه دغدغههای مربوط به اپلیکیشنهای فرانتاند رو بسازی.
🚀 فرانتاند، بکاند و بقیه سیستمها رو به هم وصل کنی و یک اپلیکیشن فولاستک رو در محیط عملیاتی (Production) دیپلوی کنی.
بخش اول: شروع پروژه جدید
فصل ۱: استارت زدن پروژه
بخش دوم: ساختن بکاند
فصل ۲: راه اندازی بکاند
فصل ۳: طراحی اسکیما دادهها
فصل ۴: ایپیآیهای رست (REST APIs)
فصل ۵: سرویسهای شخص ثالث (Third-Party)
فصل ۶: پردازشهای پسزمینه (Background Jobs)
فصل ۷: تستنویسی بکاند
فصل ۸: ملاحظات امنیتی بکاند
فصل ۹: عیبیابی (Debugging) بکاند
فصل ۱۰: پرفورمنس و کارایی بکاند
فصل ۱۱: ملاحظات مقیاسپذیری (Scalability)
فصل ۱۲: مانیتورینگ، لاگگرفتن و مدیریت حوادث
بخش سوم: ساختن فرانتاند
فصل ۱۳: راه اندازی فرانتاند
فصل ۱۴: ساخت اپلیکیشن ریکت (React)
فصل ۱۵: مدیریت وضعیت (State Management)
فصل ۱۶: مدیریت دادهها
فصل ۱۷: استایلهای شخصیسازی شده
فصل ۱۸: مدیریت خطاها در فرانتاند
فصل ۱۹: ملاحظات امنیتی فرانتاند
فصل ۲۰: پرفورمنس و کارایی فرانتاند
فصل ۲۱: تستنویسی فرانتاند
فصل ۲۲: عیبیابی (Debugging) فرانتاند
بخش چهارم: دیپلوی کردن اپلیکیشن فولاستک
فصل ۲۳: تنظیمات دیپلوی فولاستک
فصل ۲۴: تستهای یکپارچگی (Integration Testing)
فصل ۲۵: انجام دیپلویها
فصل ۲۶: دغدغههای یکپارچهسازی
فصل ۲۷: ساخت خط لوله CI/CD
فصل ۲۸: مدیریت گیت (Git)
فصل ۲۹: مدیریت پروژه
فصل ۳۰: درک بیزینس و دامنه کاری
فصل ۳۱: کار روی انواع مختلف پروژهها در طول مسیر شغلی
هدف من از نوشتن این کتاب، دادن یک مرجع به توئه - یه جورایی چک کردن منطق کار - تا موقعی که داری روی پروژههای جدید (Greenfield) یا پروژههای قدیمی و کدبیسهای موجود (Legacy) در هر دو سمت فرانتاند و بکاند و بحثهای دیپلویمنت کار میکنی، ازش استفاده کنی. یه سری سوالات هستن که برای هر دو نوع پروژه مهمن؛ مثل اینکه چطور تستنویسی، پرفورمنس و امنیت رو مدیریت کنی. خیلی از اپلیکیشنها هستههای مشترکی دارن که فارغ از صنعتی که توش کار میکنی، میتونی ازشون استفاده کنی. امیدوارم هر وقت به موقعیتی رسیدی که برات سوال شد چرا تا حالا چیزی درباره فلان موضوع نشنیدی، این کتاب بهت اعتماد به نفس بده تا اون سوالات «ساده» رو به راحتی بپرسی.
اگر سعی داری بفهمی چطور برنامهنویسهای ارشد انگار به شکل جادویی همه چیز رو میدونن و مفاهیم پیچیده رو سریع درک میکنن، من قراره روشش رو بهت نشون بدم. در این مقطع از مسیر شغلیات، احتمالا چند سالی هست که به عنوان توسعهدهنده نرمافزار کار میکنی. میدونی چطور تسکهات رو با کدهای استاندارد، چه در فرانتاند و چه بکاند، جلو ببری. با اینکه ممکنه دانشی در کل لایههای فولاستک داشته باشی، اما احتمالا روی یک بخش بیشتر از بقیه تمرکز داری. در سمت فرانتاند، باید با ساخت لایوتهای رسپانسیو، واکشی دادهها از APIها و کار با فریمورکهایی مثل React، Astro یا Svelte آشنا باشی. در سمت بکاند هم تجربه مهاجرت دیتابیس (Migration)، ساخت API و مدیریت جریانهای پایه احراز هویت رو داری. 🛠️
💻 همچنین مهارتهایی مثل کار با Git و سرویسهایی مثل GitHub یا GitLab رو بلدی و از ابزارهای مختلف برای تست تغییراتت استفاده میکنی. ممکنه سالها روی یک پروژه ثابت بوده باشی یا بین پروژههای مختلف جابجا شده باشی، اما محدوده کارت معمولا شامل همین مفاهیمی بوده که گفتم.
📈 حالا آمادهای که به سطح بعدی در حرفهات برسی. این یعنی یاد بگیری کل سیستم چطور کار میکنه و چرا تصمیمات فنی به اون شکل گرفته میشن. این چیزیه که در این کتاب پوشش میدیم.
🔍 این کتاب قرار نیست آموزش عمیق یک سری ابزار خاص باشه و بهت برنامه نویسی عمومی جاوااسکریپت رو یاد نمیده. طیف وسیعی از مباحث در این کتاب پوشش داده میشه که همراه با مثالهایی برای نشون دادن ملاحظات سطح ارشد هست، اما انتظار میره که تو بلد باشی کد بخونی، مشکلات رو دیباگ کنی و منابع آموزشی تکمیلی رو خودت پیدا کنی.
⚒️ از اونجایی که مباحث خیلی زیادی مطرح شده، استراتژیها در کنار کدها بررسی میشن. این استراتژیها ابزارهایی هستن که میتونی توی هر پروژهای با خودت ببری، هرچند ممکنه برای «هر» پروژهای دقیقا جواب ندن. هیچ رویکرد واحدی وجود نداره که برای دو تا پروژه متفاوت دقیقا یکسان عمل کنه، چون هر کاری ظرافتهای خودش رو داره. پس هدف اینه که گزینههای مختلفی بهت بدم تا بر حسب نیاز انتخاب کنی.
📚 بعضی از بخشهای کتاب به توضیحات خیلی عمیقتری نیاز دارن که در توان یک فصل یا یک بخش نیست. هیچ کتابی نمیتونه تمام این مباحث رو به طور کامل و صد درصدی پوشش بده و من میخوام مطمئن شم که تو تمام اطلاعات لازم رو به دست میاری. بنابراین، در حالی که بعضی مباحث ممکنه در جزئیات پیادهسازی کمی خلاصه باشن، همیشه لینکهایی به منابع مکمل وجود داره.
ملیسیا یک مهندس نرمافزار ارشد هست که با ابزارهایی مثل JavaScript، Angular، React، Node، PHP، Python، .NET، SQL، AWS، Heroku، Azure و کلی ابزار دیگه برای ساخت وباپلیکیشنها کار کرده. اون همچنین مدرک کارشناسی ارشد در مهندسی مکانیک و هوافضا داره و تحقیقاتی در زمینه یادگیری ماشین و رباتیک منتشر کرده. اون در سال ۲۰۱۷ سایت Flipped Coding رو راه انداخت تا به بقیه کمک کنه برنامهنویسی وب رو با پروژههای واقعی یاد بگیرن و مقالاتش رو در نشریات مختلفی از جمله freeCodeCamp منتشر میکنه. در زمانهای آزادش، وقتش رو با همسر و سگهاش میگذرونه، ساز دهنی تمرین میکنه و سعی میکنه آزمایشگاه «دانشمند دیوانه» خودش رو بسازه.
As a working software developer, you know how to complete your tasks with solid code, whether it's on the frontend or backend. Now you're ready to move to the next level in your career, and you need to understand the subtle yet deep skills it takes to become a senior developer. This practical book shows you everything it takes to create a full-stack web application hosted on a cloud platform.
Senior staff engineer Milecia McGregor helps you see how the whole system works and how senior developers arrive at technical decisions. You'll learn about design and development principles and when to apply them. You'll also discover strategies for working with different teams and understand how the product team makes its decisions.
In four parts, this book shows you how to:
Part I. Starting Your New Project
Chapter 1. Kicking Off the Project
Part II. Building the Backend
Chapter 2. Setting Up the Backend
Chapter 3. Building the Data Schema
Chapter 4. REST APIS
Chapter 5. Third-Party Services
Chapter 6. Background Jobs
Chapter 7. Backend Testing
Chapter 8. Backend Security Considerations
Chapter 9. Backend Debugging
Chapter 10. Backend Performance
Chapter 11. Scalability Considerations
Chapter 12. Monitoring, Logging, and Incident Handling
Part III. Building the Frontend
Chapter 13. Setting Up the Frontend
Chapter 14. Building the React App
Chapter 15. State Management
Chapter 16. Data Management
Chapter 17. Custom Styles
Chapter 18. Frontend Error Handling
Chapter 19. Frontend Security Considerations
Chapter 20. Frontend Performance
Chapter 21. Frontend Testing
Chapter 22. Frontend Debugging
Part IV. Deploying the Full Stack App
Chapter 23. Full Stack Deployment Setup
Chapter 24. Integration Testing
Chapter 25. Making Deployments
Chapter 26. Integration Concerns
Chapter 27. Building a CI/CD Pipeline
Chapter 28. Git Management
Chapter 29. Project Management
Chapter 30. Understanding the Business Domain
Chapter 31. Working on Different Types of Projects over Your Career
My goal with this book is to give you a reference—kind of a sanity check—for when you’re working on either greenfield or legacy projects across the frontend and backend and handling deployments. Some questions are relevant for both types of projects, like how you’ll handle testing, performance, and security. Many applications have core commonalities that you can use regardless of the industry you work in. When those moments come where you find yourself questioning why you’ve never heard of something, hopefully this book will make you feel more confident asking those “simple” questions.
Who This Book Is For
If you are trying to figure out how senior devs seem to magically know how everything works and how they understand complex concepts so quickly, I’m going to show you how.
At this point in your career, you’ve probably been working as a software developer for a few years. You know how to complete your tasks with solid code regardless of whether it’s on the frontend or backend. While you may have some knowledge across the full stack, it’s likely you focus on one part of the stack over the other. On the frontend, you should be familiar with making responsive layouts, fetching data from APIs, and using some of the frameworks, such as React, Astro, or Svelte. On the backend, you’ve done some database migrations, built some APIs, and handled some basic authentication flows.
You also have skills like using Git with any of the repo hosting services, such as GitHub or GitLab, and using different tools to test your changes. You may have worked on one project for years, or you may have hopped around projects, but the scope of your work has typically fallen under some of the concepts mentioned.
Now you’re ready to move to the next level in your career. That means learning how the whole system works and why technical decisions are made. That’s what will be covered in this book.
What This Book Is Not
This book is not a deep dive into any specific set of tools, and it will not teach you general JavaScript programming. A large range of topics will be covered in this book, with accompanying examples to demonstrate senior-level considerations, but it is expected that you know how to read code, debug issues, and find additional learning resources.
Since so many topics are covered, strategies will be discussed along with the code. These strategies are meant to be tools you can bring to any project you work on, although they may not work on every project. There isn’t a single approach that would work for any two projects because everything has its own nuances. So the goal is to give you a number of options you can choose from as needed.
Some parts of the book will need a much deeper explanation than a chapter or section can provide. No book can adequately cover all the topics presented here, and I want to make sure you get all the information you need. So while some topics will be light on the full implementation details, there will always be links to complementary resources.
About the Author
Milecia is a senior software engineer that's worked with JavaScript, Angular, React, Node, PHP, Python, .NET, SQL, AWS, Heroku, Azure, and many other tools to build web apps. She also has a master's degree in mechanical and aerospace engineering and has published research in machine learning and robotics. She started Flipped Coding in 2017 to help people learn web development with real-world projects and she publishes articles covering all aspects of software on several publications, including freeCodeCamp. In her free time, she spends time with her husband and dogs while learning to play the harmonica and trying to create her own mad scientist lab.









