بازبینی – 25/02/2023

1. چه زمانی از عملگر UNION در SQL استفاده می کنیم؟
زمانی که می خواهیم دو یا چند عبارت SELECT را ترکیب کنیم از عملگر UNION استفاده می کنیم. UNION همچنین دو یا چند جدول را در یک مجموعه نتیجه ترکیب می کند. UNION ردیف های متمایز را انتخاب می کند و از تکرار جلوگیری می کند.
2. زیر مجموعه های مختلف SQL چیست؟
- زبان تعریف داده (DDL): به شما این امکان را می دهد تا عملیات مختلفی را بر روی پایگاه داده مانند اشیاء CREATE، ALTER و DELETE انجام دهید.
- زبان دستکاری داده ها (DML): به شما امکان دسترسی و دستکاری داده ها را می دهد. این به شما کمک می کند تا داده ها را از پایگاه داده وارد کنید، به روز کنید، حذف کنید و بازیابی کنید.
- زبان کنترل داده ها (DCL): به شما امکان می دهد دسترسی به پایگاه داده را کنترل کنید. مثال – اعطا، لغو مجوزهای دسترسی.
3. تفاوت بین BCNF و 4NF چیست؟
در حالت عادی چهارم، هیچ وابستگی چند ارزشی جداول وجود ندارد، اما در BCNF، دادههای وابستگی چند ارزشی در جداول وجود دارد.
4. اگر روی شاخه های چندگانه git کار می کنید، چگونه به یک شاخه خاص سوئیچ کنیم؟
تمام شاخه های موجود در git reposiotry را بررسی کنید
git branch
به شاخه خاصی تغییر دهید
git checkout <branchname>
5. چگونه پیام commit commit قبلی را تغییر می دهید؟
git commit --amend -m '<commit message>'
6. در لینوکس، هر زمان که برنامه ای را اجرا می کنیم، پرچم می دهیم. برخی از ‘-‘ و برخی از ‘–‘ استفاده می کنند. تفاوت در چیست ؟
یک خط فاصله را می توان با چند پرچم تک کاراکتری دنبال کرد. یک خط فاصله دوگانه پیشوند یک گزینه تک و چند کاراکتری است.
7. عناصر بلوک و عناصر درون خطی در HTML چیست؟
- عناصر سطح بلوک عناصری هستند که تمام عرض محفظه والد خود را می گیرند و یک خط جدید بعد از عنصر ایجاد می کنند.
- از طرف دیگر عناصر درون خطی عناصری هستند که فقط به اندازه لازم عرض می گیرند و بعد از عنصر خط جدیدی ایجاد نمی کنند.
8. هسته و پوسته چیست و چگونه به هم مرتبط هستند؟
- هسته هسته سیستم عامل است که به طور مستقیم با سخت افزار تعامل دارد. هسته مسئول مدیریت فرآیندهای سیستم، زمانبندی وظایف، مدیریت حافظه و مدیریت درایورهای دستگاه است.
- از طرف دیگر، پوسته یک رابط کاربری است که به کاربران اجازه می دهد با سیستم عامل تعامل داشته باشند. این یک رابط خط فرمان یا رابط کاربری گرافیکی (GUI) برای کاربران برای اجرای دستورات، راه اندازی برنامه ها و مدیریت فایل ها و دایرکتوری ها فراهم می کند.
- هسته و پوسته هر دو اجزای کلیدی یک سیستم عامل هستند. هسته مسئول مدیریت منابع سیستم و تعامل با سخت افزار است، در حالی که پوسته یک رابط کاربری برای تعامل کاربران با سیستم عامل فراهم می کند. آنها برای مدیریت سیستم کامپیوتری و اجرای دستورات و وظایف کاربر با هم کار می کنند.
9. دستور git برای دیدن تمام commit های یک فایل خاص چیست؟
git log --all <file_name>
10. استفاده از روش dunder “eq” در پایتون چیست؟
برای تغییر نحوه بررسی اینکه پایتون با استفاده از عملگر “==” مساوی بودن دو چیز را بررسی می کند، می توانیم یک تابع خاص به نام “eq” در کلاس خود ایجاد کنیم. این تابع زمانی فراخوانی می شود که از عملگر “==” روی اشیاء کلاس خود استفاده کنیم. اگر این تابع را تعریف نکنیم، پایتون از یک روش پیشفرض استفاده میکند که بررسی میکند آیا دو شی در یک مکان در حافظه رایانه ذخیره شدهاند یا خیر.
11. تفاوت rem و em در CSS چیست؟
- rem مخفف “root em” است و همیشه نسبت به اندازه فونت عنصر ریشه (یعنی عنصر html) است. به عنوان مثال، اگر اندازه فونت عنصر ریشه روی 16 پیکسل تنظیم شود، 1rem برابر با 16 پیکسل است. اگر اندازه فونت عنصر ریشه تغییر کند، تمام مقادیر rem بر این اساس تحت تأثیر قرار خواهند گرفت.
- em مخفف “element em” است و نسبت به اندازه قلم عنصری است که مقدار em روی آن اعمال می شود. به عنوان مثال، اگر یک عنصر پاراگراف دارای اندازه فونت 16 پیکسل باشد، 1em برابر با 16 پیکسل است. اگر اندازه فونت یک عنصر والد تغییر کند، تمام مقادیر em در داخل آن عنصر بر این اساس تحت تأثیر قرار خواهند گرفت.
12. اشیاء قابل تغییر در پایتون چیست و بهترین راه برای شناسایی آنها چیست؟
- اشیاء قابل تغییر را می توان پس از ایجاد تغییر داد.
- بهترین راه برای تشخیص اینکه آیا یک شی قابل تغییر است یا نه این است که سعی کنید آن را تغییر دهید و ببینید آیا تغییر در شی اصلی منعکس شده است یا خیر.
- برای تشخیص اینکه آیا یک شی قابل تغییر است یا نه، می توانیم از تابع id() در پایتون استفاده کنیم. تابع id() یک شناسه عدد صحیح منحصر به فرد را برای یک شی برمی گرداند، که می تواند برای تعیین اینکه آیا دو متغیر به یک شی اشاره دارند یا خیر استفاده می شود.
>>> my_list = [1, 2, 3]
>>> my_tuple = (1,2,3)
>>> print(id(my_list))
139941828301888
>>> print(id(my_tuple))
139941826669696
>>> my_list += [4,5,6]
>>> my_tuple += (4,5,6)
>>> print(id(my_list))
139941828301888
>>> print(id(my_tuple))
139941828542624
می بینیم که هویت لیست تغییر نمی کند، در حالی که هویت چندگانه تغییر می کند. این بدان معنی است که ما لیست خود را گسترش داده ایم، اما یک تاپل کاملا جدید ایجاد کرده ایم.
13. چرا نباید از ارث بری چندگانه در توسعه نرم افزار استفاده کنیم؟
- پیچیدگی: وراثت چندگانه می تواند پیچیدگی یک پایگاه کد را افزایش دهد. وقتی یک کلاس از چندین کلاس والد ارث می برد، ممکن است تعیین اینکه کدام پیاده سازی یک متد باید در یک سناریوی خاص مورد استفاده قرار گیرد، مشکل باشد. این می تواند منجر به سردرگمی و خطا شود.
- مشکل الماس: مشکل الماس یک مسئله رایج در وراثت چندگانه است که در آن یک کلاس از دو کلاس والد ارث می برد که هر دو از یک والد مشترک به ارث می برند. این می تواند منجر به ابهام در سلسله مراتب وراثت شود و تعیین اینکه کدام پیاده سازی والدین باید استفاده شود را دشوار می کند.
14. تفاوت بین زبان تایپ قوی و تایپ ضعیف چیست؟
-
در یک زبان قوی تایپ شده، متغیرها دارای یک نوع داده خاص هستند و زبان قوانین سختگیرانه ای را در مورد نحوه استفاده از متغیرهای انواع مختلف اعمال می کند. به عنوان مثال، در یک زبان با تایپ قوی مانند جاوا، نمیتوانیم بدون اینکه رشته را به یک عدد صحیح تبدیل کنیم، یک مقدار رشته به یک متغیر عدد صحیح اختصاص دهیم. کامپایلر این قانون را در زمان کامپایل اجرا می کند و از بروز خطاهای مربوط به نوع در زمان اجرا جلوگیری می کند.
-
در یک زبان با تایپ ضعیف، متغیرها نیازی به داشتن یک نوع داده خاص ندارند و زبان ممکن است به طور خودکار بین انواع داده های مختلف در صورت نیاز تبدیل شود. به عنوان مثال، در یک زبان با تایپ ضعیف مانند جاوا اسکریپت، میتوانیم یک مقدار رشته را به متغیری که بهعنوان عدد صحیح اعلام شده است، اختصاص دهیم و در صورت امکان، زبان بهطور خودکار رشته را به عدد صحیح تبدیل میکند.
15. تفاوت بین زبان تایپ ایستا و تایپ پویا چیست؟
-
زبان هایی که به صورت ایستا تایپ می شوند باید نوع داده یک متغیر را قبل از استفاده از آن اعلام کنند. این بدان معنی است که کامپایلر می تواند نوع هر متغیر را در زمان کامپایل بررسی کند و اطمینان حاصل کند که فقط مقادیری از نوع صحیح به هر متغیر اختصاص داده شده است. نمونه هایی از زبان های تایپ ایستا شامل جاوا، سی پلاس پلاس و سی شارپ است.
-
از سوی دیگر، زبانهایی که به صورت پویا تایپ میشوند، نیازی به تعریف متغیرها با یک نوع داده خاص ندارند. در عوض، نوع یک متغیر در زمان اجرا بر اساس مقداری که به آن اختصاص داده شده است، تعیین می شود. این به انعطاف پذیری بیشتری در برنامه نویسی اجازه می دهد و می تواند خواندن و نوشتن کد را آسان تر کند. نمونه هایی از زبان های تایپ پویا عبارتند از Python، Ruby و JavaScript.
16. چگونه بین آیتم های انعطاف پذیر (CSS) فاصله می گذارید؟
استفاده از ویژگی شکاف ویژگی gap شکاف های بین سطرها و ستون ها را تعیین می کند. این مختصر برای شکاف ردیف و شکاف ستون است.