محیط یکپارچه توسعه نرم‌افزار

یک محیط توسعه یکپارچه (IDE) یک نرم‌افزار نرم افزاری است که امکانات کاملی را برای برنامه نویسان رایانه جهت توسعه نرم‌افزار فراهم می‌کند. IDE معمولاً از حداقل یک ویرایشگر کد منبع، ساخت ابزارهای اتوماسیون و یک اشکال زدایی تشکیل شده‌است. برخی از IDEها، مانند NetBeans و Eclipse، حاوی کامپایلر، مترجم یا هر دو مورد لازم هستند. دیگران، مانند SharpDevel و Lazarus، چنین کاری نمی‌کنند.

آنجوتا، آی‌دی‌ئی سی و سی++ در محیط گنوم

مرز بین IDE و سایر قسمت‌های وسیع تر از توسعه نرم‌افزار کاملاً مشخص نیست. گاهی اوقات یک سیستم کنترل نسخه یا ابزارهای مختلف برای ساده‌سازی یک رابط کاربری گرافیکی (GUI) یکپارچه شده‌است. بسیاری از IDEهای مدرن همچنین دارای یک مرورگر کلاس، یک مرورگر شیء و یک نمودار سلسله مراتبی کلاس برای استفاده در توسعه نرم‌افزار شی گرا هستند.

بررسی اجمالیویرایش

محیط‌های توسعه یکپارچه به منظور به حداکثر رساندن بهره‌وری برنامه‌نویس با ارائه مؤلفه‌های گره دار با رابط‌های کاربری مشابه طراحی شده‌اند. IDEها یک برنامه واحد ارائه می‌دهند که در آن تمام توسعه‌ها انجام می‌شود. این برنامه به‌طور معمول ویژگی‌های بسیاری را برای نویسندگی، اصلاح، کامپایل، راه اندازی و اشکال زدایی نرم‌افزار ارائه می‌دهد. این با توسعه نرم‌افزار با استفاده از ابزارهای نامربوط، مانند vi , GCC یا make سازگار است.

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

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

در حالی که اکثر IDEهای مدرن گرافیکی هستند، IDEهای مبتنی بر متن مانند Turbo Pascal قبل از در دسترس بودن سیستم‌های پنجره ای مانند Microsoft Windows و X Window System (X11) مورد استفاده رایج قرار می‌گرفتند. آنها معمولاً برای اجرای دستورها یا ماکروها معمولاً از کلیدهای عملکردی یا کلیدهای مهم استفاده می‌کنند.

تاریخچهویرایش

IDE در ابتدا هنگام توسعه از طریق کنسول یا ترمینال امکان‌پذیر شد. سیستم‌های اولیه قادر به پشتیبانی از آنها نبودند، زیرا برنامه‌ها با استفاده از نمودارهای پخش شده، ورود به برنامه‌ها با کارتهای سوراخ دار (یا نوار کاغذی و غیره) قبل از ارسال آنها به کامپایلر ساخته می‌شدند. Dartmouth BASIC اولین زبانی بود که با IDE ایجاد شد (و همچنین اولین کسی بود که هنگام نشستن در مقابل یک کنسول یا ترمینال برای استفاده طراحی شده بود).[نیازمند منبع] IDE آن (بخشی از سیستم به اشتراک گذاری زمان Dartmouth) بود. مبتنی بر دستور، و بنابراین به نظر نمی‌رسد بسیار شبیه به IDEهای گرافیکی مبتنی بر منو پس از ظهور رابط کاربری گرافیکی. با این حال، ویرایش، مدیریت پرونده، تلفیق، اشکال زدایی و اجرای را به روشی سازگار با IDE مدرن یکپارچه کرده‌است.

همچنین به ساختار برنامه‌نویسی ساخت یافته از IBM (1974) مراجعه کنید.

Maestro I محصولی از Softlab مونیخ است و اولین محیط توسعه یکپارچه جهان برای نرم‌افزار بود. مائسترو I برای ۲۲۰۰۰ برنامه‌نویس در سراسر جهان نصب شد. تا سال ۱۹۸۹، ۶۰۰۰ نصب در جمهوری فدرال آلمان وجود داشته‌است. مائسترو مسلماً رهبر جهان در این زمینه در دهه ۱۹۷۰ و ۱۹۸۰ بود. امروز یکی از آخرین Maestro من را می‌توان در موزه فناوری اطلاعات در آرلینگتون یافت.

یکی از اولین IDEها با یک مفهوم افزونه، Softbench بود. در سال 1995 Computerwoche اظهار داشت که استفاده یک IDE توسط توسعه دهندگان به خوبی مورد استقبال قرار نگرفته‌است زیرا این امر در خلاقیت آنها حکمر خواهد زد.

از دسامبر سال ۲۰۱۹، سه IDE که صفحات بارگیری آنها بیشتر در جستجوی آنها قرار گرفته عبارتند از: Eclipse , Android Studio و Visual Studio.

مباحثویرایش

برجسته نحوویرایش

ویرایشگر IDE معمولاً برجسته سازی نحو را ارائه می‌دهد، می‌تواند ساختارها، کلمات کلیدی زبان و خطاهای نحوی را با رنگ‌های بصری و جلوه‌های فونت نشان دهد.

تکمیل کدویرایش

تکمیل کد یک ویژگی مهم IDE است که برای سرعت بخشیدن به برنامه‌نویسی در نظر گرفته شده‌است. IDEهای مدرن حتی دارای تکمیل کد هوشمند هستند.

پالایشگاهویرایش

IDEهای پیشرفته پشتیبانی از پالایشگاه‌های خودکار را پشتیبانی می‌کنند.

کنترل نسخهویرایش

انتظار می‌رود که یک IDE کنترل نسخه یکپارچه را به منظور تعامل با مخازن منبع فراهم کند.

اشکال زداییویرایش

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

جستجوی کدویرایش

IDEها می‌توانند پشتیبانی پیشرفته ای را برای جستجوی کد ارائه دهند: به منظور یافتن اعلامیه‌های کلاس و عملکرد، کاربردها، خواندن / نوشتن متغیر و میدانی و غیره. IDEها می‌توانند از انواع مختلف رابط کاربری برای جستجوی کد استفاده کنند، به عنوان مثال ابزارک‌های مبتنی بر فرم و رابطهای مبتنی بر زبان طبیعی

برنامه‌نویسی بصریویرایش

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

این رابط با سیستم Lego Mindstorms رواج یافته‌است و توسط تعدادی از شرکت‌ها که مایل به سرمایه‌گذاری بر روی مرورگرهای سفارشی مانند آنچه در موزیلا است، فعالانه مورد سوء استفاده قرار می‌گیرد. KTechlab از کد پویا پشتیبانی می‌کند و یک IDE و شبیه‌ساز محبوب Open Source برای توسعه نرم‌افزار برای میکروکنترلرها است. برنامه‌نویسی ویژوال همچنین وظیفه قدرت برنامه‌نویسی توزیع شده را دارد (به عنوان مثال نرم‌افزار LabVIEW و EICASLAB). یک سیستم برنامه‌نویسی بصری اولیه، حداکثر، پس از طراحی سینت سایزر آنالوگ مدل شد و از 1980s برای توسعه نرم‌افزار عملکرد موسیقی در زمان واقعی استفاده می‌شود. نمونه اولیه دیگر Prograph بود، یک سیستم مبتنی بر dataflow که در ابتدا برای Macintosh توسعه یافته بود. محیط برنامه‌نویسی گرافیکی «انگور» برای برنامه‌ریزی کیت‌های ربات qfix استفاده می‌شود.

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

پشتیبانی از زبانویرایش

بعضی از IDEها از چندین زبان پشتیبانی می‌کنند، مانند GNU Emacs مبتنی بر C و Emacs Lisp و IntelliJ IDEA , Eclipse , MyEclipse یا NetBeans، همه بر اساس جاوا، یا MonoDevel، مبتنی بر C # یا PlayCode.

پشتیبانی از زبانهای جایگزین اغلب توسط افزونه‌ها ارائه می‌شود و به آنها امکان می‌دهد همزمان در همان IDE نصب شوند. به عنوان مثال، Flycheck یک برنامه مدرن چک کردن نحو در پرواز برای GNU Emacs 24 با پشتیبانی از ۳۹ زبان است. Eclipse و Netbeans دارای افزونه‌هایی برای C / C ++، Ada , GNAT (به عنوان مثال AdaGIDE) , Perl , Python , Ruby و PHP هستند که براساس برنامه‌های افزودنی فایل، محیط یا تنظیمات پروژه بین اتوماتیک انتخاب می‌شوند.

نگرش در سیستم عامل‌های مختلف محاسباتیویرایش

برنامه نویسان یونیکس می‌توانند ابزارهای خط فرمان POSIX را در یک محیط کامل توسعه، قادر به توسعه برنامه‌های بزرگی مانند هسته لینوکس و محیط آن قرار دهند. [۸] به این معنا، کل سیستم یونیکس به عنوان یک IDE عمل می‌کند. ابزارهای نرم‌افزاری GNU رایگان (مجموعه کامپایلر گنو (GCC)، اشکال زدایی GNU (GDB) و ساخت GNU) در بسیاری از سیستم عامل‌ها از جمله ویندوز در دسترس هستند. فلسفه فراگیر یونیکس «همه چیز یک جریان متنی است» توسعه دهندگان را که از ابزارهای خط فرمان پشتیبانی می‌کنند، قادر به استفاده از ویرایشگرهایی با پشتیبانی از بسیاری از ابزارهای استاندارد ساخت یونیکس و GNU، ساختن IDE با برنامه‌هایی مانند Emacs یا Vim می‌کند. داده نمایشگر اشکال زدایی در نظر گرفته شده‌است به عنوان یک جلو گرافیکی پیشرفته برای بسیاری از ابزارهای استاندارد دیباگر مبتنی بر متن. برخی از برنامه نویسان، مدیریت ساختن فایلها و مشتقات آن را با ابزار ساختن کدهای مشابه که در یک IDE کامل گنجانده شده‌است، ترجیح می‌دهند. بعنوان مثال، بیشتر مشارکت کنندگان در پایگاه داده PostgreSQL و GDB را مستقیماً برای ایجاد ویژگیهای جدید استفاده می‌کنند. حتی هنگام ساخت PostgreSQL برای Microsoft Windows با استفاده از Visual C ++، از اسکریپت‌های Perl به جای اینکه به ویژگی‌های IDE تکیه کنید، جایگزینی برای ساخت استفاده می‌شود. برخی از IDEهای لینوکس مانند Geany تلاش می‌کنند تا جلوی گرافیکی را برای عملیات ساخت سنتی ارائه دهند.

در سیستم عامل‌های مختلف ویندوز مایکروسافت، از ابزارهای خط فرمان برای توسعه به ندرت استفاده می‌شود. بر این اساس، بسیاری از محصولات تجاری و غیرتجاری وجود دارد. با این حال، هر یک از طراحی متفاوتی که معمولاً ناسازگاری ایجاد می‌کند، استفاده می‌کنند. اکثر فروشندگان اصلی کامپایلر برای ویندوز هنوز نسخه‌های رایگان ابزار خط فرمان خود، از جمله مایکروسافت (Visual C ++، Platform SDK , .NET Framework SDK، ابزار nmake) را ارائه می‌دهند.

IDE همیشه در محیط‌های Mac OS و MacOS کلاسیک اپل محبوب بوده و قدمت آن به کارگاه برنامه نویسان Macintosh , Turbo Pascal , THINK Pascal و THINK C در اواسط دهه ۱۹۸۰ بازمی‌گردد. در حال حاضر برنامه نویسان macOS می‌توانند بین IDEهای بومی مانند Xcode و ابزارهای منبع بازمانند Eclipse و Netbeans را انتخاب کنند. ActiveState Komodo یک IDE اختصاصی چند زبانه است که در macOS پشتیبانی می‌شود.

هوش مصنوعیویرایش

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

محیط توسعه یکپارچه وبویرایش

یک محیط توسعه یکپارچه وب (Web IDE)، همچنین با عنوان IDE آنلاین یا Cloud IDE شناخته می‌شود، یک IDE مبتنی بر مرورگر است که امکان توسعه نرم‌افزار یا توسعه وب را فراهم می‌کند. از یک مرورگر وب مانند Google Chrome یا Mozilla Firefox می‌توانید به یک IDE وب دسترسی داشته باشید و یک محیط کار قابل حمل را فراهم کند. یک وب IDE معمولاً شامل همه ویژگی‌های یکسان با یک IDE سنتی یا رومیزی نیست، اگرچه تمام ویژگی‌های اصلی IDE مانند برجسته کردن نحو، معمولاً وجود دارد.

جستارهای وابستهویرایش

منابعویرایش

پیوند به بیرونویرایش

لیست IDEهای معروف پایتون