100 اصطلاح ضروری مورد نیاز برنامهنویسان قسمت سوم
در قسمت قبل با بخشی از مفاهیم و اصطلاحات مورد نیاز در دنیای برنامهنویسی(بخصوص فرانت) آشنا شدیم. در این قسمت بخشی دیگری از این اصطلاحات کاربردی و ضروری را باهم مورد بررسی قرار خواهیم داد:
67) پایتون(Python): پایتون یکی دیگر از زبانهای برنامهنویسی است که به طور گستردهای در بین توسعهدهندگان مورد پذیرش و محبوبیت واقع شده است.این محبوبیت به علت آسانی یادگیری و سادگی سینتکس(Syntax)های آن است. از جمله شرکتهای بزرگی که از این زبان برنامهنویسی استفاده میکنند عبارتند از: گوگل، ناسا، Reddit و Dropbox. از زمینههای استفاده آن میتوان به Data Science، یادگیری ماشینی، اتوماسیون و توسعه API اشاره کرد. این زبان برنامهنویسی برای طراحی وب فقط در قسمت بکاند کاربرد دارد و دو فریمورک محبوب پایتون عبارتند از: جنگو(Django) و فلاسک(Flask).
68) پرامیس(Promise): پرامیس یک پروکسی برای مقداری است که هنگام ایجاد پرامیس لزوماً شناخته نشده است و به شما این امکان را میدهد تا دستورات غیرهمزمان را مدیریت و کنترل کنید و همچنین نشاندهنده تکمیل یا شکست نهایی یک عملیات ناهمزمان(Asynchronous Operation) و مقدار حاصل از آن نیز است.
69) ریاکت(React.js): یکی از کتابخانههای توسعه فرانتاند است که به مرور زمان به فریمورکی برای توسعه مدرن وب در دنیای جاوا اسکریپت تبدیل شده است. در سالهای اخیر این کتابخانه سر و صدای زیادی به پا کردهاست.(برای اطلاعات کامل در مورد این کتابخانه بسیار محبوب به دو وبلاگ Next.js و React مراجعه کنید)
70) ریاکت نیتیو(React Native): یکی از فریمورکهای جاوا اسکریپت است که با آن میتوان برنامههای موبایل برای هر دو سیستمعامل اندروید و iOS تولید کرد.
71) تغییر مسیر(Redirect): به تغییر مسیر یا همان تغییر URL به صورت موقت یا دائم، ریدایرکت گفته میشود. این تغییر مسیر میتواند در یک دامنه یکسان و یا دامنههای متفاوت صورت گیرد. اینکار برای هدایت کاربران و رباتهای جستجو به مسیرهای مورد نظر انجام میشود و از نظر سئویی بسیار حائز اهمیت است.
72) رندر(Rendering): به فرآیند تبدیل کدهای نوشته شده توسط برنامهنویسان به اشکال قابل نمایش در قالب رابط کاربری HTML، Rendering گفته میشود. فرآیند رندر کردن میتواند بر روی Server یا Client انجام شود. همچنین میتواند در زمان ساخت(Build Time)، در هر درخواست(Request) و یا در زمان اجرا(Runtime) صورت گیرد.(برای اطلاعات بیشتر به مقاله Next.js بخش هفتم مراجعه کنید)
73) رزولوشن(Resolution): معیاری است که برای توصیف اندازه و کیفیت یک تصویر، یک ویدیو یا یک صفحه استفاده میشود.
74) طراحی ریسپانسیو(Responsive Design): این نوع طراحی قالببندی وبسایت را برای تمامی دستگاهها(براساس صفحه نمایش آنها) در نظر میگیرد به گونهای که در تمامی سایزهای صفحه نمایش، تصویری خوبی از وبسایت را به کاربر ارائه میدهد. این نوع طراحی بسیار اهمیت دارد؛ در ابتدا برای ایجاد تجربه کاربری مناسب و سپس برای بالا رفتن سرعت لود صفحه و در نهایت برای رتبهبندی توسط الگوریتمهای گوگل.
75) روبی(Ruby): یکی دیگر از زبانهای برنامهنویسیست که متنباز و پویا با تمرکز بر سادگی و بهرهوری هرچه بیشتر است. فریمورک آن Ruby on Rails است که از آن Rails نیز نام برده میشود.
76) اصطلاح SAAS یا SaaS: مخفف عبارت Software as a Service است و روشی برای ارائه اپلیکیشن از طریق اینترنت در قالب یک سرویس است.
77) سئو(SEO) عبارت کامل آن Search Engine Optimization بوده و فرآیند ایجاد و اصلاح محتوا برای دید بهتر خزندههای موتورهای جستجو به وبسایت است.
78) اصطلاح HTML معنایی(Semantic HTML): نوعی روش نامگذاری برای تگهای HTML است که مفهوم بیشتری را هم برای برنامهنویسان و هم برای موتورهای جستجو به دنبال دارد. برای مثال میتوان برای ایجاد یک مقاله در کد از تگ <div> و یا <article> استفاده کرد؛ اما همانطور که مشخص است تگ دومی مفهوم بیشتری را از کاری که میخواهیم در آن قسمت انجام شود میرساند.
79) سرور(Server): سرور یک نرمافزار یا دستگاه سختافزاری است که درخواستهای ارائه شده توسط کلاینت را از طریق شبکه دریافت کرده و به آنها پاسخ میدهد.
80) پوسته(Shell): پوسته یا شِل یک فایل متنی است که شامل یکسری دستورات(Command) برای یک سیستمعامل مبتنی بر یونیکس(UNIX) است.
81) نقشه سایت(Site Map): طرح کلی تمامی صفحات یک وبسایت، به ترتیب سلسله مراتب و اولویت از اولین صفحه تا آخرین صفحه.
82) اسلایدر(Slider): اسلایدر مانند در واقع آلبوم متحرکی متشکل از تصاویر است که میتواند شکلها و افکتهای گوناگونی را بنابه سلیقه طراح داشته باشد. هر کدام از اسلایدها میتوانند حاوی عکس، فیلم، لینک، توضیحات و غیره باشند.
83) پشتههای نرمافزار(Software Stack): در اصل باندل(Bundle)هایی از نرمافزار هستند که با هم کار کرده و قسمت بکاند برنامه را تشکیل میدهند. برای مثال در مورد گوشیهای هوشمند این پشتهها متشکل از سیستمعامل و برنامههای اصلی موبایل هستند.
84) اسکیو ال(SQL): کوتاه شده عبارت Structured Query Language بوده و یک زبان برنامهنویسی برای ذخیره و پردازش اطلاعات در یک پایگاهداده رابطهای است.
85) مای اسکیو ال(MySQL): یکی از محبوبترین سیستمهای مدیریت پایگاهداده متنباز در جهان است. سیستم مدیریت پایگاهداده نوعی نرمافزار است که پایگاههایداده را مدیریت میکند.
86) اصطلاح SSL: مخفف شده عبارت Secure Sockets Layer بوده و یک پروتکل امنیتی استاندارد برای اطمینان از رمزگذاری دادههای منتقل شده بین سرور و مرورگر است. سایتهایی که URL آنها با https آغاز میشود از این روش امنیتی استفاده میکنند. همچنین نماد قفل را در نوار مرورگر خواهید دید.
87) زبان تایپ ایستا(Statically-typed language): زبانی است() که در آن انواع متغییرها در زمان کامپایل(Compile) شناخته میشوند.
88) فرمت SVG: یک فرمت خاص از image و کوتاه شده عبارت Scalable Vector Graphic است. برخلاف دیگر فرمتهای تصاویر، SVGها از پیکسل برای نمایش تصاویر استفاده نمیکنند، بلکه این کار را با استفاده از بردارها انجام میدهند. این نوع فرمت تصاویر در طراحی تحت وب بسیار مورد پسند و کاربردی است.
89) سینتکس(Syntax): سینتکس در دنیای کامپیوتر به قوانینی اشاره دارد که ساختار یک زبانبرنامهنویسی را تعریف میکند که شامل ساختار نمادها(Symbols)، علائم نقطهگذاری(Punctuation) و کلمات مخصوص هر زبان برنامهنویسی میشود. بدون سینتکس، درک زبانهای برنامهنویسی تقریباً غیرممکن است.
90) ویرایشگر متن(Text Editor): یک برنامه کامپیوتری برای ساخت، ایجاد تغییر و ویرایش متنهای ساده است. از جمله ویرایشگرهای متن معروف میتوان به SublimeText، TextEdit و TextWrangler اشاره کرد.
91) تایپاسکریپت(TypeScript): یک ابر مجموعه(Superset) و نحوه تایپی خاص برای زبان برنامهنویسی جاوا اسکریپت است که ابزارها و سینتکسهای مخصوص خود را در اختیار برنامهنویسان قرار میدهد و تایپ استاتیک اختیاری را به زبان اضافه میکند.
92) رابط کاربری(UI): رابط تعاملی بین کاربر و کامپیوتر است.
93) تجربه کاربری(UX): شامل تمامی جنبههای تعامل کاربر با رابط کاربری، شرکت، خدمات، محصولات و... میشود. تیم توسعهدهنده با آنالیز تجربه کاربری از طریق ابزارهای خاص، میتوانند محصولی کاربر پسندتر(User-friendly) ارائه کنند.
94) یونیکس(UNIX): یک سیستمعامل چند کاربره(Multiuser) و چند وظیفهای(Multitasking) است که برای انعطافپذیری و سازگاری طراحی شده است. تعدادی زیادی از این نوع سیستمهایعامل وجود دارند اما معروفترین آنها عبارتند از: Sun Solaris، GNU/Linux و MacOS X.
95) وو جیاس(Vue.js): یک فریمورک(در برخی از منابع کتابخانه نیز نام برده میشود) برای جاوا اسکریپت است که برای پیادهسازی رابط کاربری از آن استفاده میشود.
96) برنامههای تحت وب(Web app): بین برنامههای تولید شده برای پلتفرمهای مختلف و وباپها تفاوتی زیادی وجود دارد. اپها فقط از طریق سیستمعامل مشخصی که طبق آن برنامهنویسی شدهاند قابل دسترس هستند، این در حالی است که وباپها از طریق مرورگر قابل دسترس هستند و با تمامی پلتفرمها سازگاری دارند.
97) ویجت(Widgets): برنامهای که برای تسهیل دسترسی به پرکاربردترین عملگرها یا همان فانکشنهای(function) دستگاه طراحی شده است. اما در مورد ویجتهای وب باید گفت: یک قسمت از یک وبسایت دیگر است که به عنوان جزئی مستقل میتواند آن را به وبسایتی دیگر اضافه کرد.
98) نمونهسازی(Wireframe): یک طرح اولیه از وبسایت است که قالب صفحه، نحوه چیدمان محتوا، سیستم هدایت کاربر(Navigation) و مسائلی دیگر و همچنین نحوه علکرد آنها با یکدیگر را نمایش میدهد. در این نمونه به جای زیباییشناسی و شکل ظاهری، تمرکز بر روی عملکرد سیستم است.
99) اصطلاح WYSIWYG: مخفف عبارت "What You See is What You Get" به معنای آنچه میبینید همان چیزی است که دریافت میکنید است. یک ویرایشگر بصری محتوا است که به کاربر این امکان را میدهد تا محتوای متنی یک فرم(Form) را ببیند و تغییر دهد.
100) یارن(Yarn): یک پکیج منیجر(Package Manager) مانند NPM است.
کلام آخر
در این سری از مقالات با عنوان "اصطلاحات مورد نیاز برنامهنویسان" سعی کردیم اصطلاحات مهم و کاربردی را تا جایی که ممکن است جمعآوری کنیم تا شما کاربران عزیز منبعی نسبتاً جامع را به صورت یکجا در اختیار داشته باشید. اما همانطور که میدانید دنیای تکنولوژی و کامپیوتر بسیار گسترده است و اصطلاحات موجود در آن مانند اقیانوسی میماند که انتها ندارد! پس بهتر است به مطالب این مقاله اکتفا نکنید و مدام در مورد مسائل مختلف اطلاعات خود را به روز کنید.