تعاریف خودمونیه یک سری اصطلاحات فنی!

توی این نوشته سعی شده یک سری  اصطلاحات فنی رو به صورت خودمونی و یا همون (Informal) تعریف کنیم. این پست بیشتر مناسب افرادیه که به تازگی وارد دنیای برنامه نویسی شدن و با کلی اصطلاح و کلمات جدید روبه‌رو شدن، امیدوارم کمکشون بکنه.

قطعن اولین چیزی که در ابتدای ورود به دنیای برنامه‌نویسی با اون مواجه میشین چیزی هست به اسم زبان‌های برنامه‌نویسی، که قبلن در مورد تقسیم بندیشون طبق حوزه‌های تجاری موجود، اینجا (+) مطلبی نوشتم که پیشنهاد میشه قبل خوندن این پست یک سر بهش بزنین.

یادگیری زبان برنامه‌نویسی اولین قدم در دنیای توسعه‌دهندگی هستش و باید بعد از یادگیری اون به سمت بخش‌های دیگه‌ای رفت که در ادامه میگم.

خب حالا به فرض شما یک زبان مثلن php یا java رو به طور خاص یادگرفتین. مرحله بعد، یادگیری مفاهیم کلی برنامه‌نویسی هستش که تقریبن اصول یکسانی بین همه زبان‌های موجود دارن، مخصوصن زبان‌هایی که از یک خانواده هستند مثل زبان‌های خانواده C که طیف بزرگی از زبان‌ها رو شامل میشه. مفاهیمی مثل: تفکر شی‌گرایی در برنامه‌نویسی، ساختمان داده‌ها، اصول طراحی الگوریتم، ساختارهای کنترلی و خیلی چیزهای دیگه.

بعد از گذروندن دو مرحله بالا و یادگیری یک زبان به صورت Pure، حالا وارد مرحله بعدی یعنی یادگیری یک فریم‌ورک مرتبط با اون زبان میشیم.

حالا لازمه که اول بدونیم اصلن فریم‌ورک چی هست؟!

فریم‌ورک (FrameWork) به چهارچوب یا قالبی میگن که برنامه‌نویس رو ملزم به رعایت یک سری قوانین خاص در نوشتن برنامش میکنه و با کتابخانه‌ها، کلاس‌ها، متدها و توابع مفید از پیش نوشته‌شده آماده‌ای که داره، نوشتن برنامه رو برای توسعه‌دهنده خیلی راحت‌تر میکنه و از نوشتن کدهای تکراری جلوگیری می‌کنه و اکثر عملیات رو خودش در پشت‌زمینه برای برنامه‌نویس انجام میده. برای مثال از فریم ورک های متداولی که توی زبان #C هست میشه به Microsoft ASP.net Frame Work 2, 3, 3.5, 4, 4.5 و در زبان PHP میشه به Zend FrameWork , Cake PHP ,Codeigniter, Laravel و در Java هم میشه به Hibernate, Spring, Struts و غیره اشاره کرد.

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

یک نکته اینجا هست، اونم اینه که نباید مفهوم فریم‌ورک با پلت‌فرم(Platform) رو باهمدیگه اشتباه گرفت. پلت‌فرم در واقع به بستری گفته میشه که برنامه‌های نوشته شده برای یک وسیله خاص روی اون اجرا میشه. این بستر شامل یک‌سری ملزومات سخت افزاری (مثل نوع سیستم و CPU) و هم نرم افزاری (مثل سیستم عامل) هستش. مثل پلتفرم ویندوز xp 64 bit، پلتفرم ویندوز ۸، پلتفرم ویندوز موبایل، پلتفرم لینوکس، پلتفرم اندروید، پلتفرم جاوا، پلتفرم PC، پلتفرم XBOX و…

حالا قراره با یک زبان روی یک فریم‌ورک خاص تحت پلت‌فرم موردنظر برنامه‌ای بنویسیم، اما با چه ابزاری؟!

اینجا با دو اصطلاح دیگه آشنا میشیم. اولین دسته از ابزارها برای کدنویسی Text Editorها هستند. این ابزارها با دادن امکاناتی مقدماتی, زمینه رو برای نوشتن برنامه‌‌ فراهم میکنن. محبوبتریناشون Sublime Text, Atom, VS Code, … هستند. بعضی از این ابزارها با پلاگین‌هایی که دارن امکانات بیشتری از یک Text Editor ساده دراختیار برنامه‌نویس‌ها قرار میدن.

اما این وسط یک سری ابزارهای قدرتمندتری به‌نام محیط‌های مجتمع توسعه ( IDE – Integrated Development Environment)  داریم. این ابزارها چیزی فراتر از یک ویرایشگر متن ساده هستن، بلکه شامل ویرایشگر کد برنامه(Code Editor)، کامپایلر(Compiler)، دیباگر(Debugger) و در نهایت رابط گرافیکی یا GUI هستند که به برنامه‌‌نویس کمک میکنه تا بدون دغدغه به موارد حاشیه‌ای به راحتی کد رو به صورت خام یا تحت فریم ورک خاصی نوشته، اجرا و خطاگیری کنه و صرفن روی اصل کدزنی تمرکز کنه. مثل محیط Microsoft Visual Studio, Android Studio, PHP Storm, Data Grip, …

به نظرم خوب  میاد که یک اشاره کوچیکی هم به روند اجرای یک برنامه توی سیستم بکنیم. قطعه کد نوشته شده توسط برنامه‌‌نویس، بسته به نوع زبان که کامپایلری یا مفسری هست، کامپایل(Compile) یا تفسیر(Interpret) و طی روندی تبدیل به کد اسمبلی میشه. بعد از اون قطعه کد اسمبلی تولید شده، توسط اسمبلر(Assembler) به زبان ماشین(Machine Code) تبدیل شده و مستقیم روی سخت افزار اجرا میشه. این بحث خودش نیاز به تعریف و معرفی ابزارها و مفاهیم دیگه‌ای هست که توی حوزه این پست نیست و در آینده در موردش مینویسم.

همون‌طور که دیدیم همه این ابزارها در راستای کمک به راحتی برنامه‌نویس‌ها هستند و انتخاب هر کدوم از این ابزارها در جای مناسبش باعث سرعت توی روند تولید یک برنامه میشه.

25 دیدگاه On تعاریف خودمونیه یک سری اصطلاحات فنی!

  • واقعآ دستت درد نکنه خیلی مفید بود من از کل کلمات اینجا فقط MVS و AStudio میدونستم چیه!!! و اما سؤالات …
    ۱٫میشه تفاوت پلتفرم ویندوز و با PC رو بیشتر توضیح بدی، من فرقش متوجه نشدم.
    ۲-تو نصب نرمافزارهای برنامه نویسی غالبا یه چیزایی میخواد مثله SDK , JDK و C++ Redistributable اینا چی هستن؟
    ممنون ^.^

    • خواهش می‌کنم محمود جان … 🙂
      حالا سوالا :
      ۱- تعریف پلت‌فرم رو اگه یادت باشه به یکسری ملزومات سخت افزاری(PC) و نرم‌افزاری(ویندوز) میگن … پس هر کدوم یک‌جنبه پلت‌فرم هستن.
      ۲- اون‌ها بیشتر ابزارها، فریم‌ورک‌ها و ماشین‌های مجازی(Virtual Machine)هستند که بودنشون باعث میشه تا برنامه‌های نوشته شده به اون زبان خاص روی اون پلت‌فرم اجرا بشه. مثلن توی حرفات Java Development Kit – JDK برای اجرای برنامه‌های نوشته شده به زبان جاوا و یا C++ Redistributable برای اجرای برنامه‌های Enterprise نوشته شده به زبان سی‌پلاس‌پلاس هستش. SDK – Software Development Kit هاهم به پکیجی شامل زبان برنامه نویسی، مجموعه‌ای از API یا Application Programming Interfaceها، یک IDE پیشنهادی، احتمالا یک شبیه‌ساز(Emulator)، مجموعه‌ی مستندات، فایل های مثال و Help میگن که توی تولیدبرنامه برای یک پلتفرم خاص لازم میشه.

  • پینگ بک: بالاخره چه زبونی ؟! - زندگی یک دولوپر خوشحال ()

  • خیلی عالی و روون اصطلاحات تخصصی رو توضیح دادی
    واقعن مفید بود مرسی 🙂

  • احسنت. الحق والانصاف، این هم کمافی السابق عالی بود. علی ای حال من حیث المجموع موفق باشی.
    معنی این اصطلاحات فنی روهم بگو خیلی به کارشون میاد :))

  • سید معین الدین سعادتی

    خیلی پست خوبی بود. امیدوارم هر کسی توی دنیا علاقشو پیدا کنه و به سمتش پیش بره
    کدوم زبان یا کدوم حرفه خیلی مهم نیست
    مهم اینه که تو حرفه ای که هستی بهش علاقه داشته باشی و واسش سنگ تموم بزاری
    پستت خیلی خوب و عالی بود
    سوالای بسیاری از تازه کاراست تو این حوزه

  • عالی بود
    الان که فکر میکنم میبینم باید اطلاعاتم رو ببرم بالا تر چون از این اصطلاحاتی که گفتی شاید ۵ یا۶ تاشو تاحالا شنیده بودم و مثل اینکه اطلاعاتم واقعا کمه
    ممنون بابت مطالب مفید و ارزشمندت اشکان جان

  • خسته نباشی. اگه هکسره رو هم رعایت کنی که دیگه نور علی نوره.

  • سلام آقای رحمانی. پیام شخصی داده بودم تا در مورد نویسندگی صحبتی داشته باشیم نمی دونم به دستتون رسید یا نه. خوشحال میشم در اینباره کمی با هم صحبت کنیم

  • ممنون از مطلب مفیدی که گذاشتید

  • دستتون دردنکنه لینک این صفحه رو فرستادم برای رفقای این کارم
    باز م ممنون

  • تشکر به خاطر مطالب فوق العادتون.
    به نظرتون کتابی هست که بتونه برای شروع برنامه نویسی به من کمک کنه . من معمولا با کتاب خیلی خوب یاد میگیرم.اگه یه کتاب معرفی کنید ممنون میشم.

    • ممنون از شما
      برای یادگیری برنامه‌نویسی نظر من این هستش که با کتاب جلو نرین، چون مطالب توی این حوزه داره مدام تغییر میکنه و روش‌های جدیدی میاد و قبلی‌ها منسوخ میشن.
      برای همین پیشنهاد میکنم با کورس‌های ویدیویی جلو برین که هم به روزتر هستن و هم بهتر مطلب منتقل میشه.(داخل یوتیوب پر هستش)

      البته برای یادگیری مباحث تئوری مثل ساختمان داده‌ها و طراحی الگوریتم بهتر هست از روی کتاب بخونین.

  • سلام وقتتون بخیر.واسه برنامه نویسی یک لپ تاپ کافیه؟آخه بعضیارو دیدم که از دو سیستم برای برنامه نویسی استفاده میکنن.منم یک کامپیوتر خوب دارم اما میخوام یک لپ تاپ هم بخرم ولی نمیدونم کامپیوتر رو بفروشم یا نه؟

پاسخ بده:

آدرس ایمیل شما به صورت عمومی منتشر نخواهد شد.

فوتر سایت

تمامی مطالب تحت مجوز کریتیو کامنز ۴ منتشر میشوند.