طراحی سایت های اختصاصی و سفارشی پیشرفته با استفاده از فریمورک لاراول
حتما باید جاوااسکریپت یاد بگیریم؟
حتما باید جاوااسکریپت یاد بگیریم؟
بله، اگر میخواهید وارد دنیای برنامه نویسی وب شوید لازمه که حتما جاوااسکریپت یاد بگیرید و اگر میخواهید برنامه نویس Front-end باشید باید خیلی عمیق تر و بهتر با جاوا اسکریپت کار کنید و فریمورک ها و کتابخانه های جاوااسکریپت هم یاد بگیرید. خلاصه که جاوااسکریپت یکی از تکنولوژی های ضروری توسعه وبسایت محسوب میشود؛ یه جورایی مثل HTML لازمه ی طراحی صفحات وبسایت است.
زبان برنامه نویسی جاوا اسکریپت چیست؟
JavaScript که به اختصار JS نیز نامیده میشود، یکی از محبوبترین زبانهای برنامه نویسی است. جاوا اسکریپت زبانی سطح بالا، داینامیک، شیگرا و تفسیری است که از شیوههای مختلف برنامه نویسی پشتیبانی میکند. از این زبان میتوان برای برنامه نویسی سمت سرور (Server Side)، اپلیکیشنهای موبایل، بازی و اپلیکیشنهای دسکتاپ استفاده کرد. بنابراین میتوان اینگونه برداشت کرد که زبان برنامه نویسی جاوا اسکریپت ، یک زبان همه فن حریف است.
اگر با هر یک از این اصطلاحات آشنایی ندارید نگران نباشید، زیرا در ادامه به توضیح هر یک از آنها خواهیم پرداخت. برای اینکه بهتر متوجه چیستی زبان جاوا اسکریپت شوید، در ابتدا باید جواب سوالاتی مانند زبان کامپایلری چیست و چه تفاوتی با زبان مفسری دارد؟، زبان برنامه نویسی سمت سرور و سمت کاربر به چه نوع زبانهایی گفته میشود؟ را بدانید. پس از درک این مفاهیم میتوانید آموزش جاوا اسکریپت را شروع کنید.
همانطور که میدانید کامپیوترها تنها به زبان صفر و یک (Binary) صحبت میکنند و زبان دیگری را متوجه نمیشوند. ما در ابتدا برای برقراری ارتباط با ماشینها سعی کردیم به زبان خود آنها، یعنی زبانی که به زبان صفر و یک نزدیکتر است، صحبت کنیم. به این نوع زبانها که به صورت مستقیم با پردازنده در ارتباطاند، در اصطلاح، زبانهای سطح پایین (Low Level) گفته میشود. از جمله این زبانها میتوان به اسمبلی اشاره کرد.
اما یادگیری و تسلط به این زبانها برای برنامه نویسان فوق العاده سخت بود. بنابراین متخصصین تصمیم به ساخت زبانهایی گرفتند که به زبان انسانها نزدیکتر باشد. در اصطلاح به این زبانها، زبانهای سطح بالا (High Level) میگویند. زبانهای سطح بالایی مانند JavaScript کار را برای برنامهنویسان سادهتر کردند، زیرا ساختار نوشتاری و منطق آنها بسیار به زبان انسانها نزدیکتر شده است. پس میتوان اینگونه نتیجه گرفت که آموزش جاوا اسکریپت نسبت به سایر زبانهای برنامه نویسی سطح پایین سادهتر است.
همانطور که دیدید در تعریف زبان برنامه نویسی جاوا اسکریپت به این نکته اشاره شد که این زبان از نوع زبانهای مفسری است. برای درک ماهیت زبانهای برنامه نویسی مفسری ابتدا فکر کنید که شما یک مترجم هستید. برای ترجمه یک متن، دو راه بیشتر ندارید. یا باید آنچه را دریافت میکنید به صورت خط به خط و همزمان ترجمه کنید، یا کل مطلب را یک جا ترجمه کنید. این دقیقا همان تفاوت میان زبانهای مفسری (Interpreter) و زبانهای کامپایلری (Compiled) است.
زبانهای برنامه نویسی مفسری چه نوع زبان هایی هستند؟
در زبانهای مفسری (Interpreted) سورس کد به صورت خط به خط تفسیر میشود یعنی پس از تفسیر و اجرای خط اول به خط دوم میرود که این روند باعث کند شدن پروسه اجرا میشود. این زبانها برعکس زبان کامپایلری به سیستمعامل وابسته نیستند چرا که به صورت همزمان و از طریق مفسر، اجرا میشوند.
به چه زبان هایی، زبان برنامه نویسی کامپایلری میگویند؟
اجازه دهید کمی بیشتر و تخصصیتر در این باره توضیح دهیم. در زبانهای کامپایل شده تمام سورس کدها به یکباره کامپایل (ترجمه) شده و به صورت کامل پردازش و اجرا میشوند. خروجی ای که کامپایلر در اختیار شما قرار میدهد یک فایل کامپایل شده برای سیستمعامل مورد نظر شما است که هیچ وابستگی به کدهای نوشتهشده ندارند. در واقع زبانهای کامپایلری به سیستمعامل وابسته هستند و امکان استفاده از کدهای کامپایل شده بر روی سیستمعامل دیگری وجود ندارد.
شی گرایی در جاوا اسکریپت به چه معنی است؟
شی گرایی یک الگو و شیوه تفکر در برنامه نویسی است. رویکرد برنامه نویسی شی گرا از جزء به کل یا پایین به بالا است (Bottom-Up). یعنی در ابتدا واحدهای کوچکی از برنامه ایجاد میشوند و با پیوند این واحدهای کوچک به یکدیگر، واحدهای بزرگتر شکل میگیرند و به همین ترتیب برنامه کاملتر میشود. برنامه نویسی شی گرا دو مفهوم کلاس (Class) و شی (Object) را ارائه میدهد.
شی گرایی در برنامه نویسی میتواند مشکلات زیادی را برای شما حل کند و باعث سادهتر شدن فرآیند کدنویسی شود. از آنجایی که مفاهیم شی گرایی به شدت به دنیای واقعی نزدیک است، درک آن برای برنامه نویس آسان خواهد بود. در شی گرایی برخلاف روشهای کدنویسی دیگر مانند رویه ای به جای دست و پنجه نرمکردن با تعداد زیادی متغیر و توابع، مستقیما با اشیا (Objects) کار میکنید. برای درک بهتر این موضوع بهتر است با مثالی این مطلب را توضیح دهیم.
کارگاهی را در نظر بگیرید که دارای دستگاههای تولیدی مختلف است. این کارگاه را میتوان به عنوان یک کلاس در نظر گرفت. هر یک از این دستگاهها محصول متفاوتی تولید میکنند که میتوان آنها را به عنوان شی در نظر گرفت. اگر برای محصولات مشکلی پیش بیاید یا اگر بخواهیم تغییر در آنها ایجاد کنیم نیازی به تخریب و از نو ساختن کارگاه نیست.
به عنوان مثال اگر محصول خروجی کیک باشد، زمانیکه بخواهیم کیک شیرینتری داشته باشیم لازم نیست تغییری در کارگاه یا دستگاهها ایجاد کنیم، کافیست کمی شکر به خمیر کیک اضافه کنیم. این دقیقا همان اتفاقی است که در برنامه نویسی شی گرا میافتد.
با جاوا اسکریپت چه کارهایی میشه انجام داد؟
از سال 1995 که جاوا اسکریپت معرفی شد، جاوا اسکریپت فقط در مرورگر برای ایجاد صفحات تعاملی وب بود. خوشبختانه با توسعه جاوا اسکریپت در سمت سرور که از سال 2009 زبان Nodejs معرفی شد؛ شما میتونید کدهای سرور سایت خودتون رو با nodejs توسعه که سینتکس و گرامر آن بر اساس زبان جاوا اسکریپت است؛ nodejs به دلیل سرعت پردازش بالا، Real time بودن و دیتابیس noSQL به نام MongoDB که دسترسی و سرعت خواندن اطلاعاتش بسیار بیشتر از MySQL نزد برنامه نویسان و توسعه دهنده ها بسیار محبوب شد. و با معرفی زبان React native تقریبا انقلابی ایجاد کرد!!! چون شما تنها با یادگیری جاوا اسکریپت میتونید حتی اپلیکیشن موبایل هم بنویسید.!!! درسته، با یکبار نوشتن کد اپلیکیشن همزمان ۲ خروجی Android و ios بگیرید و علاوه بر افزایش سرعت و صرفه جویی در زمان از زبان جاوا اسکریپت لذت ببرید.
زبانهای سمت سرور و سمت کاربر چه تفاوتی هایی دارند؟
پردازش و اجرای برخی زبانها بر روی سرور (سایت) صورت میگیرد و سپس نتیجه به سوی کاربر ارسال میشود. این زبانها برای برقراری ارتباط به نرمافزاری احتیاج دارند که به آن وب سرور گفته میشود. اما نکته جالبی که در مورد زبان JavaScript وجود دارد این است که از این زبان میتوان هم برای برنامه نویسی سمت سرور و هم سمت کاربر استفاده کرد. اما در گذشته قلمروی این زبان تنها به برنامه نویسی سمت کاربر محدود میشد. کدهای زبانهای برنامه نویسی سمت کاربر همانطور که از اسم آن مشخص است در سیستم کاربر پردازش و اجرا میشوند.
نکته: جاوا اسکریپت یک زبان سطح بالا و مفسری است که از شی گرایی پشتیبانی میکند. این زبان در سمت کاربر پردازش و اجرا میشود. البته با کمک فریم ورک هایی مانند Node.JS و Express.JS میتوان به عنوان زبان سمت سرور هم از این زبان استفاده شود.
کاربرد جاوا اسکریپت در دنیای برنامه نویسی چیست؟
پیشتر به محبوبیت زبان جاوا اسکریپت اشاره کردیم. این محبوبیت بی دلیل نیست چرا که با این زبانِ شی گرا شما قادر خواهید بود تا سایتهای بیروح خود را جان بخشی کنید و با کاربران خود تعامل داشته باشید. یعنی میتوانید فایلهای انیمیشنی، صوتی و تصویری را روی سایت خود به نمایش بگذارید. همچنین میتوانید روی سایتتان تایمر قرار دهید، رنگها را با حرکت موس تغییر دهید و بسیاری کارهای دیگر که باعث جذابیت بیشتر صفحات وب میشوند.
اما این تمام چیزی نیست که جاوا اسکریپت در اختیار شما قرار میدهد. شما با استفاده از این زبان میتوانید شروع به ساخت برنامههای وب و موبایل و دسکتاپ کنید. برای این منظور میتوانید از فریمورکهای مختلف JavaScript که مجموعهای از کتابخانهها را در اختیار شما قرار میدهند استفاده کنید. یکی از کارهای سرگرم کننده دیگری که میتوانید از طریق این زبان انجام دهید، توسعه بازیهای رایانه ای تحت مرورگر است. پس به صورت کلی میتوان کاربردهای زبان جاوا اسکریپت را به صورت زیر بیان کرد :
- برنامه نویسی فرانت اند
- برنامه نویسی بک اند با جاوا اسکریپت
- برنامه نویسی نرم افزارهای موبایل
- برنامه نویسی نرم افزارهای دسکتاپ
نقاط قوت جاوا اسکریپت
هر یک از زبان هایی که در دنیای برنامه نویسی مورد استفاده قرار میگیرند نقاط قوت و ضعف هایی دارند که زبان جاوا اسکریپت هم از این موضوع مستثنا نیست. این زبان به دلیل مزایای فراوانی که دارد در میان برنامه نویسان از محبوبیت زیادی برخوردار است که به طور خلاصه به برخی از آنها اشاره میکنیم :
- بر اساس بررسی سایت stackoverflow محبوبترین زبان برنامه نویسی سال 2018 است
- برای پردازش و اجرا به کامپایلر احتیاجی ندارد.
- یادگیری جاوا اسکریپت نسبت به خیلی از زبانهای برنامه نویسی راحتتر است.
- به صورت کراس پلتفورم روی مرورگرها یا پلتفرمهای مختلف اجرا میشود.
- نسبت به زبانهای برنامه نویسی دیگر سبکتر و سریعتر است.
- فریم ورک ها،کتابخانهها و به صورت کلی ابزارهای بسیار زیادی را در اختیارتان قرار میدهد.
- زبان بومی مرورگر وب است و در مرورگر کاربران پردازش میشود.
- امکان ایجاد صفحات وب تعاملی و پویا را به برنامه نویسان میدهد.
- در جواب عمل کاربران، عکس العمل نشان میدهد.
نقاط ضعف جاوا اسکریپت
برخی از ضعفهای این زبان برنامه نویسی عبارتند از :
- دشواری در تشخیص دلیل خطا دادن و مشکل در دیباگ کردن
- محدودیت در اجرای اسکریپتهای جاوا اسکریپت با ایجاد محدودیت هایی جهت حفظ امنیت
- اجرا نشدن بر روی مرورگرهای قدیمی
- نفوذپذیری نسبت به اکسپلویتها و عوامل مخرب
- می تواند برای اجرای کدهای مخرب در کامپیوتر کاربران استفاده شود.
- با رندر شدن متفاوت بر روی ابزارهای مختلف میتواند باعث ایجاد تناقض و نداشتن یکپارچگی شود.
برای آموزش های بیشتر با ما همراه باشید.
مطلبی دیگر از این انتشارات
برنامه نویسی و جمله << الدرس حرف و التکرار الف >>
مطلبی دیگر از این انتشارات
بررسی یک حرکت ساده RealTime مبتنی بر SignalR و Blazor WASM
مطلبی دیگر از این انتشارات
۶ کار که در اولین لحظه اتصال به سرور جدید لینوکسی انجام میدم.