جستجو: 'تفاوت' - صفحه ۱

تفاوت Value type و Reference type

طبق انواع DataType های زبان C# دو تا از مهمترین اونا Value type ها و Reference typeها هستند که با نحوه ذخیره سازی در حافظه تفاوت پیدا میکنند. به طوری که Value Typeها در Stack ذخیره میشوند ولی Reference Typeها در Stack و Heap. اما یعنی چی؟

 

 

بذارید یه چیزی رو تعریف کنم، رفته بودم برای مصاحبه و ازم پرسیدند که فرق بین Value type و Reference type در زبان C# چیه منم که جمله بالا رو خوب تو ذهنم بود سریع گفتم و با مثال زدن Struct و Class تفاوت هارو گفتم ولی در عمل ازم خواستند تا مثالی رو حل کنم ولی خب نتونستم جواب بدم. خیلی برام جالب شد و رفتم اساسی راجع بهش خوندم و به نتایجی رسیدم که دیدم حیفه اینجا به اشتراک نذارم.

قوانین SOLID

مفهوم S.O.L.I.D در برنامه نویسی موضوعیه که دونستنش برای هر برنامه نویسی خیلی مهمه جوری که شیوه نوشتن کدهاتون رو کاملاً تغییر میده. در جلوتر مثال‌های حل شده با زبان C# هست اما نگران نباشید تمامی این قواعد رو میتوانید برای هر زبانی که مفاهیم اصلی شی گرایی را دارد، استفاده نمایید.


چرا باید مفاهیم S.O.L.I.D. رو یاد بگیریم؟

چیزی که این وسط برای همه پیش میاد اینه که میگن من مفاهیم شی گرایی رو بلدم و دیگه نیازی به قواعد S.O.L.I.D. ندارم که یاد بگیرم. بذارید این دو مسئله رو از هم جدا کنیم. اگه بخوام یه مثال ساده بزنم، برای یادگیری و استفاده از هر دو مسئله اینه که شما تمام ابزارهای چوب بری رو در اختیار داشته باشی و بگی که خب نیازی نیست که علم چوب بری هم یاد بگیرم.
با یادگیری برنامه نویسی شئ گرا، در حقیقت یاد میگیرد که چطوری از کلاس ها استفاده کنید، چگونه برای یک کلاس خصوصیت تعریف کنیم و...، اما اینکه بتونیم از این قابلیت‌ها در مسیر درست استفاده کنیم داستان فرق میکنه.
S.O.L.I.D. در واقع یک چهارچوب منظم رو برای ما ایجاد میکنه که مکمل شی گرایی است و با حرکت در این مسیر میتوانیم کدهای بهینه تری بنویسیم.

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

SOLID مخفف پنج عبارته زیر است:

1) S: Single Responsibility Principle
2) O: Open/Closed Principle
3) L: Liskov Substitution Principle
4) I: Interface Segregation Principle
5) D: Dependency Inversion Principle

۶ چالشی که نشان می‌دهد شما بسیار باهوش هستید

 

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

امین محمدی

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