عجله کار شیطونه؛ ۳ اشتباه متداولِ توسعهدهندگان، وقتی که عجله دارند.
نویسنده: زیمون آدامیاک — ما میخواهیم کارها را تمام کنیم. این ذات ما است و چیزی است که بابت آن حقوق میگیریم. ولی وقتی از یک کار سراغ کار دیگری میرویم، گاهی اوقات چیزهای اساسیای را فراموش میکنیم: کیفیت کد و رشد ما به عنوان برنامهنویس.
میان گناهان زیادی که مرتکب میشویم، آنهایی که به خاطر عجله رخ میدهند از همه غیرمنطقیترند. به همین دلیل، باید هر از چند گاهی دنبال فرصتی باشیم تا کمی سرعتمان را کم و نفسی تازه کنیم.
این لیستِ من از مهمترین اشتباهاتی است که مرتکب میشویم، وقتی که حس میکنیم زمان کافی برای انجام کار به شیوه درستش وجود ندارد.
اشتباه اول: نخواندن کد به اندازه کافی
تا حالا فیلمی دیدهاید که در آن برنامهنویسی برای چندین دقیقه به صفحه نمایش خیره شود و هیچکاری انجام ندهد؟ من هم ندیدهام! معمولا آنها چیزی را با سرعت نور تایپ میکنند و تمام؛ مشکل حل میشود. با کمال تاسف، کار ما به این زیبایی نیست.
ما باید یک عالمه کد بخوانیم و در کنار آن، باید بفهمیم که این کد چهکاری انجام میدهد و چرا این کار را میکند.
کدهای تصادفی از اینترنت
همین نخواندن کد گونههای متفاوتی دارد. آخرین باری که دنبال جواب چیزی در اینترنت بودید، کدی را در StackOverflow پیدا کردید و آن را یکسره کپی پیست کردید چه زمانی بود؟ برای خود من، احتمالا همین هفته.
به احتمال خیلی زیاد این کد کار هم میکند. ولی آیا میدانید که این کد چهکار میکند، چرا اینکار را انجام میدهد و محدودیتهایش چیست؟ آیا امن است؟ در قبال الزامات و موارد خاص چگونه عمل میکند؟
بعضی وقتها فقط باید کد را پیست کنید و دعا کنید که کار کند. بعضی چیزا برای فهم و زمان من و شما زیادی پیچیده هستند! ولی معمولا در ۱۵ تا ۳۰ دقیقه میتوانید کد را بفهمید. شما باید اطمینان کافی داشته باشید که کدی را که برای پروژه وارد کردهاید بلدید. اگر اینگونه نباشد، شما امنیت و قابلیت نگهداری پروژه در بلندمدت را به خطر انداختهاید.
کدهای پروژه
خواندن کد پروژهی خودتان چه؟ این همان داستان قدیمی است. فرض کنید برای درستکردن باگی فراخوانده شوید که با آن آشنا نیستید. خوشبختانه یک حدس دارید و سعی میکنید با استناد به آن بلافاصله مشکل را حل کنید. این شیوه کار کرد؛ پس تغییرات را اعمال میکنید و سر کار خودتان میروید.
این یک اشتباه بزرگ است. اگر با کد پروژه آشنا نیستید و تستها را ندارید، احتمال این که این کارِ شما چیزی را خراب نکند و همهی موارد را مدیریت کند بسیار کم است.
برای درستکردن چیزی باید با آن آشنا باشید. اینکه با تغییرات مختلف با کد سر و کله بزنید دردی را دوا نمیکند. ممکن است یکی دو بار هم شانس بیاورید ولی نهایتا دیر یا زود یک فاجعه به بار میآورید.
کد کتابخانهها
چند کتابخانه را در شروع پروژه به صورت پیشفرض اضافه میکنید؟ مطمئنید که به همهی آنها نیاز دارید و میدانید چگونه پیادهسازی شدهاند؟
نمیخواهم بگویم که نباید از کتابخانهها و فریمورکها استفاده کنید. اتفاقا باید از هر کدِ امتحان پس داده و تایید شده در هرجایی که میشود استفاده کرد. اختراع دوبارهی چرخ یکی از مشکلات رایج است و میتواند بیشتر از سود، ضرر برساند.
چیزی که میخواهم بگویم این است که باید ابزاری را که استفاده میکنیم بشناسیم. کتابخانههای محبوب معمولا از لحاظ نرمافزاری بینظیرند و با مطالعهی کد آنها میتونید بسیار بیاموزید. این کار یا باعث میشود که توسعهدهندهی ماهرتری شوید یا متوجه شوید که اصلا نیازی به این کتابخانه ندارید. در هر صورت، این بازی برای شما برد-برد است.
نیازی به تحلیل همهی کتابخانههایی که استفاده میکنید نیست؛ ولی وقتی از چیزی بارها استفاده میکنید، خوب است نگاهی به چگونگی کار کردن آن بیندازید.
خواندن کدهای خوب به شما کمک میکند تا توسعهدهنده بهتری شوید و محصولاتتان را بهتر بشناسید. ممکن است فکر کنید که زمان کافی را برای این کار ندارید، ولی این اشتباه است. آشنایی با کد محصولتان باعث میشود تا سرعت کدزنیتان بالا برود و خواندن کدهای دیگر به رشد شما به عنوان یک توسعهدهنده کمک میکند. پس در بلندمدت، کدخوانی باعث صرفهجویی در زمان میشود نه هدر دادن آن.
اشتباه دوم: ریفرکتور نکردن
میخواهید یک فیچر را پیادهسازی کنید و عجله هم دارید. خوشبختانه شما ایدهای دارید تا این ویژگی را خیلی سریع بسازید. پس به سرعت یک کد رمزآلود مینویسید و همهچیز هم به نظر درست کار میکند. مشکل حل شد، برویم سراغ بعدی.
اشتباه!
وقتی بدون توجه به گزینههای مختلف شروع به کدزنی میکنید و اولین راه حل را در نظر میگیرید، کد شما ناقص است. ممکن است ناکارآمد، ناخوانا و غیرقابل نگهداری باشد. در بدترین حالت، ممکن است هر سهتای اینها باشد و حتی مشکل را هم حل نکند.
این که کارتان را سریع تمام کنید، وسوسهانگیز است. حتی ممکن است باعث افتخار شما شود. ولی یکی از نشانههای یک توسعهدهندهی قوی، ساختن کدهای با کیفیت و ارتقا کدهای پروژه است.
پروژهای که در آن همه مشغول ساختن فیچرهای جدید به سریعترین شکل ممکن هستند، محکوم به یک خطای بزرگ فنی است. در طول زمان، کمتر و کمتر قابل نگهداری میشود و بهرهوری توسعهدهندگان از دست میرود. این وظیفه همه توسعهدهندههای یک تیم است که کد را بهبود ببخشند.
پس مطمئن شوید که برای پیادهسازی یک فیچر به اندازه کافی وقت بگذارید. عوارض جانبی کارتان و چگونگی تناسب آن با ساختار کلی برنامه را در نظر بگیرید. شما باید همیشه کد پروژه را در شرایطی بهتر از قبل تحویل بدهید. این کار نهتنها سرعت توسعه را در بلندمدت افزایش میدهد، بلکه شما را هم برنامهنویس ماهرتری میکند.
اشتباه سوم: تست نکردن
چند وقت یکبار یک فیچر را بدون آمادهکردنِ تست برای اطمینان از درست بودن آن مینویسید؟ متاسفانه این یک خطای رایج است؛ به خصوص در پروژههایی که باید سریع باشید. همه فکر میکنند که تستها وقت ارزشمند توسعهدهندگان را میگیرند، پس وقت دیگری هم میتوان سراغ آن رفت، گاهی هیچوقت!
در واقع، تستکردن برای هر پروژه با طول عمر زیاد یا قابلیت رشد بالا حیاتی است. مهم نیست کدتان چقدر خوب باشد. یک نفر باید آن را تغییر دهد. و وقتی این کار را بکند، باید برایشان این اطمینان وجود داشته باشد که کد هنوز کار میکند.
بدتر از آن، یک نفر میتواند بخشهای مختلف کد را تغییر دهد که احتمالا فیچر شما را خراب میکند. بدون یک تست، شما هرگز متوجه این نمیشوید.
پس ممکن است تصور کنید که تست نوشتن اتلاف وقت و هزینه است ولی دقیقا برعکس. بعدا در آینده خودتان یا دیگر توسعهدهندهها برای نوشتن این تستهای مفید از شما ممنون خواهند بود!
ترجمه از:
“Three Mistakes Developers Make When They’re in a Hurry” by Szymon Adamiak
کار سرور چیست و چه کاربردی دارد؟
در ابتدای این مقاله باید به این سوال پاسخ دهیم که معنی سرور چیست در پاسخ به پرسش کار سرور چیست و تعریف سرور بایستی گفت به بیان ساده سرور، کامپیوتری همیشه روشن و قدرتمند است که کاربران در زمانهای متفاوت، از آن انتظار پاسخ به درخواستهای خود را دارند. زمانی که دسترسی به سرور تنها در محدوده یک شبکه داخلی باشد، آن را سرور شبکه مینامند. به این معنا که تمامی کامپیوترهای موجود در این شبکه، از سرور فرمان میگیرند و نیازهای تحت شبکه خود را به کمک آن تامین میکنند. حال اگر گستره این شبکه را کمی بیشتر و تشکیل شده از تمام کامپیوترهایی که از طریق اینترنت به هم وصل شدهاند بدانیم، با گروه بسیار بزرگی از کامپیوترهای همیشه روشن و در دسترس از طریق اینترنت، روبرو هستیم. سرورهای اینترنتی، اطلاعاتی که در هر زمان از شبانهروز بر روی پهنای اینترنت جستجو میشوند را، در اختیار کاربران قرار میدهند، حال که مفهوم سرور یعنی چه آشنا شدید در امتداد مقاله به بررسی سخت افزاز سرور می پردازیم.حال که مفهوم منظور از سرور چیست؟ آشنا شدید در امتداد مقاله به بررسی منابع سخت افزاری سرور می پردازیم.
منابع سخت افزاری سرور چیست؟
در پاسخ به پرسش سیستم سرور چیست بایستی گفت باید بدانیم که منابع سختافزاری سرور چیست؟ و تنظیمات سرور چیست، سرور از قطعات سختافزاری خاصی تشکیل شده است که بالاترین پردازش و عملکرد از آنها انتظار میرود. عموما سرورها از پردازندهای قدرتمند با چندین عدد هسته فیزیکی و مجازی، RAM بالا و هارددیسک با فضای ذخیرهسازی چند ترابایتی، تشکیل میشوند. با توجه به این میزان قدرت و عملکرد، سرور میبایست در فضایی نگهداری شود که بدون هیچگونه اختلال و قطعی به صورت ۲۴ ساعته روشن و به اینترنت وصل باشد. کاربرد سرور با توجه به این ساختار و پاسخگویی به درخواستهای متعدد کاربران، معنا مییابد.
دیتاسنتر چیست؟
در شبکه اینترنت یکی از مهمترین فاکتورها به هنگام دریافت خدمات، سرور یک پایداری محسوب میشود. حال اگر بخواهیم بگوییم دیتاسنتر چیست، باید گفت محلهای ویژهای در سراسر دنیا با نام دیتاسنتر یا همان مرکز داده، جهت نگهداری از سرور ها احداث میشوند که تمرکز آنها بر روی کیفیت شبکه، پشتیبانی قطعات و نرمافزارهای مورد نیاز است. این مراکز داده بصورت تخصصی، شرایط را برای استفاده از سرورها به دور از قطعی و مشکلات دیگر، فراهم میآورند. بنابراین “دیتاسنتر” محلی است که صدها و یا هزاران سرور را در رکها (Rack)، کیجها (Cage) و اتاقهای مختلف، جای میدهد. ساختمان دیتاسنتر از بخشهای مختلفی مانند اتاق کنترل، اتاق سرور، ژنراتورها، تاسیسات خنکسازی، انبار سخت افزار، اتاق UPS و Battery Backup، اتاق نگهداری از وسایل اطفای حریق و اتاق مدیریت شبکه تشکیل میشود. این بخشها با توجه به نیازها، طراحی و امکانات و زیرساخت برای هر مرکز داده، کاملا متفاوت خواهند بود.
ویژگی های سرور چیست؟
- انحصاریبودن منابع سختافزاری
- قابلیت افزایش و ارتقا سختافزار سرور
- اتصال دائمی به اینترنت
- سرعت عملکرد بسیار بالا
- قدرت پردازش و قدرت محاسباتی سریع
- امنیت بالا
- امکان پیادهسازی Raid نرمافزاری و سختافزاری، بر روی سرور
نواع سرورچیست و کاربرد آنها از نظر تخصیص منابع :
حال که با مفهوم عبارت منظور از سرور چیست ؟ آشنا شدید اکنون به بررسی کاربرد سرور می پردازیم سرورها جهت ارائه خدمات به کاربران به چند دسته سرور اشتراکی، سرور مجازی و سرور اختصاصی، تقسیممیشوند که نحوه تخصیص منابع آنها، متفاوت است.
سرور اشتراکی: بر روی سرور اشتراکی با توجه به نوع کاربردی که دارد تعدادی وب سایت، دیتابیس یا میل دامین تعریف شدهاند که در لحظه، پاسخگوی درخواستهای متعددی از کاربران خواهند بود. همانطوریکه از نام یک سرور اشتراکی میتوان فهمید، منابع آن اعم از پردازنده، پهنای باند، فضای ذخیرهسازی و… طبق تعاریف مدیر سرور بین کاربران با اشتراک فضای سرور ایجاد میشود.
سرور اختصاصی مجازی: مقایس بزرگتر با منابع اختصاصیتر از یک سرویس اشتراکی است که از طریق “مجازیسازها” تقسیم منابع یک سرور اختصاصی میزبان به چند ماشین مجازی، صورت میپذیرد. با توجه به اختصاصی بودن منابع ماشینهای مجازی، تعداد وبسایتهایی که بر روی سرور میزبان ایجاد میشوند از وب سایتهای سرور اشتراکی کمتر خواهند بود.
سرور اختصاصی: شرکتهای بزرگ و وب سایتهای پربازدیدی مانند فروشگاههای آنلاین، نیاز به منابعی بیش از یک ماشین مجازی خواهند داشت. کاربران این دسته سرویسها، در پردازنده RAM، فضای دخیرهسازی اطلاعات، جایگاه قرارگیری در رک و پهنای باند بر روی یک سرور، کاملا اختصاصی میزبانی میشوند.
در ایران، سرورهای اختصاصی به دو دستهی عمده سرور اختصاصی ایران و سرور اختصاصی خارج کشور تقسیم میشوند. تفاوت این دو مورد عموما محدود به موقعیت جغرافیایی آنها میشود که در چه محل و دیتاسنتری، میزبانی میشوند و در مورد سرور مجازی به، سرور مجازی ایران و همین طور سرور مجازی خارج (سرور مجازی کانادا) تقسیم شده است.
نرم افزار رایانه چیست؟
در این مطلب میخوام به زبان خیلی ساده بگم نرم افزار چیه و کاربردش توی دنیای کامپیوتری چیست و همچنین مفهموم شی گرایی
نرم افزار کامپیوتر یا به سادگی نرم افزار(Software)، مجموعه ای از داده ها یا دستورالعمل هایی است که در حافظه ی کامپیوتر ذخیره می شود و برای اجرا، این دستورات توسط پردازنده باید واکشی (خوانده) شود. به زبان ساده تر این دستورات هستند که به قسمت سخت افزاری کامپیوتر می گویند چه کاری باید انجام شود.
نرم افزار رابط بین کاربر و سخت افزار است. در حقیقت روح و جان یک کامپیوتر است که به سخت افزار هویت می بخشد.
هر نرم افزاری می تواند با توجه به پلتفرم اجرایی به یک زبان برنامه نویسی نوشته شود:
- نرم افزارهای تحت ویندوز: برنامه هایی که فقط تحت ویندوز قابل اجرا هستند این نرمافزارها باید روی کامپیوتر کاربر نصب شود، (برای مثال بازی های کامیپوتر، نرم افزار فتوشاپ، نرم افزارهای بخش موزیک و غیره)
سیستم عامل(operating system) مشهورترین نوع نرم افزارهای سیستمی می باشد. که مدیریت منابع سیستمی را بر عهده دارد. سیستم عامل همچنین ارتباط بین کاربر و اجزاء سخت افزاری و نرم افزاری دیگر(نرم افزارهای کاربردی که روی سیستم نصب میکنیم مثل برنامه ی Microsoft office) را برقرار میکند.
بعد از روشن شدن کامپیوتر سیستم عامل اولین نرم افزاری است که در حافظه رم (Ram) لود می شود و بدون آن نمی توان از سایر نرم افزارهای کاربردی که روی کامپیوتر نصب شده است، استفاده کرد.
سیستم عامل های مختلفی وجود دارند، که هرکدام از آنها محصول شرکت های کامپیوتری معتبر می باشد. از متداولترین آنها می توان به:
1 – Windows
2- Linux
3 – Unix
و غیره اشاره کرد.
- نرمافزارهای تحت وب: نوع خاصی از نرمافزارهای «کلاینت و سرور» هستند که روش طراحی و توسعه آنها نسبت به نرم افزارهای ویندوز مدرن و قویتر است، این نرم افزارها فقط با استفاده از مرورگرهای مختلف مانند (گوگل کروم، فایرفاکس و…) و اینترنت قابل دسترس هستند. برای مثال (سیستم های مدیریت محتوای وردپرس، جوملا، اپلیکیشن های مثل تلگرام، واتساپ و هر چیزی که با استفاده از مرورگر و اینترنت قابل اجرا هستند)
برنامه های تحت وب از یک هسته پایدار بهره میبرند و با تغییر در عملکرد یا به روزرسانی هسته اصلی( فایل های آپلود شده روی هاست) این تغییرات برای تمام کاربران در سطح شبکه جهانی اینترنت اعمال میشود. سرعت دسترسی به نرم افزار تحت وب از سرعت و عملکرد بسیار بهتر و مطلوب تری برخوردار است و میتوان با استفاده از تلفن همراه، تبلت و لپتاپ و یا هر دستگاهی که اجازه باز کردن صفحات اینترنتی را میدهند از قابلیتهای آن بهرمند شد.
برنامه نویسی شی گرایی
امروزه اکثریت نرم افزارها در زبان برنامه نویسی سطح بالا ( استفاده از شیوه ی شی گرایی Object-Oriented Programmin مخفف OOP ) نوشته شده است.شما وقتی از این شیوه استفاده میکنید اول باید تمام ویژگی ها و متدهایی که قرار هست یک شی داشته باشد را داخل یک کلاس (یک تعریف ضمنی از یک چیز یا مفهوم در دنیای واقعی به زبان ساده بهش طرح کلی هم گفته میشه) کدنویسی می کنید و حالا برای استفاده از این کلاس طراحی شده و استفاده از ویژگی ها و متدهای تعریف شده باید نمونه سازی کنید نمونه سازی ینی(پیاده سازی طرح طراحی شده).برای مثال شما یک معمار ساختمان را در نظر بگیرید قبل از ساخت یک ساختمان، با استفاده از نرم افزارهای طراحی معماری طرح رو می کشد و بعد از تکمیل طرح، برای استفاده از هر یک از قسمت های ساختمان طراحی شده باید آن را در دنیای واقعی بسازد دقیقا همین روند در زبان برنامه نویسی شی گرایی پیاده سازی شده است.
در دنیای شی گرایی پیاده سازی کلاس را نمونه سازی (Instantiate) گفته می شود که syntax آن هم به صورت زیر است
House obj = new House();
شی وجود فیزیکی دارد و می تواند چند نمونه از روی کلاس (طرح کلی) باشد که فقط می تواند از نظر خصوصیات با هم متفاوت باشد مثلاً نمای یکی از ساختمان ها می تواند آجری باشد و دیگری سنگی یا شیشه ای باشد یا اینکه تعداد طبقات یکی 4 باشد و دیگری 5 باشد. اما طرح پایه ای هر یک در قالب کلاس(طرح پیاده سازی) طراحی شده است.
دلایل برتری برنامهنویسی شی گرا:
- قابلیت سازمان دهی بهینه تر کدها
- قابلیت تقسیم برنامه به برنامههای کوچک تر اما مستقل. برنامه
- عدم نیاز به نوشتن کدهای تکراری و قابلیتهایی که قبلا پیادهسازی شدهاند و صرف جویی در استفاده از منابع.
با ما همراه باشید
سخت افزار رایانه چیست؟
سخت افزار معادل فارسی عبارت Hardware است. اگر به تازگی با رایانه آشنا شدید، حتماً این اصطلاح برای شما گنگ است. اما نگران نباشید. در این مقاله که به زبان ساده تعریف کاملی از سخت افزار به شما ارائه میدهم، میفهمید که به چه چیزی سخت افزار میگویند. ولی حقیقتاً سخت افزار رایانه چیست؟
سخت افزار در دنیای غیر رایانهای هم برای خود دارای مفهومی وسیع است. ولی ما در اینجا به مفهوم آن در دنیای رایانه اشاره میکنیم. هر چند که مفهوم سخت افزار در همه جا یکی است.
حه کلید، بلندگوها، صفحه نمایش، و تمامی اجزاء داخل کیس رایانه همگی سخت افزارهایی هستند که هر کدام برای انجام کاری ساخته شدند. مثلاً همۀ ما با کارکرد صفحه کلید آشنا هستیم. خوب، این سخت افزار برای وارد کردن دادهها و مقادیر به رایانه کاربرد دارد. دیگر سخت افزارها هم به همین ترتیب دارای وظایف اختصاصی برای خود هستند. احتمالاً شما هم وظایف اختصاصی دیگر سخت افزارها را میدانید.
خود کیس رایانه، که قطعات دیگر رایانه را در خود جای داده است یک نوع سخت افزار است. داخل آن سخت افزارهای بسیار دیگری دیده میشود که مهمترین آنها برد اصلی، ریزپردازنده، حافظهها، کارتهای توسعه و … هستند. اینها هم هر کدام دارای وظایف انحصاری مختص خود هستند که در مقالات دیگر پایگاه کاربر رایانه میتوانید با آنها هم آشنا شوید.
تولید کنندگان بسیاری در جهان در حال تولید قطعات سخت افزاری برای رایانهها هستند. عموماً هر سخت افزار رایانه توسط یک شرکت تولید شده است و در نهایت کسی که شما از آن رایانه را میخرید آنها را سرهم میکند. یعنی رایانه به صورت یک کالای بستهبندی شده از کارخانه بیرون نمیآید. البته لپتاپها از این قاعده مستثنی هستند و سرهم کردن آنها هم درون کارخانه انجام میشود. اما همان لپتاپ هم معمولاً قطعات داخلیاش توسط شرکتهای مختلفی تولید شده است. اطلاعات بیشتر را درون دفترچه راهنمای کالا میتوانید جستجو کنید.
سخت افزارها دارای کیفیتهای مختلفی هستند و با فناوریهای گوناگونی تولید میشوند که معمولاً آنهایی بیشتر مورد استفاده قرار میگیرند که علاوه بر بهرهوری بالا، برای کاربر نهایی مقرون به صرفه باشد؛ یعنی تا حد امکان ارزان باشد. امروزه به دلیل توسعۀ فناوریهای روز و پیشرفته، تولید سخت افزارهای گوناگون سهلتر شده است. به همین نسبت هم قیمتهای آنها کاهش چشمگیری داشته است.
سخت افزار رایانه دارای مشخصات و معیارهایی برای مقایسه با هم هستند. مثلاً اگر شما رایانهای دارید حتماً دارای میزانی از حافظۀ اصلی و یا حافظۀ سخت (Hard) است که با واحدهایی قابل اندازهگیری هستند. دیگر قطعات هم برای خود دارای واحد و معیار برای ارزیابیاند. حتی همان موسی که هر روزه از آن استفاده میکنیم، دارای مشخصاتی است.
سخت افزارها همانطور که توسط شرکتهای گوناگون تولید میشوند، اما دارای استانداردهای خاصی برای خود هستند تا امکان ایجاد ارتباط بین آنها به سادگی مقدور باشد. مثلاً اگر شما رایانهای داشته باشید که ارتباطی بین حافظۀ اصلی و حافظۀ سخت آن از طریق برد اصلی وجود نداشته باشد، مطمئناً شما نمیتوانید از آن رایانه و سخت افزارهای آن استفاده کنید؛ هر چند که سخت افزارها دارای قدرت بسیار بالایی باشند.
اما هر از چند گاهی ممکن است سخت افزارهای جدیدی تولید شوند و وارد بازار گردند که به دلیل نو بودن هم قیمت بالایی دارند و هم هماهنگی آنها با دیگر سخت افزارها کم باشد. این سخت افزارها معمولاً قطعات جانبی هستند که باعث توسعۀ امکانات رایانۀ شما میشوند.
به نظر میرسد با توضیحاتی که در این صفحه داده شد، تا حدودی با سخت افزار رایانه آشنا شدید و اگر از امروز به بعد اصطلاح سخت افزار را شنیدید، با مفهوم آن تا حدی آشنایی دارید.