Making Your JavaScript Applications Scale
Boris Cherny

#TypeScript
#JavaScript
#engineers
#Backend
#Frontend
جاوااسکریپت مثل یه ماشین مسابقه قدرتمنده، ولی بدون کمربند ایمنی و داشبورد! هر لحظه ممکنه یه چیزی خراب بشه و ندونی دقیقاً چی. تایپاسکریپت همون کمربند ایمنی (و کلی آپشن خفن دیگه) است که مایکروسافت به این ماشین اضافه کرده تا با خیال راحتتری باهاش برونی.
بریم ببینیم این کتاب چطور میخواد این ابرقدرت رو بهمون یاد بده:
هر برنامهنویسی که با یک زبان داینامیک (dynamically typed) کار کرده باشه بهتون میگه که چقدر مقیاسپذیری کد به خطوط بیشتر و مهندسان بیشتر، سخته. به همین دلیله که غولهایی مثل فیسبوک، گوگل و مایکروسافت لایههای نوعدهی استاتیک تدریجی (gradual static type layers) برای کدهای داینامیک جاوااسکریپت و پایتون خودشون اختراع کردن. این کتاب عملی به شما نشون میده که چطور یکی از این لایهها، یعنی تایپاسکریپت (TypeScript)، در بین بقیه منحصر به فرده: چون با سیستم نوعدهی استاتیک قدرتمندش، برنامهنویسی رو سرگرمکننده (fun) میکنه!
اگه شما یک برنامهنویس با تجربه متوسط در جاوااسکریپت هستید، نویسنده کتاب، بوریس چرنی (Boris Cherny)، به شما یاد میده که چطور در زبان تایپاسکریپت استاد بشید. شما متوجه خواهید شد که تایپاسکریپت چطور میتونه به شما کمک کنه تا باگها رو در کدتون از بین ببرید و بهتون این امکان رو بده که کدتون رو بین مهندسان بیشتری نسبت به قبل مقیاسپذیر کنید.
🎯 تو این کتاب، شما یاد میگیرید که:
✅ با اصول اولیه شروع کنید: با انواع مختلف typeها و اپراتورهای نوع در تایپاسکریپت آشنا میشید، شامل اینکه برای چه کاری هستن و چطور استفاده میشن.
🧠 به سراغ موضوعات پیشرفته برید: سیستم نوعدهی پیچیده تایپاسکریپت رو درک میکنید، از جمله اینکه چطور به طور ایمن خطاها رو مدیریت کنید و برنامههای ناهمگام (asynchronous) بسازید.
🛠️ دست به کار بشید: از تایپاسکریپت با فریمورکهای فرانتاند و بکاند مورد علاقهتون استفاده کنید، پروژه جاوااسکریپت موجودتون رو به تایپاسکریپت مهاجرت بدید و اپلیکیشن تایپاسکریپت خودتون رو در محیط پروداکشن اجرا کنید.
فصل ۱: مقدمه
فصل ۲: تایپاسکریپت: یک نمای کلی از ارتفاع ۱۰,۰۰۰ پایی
فصل ۳: همه چیز درباره Typeها
فصل ۴: توابع (Functions)
فصل ۵: کلاسها و اینترفیسها
فصل ۶: Typeهای پیشرفته
فصل ۷: مدیریت خطاها
فصل ۸: برنامهنویسی ناهمگام، همزمانی و موازیسازی
فصل ۹: فریمورکهای فرانتاند و بکاند
فصل ۱۰: Namespaceها و ماژولها
فصل ۱۱: تعامل با جاوااسکریپت
فصل ۱۲: بیلد و اجرای تایپاسکریپت
فصل ۱۳: نتیجهگیری
ضمائم (که خودشون یه پا کتابن! شامل اپراتورها، ابزارهای کمکی و دستورالعملهای کاربردی)
این بخش از مقدمه کتاب خیلی مهمه چون دقیقاً بهتون میگه با چه کتابی طرف هستید:
این کتاب برای همه برنامهنویسهاست: مهندسان حرفهای جاوااسکریپت، اهالی #C، دوستداران جاوا، عاشقان پایتون، شیفتگان روبی، و خوره های Haskell. به هر زبانی که کد میزنید، تا زمانی که تجربه برنامهنویسی دارید و اصول اولیه توابع، متغیرها، کلاسها و خطاها رو بلدید، این کتاب برای شماست.
چیزی که همه ما رو به هم پیوند میده، تجربه مشترکمون در ردیابی استثناها (exceptions) و خط به خط دنبال کردن کد برای فهمیدن اینکه چه چیزی اشتباه شده، است. این همون تجربهایه که تایپاسکریپت با بررسی خودکار کد و اشاره به اشتباهاتی که ممکنه از دست داده باشید، به جلوگیری از اون کمک میکنه.
اشکالی نداره اگه قبلاً با زبانهای استاتیک کار نکرده باشید. من به شما در مورد typeها و نحوه استفاده مؤثر از اونها یاد میدم تا برنامههاتون کمتر کرش کنن، کدتون رو بهتر مستند کنید و اپلیکیشنهاتون رو در مقیاس کاربران، مهندسان و سرورهای بیشتری گسترش بدید. سعی میکنم از کلمات قلمبه سلمبه دوری کنم و ایدهها رو به روشی شهودی، به یاد ماندنی و عملی توضیح بدم.نکته در مورد تایپاسکریپت همینه: برخلاف خیلی از زبانهای تایپشده دیگه، تایپاسکریپت به شدت عملیه. مفاهیم کاملاً جدیدی رو ابداع میکنه تا بتونید مختصرتر و دقیقتر صحبت کنید و به شما اجازه میده اپلیکیشنها رو به روشی سرگرمکننده، مدرن و ایمن بنویسید.
بوریس چرنی (Boris Cherny) یک مهندس نرمافزار در فیسبوک و برگزارکننده میتاپ تایپاسکریپت سانفرانسیسکو است. او یک برنامهنویس قدیمی جاوااسکریپت و از طرفداران برنامهنویسی تابعیه. این یعنی طرف خودش تو دل ماجراست و از مشکلات خبر داره و راه حلهاش رو هم تو این کتاب آورده.
خلاصه کلام:
اگه برنامهنویس جاوااسکریپت هستی و از خطاهای undefined is not a function خسته شدی، یا اگه میخوای کد تمیزتر، قویتر و قابل نگهداریتری بنویسی که بتونی با خیال راحت به تیمهای بزرگتر بسپاریش، این کتاب مثل یک دوره فشرده و عملی، تو رو به سطح بعدی میبره. 🚀💯
Any programmer working with a dynamically typed language will tell you how hard it is to scale to more lines of code and more engineers. That’s why Facebook, Google, and Microsoft invented gradual static type layers for their dynamically typed JavaScript and Python code. This practical book shows you how one such type layer, TypeScript, is unique among them: it makes programming fun with its powerful static type system.
If you’re a programmer with intermediate JavaScript experience, author Boris Cherny will teach you how to master the TypeScript language. You’ll understand how TypeScript can help you eliminate bugs in your code and enable you to scale your code across more engineers than you could before.
In this book, you’ll:
Table of Contents
Chapter 1. Introduction
Chapter 2. TypeScript: A 10,000 Foot View
Chapter 3. All About Types
Chapter 4. Functions
Chapter 5. Classes and Interfaces
Chapter 6. Advanced Types
Chapter 7. Handling Errors
Chapter 8. Asynchronous Programming, Concurrency, and Parallelism
Chapter 9. Frontend and Backend Frameworks
Chapter 10. Namespaces.Modules
Chapter 11. Interoperating with JavaScript
Chapter 12. Building and Running TypeScript
Chapter 13. Conclusion
Appendix A. Type Operators
Appendix B. Type Utilities
Appendix C. Scoped Declarations
Appendix D. Recipes for Writing Declaration Files for Third-Party JavaScript Modules
Appendix E. Triple-Slash Directives
Appendix F. TSC Compiler Flags for Safety
Appendix G. TSX
This is a book for programmers of all walks: professional JavaScript engineers, C# people, Java sympathizers, Python lovers, Ruby aficionados, Haskell nerds. Whatever language(s) you write in, so long as you have some experience programming and know the basics of functions, variables, classes, and errors, this book is for you. Some experience with JavaScript, including a basic knowledge of the Document Object Model (DOM) and the network, will help you along the way—while we don’t dive deep into these concepts, they are a wellspring of excellent examples, and if you’re not familiar with them the examples might not make as much sense.
Regardless of what programming languages you’ve used in the past, what unites all of us is our shared experience of tracking down exceptions, tracing through code line by line to figure out what went wrong and how we can fix it. This is the experience that TypeScript helps prevent by examining your code automatically and pointing out the mistakes you may have missed.
It’s OK if you haven’t worked with a statically typed language before. I’ll teach you about types and how to use them effectively to make your programs crash less, document your code better, and scale your applications across more users, engineers, and servers. I’ll try to avoid big words when I can, and explain ideas in a way that’s intuitive, memorable, and practical, using lots of examples along the way to help keep things concrete.
That’s the thing about TypeScript: unlike a lot of other typed languages, TypeScript is intensely practical. It invents completely new concepts so you can speak more concisely and precisely, letting you write applications in a way that’s fun, modern, and safe.
Boris Cherny is a Software Engineer at Facebook and the organizer of the San Francisco TypeScript Meetup. A longtime JavaScript programmer and functional programming evangelist Boris has started several startups, and led engineering teams in adtech and venture capital. In his free time, you can find him working on open source on Github.









