0
نام کتاب
Software Engineering at Google

Lessons Learned from Programming Over Time

Titus Winters, Tom Manshreck, and Hyrum Wright

Print Length602 Pages
PublisherO'Reilly
Edition1
LanguageEnglish
Year2020
ISBN9781492082798
10
4K
A69
انتخاب نوع چاپ:
جلد سخت
1,785,000ت
0
جلد نرم
1,925,000ت(2 جلدی)
0
طلق پاپکو و فنر
1,945,000ت(2 جلدی)
0
مجموع:
0تومان
کیفیت متن:اورجینال انتشارات
قطع:B5
رنگ صفحات:دارای متن و کادر رنگی
پشتیبانی در روزهای تعطیل!
ارسال به سراسر کشور

#Software

#Engineering

#Google

توضیحات

🏗️ مهندسی نرم‌افزار به سبک Google


🚀 مهندسان نرم‌افزار امروز فقط نباید برنامه‌نویسی مؤثر را بلد باشن؛ بلکه باید روش‌های مهندسی درستی را توسعه بدن تا Codebase در طول زمان سالم، پایدار و قابل‌نگهداری باقی بمونه. این کتاب تفاوت مهم میان Programming و Software Engineering را توضیح میده و نشان میده چطور نرم‌افزاری ساخته بشه که در برابر تغییر نیازها و رشد پروژه دوام بیاره.


✨ ویژگی‌های کلیدی

⏳ بررسی میکنه گذر زمان چه تأثیری بر پایداری Software داره و چطور میشه Code را در برابر تغییرات آینده مقاوم کرد.

📏 نشان میده Scale چطور امکان‌پذیربودن Practiceهای نرم‌افزاری را در یک سازمان مهندسی تحت‌تأثیر قرار میده.

⚖️ Trade-Offهایی را توضیح میده که Engineerها هنگام ارزیابی تصمیم‌های Design و Development با آن‌ها روبه‌رو میشن.

🏢 فرهنگ مهندسی، Processها و Toolهای منحصربه‌فرد Google و نقش آن‌ها در اثربخشی یک سازمان مهندسی را بررسی میکنه.

🛠️ موضوعاتی مثل Code Review، Documentation، Testing، Version Control، Dependency Management، CI/CD و تغییرات بزرگ‌مقیاس را پوشش میده.


📘 توضیح کتاب

🔄 یک Software Engineer چطور میتونه Codebase زنده‌ای را مدیریت کنه که در تمام طول عمرش تکامل پیدا میکنه و به Requirementها و تقاضاهای درحال‌تغییر پاسخ میده؟ این پرسش، محور اصلی کتاب و نقطه تمایز میان نوشتن Code و مهندسی بلندمدت Software است.


🏢 تایتوس وینترز و هایرم رایت، Software Engineerهای Google، همراه با Technical Writer این شرکت، تام منشرک، براساس تجربه خود در Google نگاهی صریح و عمیق به شیوه ساخت و نگهداری Software توسط بعضی از برجسته‌ترین متخصصان جهان ارائه میدن.


🧠 کتاب فرهنگ مهندسی خاص Google، Processها و Toolهای آن را بررسی میکنه و توضیح میده این عوامل چطور در کنار یکدیگر به افزایش اثربخشی سازمان مهندسی کمک میکنن.


⏳ نخستین اصل اساسی کتاب، تأثیر زمان بر Sustainability نرم‌افزاره. Code فقط برای نیاز امروز نوشته نمیشه؛ بلکه باید در برابر تغییر Requirementها، رشد سیستم و تصمیم‌های آینده مقاوم باقی بمونه.


📐 اصل دوم به Scale مربوط میشه. Practiceای که برای یک Developer یا تیم کوچک خوب کار میکنه، ممکنه در سازمانی با هزاران Engineer و میلیون‌ها خط Code قابل‌اجرا نباشه؛ بنابراین فرایندها و ابزارها باید متناسب با ابعاد سازمان طراحی بشن.


⚖️ اصل سوم، Trade-Offهاییه که یک Engineer معمولی هنگام تصمیم‌گیری درباره Design و Development ارزیابی میکنه. کتاب نشان میده تصمیم‌های مهندسی معمولاً پاسخ مطلق ندارن و باید براساس Cost، زمان، Scale، نگهداری و نیازهای آینده سنجیده بشن.


🤝 بخش Culture موضوعاتی مثل کار مؤثر در Teamها، Knowledge Sharing، Engineering for Equity، هدایت Team، Leadership در مقیاس بزرگ و اندازه‌گیری Engineering Productivity را پوشش میده.


🧪 بخش Processes به Style Guideها، Ruleها، Code Review، Documentation و سطوح مختلف Testing میپردازه. Unit Testing، Test Doubleها، Testهای بزرگ‌تر و Deprecation هم در همین بخش بررسی میشن.


🛠️ بخش Tools موضوعاتی مثل Version Control، Branch Management، Code Search، Build Systemها، Static Analysis، Dependency Management و Large-Scale Changeها را توضیح میده. ابزار Code Review خود Google نیز به‌صورت انتقادی بررسی میشه.


🚀 در ادامه، Continuous Integration، Continuous Delivery و Compute as a Service مطرح میشن تا ارتباط میان توسعه Code، Automation، تحویل Software و Infrastructure در مقیاس سازمانی روشن بشه.


🎯 پس از مطالعه کتاب، درک میکنی Software Engineering فقط نوشتن Code درست نیست؛ بلکه شامل ساخت فرهنگ، Process و Toolهاییه که یک Codebase را در برابر زمان، رشد و تغییر مقاوم نگه میدارن و امکان همکاری مؤثر Engineerها را در مقیاس بزرگ فراهم میکنن.


🎯 چیزهایی که یاد میگیری

⏳ یاد میگیری تأثیر زمان بر Sustainability نرم‌افزار را ارزیابی و Code را برای تغییرات آینده مقاوم کنی.

📏 درک میکنی Scale چطور Practiceهای مهندسی را در Teamها و سازمان‌های بزرگ تغییر میده.

⚖️ میتونی Trade-Offهای مربوط به تصمیم‌های Design و Development را دقیق‌تر ارزیابی کنی.

🤝 یاد میگیری در Teamها مؤثرتر کار کنی، Knowledge را به اشتراک بذاری و Leadership را در Scaleهای مختلف به کار بگیری.

📝 با Style Guide، Code Review و Documentation به‌عنوان اجزای اصلی یک Codebase سالم آشنا میشی.

🧪 میتونی نقش Unit Testing، Test Doubleها و Testهای بزرگ‌تر را در Reliability نرم‌افزار درک کنی.

🔧 یاد میگیری از Version Control، Code Search، Build System، Static Analysis و Dependency Management در پروژه‌های بزرگ استفاده کنی.

🚀 با Large-Scale Change، Continuous Integration، Continuous Delivery و Compute as a Service آشنا میشی.


👤 این کتاب برای چه کسانیه؟

💻 این کتاب برای Programmerها و Software Engineerهاییه که میخوان فراتر از نوشتن Code حرکت کنن و Practiceهای لازم برای ساخت و نگهداری Codebaseهای سالم و پایدار را یاد بگیرن.

🏢 Technical Leadها، Engineering Managerها، Software Architectها و اعضای Teamهای بزرگ میتونن از تجربه‌های Google در Culture، Knowledge Sharing، Leadership، Productivity، Process و Tooling استفاده کنن.

📌 کتاب به‌ویژه برای افرادی مناسبه که با Softwareهای بلندمدت، Codebaseهای بزرگ، Requirementهای متغیر و همکاری میان تعداد زیادی Engineer سروکار دارن. در اطلاعات منبع، پیش‌نیاز تخصصی مشخصی برای مطالعه آن ذکر نشده است.


📖 فهرست مطالب

بخش اول. تز اصلی

فصل ۱. Software Engineering چیست؟


بخش دوم. فرهنگ

فصل ۲. چطور در Teamها خوب کار کنیم؟

فصل ۳. اشتراک‌گذاری Knowledge

فصل ۴. مهندسی برای برابری

فصل ۵. چطور یک Team را هدایت کنیم؟

فصل ۶. Leadership در مقیاس بزرگ

فصل ۷. اندازه‌گیری Engineering Productivity


بخش سوم. Processها

فصل ۸. Style Guideها و Ruleها

فصل ۹. Code Review

فصل ۱۰. Documentation

فصل ۱۱. نمای کلی Testing

فصل ۱۲. Unit Testing

فصل ۱۳. Test Doubleها

فصل ۱۴. Testing در مقیاس بزرگ‌تر

فصل ۱۵. Deprecation


بخش چهارم. Toolها

فصل ۱۶. Version Control و Branch Management

فصل ۱۷. Code Search

فصل ۱۸. Build Systemها و فلسفه Build

فصل ۱۹. نقد ابزار Code Review در Google

فصل ۲۰. Static Analysis

فصل ۲۱. Dependency Management

فصل ۲۲. تغییرات بزرگ‌مقیاس

فصل ۲۳. Continuous Integration

فصل ۲۴. Continuous Delivery

فصل ۲۵. Compute as a Service


بخش پنجم. نتیجه‌گیری


👤 درباره نویسندگان

💻 تایتوس وینترز Senior Staff Software Engineer در Google است و از سال ۲۰۱۰ در این شرکت فعالیت میکنه. او درحال‌حاضر ریاست Global Subcommittee مربوط به طراحی Standard Library زبان C++ را بر عهده داره.

📚 تایتوس در Google رهبر بخش Library برای Codebase زبان C++ این شرکته؛ Codebaseای شامل ۲۵۰ میلیون خط Code که در طول یک ماه توسط دوازده هزار Engineer مختلف ویرایش میشه.

⚙️ او و Teamهایش طی هفت سال گذشته با استفاده از Automation و Toolهای مدرن، Componentهای بنیادی Codebase زبان C++ در Google را سازمان‌دهی، نگهداری و تکامل داده‌اند.

🔄 تایتوس در این مسیر چندین پروژه را در Google آغاز کرده که تصور میشه در میان ده Refactoring بزرگ تاریخ بشر قرار دارن.

🧠 او به‌دلیل مشارکت مستقیم در ساخت Toolها و Automation مربوط به Refactoring، از نزدیک با طیف بزرگی از میان‌برهایی روبه‌رو شده که Engineerها و Programmerها برای «فقط راه‌انداختن یک چیز» انتخاب میکنن. همین Scale و دیدگاه منحصربه‌فرد، تمام تفکرات او درباره مراقبت، نگهداری و تکامل Software Systemها را شکل داده است.


📝 تام منشرک از سال ۲۰۰۵ به‌عنوان Staff Technical Writer در بخش Software Engineering شرکت Google فعالیت میکنه. او مسئول توسعه و نگهداری بسیاری از Programming Guideهای اصلی Google در حوزه Infrastructure و Language است.

☕ تام از سال ۲۰۱۱ عضو Google C++ Library Team بوده و در توسعه مجموعه Documentation مربوط به C++، راه‌اندازی دوره‌های آموزشی C++ شرکت Google همراه با تایتوس وینترز و مستندسازی Abseil، کد Open Source زبان C++ در Google، فعالیت کرده است.

🎓 او دارای مدرک BS در Political Science و مدرک BS در History از Massachusetts Institute of Technology یا MIT است.

🏢 تام پیش از Google به‌عنوان Managing Editor در Pearson/Prentice Hall و چند Startup مختلف فعالیت میکرد.


⚙️ هایرم کی. رایت Staff Software Engineer در Google است و از سال ۲۰۱۲ در این شرکت فعالیت میکنه. تمرکز اصلی کار او نگهداری بزرگ‌مقیاس Codebase زبان C++ در Google است.

🧩 هایرم بیش از هر Engineer دیگری در تاریخ شرکت Google، ویرایش‌های انفرادی روی Codebase این شرکت انجام داده است.

🌐 او عضو Apache Software است و گاهی به‌عنوان Visiting Faculty در Carnegie Mellon University فعالیت میکنه.

🎓 هایرم مدرک PhD خود را در Software Engineering از University of Texas at Austin دریافت کرده است. او همچنین دارای مدرک MS از University of Texas و مدرک BS از Brigham Young University است.

🎤 او از سخنرانان فعال Conferenceهاست و به‌طور مستمر در Literature دانشگاهی مربوط به Software Maintenance و Evolution مشارکت میکنه.


Today, software engineers need to know not only how to program effectively but also how to develop proper engineering practices to make their codebase sustainable and healthy. This book emphasizes this difference between programming and software engineering.


How can software engineers manage a living codebase that evolves and responds to changing requirements and demands over the length of its life? Based on their experience at Google, software engineers Titus Winters and Hyrum Wright, along with technical writer Tom Manshreck, present a candid and insightful look at how some of the world’s leading practitioners construct and maintain software. This book covers Google’s unique engineering culture, processes, and tools and how these aspects contribute to the effectiveness of an engineering organization.


You’ll explore three fundamental principles that software organizations should keep in mind when designing, architecting, writing, and maintaining code:

  • How time affects the sustainability of software and how to make your code resilient over time
  • How scale affects the viability of software practices within an engineering organization
  • What trade-offs a typical engineer needs to make when evaluating design and development decisions.


Table of Contents

Part I. Thesis

Chapter 1. What Is Software Engineering?


Part II. Culture

Chapter 2. How to Work Well on Teams

Chapter 3. Knowledge Sharing

Chapter 4. Engineering for Equity

Chapter 5. How to Lead a Team

Chapter 6. Leading at Scale

Chapter 7. Measuring Engineering Productivity


Part III. Processes

Chapter 8. Style Guides and Rules

Chapter 9. Code Review

Chapter 10. Documentation

Chapter 11. Testing Overview

Chapter 12. Unit Testing

Chapter 13. Test Doubles

Chapter 14. Larger Testing

Chapter 15. Deprecation


Part IV. Tools

Chapter 16. Version Control and Branch Management

Chapter 17. Code Search

Chapter 18. Build Systems and Build Philosophy

Chapter 19. Critique: Google’s Code Review Tool

Chapter 20. Static Analysis

Chapter 21. Dependency Management

Chapter 22. Large-Scale Changes

Chapter 23. Continuous Integration

Chapter 24. Continuous Delivery

Chapter 25. Compute as a Service


Part V. Conclusion


About the Author

Titus Winters is a Senior Staff Software Engineer at Google, where he has worked since 2010. Today, he is the chair of the global subcommittee for the design of the C++ standard library. At Google, he is the library lead for Google’s C++ codebase: 250 million lines of code that will be edited by 12K distinct engineers in a month. For the last 7 years, Titus and his teams have been organizing, maintaining, and evolving the foundational components of Google’s C++ codebase using modern automation and tooling. Along the way he has started several Google projects that believed to be in the top 10 largest refactorings in human history. As a direct result of helping to build out refactoring tooling and automation, Titus has encountered first-hand a huge swath of the shortcuts that engineers and programmers may take to “just get something working”. That unique scale and perspective has informed all of his thinking on the care and feeding of software systems.


Tom Manshreck is a Staff Technical Writer within Software Engineering at Google since 2005, responsible for developing and maintaining many of Google's core programming guides in infrastructure and language. Since 2011, he has been a member of Google's C++ Library Team, developing Google's C++ documentation set, launching (with Titus Winters) Google's C++ training classes, and documenting Abseil, Google's open source C++ code. Tom holds a BS in Political Science and a BS in History from the Massachusetts Institute of Technology. Before Google, Tom worked as a Managing Editor at Pearson/Prentice Hall and various startups.


Hyrum K. Wright is a Staff Software Engineer at Google, where he has worked since 2012, mainly in the areas of large-scale maintenance of Google's C++ codebase. Hyrum has made more individual edits to Google's codebase than any other engineer in the history of the company. He is a member of the Apache Software and an occasional visiting faculty member at Carnegie Mellon University. Hyrum received a PhD in Software Engineering from the University of Texas at Austin, and also holds an MS from the University of Texas and a BS from Brigham Young University. He is an active speaker at conferences and contributor to the academic literature on software maintenance and evolution.

دیدگاه خود را بنویسید
نظرات کاربران (1 دیدگاه)
دانا احمدی
2024-10-22

من این کتابو دو جلدی گرفتم. رو جلدا خوشگل اول و دوم بودنشو جدا کردن. بسته بندی هم عالی بود. زودتر از زمانی که سایت زده بود به دستم رسید. چاپ قشنگی داشت و تو دو جلد فهرست داشت. با اینکه میتونستم این کتابو نصف قیمت تو سایت های دیگه بخرم ولی به کیفیت اونا اعتماد نداشتم از اسکای خریدم و کاملا راضی ام. ممنونم ازتون

اسکای بوک
2024-10-26

درود بر شما، خوشحالیم راضی هستید، موفق باشید.

کتاب های مشابه
Software Development
1,157
Code That Fits in Your Head
1,006,000 تومان
Software Engineering
1,079
The Rational Software Engineer
671,000 تومان
Software Engineering
1,115
Righting Software
1,133,000 تومان
Software Engineering
960
What Every Engineer Should Know about Software Engineering
981,000 تومان
Google
4,290
Software Engineering at Google
1,604,000 تومان
Software Engineering
393
The Book of Batch Scripting
1,163,000 تومان
Software Engineering
1,249
Being Geek
871,000 تومان
Python
715
Python Feature Engineering Cookbook
983,000 تومان
Java
781
Object-Oriented Software Engineering Using UML, Patterns, and Java
2,208,000 تومان
Software Engineering
1,739
Grokking Concurrency
812,000 تومان
قیمت
منصفانه
ارسال به
سراسر کشور
تضمین
کیفیت
پشتیبانی در
روزهای تعطیل
خرید امن
و آسان
آرشیو بزرگ
کتاب‌های تخصصی
هـر روز با بهتــرین و جــدیــدتـرین
کتاب های روز دنیا با ما همراه باشید
آدرس
پشتیبانی
مدیریت
ساعات پاسخگویی
درباره اسکای بوک
دسترسی های سریع
  • راهنمای خرید
  • راهنمای ارسال
  • سوالات متداول
  • قوانین و مقررات
  • وبلاگ
  • درباره ما