کتاب های برچسب software engineering
تاریخ: 1402/11/28 19:50
توسط: MotoMan
امتیاز: ۲

ساختن نرم افزار سخت‌تر از همیشه شده است. به‌عنوان یک توسعه‌دهنده، نه تنها باید به دنبال گرایش‌های عمومی تکنولوژیکی باشید که همیشه در حال تغییر هستند، بلکه باید حوزه‌های تجاری پشت نرم‌افزار را نیز درک کنید.  کتاب Learning Domain-Driven Design (آموزش طراحی دامنه محور)، مجموعه‌ای از الگوها، اصول و شیوه‌های اساسی را برای تجزیه و تحلیل حوزه‌های کسب‌وکار، درک استراتژی کسب‌وکار و مهم‌تر از همه، همسو کردن طراحی نرم‌افزار با نیازهای تجاری آن در اختیار شما قرار می‌دهد.

نویسنده کتاب Vlad Khononov به شما نشان می‌دهد که چگونه این شیوه‌ها منجر به پیاده سازی قوی منطق تجاری و کمک به طراحی و معماری نرم‌افزاری برای آینده می‌شوند. شما رابطه بین طراحی مبتنی بر دامنه (DDD) و سایر روش‌ها را بررسی می‌کنید تا اطمینان حاصل کنید که مطابق با نیازمندی‌های کسب و کار تصمیمات معماری را می‌گیرید. شما همچنین داستان واقعی پیاده سازی DDD در یک شرکت استارت آپی را بررسی خواهید کرد.

تعداد بازدید: ۵۲۱۵
دیدگاه ها: ۰
تاریخ: 1402/10/30 23:23
توسط: MotoMan
امتیاز: ۰
برچسب ها: Coding |software engineering |

کتاب System Design Interview – An Insider's Guide Volume 2 (مصاحبه طراحی سیستم – راهنمای داخلی جلد دوم)، را می‌توان دنباله‌ای بر کتاب: مصاحبه System Design Interview - An Insider’s Guide دانست. این جلد، مجموعه متفاوتی از سوالات و راه حل‌های مصاحبه طراحی سیستم را پوشش می‌دهد. اگرچه خواندن جلد اول مفید است، اما لازم نیست. این کتاب باید برای خوانندگانی که درک اولیه ای از سیستم‌های توزیع شده دارند قابل استفاده است
این جلد کتاب، یک استراتژی قابل اعتماد و پایگاه دانش برای نزدیک شدن به طیف گسترده ای از سوالات طراحی سیستم که ممکن است با آنها روبرو شوید فراهم می‌کند. این به شما کمک می‌کند تا در این مصاحبه مهم اعتماد به نفس داشته باشید. این کتاب یک چارچوب گام به گام برای چگونگی مقابله با یک سوال طراحی سیستم ارائه می‌دهد. همچنین شامل بسیاری از نمونه‌های دنیای واقعی برای نشان دادن یک رویکرد سیستماتیک، با مراحل دقیق و به خوبی توضیح داده شده است که می‌توانید دنبال کنید.

 

 
تعداد بازدید: ۴۳۶۳
دیدگاه ها: ۰
تاریخ: 1401/07/15 09:28
توسط: MotoMan
امتیاز: ۱

موفقیت هر برنامه یا سیستمی به الگوی معماری که استفاده می‌کنید بستگی دارد. با توصیف ویژگی‌های کلی معماری، این الگوها نه تنها طراحان و توسعه‌دهندگان را در مورد چگونگی طراحی اجزا راهنمایی می‌کنند، بلکه روش‌هایی را نیز تعیین می‌کنند که در آن چگونه اجزا باید با هم تعامل داشته باشند.

گزارش Software Architecture Patterns (الگو‌های معماری نرم افزار)، به بررسی بسیاری از الگوهای رایج معماری نرم افزار می‌پردازد. هر الگو شامل توضیح کاملی از نحوه عملکرد آن است، مزایا و ملاحظات الگو را توضیح می‌دهد و شرایطی را که برای پرداختن به آن طراحی شده است را شرح می‌دهد. این گزارش، همچنین شامل تجزیه و تحلیل و کارت امتیاز برای هر الگو بر اساس چندین ویژگی کیفیت معماری و توسعه نرم افزار است. این الگو‌ها عبارتند از: معماری لایه ای، معماری رویداد محور، معماری میکرو کرنل، معماری میکرو سرویس ها، معماری مبتنی بر فضا. علاوه بر این الگوهای خاص، شما همچنین با ضدالگوی Architecture by Implication و علل و اثرات عدم استفاده از الگوهای معماری آشنا خواهید شد.

تعداد بازدید: ۶۰۸۶
دیدگاه ها: ۰
تاریخ: 1401/04/05 07:09
توسط: MotoMan
امتیاز: ۰

هیچ تصمیم آسانی در معماری نرم افزار وجود ندارد. در عوض، بخش‌های سخت بسیاری وجود دارد؛ مشکلات یا مسائل دشواری که بهترین شیوه ای برای انجام ندارند و شما را مجبور می‌کنند تا با انجام سبک سنگین‌های مختلف، یکی را برای موفقیت انتخاب کنید. با کمک کتاب Software Architecture: The Hard Parts (معماری نرم افزار: قسمت‌های سخت)، شما یاد خواهید گرفت که چگونه به طور انتقادی در مورد سبک سنگین‌های مربوط به معماری‌های توزیع شده فکر کنید.

پیشکسوتان معماری و مشاوران مجرب، نیل فورد، مارک ریچاردز، پرامود سادالاژ و ژامک دهقانی، درباره راهبردهای انتخاب یک معماری مناسب بحث می‌کنند. نویسندگان با سر هم کردن داستانی درباره یک گروه خیالی از متخصصان فناوری - جوخه Sysops - همه چیز را از نحوه تعیین جزئیات سرویس، مدیریت گردش کار و هماهنگ سازی، مدیریت و جداسازی قراردادها و مدیریت تراکنش‌های توزیع شده تا نحوه بهینه سازی ویژگی‌های عملیاتی، مانند مقیاس پذیری، کشش و عملکرد را مورد بررسی قرار می‌دهند.

این کتاب با تمرکز بر سوالات متداول، تکنیک‌هایی را ارائه می‌کند که به شما کمک می‌کند تا هنگام مواجهه با مسائلی که به عنوان یک معمار با آن مواجه هستید، سبک سنگین‌ها را انجام دهید و بررسی کنید.

 
تعداد بازدید: ۴۸۴۴
دیدگاه ها: ۰
تاریخ: 1401/04/03 17:50
توسط: MotoMan
امتیاز: ۲
برچسب ها: software engineering |

موفق شدن به عنوان یک مهندس نرم افزار، نیازمند دانش فنی، انعطاف پذیری و پشتکار زیاد است. دانستن نحوه کار موثر با سایر توسعه دهندگان می‌تواند تفاوت بین یک حرفه رضایت بخش و گیر افتادن در یک چاله هدر دهنده عمر باشد. این کتاب فوق العاده، شما را در میان مهارت‌های ضروری برای زنده ماندن و پیشرفت در یک تیم مهندسی نرم‌افزار راهنمایی می‌کند.
کتاب Skills of a Successful Software Engineer (مهارت‌های یک مهندس نرم افزار موفق)، تکنیک هایی را برای کار بر روی پروژه‌های نرم افزاری به صورت تیمی ارائه می‌دهد. در این کتاب، شما مهارت‌های فنی مانند نوشتن کد ساده، آزمایش مؤثر، و refactoring را به دست خواهید آورد که برای ساخت نرم‌افزار در یک تیم ضروری است. همچنین مهارت‌های نرمی مانند نحوه به روز نگه داشتن دانش خود، تعامل با رهبر تیم و حتی نحوه به دست آوردن شغلی که دوست دارید را کشف خواهید کرد.

 

 
تعداد بازدید: ۳۳۷۶
دیدگاه ها: ۰
تاریخ: 1401/02/19 22:35
توسط: MotoMan
امتیاز: ۰
برچسب ها: software engineering |

با کمک این کتاب، از داده‌های تولید شده توسط زیرساخت فناوری اطلاعات خود بهره ببرید. سیستم‌های دور سنجی (telemetry) بازخوردی را در مورد آنچه که در مراکز داده و برنامه‌های شما اتفاق می‌افتد ارائه می‌دهند، بنابراین شما می‌توانید به طور موثر آنها را نظارت، نگهداری و حسابرسی کنید. این کتاب کاربردی، شما را در مجهز کردن سیستم‌هایتان، راه‌اندازی لاگ‌گیری متمرکز، انجام ردیابی توزیع‌شده و سایر تکنیک‌های گران‌بهای دورسنجی راهنمایی می‌کند.

کتاب Software Telemetry (دورسنجی نرم افزار)، به شما نشان می‌دهد که چگونه به طور موثر داده‌های لاگ سیستم و برنامه را جمع آوری، ذخیره و تجزیه و تحلیل کنید تا بتوانید سیستم‌های خود را نظارت و بهبود بخشید. با کمک این کتاب، ستون‌های مشاهده‌پذیری از جمله لاگ ها، معیارها و رد‌ها را در یک سیستم تله‌متری end-to-end که با زیرساخت‌های موجود شما یکپارچه می‌شود، مدیریت کنید. شما متوجه خواهید شد که چگونه دور سنجی نرم افزار برای استارتاپ‌های کوچک و سازمان‌های قدیمی سود آفرین است. همچنین در زمانی که حسابرسی داده‌ها به طور فزاینده ای در حال رایج شدن هستند، شما از پوشش کامل فرآیندهای الزامات قانونی قدردانی خواهید کرد، بنابراین دلیلی برای وحشت در هنگام رسیدن درخواست بازرسی وجود ندارد.

 
تعداد بازدید: ۱۹۶۱
دیدگاه ها: ۰
تاریخ: 1401/02/16 18:11
توسط: MotoMan
امتیاز: ۲
برچسب ها: software engineering |

کتاب Evolving Software Processes (فرآیندهای نرم افزاری در حال تکامل)، عناصر اصلی تکامل فرآیندهای نرم‌افزاری، مانند DevOps و مقیاس‌پذیری فرآیند چابک در GSD را فراهم می‌کند تا پایه‌ای محکم برای فرآیندهای موفق و پایدار آینده ایجاد کند.

ممکن است کسی استدلال کند که در حال حاضر کتاب‌های زیادی وجود دارند که شامل شرح فرآیندهای نرم افزاری هستند. پاسخ «بله، اما» است. آشنایی با فرآیندهای نرم افزاری موجود کافی نیست. درک تکامل و پیشرفت در فرآیندهای نرم افزاری بسیار مهم است تا توسعه دهندگان به طور مناسب مسائل، کاربرد‌ها و محیط هایی را که آن‌ها به کار برده می‌شوند را بررسی کنند. ارائه دانش پایه برای این وظایف مهم، هدف اصلی این کتاب است.

صنعت در جستجوی قابلیت‌های مدیریت فرآیند نرم افزار است. ظهور همه‌گیری COVID-19 بر نیاز صنعت به قابلیت‌های مدیریت فرآیند ویژه نرم‌افزار تأکید می‌کند. اکثر محصولات و خدمات امروزی به میزان قابل توجهی مبتنی بر نرم افزار هستند و نتایج برنامه‌های توسعه در مقیاس بزرگ هستند. موفقیت چنین برنامه هایی به شدت به قابلیت‌های مدیریت فرآیند بستگی دارد، زیرا آنها معمولاً به هماهنگی صدها یا هزاران توسعه دهنده در رشته‌های مختلف نیاز دارند. علاوه بر این، توسعه نرم‌افزار و سیستم معمولاً در مرزهای جغرافیایی، فرهنگی و زمانی توزیع می‌شوند که فعالیت‌های مدیریت فرآیند را در وضعیت همه‌گیری کنونی چالش‌برانگیزتر می‌کند.

این کتاب یک نمای کلی بسیار جامع از تکامل در فرآیندهای نرم افزاری ارائه می‌دهد و بستری را برای شاغلان، محققان و دانشجویان فراهم می‌کند تا در مورد مطالعات مورد استفاده برای مدیریت جنبه‌های فرآیند نرم افزار از جمله مدیریتی، سازمانی، اقتصادی و فنی بحث کنند. این کتاب، فرصتی را برای ارائه شواهد تجربی نیز فراهم می‌کند، و همچنین تکنیک ها، ابزارها، چارچوب‌ها و رویکردهای جدیدی را برای به حداکثر رساندن اهمیت مدیریت فرآیند نرم افزار پیشنهاد می‌کند.

 
تعداد بازدید: ۱۵۲۲
دیدگاه ها: ۰
تاریخ: 1401/02/15 16:17
توسط: MotoMan
امتیاز: ۱

با کمک کتاب Software Architecture by Example (معماری نرم افزار با مثال)، راهکار‌های سیستمی را با استفاده از الگو‌ها و شیوه‌های معماری مدرن طراحی کنید. این کتاب، روش‌هایی برای پاسخگو نگه داشتن یک سیستم، حتی زمانی که دائماً به‌روزرسانی می‌شود، گسترش عملکرد سیستم بدون تغییر کد اصلی، روش‌های نگهداری تاریخچه داده‌ها و طراحی یک سیستم تراکنشی توزیع‌شده را مورد بحث قرار می‌دهد.

این کتاب شما را در درک چگونگی طراحی یک راهکار نرم افزاری با استفاده از فرآیندها و سناریوهای مختلف معماری راهنمایی می‌کند. هر سناریو توضیح می‌دهد که چرا یک راهکار نرم‌افزاری برای حل یک مسئله معین مورد نیاز است یا خیر، و رویکردهای ممکن معماری برای حل مسئله را مورد بحث قرار می‌دهد. شما پیاده سازی‌های خاص معماری نرم افزار را برای هر مورد همراه با رویکردهای مختلف برای دستیابی به راه حل‌ها خواهید آموخت. هر فصل به عنوان یک نیازمندی دنیای واقعی از یک مشتری ساختار یافته است و فرآیندی را برای برآورده کردن آن نیازمندی توصیف می‌کند.

پس از مطالعه این کتاب، باید درک سطح بالایی از الگوهای معماری به کار رفته در کتاب داشته باشید و باید روشی برای نزدیک طراحی سیستم شدن داشته باشید.

 
تعداد بازدید: ۵۶۰۳
دیدگاه ها: ۰
تاریخ: 1401/02/10 21:45
توسط: MotoMan
امتیاز: ۱
برچسب ها: Coding |software engineering |

در کتاب Software Development, Design and Coding (توسعه نرم افزار، طراحی و کدنویسی)، اصول طراحی نرم افزار خوب و نحوه تبدیل آن اصول به کدی عالی را خواهید آموخت. این کتاب، شما را با مهندسی نرم افزار، از کاربرد اصول مهندسی تا توسعه نرم افزار آشنا می‌کند. شما چگونگی اجرای یک پروژه‌ی نرم افزاری را خواهید دید، مراحل مختلف یک پروژه را بررسی می‌کنید و نحوه‌ی طراحی و پیاده سازی برنامه‌ها را به منظور حل مشکلات خاصی یاد خواهید گرفت. این کتاب همچنین درباره‌ی ساختن کد است؛ چگونه برنامه‌های عالی بنویسید و آن‌ها را به کار بیندازید.
چه در برنامه نویسی تازه کار باشید و چه صدها برنامه کاربردی نوشته باشید، در این کتاب کارهایی را که قبلا انجام داده اید را دوباره بررسی خواهید کرد و راه‌های بهبود را بررسی خواهید کرد. با استفاده از زبان جاوا، شما عمیقاً به استانداردهای کدنویسی، اشکال زدایی، تست واحد، ماژولار بودن و سایر ویژگی‌های برنامه‌های خوب نگاه خواهید کرد.

 

تعداد بازدید: ۳۲۰۷
دیدگاه ها: ۰
تاریخ: 1401/02/09 17:10
توسط: MotoMan
امتیاز: ۰
برچسب ها: Coding |software engineering |

به کمک این کتاب، نمای کلی فرآیند توسعه نرم افزار را درک خواهید کرد. ما هر روز از نرم افزار استفاده می‌کنیم؛ سیستم عامل ها، برنامه‌های کاربردی، برنامه‌های ویرایش اسناد، بانکداری خانگی، اما آیا تا به حال فکر کرده اید که چه کسی نرم افزار را ایجاد می‌کند و چگونه ایجاد می‌شود؟ این کتاب، با کمک تئوری و ابزار‌های طراحی کاربر محور، شما را در کل فرآیند، از تصور تا محصول نهایی راهنمایی می‌کند.
کتاب Software Development: From A to Z (توسعه نرم افزار: از A تا Z)، یک نمای کلی از توسعه Backend، از پایگاه داده گرفته تا پروتکل‌های ارتباطی از جمله مهارت‌های برنامه نویسی کاربردی در جاوا و توسعه frontend، از HTML و CSS گرفته تا رجیستری npm و چارچوب Vue.js ارائه می‌دهد. شما مهندسی تضمین کیفیت، از جمله تئوری در مورد انواع مختلف تست‌ها و تمرین تست end-to-end با استفاده از Selenium را بررسی خواهید کرد.
سپس وارد دنیای devops خواهید شد، جایی که نویسندگان کتاب در مورد یکپارچه سازی مداوم و فرآیندهای تحویل مداوم به همراه فناوری‌های مرتبط با هر موضوع بحث می‌کنند. سپس مطالب مربوط به مدیریت محصول و پروژه را بررسی خواهید کرد که در آن نویسندگان در مورد فرآیندهای چابک، اسکرام و سایر فرآیندها از تجربه خود صحبت می‌کنند.
موضوعاتی که تحت پوشش قرار می‌گیرند به طور کلی نیاز به دانش عمیقی از فناوری ندارند. هر کسی که دانش اولیه کامپیوتر و برنامه نویسی را داشته باشد، می‌تواند تمام کار‌ها را تکمیل کند و مفاهیمی را که هدف این کتاب ارائه دادن آن هاست را به طور کامل درک کند. شما کلاه مدیر پروژه، صاحب محصول، طراح، بک اند، فرانت اند، QA و مهندس devops را بر سر می‌گذارید و نقش مورد علاقه خود را پیدا می‌کنید.

 

تعداد بازدید: ۲۶۵۱
دیدگاه ها: ۰
تاریخ: 1401/02/03 12:10
توسط: MotoMan
امتیاز: ۱
برچسب ها: Coding |software engineering |

کارایی کد در برابر سادگی؛ سرعت تحویل در برابر تکرار؛ انعطاف پذیری در برابر قابلیت نگهداری. هر تصمیمی که در مهندسی نرم‌افزار می‌گیرید، مستلزم سبک و سنگین کردن است. در کتاب Software Mistakes and Tradeoffs (اشتباهات نرم افزاری و سبک و سنگین کردن ها)، از اشتباهات پرهزینه ای که توماس للک و جان اسکیت در طول مشاغل حرفه ایشان با آنها مواجه شده اند، یاد خواهید گرفت. هر گامی در یک پروژه نرم افزاری مستلزم سبک و سنگین کردن است. وقتی سرعت، امنیت، هزینه، زمان تحویل، قابلیت‌ها و موارد دیگر را سبک و سنگین می‌کنید، انتخاب‌های معقول طراحی ممکن است در هنگام عملیاتی شدن مشکل‌ساز باشند. شما سناریوهای دنیای واقعی را بررسی خواهید کرد که در آن درک ضعیفی از سبک و سنگین کردن‌ها منجر به مشکلات بزرگی می‌شود، بنابراین می‌توانید با رویکردی متفکرانه‌تر در تصمیم گیری، از اشتباهات خود جلوگیری کنید.
بیاموزید که چگونه تکرار کد بر جفت شدگی (coupling) و سرعت تکامل سیستم‌های شما تأثیر می‌گذارند و چگونه نیازمندی‌های ساده می‌توانند تفاوت‌های ظریف پنهانی با توجه به اطلاعات تاریخ و زمان داشته باشند. کشف کنید که چگونه به طور موثری دامنه بهینه سازی خود را طبق اصول پارتو 80/20 محدود کنید و از ثبات در سیستم‌های توزیع شده خود اطمینان حاصل کنید. شما خیلی زود دانشی کسب خواهید کرد که فقط از سالها تجربه ناشی می‌شود.

 

 
تعداد بازدید: ۳۱۳۸
دیدگاه ها: ۰
تاریخ: 1401/01/22 23:13
توسط: MotoMan
امتیاز: ۱

در چند سال اخیر، تعداد شیوه‌های فنی محبوب به طور تصاعدی افزایش یافته است. یادگیری شیوه‌های رایج توسعه نرم افزار می‌تواند به شما کمک کند تا برنامه نویس بهتری شوید. کتاب Agile Technical Practices Distilled (روشهای فنی چابک تقطیر شده) از اصطلاح Agile به عنوان یک چتر گسترده استفاده می‌کند و اصول و شیوه‌های Agile و همچنین اکثر روش‌های مرتبط با آن را پوشش می‌دهد.

شما با کشف اینکه چگونه راننده-ناوبر، ساعت شطرنج، و سایر تکنیک‌های مورد استفاده در رویکرد برنامه نویسی دو نفره، به کد نویسی نظم می‌دهند، شروع خواهید کرد. سپس یاد خواهید گرفت که با استفاده از refactoring، طراحی کد خود را با خیال راحت تغییر دهید. در حین یادگیری این تکنیک ها، بهترین شیوه‌های مختلف برای نوشتن تست‌های کارآمد را نیز بررسی خواهید کرد. فصول پایانی کتاب عمیقاً به اصول SOLID می‌پردازند؛ پنج اصل طراحی که می‌توانید از آنها استفاده کنید تا نرم افزار خود را قابل درک تر، انعطاف پذیرتر و قابل نگهداری‌تر کنید.

با به پایان رساندن این کتاب، ایده‌های جدیدی برای بهبود مهارت‌های طراحی نرم‌افزار، روابط درون تیم و نحوه کار کسب‌وکارتان کشف خواهید کرد.

 
تعداد بازدید: ۲۵۷۷
دیدگاه ها: ۰
تاریخ: 1400/12/01 21:24
توسط: MotoMan
امتیاز: ۲

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

کتاب Architecting for Scale, 2nd Edition (معماری برای مقیاس پذیری، ویرایش دوم)، که با تمرکز گسترده بر پارادایم‌های معماری مدرن مانند میکروسرویس‌ها و محاسبات ابری به‌روزرسانی شده است، تکنیک‌هایی را برای ساختن سیستم هایی ارائه می‌کند که می‌توانند حجم عظیمی از ترافیک، داده و تقاضا را مدیریت کنند، بدون اینکه بر کیفیت مورد انتظار مشتریان شما تأثیر بگذارند. با کمک این کتاب، معماران، مدیران و کارگردان‌ها در سازمان‌های مهندسی و عملیاتی یاد می‌گیرند که چگونه برنامه‌هایی را در مقیاسی بسازند که برای رفع نیازهای مشتریان روان‌تر و قابل اطمینان‌تر اجرا شوند.

تعداد بازدید: ۳۹۱۶
دیدگاه ها: ۰
تاریخ: 1400/09/12 11:04
توسط: MotoMan
امتیاز: ۳

دوره Domain-Driven Design Fundamentals (مبانی طراحی دامنه محور) نسخه 2021 موسسه Pluralsight، اصول طراحی دامنه محور (DDD) را از طریق نمایش تعاملات مشتری و یک برنامه نمونه پیچیده، همراه با مشاوره از کارشناسان مشهور DDD به شما آموزش می‌دهد. ابتدا، نحوه مدل سازی یک مسئله نرم افزاری را بررسی می‌کنید و در ادامه، عناصر DDD را کاوش خواهید کرد. در نهایت، یاد خواهید گرفت که چگونه از DDD در یک برنامه‌ی نمونه نرم افزاری استفاده کنید.
پس از اتمام این دوره، مهارت‌ها و دانش طراحی دامنه محور مورد نیاز برای گشودن پیچیدگی دامنه خود، ساخت نرم افزار هوشمندتر و به دست آوردن درک عمیق‌تر از DDD را در اختیار خواهید داشت.

 

 
تعداد بازدید: ۷۳۴۹
دیدگاه ها: ۱
تاریخ: 1400/08/28 12:21
توسط: MotoMan
امتیاز: ۱
برچسب ها: software engineering |

همانطور که اقتصاد دیجیتالی قوانین بازی را برای سازمان‌های سنتی تغییر می‌دهد، نقش معماران نیز به طور اساسی تغییر می‌کند. به جای فقط تمرکز بر پیاده سازی‌های فنی، آنها باید پنت هاوس سازمان را، جایی که استراتژی کسب و کار تنظیم می‌شود، با موتورخانه فنی، جایی که فناوری‌های توانمند در آن پیاده سازی می‌شوند، متصل کنند. تنها در صورتی که هر دو بخش به هم متصل باشند، فناوری اطلاعات می‌تواند نقش خود را از یک مرکز هزینه به یک مزیت دیجیتال رقابتی تغییر دهد. ایجاد این ارتباط با پیاده روی از یک طبقه سازمان به طبقه بعدی کارساز نخواهد بود. در عوض، معماران مدرن با استفاده از مسیر سریع، ساختار‌های موجود را دور می‌زنند: آسانسور معمار.

کتاب The Software Architect Elevator (آسانسور معمار نرم افزار)، به معماران مشتاق کمک می‌کند تا دیدگاه جدیدی از معنای معمار بودن را بپذیرند و آنها را برای سوار شدن بر آسانسور معماری در طبقه‌های مختلف، هماهنگ‌سازی سازمان و فناوری و ایجاد تغییرات پایدار، مجهز می‌کند. در این راهنما، Gregor Hohpe نویسنده کتاب، توصیه‌های دنیای واقعی و درس‌های سخت یاد گرفته شده از تحولات واقعی فناوری اطلاعات را به اشتراک می‌گذارد. حکایات او به معماران، توسعه دهندگان ارشد و سایر متخصصان فناوری اطلاعات کمک می‌کند تا برای نقش پیچیده‌تر اما پربارتر در سازمان آماده شوند.

تعداد بازدید: ۳۰۸۹
دیدگاه ها: ۰
تاریخ: 1400/07/29 23:42
توسط: MotoMan
امتیاز: ۱
برچسب ها: Coding |software engineering |

در بین تمامی مصاحبه‌های فنی، سوالات مصاحبه‌های طراحی سیستم، سخت‌ترین هستند. این سوالات، از مصاحبه شونده‌ها می‌خواهند تا یک معماری را برای یک سیستم نرم افزاری که می‌تواند یک فید خبری، جستجوی گوگل، سیستم چت و غیره باشد، طراحی کنند. این سوالات ترسناک هستند و هیچ الگوی خاصی برای پیروی از آن وجود ندارد. این سوالات، معمولاً دارای گستره بزرگ و مبهم هستند؛ و فرآیند‌ها بی انتها، نامفهوم و بدون یک پاسخ استاندارد یا صحیح هستند.
شرکت‌ها به طور گسترده ای از مصاحبه‌های طراحی سیستم استفاده می‌کنند؛ زیرا مهارت‌های ارتباطی و حل مسئله ای که در این مصاحبه‌ها آزمایش می‌شوند مشابه مهارت‌های مورد نیاز کار روزمره یک مهندس نرم افزار است. مصاحبه شونده بر اساس چگونگی تجزیه و تحلیل یک مسئله مبهم و نحوه حل گام به گام مسئله ارزیابی می‌شود. توانایی‌های مورد آزمایش همچنین شامل نحوه‌ی توضیح ایده، بحث با دیگران و ارزیابی و بهینه سازی سیستم است.
سوالات طراحی سیستم بی انتها هستند. درست مانند دنیای واقعی، تفاوت‌ها و تغییرات زیادی در سیستم وجود دارد. نتیجه مطلوب، ارائه معماری برای دستیابی به اهداف طراحی سیستم است. بسته به مصاحبه کننده، بحث‌ها می‌توانند به روش‌های مختلفی پیش بروند. برخی مصاحبه کنندگان ممکن است معماری سطح بالا را برای پوشش همه جنبه‌ها انتخاب کنند؛ در حالی که برخی ممکن است یک یا چند حوزه را برای تمرکز انتخاب کنند. به طور معمول، نیازمندی‌های سیستم، محدودیت‌ها و گلوگاه‌ها باید به خوبی درک شوند تا جهت مصاحبه کننده و مصاحبه شونده را شکل دهند.
هدف کتاب System Design Interview – An insider's guide, Second Edition (مصاحبه طراحی سیستم – راهنمای خودی، ویرایش دوم)، ارائه یک استراتژی قابل اعتماد برای رویارویی با سوالات مصاحبه طراحی سیستم است. استراتژی و دانش مناسب، برای موفقیت در یک مصاحبه حیاتی است. این کتاب، دانش کاملی در زمینه ایجاد یک سیستم مقیاس پذیر ارائه می‌دهد. هرچه دانش بیشتری از خواندن این کتاب کسب شود، در حل سوالات طراحی سیستم مجهزتر خواهید بود. این کتاب همچنین چارچوبی گام به گام در مورد نحوه برخورد با سوالات طراحی سیستم ارائه می‌دهد. همچنین مثال‌های زیادی را برای نشان دادن رویکرد سیستماتیک با مراحل دقیق که می‌توانید دنبال کنید ارائه می‌دهد. با تمرین مداوم، برای از عهده بر آمدن پرسش‌های مصاحبه طراحی سیستم، به خوبی مجهز خواهید بود.

 

تعداد بازدید: ۸۹۷۸
دیدگاه ها: ۳
loading...

لطفا منتظر بمانید...