The Fundamentals of Software
Max Kanat-Alexander

#software_development
#Simplicity
📘 طراحی نرمافزار خوب ساده است و بهراحتی قابل فهمه. متأسفانه بیشتر برنامههای کامپیوتری امروزی آنقدر پیچیده شدن که هیچکس نمیتونه واقعاً درک کنه همهی کدها دقیقاً چطور با هم کار میکنن. این راهنمای خلاصه بهت کمک میکنه مفاهیم پایهی طراحی خوب رو از طریق قوانین علمی یاد بگیری—قوانینی که میتونی روی هر زبان برنامهنویسی یا هر پروژهای از امروز تا همیشه اعمالشون کنی.
🧠 چه دولوپر تازهکار باشی، چه مهندس نرمافزار ارشد، یا حتی یک مدیر غیرتکنیکال، یاد میگیری چطور برای پروژهی نرمافزاریت یک برنامهی درست و اصولی بسازی و تصمیمهای بهتری دربارهی الگو و ساختار سیستم بگیری.
🔍 کشف میکنی چرا طراحی نرمافزار خوب تبدیل به یک «علم گمشده» شده، درک میکنی هدف نهایی نرمافزار چیه و طراحی خوب دقیقاً چه هدفی داره، ارزش طراحیت رو در حال و آینده ارزیابی میکنی، مثالهای واقعی از تغییر سیستمها در طول زمان بررسی میکنی، طراحیهایی میسازی که اجازه میدن محیط تغییر کنه ولی خود نرمافزار کمترین تغییر رو داشته باشه، و با ساده نگه داشتن کد، تغییرات آینده رو راحتتر میکنی، و در نهایت رفتار نرمافزار رو با تستهای دقیقتر بهتر درک میکنی.
📌 نکات کلیدی:
🧩 شناخت نیروهای اصلی که کیفیت طراحی نرمافزار رو شکل میدن
⏳ درک ارزش تصمیمهای طراحی در کوتاهمدت و بلندمدت
🔄 بررسی نحوهی تکامل سیستمها در طول زمان در پروژههای واقعی
🌍 طراحی سیستمهایی که با تغییر محیط کمترین تغییر در کد رو نیاز دارن
🧱 سادهسازی کد برای کاهش هزینهی تغییر در آینده
🧪 استفاده از تستها برای درک دقیقتر رفتار سیستم و جلوگیری از خطا
🧠 درک تفاوت بین توسعهدهندههای معمولی و توسعهدهندههای سطح بالا
📚 فهرست مطالب
فصل 1. مقدمه
فصل 2. علم گمشده
فصل 3. نیروهای محرک طراحی نرمافزار
فصل 4. آینده
فصل 5. تغییر
فصل 6. خطاها و طراحی
فصل 7. سادگی
فصل 8. پیچیدگی
فصل 9. تست
👤 درباره نویسنده
🚀 ماکس کانات-الکساندر لید فنی Code Health در گوگل و معمار سابق پروژهی Bugzilla هست. او از هشتسالگی تعمیر کامپیوتر رو شروع کرده و از چهاردهسالگی برنامهنویسی میکرده. نویسندهی سایتهای codesimplicity.com و fedorafaq.org هست و در حال حاضر در شمال کالیفرنیا زندگی میکنه.
Good software design is simple and easy to understand. Unfortunately, the average computer program today is so complex that no one could possibly comprehend how all the code works. This concise guide helps you understand the fundamentals of good design through scientific laws—principles you can apply to any programming language or project from here to eternity.
Whether you’re a junior programmer, senior software engineer, or non-technical manager, you’ll learn how to create a sound plan for your software project, and make better decisions about the pattern and structure of your system.
Discover why good software design has become the missing science Understand the ultimate purpose of software and the goals of good design Determine the value of your design now and in the future Examine real-world examples that demonstrate how a system changes over time Create designs that allow for the most change in the environment with the least change in the software Make easier changes in the future by keeping your code simpler now Gain better knowledge of your software’s behavior with more accurate tests
• Learn what differentiates great programmers from poor programmers
• Understand the ultimate purpose of software and the goals of good software design
• Determine the value of your decisions now and in the future
• Examine real-world examples that demonstrate how a system changes over time
• Learn to allow for the most change in the environment with the least change in the software
• Make easier changes in the future by keeping your code simpler now
• Understand why to write tests and what tests to write
Table of Contents
Chapter 1. Introduction
Chapter 2. The Missing Science
Chapter 3. The Driving Forces of Software Design
Chapter 4. The Future
Chapter 5. Change
Chapter 6. Defects and Design
Chapter 7. Simplicity
Chapter 8. Complexity
Chapter 9. Testing
About the Author
Max Kanat-Alexander is the Technical Lead for Code Health at Google and former Chief Architect of the Bugzilla Project. He been fixing computers since he was eight years old and writing software since he was fourteen. He is the author of codesimplicity.com and fedorafaq.org, and is currently living in Northern California.









