معرفی بازی جدید

معرفی ویرایشگرها و ابزارهای ساخت

دو دسته از ابزار های برتر را که هر متخصص کامپیوتری باید بداند، ارزیابی کردیم. در ادامه فهرستی از مواردی که مفید خواهند بود را معرفی خواهیم کرد.

ویرایشگرها — کار با فایل های متنی بسته به نرم افزاری که استفاده می کنید می تواند آسان یا دشوار باشد. ویرایشگرهای سنگین، محیط های توسعه یکپارچه (IDE) مانند Eclipse یا NetBeans یا Visual Studio هستند. اگر با ابزارهای نرم افزاری خاصی برای برنامه نویسی یک پردازنده خاص کار می کنید، اینها عالی هستند. اما گاهی اوقات شما فقط نیاز به ویرایش سریع یک فایل دارید.

ویرایشگرهای اصلی که با سیستم عامل ارائه می شوند (مانند Notepad در ویندوز یا TextEdit در مک) سبک وزن هستند اما ویژگی های زیادی ندارند. من دوست دارم یک ویرایشگر متوسط ​​در دسترس داشته باشم: برخی از ویرایشگرهای رایگان خوب در این دسته عبارتند از Notepad++ برای ویندوز و TextWrangler برای Mac. من همچنین از UltraEdit غیر رایگان استفاده کرده ام که کمی قدرتمندتر است و برای Win/OSX/Linux در دسترس است. SlickEdit یک ویرایشگر در سطح حرفه ای است که چند صد دلار هزینه دارد و احتمالاً برای اکثر کارها بیش از حد نیاز دارد، اما برخی از همکاران من به آن سوگند یاد می کنند. (امیدوارم فحش ندهند!)

منصفانه نیست که ویرایشگرها را بدون ذکر گنو emacs ذکر کنیم — این یک ویرایشگر منبع باز رایگان است که از زمانی ایجاد شد که اکثر سیستم عامل ها مبتنی بر ترمینال بودند و اگر دوست دارید اکثر دستورات آن با دنباله های صفحه کلید مبهم فعال می شوند. چیزهایی که من نمی دانم. این یک ویرایشگر بسیار قدرتمند است که از طریق برنامه نویسی Lisp قابل تنظیم است. اگر بتوان آن را در ترمینال نمایش داد، تقریباً می توانید هر کاری را در emacs انجام دهید.

دو ویژگی اصلی در ویرایشگرها که من به دنبال آنها هستم عبارتند از:

  • پشتیبانی از فایل های بزرگ اگر فایل های متنی بسیار بزرگی (مولتی گابایت) دارید، مطمئن شوید که ویرایشگری دریافت می کنید که می تواند یک فایل را بدون نیاز به بارگذاری یکباره در حافظه باز کند. این در مورد Notepad صادق نیست، اما در مورد Notepad++ و UltraEdit صادق است.
  • عملکرد “یافتن در فایل ها” — یک درخت منبع معمولی بیش از یک فایل را در بر می گیرد، و اغلب فراموش می کنید جایی که چیزی را قرار داده اید. (خب، فراموش می کنم که چیزها را کجا قرار داده ام، حداقل!) داشتن توانایی جستجو برای یک کلمه یا یک الگو در چندین فایل بسیار ارزشمند است. ابزار یونیکس “grep” به شما این امکان را می دهد که این کار را در خط فرمان انجام دهید، اما ویژگی های Find-in-Files در ویرایشگرها به شما این امکان را می دهد که روی نتایج جستجو دوبار کلیک کنید و به خطوط خاصی در ویرایشگر بروید.

همچنین ممکن است لازم باشد فایل های باینری را در یک ویرایشگر هگز ویرایش کنید — این به شما امکان می دهد کدهای کاراکترهای کاراکترهای غیرقابل چاپ را مشاهده و ویرایش کنید. هر دو Notepad++ و UltraEdit دارای حالت ویرایش هگزا هستند. اگر از مک هستید، از Hex Fiend مستقل استفاده کنید – بسیار خوب است.

همچنین ویرایشگرهای تخصصی برای فایل های XML وجود دارد — در دسته بندی رایگان، XML Notepad و ویرایشگر XML firstobject “foxe” وجود دارد. رابط کاربری foxe کمی نامرتب است، اما با فایل های حجیم بسیار خوب عمل می کند.

ابزارهای ساخت — اگر شروع به نوشتن نرم افزار در یک IDE می کنید، فقط می توانید روی “Build” کلیک کنید و برنامه کد منبع شما را برای شما کامپایل می کند. مراقب این عمل باشید. این بدان معناست که به IDE اجازه می‌دهید نگران جزئیات باشد، که برای سیستم‌های کوچک که در آن چیزی یاد می‌گیرید خوب است، اما گزینه‌های زیادی برای تغییر روش کامپایل کردن نرم‌افزار شما وجود دارد، و در یک IDE اینها در منوها مدفون می‌شوند.

مهندسان نرم افزار حرفه ای — باز هم ، این نظر من است — باید از یک ابزار ساخت تعریف شده استفاده کنند. محلول استاندارد plain-vanilla (من اشتباهاً “pain-vanilla” را تایپ کردم و خیلی وسوسه شدم که آن را نگه دارم) برنامه ای به نام make است که در دهه 1970 معرفی شد و متاسفانه هنوز هم استفاده می شود. Makefiles از دسته ای از خطوط تشکیل شده است که به شکل زیر است:

foo.obj: foo.c

cc -o $@ $<

اینها «قوانینی» هستند که به سازنده می‌گویند چگونه با اجرای یک برنامه، فایل‌های منبع (مانند «foo.c» در بالا) را به فایل‌های هدف (مثلاً «foo.obj») بسازد. (“cc” در این مورد.) آنها همچنین وابستگی ها را دیکته می کنند: فرض کنید فایل F3 به اجرای دستور X برای ایجاد فایل F3 از فایل F2 بستگی دارد، و فایل F2 به اجرای دستور Y برای ایجاد فایل F2 از فایل F1 بستگی دارد – یک ابزار ساخت. می تواند نمودار وابستگی را استنباط کند، به طوری که اگر فایل F1 را تغییر دهید، می تواند بفهمد که باید فایل های F2 و F3 را بر این اساس بازسازی کند. این ممکن است بی اهمیت به نظر برسد، اما در هر چیزی جز یک پروژه نرم افزاری کوچک، واقعاً مهم است. من روی یک پروژه نرم افزاری نسبتا ساده کار کرده ام که چند ده فایل منبع دارد و کامپایل همه فایل ها 5 دقیقه طول می کشد. داشتن یک ابزار ساخت مناسب که وابستگی ها را به درستی ثبت می کند به شما این امکان را می دهد که یک ساخت افزایشی را انجام دهید و فقط موارد ضروری را بر اساس تغییراتی که ایجاد کرده اید کامپایل کنید.

برای برنامه های جاوا، ابزار استاندارد ant و maven هستند. اینها کار را آسان‌تر می‌کنند و می‌توانند برای ساختن سیستم‌های دیگر علاوه بر نرم‌افزار جاوا استفاده شوند، اما اغلب در شرایط عمومی استفاده نمی‌شوند.

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

(به عنوان مثال، اگر می خواهید از یک گزینه خط فرمان “-On” در یک کار خاصی استفاده کنید که در آن “n” عددی برابر با اندازه یک فایل مدولوی 7 است، می توانید تابعی بنویسید که این کار را به طور خودکار انجام دهد) اینها شامل rake (بر اساس Ruby) و gradle (مبتنی بر Groovy) و scons و waf (هر دو بر اساس پایتون هستند).

 

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا