مهندسی پس زمینه یک هنر است. در طول 18 سال کار حرفهایام که با برنامههای کاربردی پشتیبان کار میکردم و ساختم آن، متوجه شدم که الگوهای طراحی ارتباطی خاصی در حال ظهور هستند. روشهای انگشت شماری وجود دارد که کلاینتها با برنامههای کاربردی باطن ارتباط برقرار میکنند، اگرچه ممکن است بیشتر باشند، من معتقدم الگوهایی که در این دوره مورد بحث قرار میدهم رایجترین آنها هستند. نمونه هایی از این الگوها عبارتند از درخواست-پاسخ، انتشار-اشتراک، کوتاه و بلند و فشار.
بر اساس این الگوهای طراحی ارتباطات، مهندسان ممکن است از تعدادی پروتکل برای ارتباطات بتن استفاده کنند. در حالی که وسایل نقلیه اصلی حمل و نقل به TCP یا UDP محدود می شوند، هزاران پروتکل خاص صنعت بر روی این دو ساخته شده است تا مشکلات خاص و موارد استفاده را برطرف کند. نمونه هایی از این پروتکل های سطح بالا عبارتند از: HTTP/1.1، HTTP/2، HTTP/3، gRPC، WebRTC و بسیاری دیگر. سایر پروتکلهای انتقال مانند QUIC در بالای UDP ساخته شدهاند تا جریان HTTP/2 را در سطح انتقال پایین بیاورند. هر پروتکل مزایا و معایب خود را دارد و متناسب با موارد استفاده خاص است. در این دوره، من در مورد پروتکلهای رایج رایج بحث میکنم و نمونهها و دموهایی را در صورت لزوم ارائه میدهم.
قبل از اینکه مشتری بتواند درخواستی ارسال کند، باید یک اتصال به باطن ایجاد کند. درک اینکه چگونه اتصال برقرار می شود و چه بخش هایی از ایجاد اتصال در هسته انجام می شود و چه بخش هایی در فرآیند برنامه کاربردی Backend انجام می شود بسیار مهم است. چگونه اتصال پس از آن توسط برنامه Backend پذیرفته می شود و چگونه می تواند اتصالات را با بیشترین سرعت ممکن بپذیرد تا صف هسته کامل نشود در غیر این صورت کلاینت ها دیگر نمی توانند متصل شوند.
بعد از برقراری ارتباط، کلاینت درخواست را ارسال می کند، اما دقیقاً در برنامه Backend برای خواندن درخواست چه اتفاقی می افتد؟ درخواست دقیقا چیست؟ درک هزینه تجزیه یک درخواست بر اساس پروتکل باعث می شود مهندس از کار انجام شده قدردانی کند و او را به ابزارهای بهتری برای عیب یابی مشکلات عملکرد یا اشکالات مجهز کند.
هنگامی که درخواست به پشتیبان رسید، برنامه باید درخواست را اجرا کند. وقتی نوبت به سبک اجرای آن می رسد، بک اند مجموعه ای از انتخاب های طراحی دارد. درک تفاوت بین یک فرآیند و یک رشته، چند فرآیندی، چند رشته ای و همبستگی با تعداد هسته های CPU یا رشته های سخت افزاری برای انتخاب الگوی اجرای مناسب بسیار مهم است. نیازی نیست که شخص به این الگوها بچسبد، اما می تواند الگوهای جدیدی را اختراع کند که مطابق با نیازهای او باشد.
این دوره برای مهندسانی طراحی شده است که برنامه های کاربردی باطن ساخته اند، یک دوره سطح متوسط و پیشرفته است، دانش برنامه نویسی و شبکه خاصی مورد نیاز است، بنابراین توصیه می کنم قبل از شرکت در این دوره، اصول اولیه خود را در دوره مهندسی شبکه بگذرانید. دارای مهارت های شبکه سازی امیدوارم از این دوره لذت ببرید و از اینکه آن را در نظر گرفتید بسیار سپاسگزارم.
نویسنده، مهندس نرم افزار
اسم من حسین است و مهندس نرم افزار هستم. از زمانی که عمویم اولین کتاب برنامه نویسی ام را در سال 1998 به من داد () متوجه شدم که نرم افزار علاقه من است. من وبلاگم را راه اندازی کردم و کانال یوتیوب را به عنوان یک خروجی برای صحبت در مورد نرم افزار راه اندازی کردم.
استفاده از نرم افزار برای حل مشکلات جالب یکی از چیزهای جذابی است که من واقعا از آن لذت می برم. در کانال های رسانه های اجتماعی من با من تماس بگیرید تا داستان نرم افزار خود را بگویید، سؤال بپرسید یا مشکلات جالب را به اشتراک بگذارید. من دوست دارم آن را بشنوم!
من همچنین در زمینه سیستم های اطلاعات جغرافیایی (یا GIS) تخصص دارم. من از سال 2005 به بسیاری از سازمانها در کشورهای مختلف کمک کردم تا فناوری GIS را پیادهسازی کنند و برنامههای سفارشی را متناسب با موارد استفاده و سادهسازی گردشهای کاریشان از سال 2005 نوشتم. دویست ویدیوی یوتیوب و آموزش نرم افزار تا به امروز در حال تماشا هستند و شروع به کردند. من از سال 2015 در Esri مهندس ساختمان فن آوری های GIS جالب هستم.
نمایش نظرات