Software Mistakes and Tradeoffs: How to make good programming decisions 1st Edition
اشتباهات و توازنهای مهندسی نرمافزار
کتاب "اشتباهات و توازنهای مهندسی نرمافزار" به شما کمک میکند تصمیمات طراحی سیستم خود را بهینه کرده و از اشتباهات رایج و تصمیمات عمدی متخصصان در این حوزه درس بگیرید.
### آنچه در این کتاب خواهید آموخت:
- چگونه درباره سیستمهای خود به طور شهودی و منطقی تصمیمگیری کنید.
- پیامدها را درک کرده و توازن میان نیازهای متناقض را مدیریت کنید.
- بهترین کتابخانهها را برای حل مشکلات خود انتخاب کنید.
- وابستگیهای سرویس خود را بهدقت تحلیل کنید.
- معماری توزیعشده را با توجه به تأثیر معنای تحویل (Delivery Semantics) طراحی کنید.
- تستهای عملکردی طراحی و اجرا کنید تا نقاط بحرانی (Hot Paths) کد خود را شناسایی و بهینهسازی کنید.
- مدل دادهای مناسب برای مدیریت زمان و تاریخ انتخاب کنید تا از اشتباهات رایج جلوگیری شود.
- در مورد سازگاری و نسخهبندی فکر کنید تا مشکلات غیرمنتظره برای کاربران API ایجاد نشود.
- بین گرههای محکم و سست (Tight/Loose Coupling) توازن ایجاد کنید تا کار تیمی تسهیل شود.
- نیازها را به وضوح تعریف کنید تا به آسانی پیادهسازی و تست شوند.
- APIهای خود را برای تجربه کاربری بهتر بهینه کنید.
### درباره تکنولوژی:
هر مرحله از یک پروژه نرمافزاری شامل توازن میان عوامل مختلفی مثل سرعت، امنیت، هزینه، زمان تحویل، و ویژگیها است. تصمیمات معقولی که در زمان طراحی گرفته میشوند، ممکن است در تولید مشکلاتی به وجود آورند. بینشهای تخصصی و تجربیات واقعی در این کتاب به شما کمک میکنند تا از اشتباهات رایج دوری کنید و تصمیمات بهتری بگیرید.
### درباره کتاب:
کتاب "اشتباهات و توازنهای مهندسی نرمافزار" با ارائه مثالهایی واقعی از تصمیمات اشتباه و نحوه اجتناب از آنها، شما را با رویکردهای سیستماتیک در تصمیمگیری آشنا میکند. نویسندگان کتاب، تومَش لِک و جان اسکیت**، با دههها تجربه در مهندسی نرمافزار، درسهایی ارزشمند از اشتباهات و راهکارهای خود به اشتراک گذاشتهاند.
### نکات کلیدی:
- چگونگی تحلیل سیستماتیک نرمافزار
- نحوه انتخاب ابزارها، کتابخانهها و فریمورکها
- تأثیر گرههای محکم و سست بر هماهنگی تیمها
- نیازهایی که دقیق، آسان برای پیادهسازی و تست هستند
### برای چه کسانی؟
این کتاب برای توسعهدهندگان و معماران سطح میانی و ارشد مناسب است که درباره طراحی و پیادهسازی نرمافزار تصمیمگیری میکنند.
### درباره نویسندگان:
- **تومَش لِک: متخصص معماری سرویسها و زبانهای JVM
- جان اسکیت: مهندس گوگل، نویسنده کتاب C# in Depth و یکی از برترین مشارکتکنندگان در Stack Overflow
### فهرست مطالب:
1. مقدمه
2. تکرار کد همیشه بد نیست: تکرار کد در مقابل انعطافپذیری
3. استثناها در مقابل الگوهای دیگر برای مدیریت خطا
4. توازن میان انعطافپذیری و پیچیدگی
5. بهینهسازی زودهنگام در مقابل بهینهسازی مسیرهای بحرانی
6. سادگی در مقابل هزینه نگهداری API
7. کار با دادههای تاریخ و زمان
8. استفاده بهینه از دادههای محلی و حافظه ماشینها
9. کتابخانههای شخص ثالث: کتابخانههایی که استفاده میکنید بخشی از کد شما میشوند
10. انسجام و اتمیک بودن در سیستمهای توزیعشده
11. معنای تحویل (Delivery Semantics) در سیستمهای توزیعشده
12. مدیریت نسخهبندی و سازگاری
13. بهروز ماندن با روندها در مقابل هزینه نگهداری کد
- نظرات
هنوز نظری ثبت نشده
اولین نفری باشید که نظر میدهید
ثبت نظر