مقدمه مفهومی درباره واژه کنترل کننده (Controller) در معماری نرم افزار به ماژولی گفته می شود که به عنوان واسط بین لایه نمایش (View) و لایه داده (Model) عمل می کند. این مفهوم پایه ای در الگوهای معماری مانند MVC است. کاربرد واژه در برنامه نویسی یا زیرشاخه های فناوری اطلاعات در فریم ورک های وب مانند Spring MVC و Laravel، در توسعه اپلیکیشن های موبایل، در سیستم های تعبیه شده برای مدیریت سخت افزار، و در معماری های لایه بندی شده نرم افزار استفاده می شود. مثال های واقعی و کاربردی در زندگی یا پروژه های IT کنترل کننده های Spring که درخواست های REST را پردازش می کنند، کنترل کننده های AngularJS که منطق صفحه را مدیریت می کنند، کنترل کننده های دستگاه های IoT که سنسورها و عملگرها را کنترل می کنند. نقش واژه در توسعه نرم افزار یا معماری سیستم ها در معماری MVC، کنترل کننده ها مسئول مدیریت جریان برنامه هستند. در میکروسرویس ها، کنترل کننده های API دروازه ورودی سرویس ها هستند. در سیستم های توزیع شده، کنترل کننده ها هماهنگی بین گره ها را مدیریت می کنند. شروع استفاده از این واژه در تاریخچه فناوری و تکامل آن در سال های مختلف مفهوم کنترل کننده در دهه 1970 با ظهور معماری MVC معرفی شد. در دهه 2000 با گسترش فریم ورک های وب، این مفهوم محبوبیت یافت. امروزه در معماری های مدرن مانند Clean Architecture نیز حضور دارد. تفکیک آن از واژگان مشابه کنترل کننده با مدل (Model) تفاوت دارد: مدل داده و منطق کسب وکار را مدیریت می کند. همچنین با سرویس (Service) که منطق کسب وکار را پیاده سازی می کند متفاوت است. شیوه پیاده سازی واژه در زبان های برنامه نویسی مختلف در Java با Spring @Controller، در PHP با کلاس های Laravel Controller، در Python با Django View (که نقش کنترل کننده را دارد)، در JavaScript با کنترل کننده های Angular. چالش ها یا سوءبرداشت های رایج در مورد آن قرار دادن منطق کسب وکار در کنترل کننده ها (Fat Controller)، عدم تفکیک مناسب مسئولیت ها، و تصور اینکه کنترل کننده فقط در وب کاربرد دارد از چالش های رایج هستند. نتیجه گیری کاربردی برای استفاده در متون تخصصی و آموزشی طراحی کنترل کننده های مناسب می تواند به ایجاد معماری های تمیز و قابل نگهداری کمک کند. درک نقش کنترل کننده در جداسازی نگرانی ها ضروری است.