معرفی یک زبان ساده اما قدرتمند

۵ بازديد
سی شارپ


زبان برنامه نویسی سی شارپ چیست؟

مایکروسافت #C را ادغامی از قدرت ++C و سادگی Visual Basic معرفی می‌کند. اما به نظر من، در حال حاضر سادگی #C به مراتب خیلی بیشتر از Visual Basic است.
در اواخر دهه ۱۹۹۰ که مایکروسافت و شرکت Sun Microsystems – مالک Java – در دنیای نرم افزار رقابت سرسختانه‌ای داشتند، مایکروسافت تصمیم گرفت یک زبان برنامه نویسی جدید توسعه دهد.
در ابتدا #C از لحاظ ساختاری خیلی به Java و بیشتر از آن به ++C نزدیک بود اما رفته رفته و با توسعه این زبان برنامه نویسی جدید، تفاوت‌ها بیشتر و بیشتر شدند.


زبان برنامه نویسی سی شارپ قدیمی است؟

در زمانه‌ای که همه چیز با یک ساعت پیش از خود متفاوت است، حالا که می‌دانیم #C در واقع پیش از شروع قرن ۲۱ ساخته شده است، آیا می‌توانیم نتیجه بگیریم که #C پیر شده و بهتر است سراغ یک زبان تازه نفس‌تر مثل Swift برویم؟
قطعا خیر، #C تا به امروز بارها به روز شده است. نسخه ۷٫۱ زبان #C به تازگی منتشر شده است. از نظر من #C یک جوان ۳۰ ساله است که به اندازه کافی جوان و به اندازه کافی با تجربه است.


شی گرایی به چه معنا است؟

در ابتدای این مقاله، گفتم که #C یک زبان برنامه‌نویسی شی گرا است. برای اینکه توضیح بدهم دقیقا یک زبان شی گرا چیست، ابتدا باید بدانیم در زبان‌های غیر شی‌ گرا چه می‌گذرد. زبان‌های غیر شی گرا از دو موجودیت «داده» و «عملیات» تشکیل می‌شوند.
یعنی کل یک نرم افزار، مثل نرم اپلیکیشن اندروید، iOS یا هر نرم افزار دیگری که روی کامپیوترهای شخصی اجرا می‌شوند، از چندین عملیات (Function) که یک یا چند داده (Data) می‌گیرد ساخته شده که این function تغییرات لازم را روی آن داده‌ها اعمال می‌کند و داده جدید را به function قبلی بر می‌گرداند.


برنامه نویسی سی شارپ برای من مناسب است؟

اگر به این فکر می‌کنید که برای اولین بار پا به دنیای یک زبان برنامه نویسی بگذارید، #C گزینه مناسبی برای شما است. بگذارید با هم صادق باشیم، واقعا فرقی نمی‌کند که چه زبانی را انتخاب می‌کنید. هر کدام نسبت به دیگری قابلیت‌ها و ضعف‌هایی دارد. مهم‌تر از این تفاوت‌ها، هدف شما از یادگیری برنامه نویسی است.
مثلا اگر بخواهید یک اپلیکیشن اندروید یا iOS بسازید، به ترتیب زبان‌های جاوا و Swift گزینه‌های مناسبی هستند. یا اگر به پیاده سازی ظاهر صفحات وب علاقه دارید می‌توانید با JavaScript شروع کنید.
اما #C این امکان را به شما می‌دهد که در پلتفرم‌های مختلف نرم‌افزار مورد نظر خود را توسعه بدهید. من اسمش را زبان برنامه نویسی میانبر می‌گذارم. زبانی که با آن هم می‌توانید اپ اندروید، iOS بنویسید و هم سایت و سرویس‌های سمت سرور را توسعه بدهید.
این یعنی #C می‌تواند تقریبا یک چرخه کامل در محصولات نرم‌ افزاری را پشتیبانی کند، دیگر چه می‌خواهید؟

کاربردهای زبان برنامه نویسی# C

به طور کلی با استفاده از زبان سی شارپ می توان هر برنامه ای نوشت. اما اگر بخواهیم تخصصی تر به آن نگاه کنیم این زبان در ساخت اپلیکیشن های رومیزی ویندوز و بازی ها از عملکرد بهتری برخوردار است. علاوه بر این می توان از این زبان برای توسعه اپلیکیشن های تحت وب استفاده کرد.
محبوبیت این زبان در توسعه برنامه‌های موبایل نیز افزایش یافته است. با استفاده از ابزار Xamarin می توان برنامه های موبایلی که با زبان سی شارپ نوشته شده را به هر پلتفرمی تبدیل کرد.
محیط ویژال بیس که برای طراحی برنامه‌های تحت وب با زبان سی شارپ استفاده می شود


استفاده از زبان سی شارپ در طراحی بازی‌ها

استفاده از زبان برنامه نویس سی شارپ برای طراحی بازی ها با استفاده از موتور ساخت بازی Unity امکان پذیر است. این پلتفرم در حال حاظر محبوب ترین موتور بازی می‌باشد. بیش از یک سوم بازی‌های برتر دنیا با Unity ساخته شده‌اند، علاوه بر این نزدیک به 770 کاربر فعال، از بازی‌های ساخت Unity استفاده می کنند. تقریبا 90% بازی‌های VR ساخته شده برای سامسونگ و 53% از بازی‌های ساخته شده برای Oculus Rift VR از Unity کمک گرفته اند.
در واقع اگر کسی قصد ورود به صنعت ساخت بازی یا موضوعات مربوط به واقعیت مجازی را داشته باشد، می‌تواند با استفاده از آموزش زبان برنامه نویسی سی شارپ توانایی‌های خود را تقویت کرده و در این صنعت فعالیت کند. Unity موتور بازی که از زبان سی شارپ بهره می گیرد.

نتیجه گیری :
سی شارپ یک زبان ساده اما قدرتمند است که با استفاده از آن میتوان برای پلتفرم های مختلف برنامه نوشت. # C پشتوانه مستحکمی همچون شرکت مایکروسافت را پشت سر خود دارد و به این زودی ها از رده خارج نمی شود.
برنامه نویسان زیادی در سرتاسر جهان از c# استفاده می کنند.همین موضوع باعث شده که شما راه حل بیشتر مشکلاتتان را از اینترنت پیدا کنید، چون احتمالا حداقل یک نفر پیش از شما با آن مشکل روبرو شده است.
امیدواریم که توانسته باشیم مفهوم کلی مطالب خود را به سمع و نظر شما کاربر محترم رسانده باشیم.

در دنیای برنامه نویسی، توسعه دهنگان چند دسته اند؟

۴ بازديد

انواع توسعه دهنده گان

توسعه دهندگان
Front-end

 توسعه نرم‌افزار front-end، بخشی از برنامه نرم‌افزاری است که شما می‌بینید و با آن تعامل دارید.

توسعه دهندگان فرانت-اند نیاز به یک خلاقیت بصری و ایده پردازی دارند تا بتوانند تجربه کاربری خوبی برای کاربر ایجاد کنند .

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

توسعه‌دهندگان Back-end

درواقع تخصص توسعه‌دهندگان back-end در ساخت و پشتیبانی زیرساخت منطقی است که به کاربران قدرت استفاده از سایت را به صورت پویا میدهند ولی کدهای آنها برای کاربر قابل مشاهده نیست. توسعه‌دهندگان back-end علاوه بر کار با زبان های برنامه نویسی، با پایگاه‌های داده، سیستم حافظه نهان و سرویس‌دهنده‌ها هم کار می‌کنند.

توسعه‌دهندگان full-stack

به یک توسعه‌دهنده نرم‌افزاری که مهارت‌های توسعه front-end و back-end را باهم داشته باشد، توسعه‌دهنده full-stack می‌گویند. 

توسعه‌دهندگان دسکتاپ

توسعه‌دهندگان دسکتاپ، نرم‌افزارهای کاربردی را برای دسکتاپ و سیستم‌های دیگر مثل ویندوز، macOS ، Linux یا BSD توسعه می‌دهند. در واقع نوشتن کد تمام برنامه های کاربردی که توی کامپیوتر ها میتوان نصب و اجرا شود را شامل می شود. مانند نرم افزارهای انبار داری، حسابداری، اتوماسیون های اداری و امثال این ها…

توسعه‌دهندگان وب

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

توسعه‌دهندگان موبایل

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

 

برنامه نویسی شی گرا چیست و چه زبان هایی شی گرا می باشند؟

۱۰ بازديد
برنامه نویسی شی گرا


برنامه نویسی شی گرا

در اوایل دهه ۱۹۷۰ توسط آلن کی (Alan Kay) طراحی شده یعنی اولین قدمهای این سبک برنامه نویسی توسط آلن کی برداشته شده است. اولین زبان شی گرا توسط آلن کی طراحی شد. اسم این زبان Small Talk می باشد، آلن کی گفته بود: آن چیزی که باعث شد این فکر به ذهنم برسد نحوه عملکرد سلولهای زیست محیطی بود. یعنی این سبک برنامه نویسی از روی سلولهای جاندارها الگو برداری شده است
همه چیز در مورد اشیا است. همانطور که اشیا در دنیای واقعی رفتار میکنند، در دنیای نرم افزار هم همینطور است. اشیا در یک برنامه تقریبا همه کار را انجام میدهد. به عنوان مثال ماشین ها شتاب میگیرند یا انسان ها راه میروند(انسان هم می تواند یک شی باشد) یا هواپیماها پرواز میکنند و ماهی ها شنا میکنند. به طور مشابه ما در نرم افزار نیز اشیایی میسازیم که رفتاری خاص را انجام میدهند. و ما از آن برنامه انتظار داریم که رفتارهای اشیا را انجام دهند(راه رفتن، پرواز کردن …). پس زمانی که نرم افزار ما اجرا میشود اشیا ما به وجود می آیند.

مثال شی گرایی در سی شارپ

قبل از اینکه وارد کد زنی شی گرایی در سی شارپ شویم مثالی میزنیم و سپس آن را وارد کد خواهیم کرد. ما همه یک انسان هستیم و هر کدام از ما یک سری ویژگی های رفتاریخاص خود را داریم. اگر ما فرض کنیم که زمین یک نرم افزار است انسان و اشیا دیگر را میتوان یک شی درون این نرم افزار تعریف کرد. هر کدام از اشیا عملیات های(action) خاص خود را انجام میدهند.


مفاهیم اساسی در برنامه نویسی شئ گرا

سطح دسترسی (Access Modifiers)
سطوح دسترسی کلمات رزرو شده ای هستند که بر روی اعلان یک کلاس ، متد ، صفت ، فیلد و دیگر اعضای یک کلاس میتوانند اعمال شوند.
کلمات رزرو شده برای سطوح دسترسی در زبان سی شارپ به صورت زیر است:
• public
• private
• protected
• internal


آشنایی با مفاهیم اصلی زبان برنامه‌نویسی شی گرا

1.انتزاع(Abstraction)
انتزاع به فرآیندی گفته می‌شود که در زمان بررسی یک شی، تنها خصوصیت و رفتارهایی باید در تعریف آن شی لحاظ شوند که در سیستم مستقیما کاربرد دارند. در واقع انتزاع یا Abstraction مثل یک فیلتر عمل می‌کند که تنها ویژگی‌ها یا خصوصیات و رفتارهایی که در برنامه مورد استفاده است را از آن عبور می‌دهد.

2.کسپوله سازی(Encapsulation)
کپسوله سازی به معنی پنهان کردن فرآیند اصلی اجرای یک برنامه‌ از دید کاربران است. که این اتفاق درون یک شی رخ می‌دهد.

3.ارث‌ بری(Inheritance)
وراثت یکی از اصلی‌ترین مفاهیم موجود در برنامه‌نویسی شی گرا است. همانطور که از نام آن مشخص است وقتی یک فرزند متولد می‌شود قطعا خصوصیات و رفتارهایی را از والدین خود به ارث می‌برد. در دنیای برنامه‌نویسی هم به همین صورت است.
وقتی یک کلاس از کلاس دیگری ارث‌ بری می‌کند یعنی به خصوصیات و رفتارهای کلاس والد دسترسی دارد. این کار باعث می‌شود تا حجم کدهای نوشته شده به شدت کاهش یابد.

4.چندریختی(Polymorphism)
برای درک مفهوم چند ریختی یا پلی مورفیسم در دنیای برنامه‌نویسی مثالی را از دنیای واقعی خدمت شما عزیزان ارائه می‌دهیم. در این کره‌ی خاکی انسان‌های بسیاری وجود دارند که دارای گویش‌های مختلف، زبان‌های مختلف هستند و در شهرهای متفاوت زندگی می‌کنند. اما تمامی این افراد به عنوان یک انسان شناخته می‌شوند. اگر در اینجا انسان را به عنوان یک کلاس والد درنظر بگیریم و انسان ایرانی، آفریقایی، چینی و … را به عنوان کلاس فرزند، متوجه خواهید شد که انسان ایرانی از کلاس والد مشتق شده است. اما انسان ایرانی نحوه‌ی صحبت کردن اش با نحوه‌ی صحبت کردن یک انسان آفریقایی متفاوت است یعنی در واقع دارای رفتار متفاوت هستند. یعنی رفتاری که در شیء والد وجود دارد گاها در شکل فرزند ممکن است تغییر کند. در زبان‌ برنامه‌نویسی شیءگرا به پلی مورفیسم یا Polymorphism تغییر رفتار یک شیء در اشیاء فرزند آن گفته می‌شود. که در زبان برنامه‌‎نویسی #C این تغییر رفتارها به کمک تعریف متدها به صورت virtual و override است و در فصول بعدی به تفصیل آنها را توضیح خواهیم داد.