دسترسی نامحدود
برای کاربرانی که ثبت نام کرده اند
برای ارتباط با ما می توانید از طریق شماره موبایل زیر از طریق تماس و پیامک با ما در ارتباط باشید
در صورت عدم پاسخ گویی از طریق پیامک با پشتیبان در ارتباط باشید
برای کاربرانی که ثبت نام کرده اند
درصورت عدم همخوانی توضیحات با کتاب
از ساعت 7 صبح تا 10 شب
ویرایش:
نویسندگان: Scott A Whitmire
سری: Synthesis Lectures on Algorithms and Software in Engineering
ISBN (شابک) : 163639177X, 9781636391779
ناشر: Morgan & Claypool
سال نشر: 2021
تعداد صفحات: 144
[145]
زبان: English
فرمت فایل : PDF (درصورت درخواست کاربر به PDF، EPUB یا AZW3 تبدیل می شود)
حجم فایل: 8 Mb
در صورت تبدیل فایل کتاب Engineer Your Software! به فرمت های PDF، EPUB، AZW3، MOBI و یا DJVU می توانید به پشتیبان اطلاع دهید تا فایل مورد نظر را تبدیل نمایند.
توجه داشته باشید کتاب نرم افزار خود را مهندسی کنید! نسخه زبان اصلی می باشد و کتاب ترجمه شده به فارسی نمی باشد. وبسایت اینترنشنال لایبرری ارائه دهنده کتاب های زبان اصلی می باشد و هیچ گونه کتاب ترجمه شده یا نوشته شده به فارسی را ارائه نمی دهد.
توسعه نرم افزار سخت است، اما ایجاد نرم افزار خوب حتی سخت تر است، به خصوص اگر کار اصلی شما چیزی غیر از توسعه نرم افزار باشد. نرم افزار خود را مهندسی کنید! دنیای مهندسی نرم افزار، تکنیک های مهندسی بافت و اندازه گیری را به فعالیت های توسعه نرم افزار باز می کند. با تمرکز بر معماری و طراحی، نرم افزار خود را مهندسی کنید! ادعا می کند که مهم نیست که چگونه نرم افزار می نویسید، طراحی و مهندسی اهمیت دارد و می تواند در هر مرحله از فرآیند اعمال شود. نرمافزار خود را مهندسی کنید! توصیهها، الگوها، معیارهای طراحی، معیارها و تکنیکهایی را ارائه میدهد که به شما کمک میکند در اولین بار آن را به درستی انجام دهید. نرم افزار خود را مهندسی کنید! همچنین راه حل هایی را برای بسیاری از مسائل آزاردهنده ای که توسعه دهندگان بارها و بارها با آن مواجه می شوند ارائه می دهد. این درس ها که بیش از 40 سال از ایجاد برنامه های نرم افزاری بزرگ توسعه یافته اند، با نمونه های واقعی از پروژه های نرم افزاری واقعی پر شده اند. در طول مسیر، نویسنده اصول طراحی رایج و الگوهای طراحی را توصیف میکند که میتواند زندگی را برای هر کسی که وظیفه نوشتن هر چیزی از یک اسکریپت ساده گرفته تا بزرگترین سیستمهای مقیاس سازمانی را دارد، بسیار آسانتر کند.
Software development is hard, but creating good software is even harder, especially if your main job is something other than developing software. Engineer Your Software! opens the world of software engineering, weaving engineering techniques and measurement into software development activities. Focusing on architecture and design, Engineer Your Software! claims that no matter how you write software, design and engineering matter and can be applied at any point in the process. Engineer Your Software! provides advice, patterns, design criteria, measures, and techniques that will help you get it right the first time. Engineer Your Software! also provides solutions to many vexing issues that developers run into time and time again. Developed over 40 years of creating large software applications, these lessons are sprinkled with real-world examples from actual software projects. Along the way, the author describes common design principles and design patterns that can make life a lot easier for anyone tasked with writing anything from a simple script to the largest enterprise-scale systems.
Preface Who Should Read This Book How This Book is Built Acknowledgments Engineering is a Verb What is Engineering, Exactly? Engineering as Experiment Software Should be Cynical Engineering is NOT ``Anti-Agile'' Toward More Principled Design Single Responsibility Open-Closed Liskov Substitution Interface Segregation Dependency Inversion One Copy of Data Keep Business Logic in its Place What Makes a Design ``Good''? Sufficiency Completeness Cohesion Complexity Coupling Primitiveness Similarity Volatility A Word About Our Case Study Summary Further Reading Architecture Matters It's All About the Problem You Are Solving Create a Pattern Language for Your Solution What Influences Architecture? Problems Have a Shape Where Should Things Go? How Many Users are There and How Many Time Zones? Where is the Data Generated and Used? What are the Availability Requirements? What Scale and Scalability do You Need? What Level of Performance is Required? Where Does Volatility Live? Security, Always Security Choose Wisely Programming Style Design Approach With All That, There are Shortcuts Summary Further Reading Solve the Right Problem Four Domains of Design Problem Domain Application Domain Application-Specific Domain Application-Generic Domain Problem Domain Design Identify System Responsibilities Identify Problem Domain Abstractions Identify Structures Identify Communication Patterns Identify Timing and Concurrency Constraints Identify and Describe Attributes Identify Instance Connections Identify Abstraction States Identify Services Identify Message Connections Simplify the Model Summary Further Reading Engineer Deliberately A Couple of Things to Keep in Mind Abstractions Have a Life Abstractions Need Hands and Legs Set the Boundary Border Control People as Roles Events are Just Messages Devices are Like Users (Mostly) Mix-In Ingredients for Role Enforcement Passwords? Acknowledge the CRUD Combating Volatility Isolation Dynamic Attributes It's OK to Inherit for Reuse A Strategy for Substitution Decorative Modifications Addresses Everywhere Dealing with Those Pesky M:N Relationships The Normal Solution When Normal Doesn't Work: The Lowly Shipment The Transaction as Time Capsule Beware of Shared Resources Logs and Audit Tables: Not Just for Auditing Anymore Data Access Delegate, Delegate, Delegate Simplify the Model Test your Design Summary Further Reading Make Your Life Easier Down the Road Picking Teams Do I Need to See You? Components that Change Together Go Together Components That are Used Together Go Together Can I Get Here from Here? Don't Forget to Look Outside Your Code Your Application is Not Alone Redundant Geography Pool Connections Cache Content Push Content to the Edge Precompute Values Create Steady States Database Replication Auto-Generated Database Keys Consider Machine Learning Make Room for MATLAB® Summary Further Reading Conclusion Bibliography Author's Biography Blank Page