20 KiB
مقدمهای بر زبانهای برنامهنویسی و ابزارهای مورد نیاز
این درس به اصول اولیه زبانهای برنامهنویسی میپردازد. موضوعات مطرحشده در اینجا برای اکثر زبانهای برنامهنویسی مدرن امروزی کاربرد دارند. در بخش «ابزارهای مورد نیاز»، با نرمافزارهای مفیدی که به شما بهعنوان یک توسعهدهنده کمک میکنند، آشنا خواهید شد.
اسکیچنوت از Tomomi Imura
آزمون پیش از درس
مقدمه
در این درس، به موضوعات زیر خواهیم پرداخت:
- برنامهنویسی چیست؟
- انواع زبانهای برنامهنویسی
- عناصر اصلی یک برنامه
- نرمافزارها و ابزارهای مفید برای توسعهدهندگان حرفهای
میتوانید این درس را در Microsoft Learn مطالعه کنید!
برنامهنویسی چیست؟
برنامهنویسی (که به آن کدنویسی نیز گفته میشود) فرآیند نوشتن دستورالعملها برای دستگاهی مانند کامپیوتر یا دستگاه موبایل است. ما این دستورالعملها را با یک زبان برنامهنویسی مینویسیم که سپس توسط دستگاه تفسیر میشود. این مجموعه دستورالعملها ممکن است با نامهای مختلفی شناخته شوند، اما برنامه، برنامه کامپیوتری، اپلیکیشن (برنامه) و اجرایی از نامهای رایج هستند.
یک برنامه میتواند هر چیزی باشد که با کد نوشته شده است؛ وبسایتها، بازیها و اپلیکیشنهای موبایل همگی برنامه هستند. در حالی که ممکن است بتوان برنامهای بدون نوشتن کد ایجاد کرد، منطق زیربنایی آن توسط دستگاه تفسیر میشود و این منطق به احتمال زیاد با کد نوشته شده است. برنامهای که در حال اجرا یا تفسیر کد است، در حال انجام دستورالعملهاست. دستگاهی که با آن این درس را میخوانید، در حال اجرای برنامهای است که آن را روی صفحهنمایش شما نشان میدهد.
✅ کمی تحقیق کنید: چه کسی بهعنوان اولین برنامهنویس کامپیوتر در جهان شناخته میشود؟
زبانهای برنامهنویسی
زبانهای برنامهنویسی به توسعهدهندگان این امکان را میدهند که دستورالعملهایی برای یک دستگاه بنویسند. دستگاهها فقط زبان باینری (۰ و ۱) را میفهمند، و برای اکثر توسعهدهندگان این روش ارتباطی چندان کارآمد نیست. زبانهای برنامهنویسی وسیلهای برای ارتباط بین انسانها و کامپیوترها هستند.
زبانهای برنامهنویسی در قالبهای مختلفی ارائه میشوند و ممکن است اهداف متفاوتی داشته باشند. بهعنوان مثال، جاوااسکریپت عمدتاً برای اپلیکیشنهای وب استفاده میشود، در حالی که Bash عمدتاً برای سیستمعاملها به کار میرود.
زبانهای سطح پایین معمولاً به مراحل کمتری نسبت به زبانهای سطح بالا برای تفسیر دستورالعملها توسط دستگاه نیاز دارند. با این حال، چیزی که زبانهای سطح بالا را محبوب میکند، خوانایی و پشتیبانی آنهاست. جاوااسکریپت بهعنوان یک زبان سطح بالا شناخته میشود.
کد زیر تفاوت بین یک زبان سطح بالا (جاوااسکریپت) و یک زبان سطح پایین (کد اسمبلی ARM) را نشان میدهد.
let number = 10
let n1 = 0, n2 = 1, nextTerm;
for (let i = 1; i <= number; i++) {
console.log(n1);
nextTerm = n1 + n2;
n1 = n2;
n2 = nextTerm;
}
area ascen,code,readonly
entry
code32
adr r0,thumb+1
bx r0
code16
thumb
mov r0,#00
sub r0,r0,#01
mov r1,#01
mov r4,#10
ldr r2,=0x40000000
back add r0,r1
str r0,[r2]
add r2,#04
mov r3,r0
mov r0,r1
mov r1,r3
sub r4,#01
cmp r4,#00
bne back
end
باور کنید یا نه، هر دو یک کار را انجام میدهند: چاپ دنباله فیبوناچی تا عدد ۱۰.
✅ دنباله فیبوناچی بهصورت تعریفشده مجموعهای از اعداد است که هر عدد برابر با مجموع دو عدد قبلی خود است، که از ۰ و ۱ شروع میشود. ده عدد اول این دنباله عبارتند از: ۰، ۱، ۱، ۲، ۳، ۵، ۸، ۱۳، ۲۱ و ۳۴.
عناصر یک برنامه
یک دستورالعمل منفرد در یک برنامه بیان (statement) نامیده میشود و معمولاً دارای یک کاراکتر یا فاصلهای است که نشان میدهد دستورالعمل کجا پایان مییابد یا خاتمه مییابد. نحوه خاتمه یک برنامه در هر زبان متفاوت است.
بیانهای داخل یک برنامه ممکن است برای اجرای دستورالعملها به دادههایی که توسط کاربر یا از جای دیگری ارائه میشوند، وابسته باشند. دادهها میتوانند نحوه رفتار یک برنامه را تغییر دهند، بنابراین زبانهای برنامهنویسی راهی برای ذخیره موقت دادهها ارائه میدهند تا بعداً از آنها استفاده شود. اینها متغیرها نامیده میشوند. متغیرها بیانهایی هستند که به دستگاه دستور میدهند دادهها را در حافظه خود ذخیره کند. متغیرها در برنامهها مشابه متغیرها در جبر هستند، جایی که آنها یک نام منحصربهفرد دارند و مقدارشان ممکن است در طول زمان تغییر کند.
احتمال دارد برخی از بیانها توسط دستگاه اجرا نشوند. این معمولاً بهصورت عمدی توسط توسعهدهنده نوشته میشود یا بهصورت تصادفی زمانی که یک خطای غیرمنتظره رخ میدهد. این نوع کنترل بر یک اپلیکیشن آن را قویتر و قابل نگهداریتر میکند. معمولاً این تغییرات در کنترل زمانی اتفاق میافتند که شرایط خاصی برآورده شوند. یک بیان رایج که در برنامهنویسی مدرن برای کنترل نحوه اجرای یک برنامه استفاده میشود، بیان if..else
است.
✅ در درسهای بعدی بیشتر درباره این نوع بیان یاد خواهید گرفت.
ابزارهای مورد نیاز
🎥 روی تصویر بالا کلیک کنید تا ویدیویی درباره ابزارها ببینید
در این بخش، با برخی نرمافزارهایی که ممکن است در آغاز مسیر توسعه حرفهای خود بسیار مفید بیابید، آشنا خواهید شد.
یک محیط توسعه مجموعهای منحصربهفرد از ابزارها و ویژگیهایی است که یک توسعهدهنده اغلب هنگام نوشتن نرمافزار از آنها استفاده میکند. برخی از این ابزارها برای نیازهای خاص یک توسعهدهنده سفارشی شدهاند و ممکن است با تغییر اولویتهای کاری، پروژههای شخصی یا استفاده از زبان برنامهنویسی دیگر تغییر کنند. محیطهای توسعه بهاندازه توسعهدهندگانی که از آنها استفاده میکنند، منحصربهفرد هستند.
ویرایشگرها
یکی از مهمترین ابزارها برای توسعه نرمافزار، ویرایشگر است. ویرایشگرها جایی هستند که کد خود را مینویسید و گاهی اوقات کد خود را اجرا میکنید.
توسعهدهندگان به دلایل زیر به ویرایشگرها تکیه میکنند:
- اشکالزدایی به کشف باگها و خطاها با بررسی خطبهخط کد کمک میکند. برخی ویرایشگرها قابلیت اشکالزدایی دارند؛ این قابلیتها میتوانند برای زبانهای برنامهنویسی خاص سفارشی و اضافه شوند.
- برجستهسازی سینتکس رنگها و قالببندی متنی را به کد اضافه میکند و خواندن آن را آسانتر میسازد. اکثر ویرایشگرها امکان سفارشیسازی برجستهسازی سینتکس را دارند.
- افزونهها و یکپارچهسازیها ابزارهای تخصصی برای توسعهدهندگان هستند که توسط خود توسعهدهندگان ساخته شدهاند. این ابزارها در ویرایشگر پایه وجود ندارند. بهعنوان مثال، بسیاری از توسعهدهندگان کد خود را مستند میکنند تا توضیح دهند چگونه کار میکند. ممکن است افزونهای برای بررسی املای کلمات نصب کنند تا اشتباهات تایپی در مستندات را پیدا کنند. اکثر افزونهها برای استفاده در یک ویرایشگر خاص طراحی شدهاند و اکثر ویرایشگرها راهی برای جستجوی افزونههای موجود ارائه میدهند.
- سفارشیسازی به توسعهدهندگان این امکان را میدهد که محیط توسعه منحصربهفردی برای نیازهای خود ایجاد کنند. اکثر ویرایشگرها بسیار قابل سفارشیسازی هستند و ممکن است به توسعهدهندگان اجازه دهند افزونههای سفارشی ایجاد کنند.
ویرایشگرهای محبوب و افزونههای توسعه وب
مرورگرها
یکی دیگر از ابزارهای مهم، مرورگر است. توسعهدهندگان وب به مرورگرها تکیه میکنند تا ببینند کد آنها چگونه در وب اجرا میشود. مرورگر همچنین برای نمایش عناصر بصری یک صفحه وب که در ویرایشگر نوشته شدهاند، مانند HTML، استفاده میشود.
بسیاری از مرورگرها با ابزارهای توسعهدهنده (DevTools) ارائه میشوند که شامل مجموعهای از ویژگیها و اطلاعات مفید برای کمک به توسعهدهندگان در جمعآوری و ثبت اطلاعات مهم درباره اپلیکیشن خود هستند. بهعنوان مثال: اگر یک صفحه وب خطاهایی داشته باشد، گاهی اوقات دانستن زمان وقوع آنها مفید است. ابزارهای توسعهدهنده در مرورگر میتوانند برای ثبت این اطلاعات پیکربندی شوند.
مرورگرها و ابزارهای توسعهدهنده محبوب
ابزارهای خط فرمان
برخی از توسعهدهندگان نمای گرافیکی کمتری را برای وظایف روزانه خود ترجیح میدهند و به خط فرمان برای این کار تکیه میکنند. نوشتن کد نیاز به تایپ زیادی دارد و برخی از توسعهدهندگان ترجیح میدهند جریان کاری خود را روی صفحهکلید مختل نکنند. آنها از میانبرهای صفحهکلید برای جابهجایی بین پنجرههای دسکتاپ، کار روی فایلهای مختلف و استفاده از ابزارها استفاده میکنند. اکثر وظایف را میتوان با ماوس انجام داد، اما یکی از مزایای استفاده از خط فرمان این است که بسیاری از کارها را میتوان بدون نیاز به جابهجایی بین ماوس و صفحهکلید انجام داد. مزیت دیگر خط فرمان این است که قابل پیکربندی است و میتوانید یک پیکربندی سفارشی ذخیره کنید، بعداً آن را تغییر دهید و به ماشینهای توسعه دیگر وارد کنید. از آنجا که محیطهای توسعه بسیار منحصربهفرد هستند، برخی از توسعهدهندگان از خط فرمان اجتناب میکنند، برخی کاملاً به آن تکیه میکنند و برخی ترکیبی از این دو را ترجیح میدهند.
گزینههای محبوب خط فرمان
گزینههای خط فرمان بسته به سیستمعاملی که استفاده میکنید متفاوت خواهد بود.
💻 = بهصورت پیشفرض روی سیستمعامل نصب شده است.
ویندوز
- Powershell 💻
- Command Line (که به CMD نیز معروف است) 💻
- Windows Terminal
- mintty
مکاواس
لینوکس
ابزارهای محبوب خط فرمان
مستندات
وقتی یک توسعهدهنده میخواهد چیزی جدید یاد بگیرد، احتمالاً به مستندات مراجعه میکند تا نحوه استفاده از آن را بیاموزد. توسعهدهندگان اغلب به مستندات تکیه میکنند تا آنها را در استفاده صحیح از ابزارها و زبانها راهنمایی کنند و همچنین دانش عمیقتری از نحوه کار آنها کسب کنند.
مستندات محبوب در توسعه وب
- Mozilla Developer Network (MDN)، از موزیلا، ناشر مرورگر Firefox
- Frontend Masters
- Web.dev، از گوگل، ناشر مرورگر Chrome
- مستندات توسعهدهندگان مایکروسافت، برای Microsoft Edge
- W3 Schools
✅ کمی تحقیق کنید: حالا که با اصول محیط یک توسعهدهنده وب آشنا شدید، آن را با محیط یک طراح وب مقایسه کنید.
🚀 چالش
برخی از زبانهای برنامهنویسی را مقایسه کنید. چه ویژگیهای منحصربهفردی بین جاوااسکریپت و جاوا وجود دارد؟ درباره COBOL و Go چطور؟
آزمون پس از درس
مرور و مطالعه شخصی
کمی درباره زبانهای مختلفی که برای برنامهنویسان در دسترس است مطالعه کنید. سعی کنید یک خط کد در یک زبان بنویسید و سپس آن را در دو زبان دیگر بازنویسی کنید. چه چیزی یاد گرفتید؟
تکلیف
سلب مسئولیت:
این سند با استفاده از سرویس ترجمه هوش مصنوعی Co-op Translator ترجمه شده است. در حالی که ما تلاش میکنیم دقت را حفظ کنیم، لطفاً توجه داشته باشید که ترجمههای خودکار ممکن است شامل خطاها یا نادرستیها باشند. سند اصلی به زبان اصلی آن باید به عنوان منبع معتبر در نظر گرفته شود. برای اطلاعات حیاتی، ترجمه حرفهای انسانی توصیه میشود. ما هیچ مسئولیتی در قبال سوء تفاهمها یا تفسیرهای نادرست ناشی از استفاده از این ترجمه نداریم.