View Full Version : کیوت یا سی شارپ (برای غیر کامپیوتری ها)(؟)
hosseinam1370
جمعه 25 اردیبهشت 1394, 16:49 عصر
دوستان ، من الان چند وقته که بعد از یادگیری زبان سی++ ، اومدم سروقت کیوت ،
و علاقه شدیدی هم به سی++/کیوت پیدا کردم ، ولی چون من یه غیرکامپیوتر ی هستم (برق قدرتی ام) و در وادیه توسعه نرم افزار نبودم و نمیدونم که باید چه چیزهایی برای توسعه ی یه نرم افزار یاد بگیرم .
حالا که هرچی کیوت میخونم ، انگار نمیدونم باید دنبال چی تو کیوت باشم و سردرگم هستم ، و متاسفانه منابع فارسی خوبی هم وجود نداره ، تا بفهمیم جریان این توسعه نرمافزار چیه ، البته چند قسمت از فیلمهای آقای دادخواه و pdf آقای اسدزاده رو دیدم ، ولی باز هم این منابع اونقدر کامل نبود که تمامی بحث هاش بیاد تو دستمون، یعنی یه کتاب فارسی آموزشی هم پیدا نمیشه تو ایران (کیوته مظلوم).
حالا میخام بگم که در این فقر اطلاعاتی کیوت فارسی و از طرفی منم یه غیر کامپیوتریه پا گذاشته تو توسعه نرم افزار ، واقعا میتونم سرعت پیشرفت و یادگیری بالا داشته باشم ؟؟!!
میتونم بفهمم که از چه کلاسهای کیوت باید استفاده کنم؟؟!!
میشه واقعا تمام ابزارهای مورد نیاز در کیوت رو بفهمم ، در صورتی که اصلا نمیدونم چی ابزار میخوام؟
##-->>به نظرتون بهتر نیست که من برم سراغ سی شارپ و راه ها و ابزارهای یه توسعه نرم افزار رو یاد بگیرم و بفهمم به چه چیزهایی تو توسعه نیاز دارم و بعد برگردم سراغ کیوت و معادل اون ابزارهای سی شارپ تو کیوت پیدا کنم؟!!
دلیلش فقط اینه که تو ایران منابع سی شارپ خیلی خیلی زیادتره از کیوت.
به نظر من اکثر کسایی که کیوت بلدن ، یه کامپیوتری هستن و قبل از کیوت سی شارپ کار کرده بودن ، و میدونن دنبال چی باید تو کیوت باشن ، برای همین این تاپیک و تو تالار کیوت زدم.
میدونم کیوت خیلی قابلیت های بیشتر و انعطاف پذیر تر از سی شارپ هست ، ولی انگار چاره ی دیگه ای ندارم.چون وقتم تا اون حد زیاد نیست که بخام خودآموز و ذره ذره تو کیوت پیش برم.
دوستان راهنمایی کنید.
با تشکر.
chikar
جمعه 25 اردیبهشت 1394, 21:38 عصر
اگه اینجا نتونی از پس مشکلاتی که حین یادگیری داری بر بیای، مطمئن باش تو سی شارپ یا حتی تو مباحث رشته خودت هم یه جا به این مرحله می رسی!!
بعد هم بعد این همه مدت با C++ کار کردید، حالا دوباره از اول یه زبان جدید مثل C# می خواید یاد بگیرید، به نظرم شاید زده بشید!خودت بهتر می دونی که C++ و C# قابل مقایسه نیستند...
این نظر من هست، ببین باید یاد بگیری از منابع لاتین استفاده کنی، چون تهش همه چی لاتین هست،
چرا نمی گی می رم زبانم رو قوی می کنم!!!
البته این نظر من هست، خودت باید تصمیم بگیری دوست من
یا علی
hosseinam1370
شنبه 26 اردیبهشت 1394, 15:12 عصر
دیروز که پست شما رو دیدم ، دوباره دلگرم شدم و رفتم سروقت کیوت و کتابهای لاتین رو شروع کردم به خوندن ، البته زبانم در حد متوسط هست و میتونم ترجمه کنم که چی میخاد بگه ، و همینطور که ادامه دادم ، دیدم علاوه بر تمرکز بر روی فهم برنامه نویسی باید بر روی فهم مطالب لاتین هم تمرکز کنم ، باز بعد از چند ساعت ادامه دادن ، دیدم کلی وقت گذاشتم ولی چیز زیادی دستگیرم نشد،
بعد رفتم سراغ سی شارپ و منابع غنی فارسیش ، دیدم واقعا با وجود این منابع ، سرعت کارم بسیار بالاست ، و چند فصل اوایلشو فقط با گذشتن یک ساعت فهمیدم ، وخیلی به سی / سی++ هم نزدیکه ، فقط معادل نوشتن دستورات سی پلاس تو سی شارپ یه طور دیگه شد . برا همین تصمیم گرفتم با این وقته کم خودم برم سی شارپ و سریع یاد بگیرم و دنبال معادلش تو کیوت باشم و بدونم چی میخام، و وقت برای یاد گرفتن کیوت در کنار کارم بزارم.
درکل از این جابه جایی به سی شارپ واقعا ناراحتم ، چون علاقه ی شدیدی به سی/سی ++ پیدا کردم. ولی ناچارا بخاطر نبود منابع قوی فارسی ، مجبور به این مهاجرت شدم.
و این کارم هم بخاطر یادگیری کیوت انجام میدم و زودی برمیگردم به :گریه:QT.
کامبیز اسدزاده
شنبه 26 اردیبهشت 1394, 18:11 عصر
سلام
بد نیست بنده یه نظری بدم در این مورد فقط برای شفاف سازی فرق بین "مهندسان کامپیوتر" و سایر رشته ها...
ابتدا برای من سواله یعنی اگه هر کسی که یک عمر زحمت نکشیده شب و روز در رشته کامپیوتر جون نکنده باشه میتونه با چند تا کتاب مهندس یا برنامه نویس بشه ؟! یعنی تا این حد این رشته پفک نمکیه ؟ :قهقهه:
شاید بشه زبان هایی مثل C# رو یاد گرفت و باهاش کد زد و شاید یک محصول نهایی تقریبا بی عیب و شاید استاندارد داد بیرون ولی با C++ بدون داشتن اطلاعات فنی مهندسی در رابطه با شاخه های سخت افزاری ، سیستم عامل ، شبکه و غیره نمیشه چرا چون این زبان مدیریت همه چیز رو بر عهده خود برنامه نویس قرار میده برای مثال مدیریت حافظه رو در نظر بگیرید در C++ اگر دانش کافی در رابطه با مفاهیم سخت افزاری و سیستم عامل نداشته باشید بدترین کد رو در این رابطه خواهید نوشت که این موارد در خروجی نهایی یک نرم افزاری که در پشت یک قالب بسیار زیبا که با همین محیط های VS و یا Qt طراحی و پنهان میشود موثر هستند !
متاسفانه زبان هایی مثل C# و محیط هایی مثل Visual Studio یا حتی Qt Creator برنامه نویسان غیر متخصص تبدیل به یک کاربر حرفه ای میکنند نه یک برنامه نویس یا مهندس کامپیوتر !
هر محصول نرم افزاری باید توسط استاندارد های ISO 9000 و ISO/IEC 15504 و دیگر استاندارد های مرتبط تایید شوند که در این مرحله شخص برنامه نویس زیر سوال خواهد رفت زیرا در محصول آن نه مدیریت سخت افزاری رعایت شده نه مدیریت سیستم عامل و نه استاندارد های ذکر شده ! همش به کمک یک محیط توسعه دهنده مثل VS یا Qt فقط و فقط طراحی و در نهایت چهار خط کد و کامپایل و خروجی گرفته شده است این نشد امید و این نشد محصول نهایی عزیز من با این روش وقت خودتون رو بیهوده هدر میدید.
اگه اینطور نبود دوست من الان دنیا شده بود برنامه نویس چراکه همه ماشالله پشت کامپیوتر میشینیم دیگه :لبخند: پس هر چیزی حساب کتاب داره نباید انتظار داشته باشید با یک متخصص این رشته برابری کنید به عنوان مثال همین که شما دارید بین زبان های سوئیچ میکنید مشخص میکنه هیچ اطلاعاتی در رابطه با مهندسی نرم افزار ندارید چرا که انتخاب یک زبان برنامه نویسی از دیدگاه یک مهندس کامپیوتر ساده ترین قسمت ماجراست...چون در تمامی مراحل توسعه پروژه هر زبانی قابل کاربرد خواهد داشت.
برای برنامه نویس شدن و یا به عبارتی مهندس شدن در این رشته موارد زیر لازمه دوست عزیز :
استعداد و اراده قوی
زمان و شرایط مناسب برای وقت گذاشتن در این رشته
کسب اطلاعات دقیق و جامع در این رشته از دوران دبیرستان بگیر برو تا واحد های دانشگاهی بازهم کافی نیست...و شاید در نهایت منجر به گرفتن عنوان مهندسی کامپیوتر باشه ولی به تنهایی کافی نیست ! چون مهندس کامپیوتر میشناسم فوق لیسانس هست حتی بلد نیست یک سیستم عامل ساده ای مثل ویندوز رو درست نصب کنه چه برسه به کارهای حرفه ای ! پس میریم سراغ اصل مطلب...
داشتن دانش و توانایی لازم در رابطه با زبان انگلیسی
توانایی و سرعت عمل بالا در کار با سخت افزار و داشتن اطلاعات فنی مرتبط با زبان کامپیوتر .. منظورم همون 0 و 1 که ازش ساده میگذریم
توانایی و سرعت عمل بالا در کار با انواع سیستم عامل ها بر پایه Unix و DOS به صورت حرفه ای
توانایی و سرعت عمل بالا در کار با شبکه و اینترنت که ریز به ریز به مباحث و زیر شاخه های خودش اشاره میکنه
توانایی و سرعت عمل بالا در زبان های خانواده C که داشتن اطلاعات دقیق و توانایی در این زبان منجر به داشتن توانایی در دیگر زبان ها خواهد شد ! برای مثال شما C/C++ رو یاد بگیرید یادگیری PHP راحتره.
توانایی و دانش کافی در رابطه با انواع استاندارد های مهندسی در این رشته
توانایی و داشتن دانش کافی در رابطه با سبک برنامه نویسی و همچنین انواع نرم افزار ها مانند نوع سکو : تحت وب و تحت انواع پلتفرم ها
و کلی توانایی و کلی بدبختیه دیگه که همشون در نهایت از شما یک مهندس کامپیوتر خواهد ساخت
همه اینهارو بخوام حساب کنم تقریبا 10-20 سالی باید عمرت رو بزاری همینجوری نمیشه از وسط یه رشته دیگه یه لحظه فرمونت رو بگیری اینور بگی بزار برنامه نویس بشم خیر این امکان پذیر نیست ! مگر اینکه هدفتون ارائه محصولات غیر استاندارد و غیر حرفه باشه که اونم با یک نگاه مشخص شده و در نهایت با شکست مواجه خواهد شد :ناراحت:
یک محصول حرفه ای رو در نظر بگیرید... یک نرم افزار بعد از ایجاد و طی روند برنامه نویسی و توسعه تازه تازه میره زیر دست تیم استاندارد سازی همینطوری نیست که با نوشتن و درگ دراپ کردن چهار تا دکمه روی فرم و دیدن خروجی خوشحال بشیمو بگیم بله دیگه شدیم برنامه نویس !!!
هدفم نا امید کردن یا دلسرد کردن شما نیست ولی فکر میکنم بیش از حد این رشته رو هیچو پوچ در نظر گرفتید :اشتباه: اگر به این رشته علاقه دارید توصیه میکنم در تیم های برنامه نویسی همکاری کنید به هیچ عنوان به صورت فردی اقدام به تولید هیچ نرم افزاری نکنید چرا که کافیه بره زیره دست یک متخصص... آبروی نویسنده خواهد رفت اینهارو بنده دیده ام بارها شده طرف به نام یک متخصص وارد بازار کار شده و منجر شده مشتری ناراضی و کلی شاکی باشه چرا که همین ساده فکر کردن ها و ساده گرفتن ها باعث شده اسم برنامه نویس در ایران کم رنگ و شایدهم کاملا بی رنگ از آب در بیاد.
موفق و پیروز باشید.
hosseinam1370
شنبه 26 اردیبهشت 1394, 19:01 عصر
آقای اسد زاده من هم دقیقا برای همین رفتم سراغ یه زبانی که منابعش زیاده ، تا بتونم بفهمم یه برنامه چه انتظاری از برنامه نویس داره ، و بتونم انجامش بدم ، با سی شارپ و منابعی که وجود داره ، تقریبا بیشتر چیزهای تحلیلی رو میفهمی ، و میدونی باید دنبال چی باشی ، و بعد وقتی که برگشتم کیوت ، میدونم دنبال چی باید باشم ، الان هرچی میخاستم درک کنم کیوت رو ، نمیتونستم ، شاید به قول شما بتونم یوزر اینترفیس خوبی ایجاد کنم با کریتور، ولی الگوریتمهای خوبی نمیتونستم بنویسم تا بیاد این یوزر اینترفیس رو پشتیبانی کنه ، در نتیجه شکست میخوردم.
منم اینطور نیست که بخام از رشته خودم بگذرم و بیام مهندس کامپیتر بشم ، من این برنامه نویس شدن و ساختن نرم افزار رو برای ، ارتباط کامپیوتر با صنعت ، در رشته خودم میخام ، که الان چند ماهی هست فعالیتهامو تو رشته خودم گذاشتم کنار و اومدم سراغ ساختن نرم افزار.
و حتما هم میخام بفهمم تو کامپیوتر چه اتفاقاتی میاوفته تا یه برنامه کار کنه و اطلاعات رو پردازش کنه ، تا بتونم باگ ها و مشکلتاشو راحت پیدا کنم.
حالا نظرتون راجب به این کاری که میخام بکنم ، برم سی شارپ یاد بگیرم و بعد برگردم ، چیه ؟ آیا با یاد گرفتن سی شارپ ، میشه با کیوت ارتباط برقرار کرد و فهمید کیوت چی از آدم میخاد؟چون سی شارپ و کیوت تقریبا مفهوم شی گرایی مشترکی دارند.فقط این سینتکس شون هست که باهم فرق داره.
دلیلشم فقط بخاطر نبود منابع فارسی کیوت هست.
البته پشتکار هم زیاد دارمآ. روزی 14 ساعت وقت برای برنامه نویسی میزارم:لبخندساده:.
با تشکر از راهنماییتون.
کامبیز اسدزاده
شنبه 26 اردیبهشت 1394, 19:27 عصر
چند ماهی هست فعالیتهامو تو رشته خودم گذاشتم کنار و اومدم سراغ ساختن نرم افزار.
و حتما هم میخام بفهمم تو کامپیوتر چه اتفاقاتی میاوفته تا یه برنامه کار کنه و اطلاعات رو پردازش کنه ، تا بتونم باگ ها و مشکلتاشو راحت پیدا کنم.
راه بسیار طولانی در پیش رو رو خواهید داشت اگر شما میخواهید مشکلات رو پیدا کنید باگ بگیرید اینها مباحث تخصصی هستند و باید از صفر شروع کنید همانطور که رشته خودتون رو شروع کرده اید.
حالا نظرتون راجب به این کاری که میخام بکنم ، برم سی شارپ یاد بگیرم و بعد برگردم ، چیه ؟ آیا با یاد گرفتن سی شارپ ، میشه با کیوت ارتباط برقرار کرد و فهمید کیوت چی از آدم میخاد؟چون سی شارپ و کیوت تقریبا مفهوم شی گرایی مشترکی دارند.فقط این سینتکس شون هست که باهم فرق داره.
دلیلشم فقط بخاطر نبود منابع فارسی کیوت هست.
خب ببینید نمیشه این دو رو باهم مقایسه کرد یعنی C# و Qt رو... اصلا این جمله مقایسه کیوت با زبان دیگری صحیح نیست ما این وسط صحبت از C++ هستش نه کیوت عبارت صحیح این جمله میتونه این باشه " مقایسه Qt با .NET حالا بریم سر اصل مطلب اینکه سراغ کدام یک بروید بارها راجبش توضیح داده شده... ما اینجا صحبت از دو زبان و دو چهارچوب داریم یعنی C# و C++ همراه با Qt و .NET
ابتدا در رابطه با زبان اشاره میکنم سریع میرم سر اصل مطلب که اصلا C# قابل مقایسه با C++ نیست هیچوقت نمیتونه باشه چون C++ یک زبان سطح میانی هستش بسیار قدرتمند و انعطاف پذیر ولی C# یک زبان من در آوردی از طرف مایکروسافت هست که کاملا managed میباشد و در مورد اینکه چرا C++ بهتره و سختره بارها توضیح داده شده میتونید جستجو کنید.
در رابطه با چهارپوب ها میشه گفت دات نت یک سری قابلیت های بهتر و سریعتری رو در اختیار شما خواهد گذاشت مثلا کامپوننت ها ! ولی خب بازهم هرچی باشه تحت C# هستش و تحت ویندوز در حالی که کیوت یک چهارچوب و مجموعه ای از کلاس های Native و باز نویسی شده C++ هستش و در تمامی پلتفرم ها و ماشین ها جوابگو میباشد که 99% قدرتش رو وابسته هست به خود C++ که این امر در C# کاملا بر عکس هست شما هر چیزی مینویسید بر پایه دات نت مینویسید و ارزشش هیچ گاه با یک نرم افزاری که توسط C++ نوشته شده برابر نخواهد بود چرا که بارها اشاره شده بهترین و شاید عظیمترین پروژه ها توسط زبان های سطح میانی مثل C++ یا جاوا نوشته میشند.
حالا اینکه کدام زبان رو انتخاب کنید پیشنهاد من برای شما C# خواهد بود چرا که دنیای C++ بسیار پیچیده تر از اینی هستش که توسط Qt باهاش مواجه شده اید.
البته پشتکار هم زیاد دارمآ. روزی 14 ساعت وقت برای برنامه نویسی میزارم:لبخندساده:.
در پست قبلی اشاره کردم پشت کار با چند روز یا چند ماه نتیجه مطلوبی رو نخواهد داشت البته این قابل تحسین هستش ولی واقعا راه طولانی رو در پیش رو دارید.
chikar
شنبه 26 اردیبهشت 1394, 20:34 عصر
ابتدا برای من سواله یعنی اگه هر کسی که یک عمر زحمت نکشیده شب و روز در رشته کامپیوتر جون نکنده باشه میتونه با چند تا کتاب مهندس یا برنامه نویس بشه ؟! یعنی تا این حد این رشته پفک نمکیه ؟ :قهقهه:
کیف کردم، عالی توضیح دادید
من خودم، بعد از سال ها درس خوندن تو رشته کامپیوتر، وقتی وارد همین برنامه نویس می شم، احساس می کنم اومدم اول دبستان و تازه می خوام الفبا رو یاد بگیرم!!!
ببینید، شاید سوالاتی راجع به اینکه چرا c++ و یا امثال این زیاد پرسیده شده باشه و شما هم بار ها پاسخ داده باشید، ولی به نظرم هر بار که یه جواب جدیدی کسی می ده، باعث دلگرمی برای همه کسانی است که دارن، تو این زمینه چیز یاد می گیرن! من بار ها از شما راجع به c ++ یا کیوت مطلب خوندم تو همین سایت، ولی باور کنید، هر بار کسی جواب بده، یه انگیزه جدید می گیرم.
کاش ما هم دو ریال چیز یاد می گرفتیم!
یا علی
hosseinam1370
یک شنبه 27 اردیبهشت 1394, 06:54 صبح
در رابطه با چهارپوب ها میشه گفت دات نت یک سری قابلیت های بهتر و سریعتری رو در اختیار شما خواهد گذاشت مثلا کامپوننت ها ! ولی خب بازهم هرچی باشه تحت C# هستش و تحت ویندوز در حالی که کیوت یک چهارچوب و مجموعه ای از کلاس های Native و باز نویسی شده C++ هستش و در تمامی پلتفرم ها و ماشین ها جوابگو میباشد که 99% قدرتش رو وابسته هست به خود C++ که این امر در C# کاملا بر عکس هست شما هر چیزی مینویسید بر پایه دات نت مینویسید و ارزشش هیچ گاه با یک نرم افزاری که توسط C++ نوشته شده برابر نخواهد بود چرا که بارها اشاره شده بهترین و شاید عظیمترین پروژه ها توسط زبان های سطح میانی مثل C++ یا جاوا نوشته میشند.
منم برا همین علاقه شدیدی به سی /سی++ پیدا کردم دیگه.
در هرصورت ممنون از وقتی که گذاشتید ، و منم فهمیدم باید چیکار کنم و کجا برم و چی یاد بگیرم.و از تجربتون استفاده خواهم کرد.
ولی به زودی به سی++ /کیوت برخواهم گشت ، حتی اگه هزینه زیادی برای یادگیری تخصصیش بپردازم،چون برای پردازنده های avr , pic , arm , ... نیاز به دسترسی به cpu و register هاش دارم. فعلا منابع در دسترس نیست.
با تشکر.
arashz4
سه شنبه 29 اردیبهشت 1394, 10:15 صبح
سلام
هر محصول نرم افزاری باید توسط استاندارد های ISO 9000 و ISO/IEC 15504 و دیگر استاندارد های مرتبط تایید شوند که در این مرحله شخص برنامه نویس زیر سوال خواهد رفت زیرا در محصول آن نه مدیریت سخت افزاری رعایت شده نه مدیریت سیستم عامل و نه استاندارد های ذکر شده ! همش به کمک یک محیط توسعه دهنده مثل VS یا Qt فقط و فقط طراحی و در نهایت چهار خط کد و کامپایل و خروجی گرفته شده است این نشد امید و این نشد محصول نهایی عزیز من با این روش وقت خودتون رو بیهوده هدر میدید.
می تونید کمی درباره این استاندارد ها توضیح بدید و چگونه میشه فهیمید یک برنامه این استاندارد ها رو داره یا نه
و اگر میتونید یک تکه کد بدون استاندار یک تکه کد استاندارد که هر دو یک کار رو انجام میدن با زبان ++C با کیوت بگذارید.
با سپاس
کامبیز اسدزاده
سه شنبه 29 اردیبهشت 1394, 11:39 صبح
می تونید کمی درباره این استاندارد ها توضیح بدید و چگونه میشه فهیمید یک برنامه این استاندارد ها رو داره یا نه
و اگر میتونید یک تکه کد بدون استاندار یک تکه کد استاندارد که هر دو یک کار رو انجام میدن با زبان ++C با کیوت بگذارید.
با سپاس
سلام
خب ببینید این مباحث استاندارد یکی دو تا نیست قضیش پیچیده تر از چند خط کد خواهد بود...
برای مثال C++ هر ساله و در هر نسخه از ویرایش ها به روز رسانی هایی رو در بر دارد که در این مراحل ضعف های آن برطرف شده و متد ها تغییر پیدا میکنند برای مثال خیلی خیلی ساده بخوام مثال بزنم برای وارد کردن یک کتابخانه به برنامه روشی داریم به صورت include که معمولا به صورت زیر ازش استفاده میکنیم.
#include <iostream.h>
و یا
#include <iostream>
حالا از نظر برنامه نویس مبتدی شاید جفتشم یکی باشه حتی خیلی از برنامه نویس های کارکشته به این مورد شاید توجه نکنند که نوع اول غیر استاندارد بوده و نوع دوم یعنی روش بدون .h توسط استاندارد ISO/IEC 15504-1:2004 استادارد شده و نسخه قبلی منسوخ شده است.
یک مثال دیگر از اینکه استفاده از std مناسب است یا خیر ؟!
#include <vector>
#include <iostream>
void f(const std::vector<double>& v)
{
using std::cout; // ← a using-declaration that lets you use cout without qualification
cout << "Values:";
for (auto value : v)
cout << ' ' << value;
cout << '\n';
}
حال روش دوم :
#include <vector>
#include <iostream>
void f(const std::vector<double>& v)
{
std::cout << "Values:";
for (auto value : v)
std::cout << ' ' << value;
std::cout << '\n';
}
در این دو مثال استفاده از std که موجود است ولی در روش دوم استفاده از آن توصیه نمیشود زیرا این یک تکرار مجدد برای معرفی فضای نام خواهد بود در حالی که در استاندارد ISO/IEC TS 15504-10:2011 اشاره شده است که استفاده از std نیاز نیست.
یا یک مثال دیگه بزنم در مورد شرط ها :
int n = /*...*/; // number of senders
std::cout << "Please get back to " << (n==1 ? "me" : "us") << " soon!\n";
و یا روش دوم :
std::cout << "Please get back to ";
if (n == 1)
std::cout << "me";
else
std::cout << "us";
std::cout << " soon!\n";
خب حال در این دو روش هر دو حالت شرط رو اجرا و در نهایت منجر به چاپ شدن خواهد شد ولی روش اول روشی استاندارد شده توسط ISO/IEC TS 15504-10:2011 میباشد که معمولا مبتدیان از روش دوم استفاده میکنند.
این در برنامه اختلال یا ضعفی رو ایجاد نخواهد کرد که از چه روشی استفاده کنیدولی اگر محصول برای ارزیابی بررسی شود اگر ریز به ریز موارد رو بررسی کنیم همه اینها مواردی هستند که در استاندارد سازی پروژه موثر خواهند بود.
بنابراین با بررسی آخرین استاندارد ها در زبان برنامه نویسی ، در سیستم عامل ، شبکه و شاخه های دیگر و استفاده از روش های توصیه شده در هر یک از این شاخه ها در نهایت منجر به خروجی کاملا استاندارد و خارق العاده ای خواهد شد.
به عنوان مثال در رابطه با تغییرات و نحوه استاندارد سازی C++ موجود است به این آدرس مشخص شده : https://isocpp.org/
روش هایی وجود داره که شاید بهشون توجه نمیکنیم مثلا با مراجعه به منابع و مستندات رسمی این زبان میشه متدهای (Recommended) رو که همیشه بهشون ذکر شده دریافت کنیم مثلا با مراجعه به این آدرس : http://en.cppreference.com/w/ هر مثال و متدی که ذکر شده به چند روش مشخص است در نسخه C++98 تا C++14 و یا در http://www.cplusplus.com/ معمولا در تمامی مثال ها و مستندات اشاره شده به این که کدام کد استاندارد است کدام در نسخه C++11 یا 14 تصحیح شده و توصیه میشود. همه اینها نکاتی هستند که به ما کمک میکنه در رابطه با استاندارد سازی پروژه مفاهیم یا روش های استاندارد رو جایگزین نماییم.
نمونه خیلی ریزی که میشه بهش اشاره کرد در همین سایت cplusplus.com مواردی هستند که با این متن مشخص میشوند : This page describes a feature introduced by the latest revision of the C++ standard (2011). Older compilers may not support it.
بنابراین با توجه به آخرین استاندارد ها Change log ها و همچین مواردی که ذکر کردم میتونید به استاندارد سازی سبک برنامه نویسی خود اقدام نمایید.
در نهایت به این هم اشاره کنم این موارد مثال های جزئی بود با بررسی دقیق و متد های پیشنهاد شده توسط این استاندارد ها پروژه ما بدون شک به صورت استاندارد تولید میشود.
arashz4
سه شنبه 29 اردیبهشت 1394, 11:54 صبح
سلام
خب ببینید این مباحث استاندارد یکی دو تا نیست قضیش پیچیده تر از چند خط کد خواهد بود...
برای مثال C++ هر ساله و در هر نسخه از ویرایش ها به روز رسانی هایی رو در بر دارد که در این مراحل ضعف های آن برطرف شده و متد ها تغییر پیدا میکنند برای مثال خیلی خیلی ساده بخوام مثال بزنم برای وارد کردن یک کتابخانه به برنامه روشی داریم به صورت include که معمولا به صورت زیر ازش استفاده میکنیم.
#include <iostream.h>
و یا
#include <iostream>
حالا از نظر برنامه نویس مبتدی شاید جفتشم یکی باشه حتی خیلی از برنامه نویس های کارکشته به این مورد شاید توجه نکنند که نوع اول غیر استاندارد بوده و نوع دوم یعنی روش بدون .h توسط استاندارد ISO/IEC 15504-1:2004 استادارد شده و نسخه قبلی منسوخ شده است.
یک مثال دیگر از اینکه استفاده از std مناسب است یا خیر ؟!
#include <vector>
#include <iostream>
void f(const std::vector<double>& v)
{
using std::cout; // ← a using-declaration that lets you use cout without qualification
cout << "Values:";
for (auto value : v)
cout << ' ' << value;
cout << '\n';
}
حال روش دوم :
#include <vector>
#include <iostream>
void f(const std::vector<double>& v)
{
std::cout << "Values:";
for (auto value : v)
std::cout << ' ' << value;
std::cout << '\n';
}
در این دو مثال استفاده از std که موجود است ولی در روش دوم استفاده از آن توصیه نمیشود زیرا این یک تکرار مجدد برای معرفی فضای نام خواهد بود در حالی که در استاندارد ISO/IEC TS 15504-10:2011 اشاره شده است که استفاده از std نیاز نیست.
یا یک مثال دیگه بزنم در مورد شرط ها :
int n = /*...*/; // number of senders
std::cout << "Please get back to " << (n==1 ? "me" : "us") << " soon!\n";
و یا روش دوم :
std::cout << "Please get back to ";
if (n == 1)
std::cout << "me";
else
std::cout << "us";
std::cout << " soon!\n";
خب حال در این دو روش هر دو حالت شرط رو اجرا و در نهایت منجر به چاپ شدن خواهد شد ولی روش اول روشی استاندارد شده توسط ISO/IEC TS 15504-10:2011 میباشد که معمولا مبتدیان از روش دوم استفاده میکنند.
این در برنامه اختلال یا ضعفی رو ایجاد نخواهد کرد که از چه روشی استفاده کنیدولی اگر محصول برای ارزیابی بررسی شود اگر ریز به ریز موارد رو بررسی کنیم همه اینها مواردی هستند که در استاندارد سازی پروژه موثر خواهند بود.
بنابراین با بررسی آخرین استاندارد ها در زبان برنامه نویسی ، در سیستم عامل ، شبکه و شاخه های دیگر و استفاده از روش های توصیه شده در هر یک از این شاخه ها در نهایت منجر به خروجی کاملا استاندارد و خارق العاده ای خواهد شد.
به عنوان مثال در رابطه با تغییرات و نحوه استاندارد سازی C++ موجود است به این آدرس مشخص شده : https://isocpp.org/
روش هایی وجود داره که شاید بهشون توجه نمیکنیم مثلا با مراجعه به منابع و مستندات رسمی این زبان میشه متدهای (Recommended) رو که همیشه بهشون ذکر شده دریافت کنیم مثلا با مراجعه به این آدرس : http://en.cppreference.com/w/ هر مثال و متدی که ذکر شده به چند روش مشخص است در نسخه C++98 تا C++14 و یا در http://www.cplusplus.com/ معمولا در تمامی مثال ها و مستندات اشاره شده به این که کدام کد استاندارد است کدام در نسخه C++11 یا 14 تصحیح شده و توصیه میشود. همه اینها نکاتی هستند که به ما کمک میکنه در رابطه با استاندارد سازی پروژه مفاهیم یا روش های استاندارد رو جایگزین نماییم.
نمونه خیلی ریزی که میشه بهش اشاره کرد در همین سایت cplusplus.com مواردی هستند که با این متن مشخص میشوند : This page describes a feature introduced by the latest revision of the C++ standard (2011). Older compilers may not support it.
بنابراین با توجه به آخرین استاندارد ها Change log ها و همچین مواردی که ذکر کردم میتونید به استاندارد سازی سبک برنامه نویسی خود اقدام نمایید.
در نهایت به این هم اشاره کنم این موارد مثال های جزئی بود با بررسی دقیق و متد های پیشنهاد شده توسط این استاندارد ها پروژه ما بدون شک به صورت استاندارد تولید میشود.
من هم میشه تک کد اوی و دومی استاندارد انجام میدم تو اولی <include <iostream.h# تو کامپایلر های قدیمی مثل ++turbo c اینجوری بود
درباره سومی خیلی برام عجیب بود نمیدونستم ایجور کاری هم میشه کرد
نمونه های بیشتری مانند نمونه سومی بزارید تا بیشتر آشنا بشیم
با سپاس
کامبیز اسدزاده
سه شنبه 29 اردیبهشت 1394, 12:11 عصر
به آدرس وب سایت هایی که ذکر کردم مراجعه کنید و همچنین این بلاگ : https://isocpp.org/blog
و این لینک که یک سری مثال هایی رو به صورت بد و خوب نمایش داده : https://github.com/lefticus/cppbestpractices/blob/master/00-Table_of_Contents.md
ولی بهترینشون استفاده از مستندات هستش که همیشه استاندارد ترین روش رو مثال میزنند.
ravaei
سه شنبه 29 اردیبهشت 1394, 16:07 عصر
آقای اسد زاده من هم دقیقا برای همین رفتم سراغ یه زبانی که منابعش زیاده ، تا بتونم بفهمم یه برنامه چه انتظاری از برنامه نویس داره ، و بتونم انجامش بدم ، با سی شارپ و منابعی که وجود داره ، تقریبا بیشتر چیزهای تحلیلی رو میفهمی ، و میدونی باید دنبال چی باشی ، و بعد وقتی که برگشتم کیوت ، میدونم دنبال چی باید باشم ، الان هرچی میخاستم درک کنم کیوت رو ، نمیتونستم ، شاید به قول شما بتونم یوزر اینترفیس خوبی ایجاد کنم با کریتور، ولی الگوریتمهای خوبی نمیتونستم بنویسم تا بیاد این یوزر اینترفیس رو پشتیبانی کنه ، در نتیجه شکست میخوردم.
منم اینطور نیست که بخام از رشته خودم بگذرم و بیام مهندس کامپیتر بشم ، من این برنامه نویس شدن و ساختن نرم افزار رو برای ، ارتباط کامپیوتر با صنعت ، در رشته خودم میخام ، که الان چند ماهی هست فعالیتهامو تو رشته خودم گذاشتم کنار و اومدم سراغ ساختن نرم افزار.
و حتما هم میخام بفهمم تو کامپیوتر چه اتفاقاتی میاوفته تا یه برنامه کار کنه و اطلاعات رو پردازش کنه ، تا بتونم باگ ها و مشکلتاشو راحت پیدا کنم.
حالا نظرتون راجب به این کاری که میخام بکنم ، برم سی شارپ یاد بگیرم و بعد برگردم ، چیه ؟ آیا با یاد گرفتن سی شارپ ، میشه با کیوت ارتباط برقرار کرد و فهمید کیوت چی از آدم میخاد؟چون سی شارپ و کیوت تقریبا مفهوم شی گرایی مشترکی دارند.فقط این سینتکس شون هست که باهم فرق داره.
دلیلشم فقط بخاطر نبود منابع فارسی کیوت هست.
البته پشتکار هم زیاد دارمآ. روزی 14 ساعت وقت برای برنامه نویسی میزارم:لبخندساده:.
با تشکر از راهنماییتون.
دوست عزیز من چند وقتیه اینجا فعالم و پست های شما رو میبینم و یادمه پستی زده بودید برای ایجاد یک رابط کاربری واسه پروژه ء میکروکنترلر ... اگه شما می خواید مقداری دانش برنامه نویسی کسب کنید صرفا برای تکمیل پروژه های سخت افزاری ، مسلما یک تفکر اشتباهیه ... دلیلش هم اینه که خیلی از افرادی که وارده دنیایه برنامه نویسی میشن یا اطلاعات کافی از اونو ندارن فکر می کنن کار هایی که به چشم ساده میاد پس برنامه نویسیش هم سادست و این طرز فکر غلطه :متعجب:
وقتی شما می خواین یک میکروکنترلر رو از هر نوعی با هر پروگرمری و حتی با هر کامپایلری پروگرام کنید مسلما نیازی به امکانات پیشرفته یک زبان ندارید و میشه گفت ساخت و تولید یک نرم افزاری که تو اون مباحث مهندسی نرم افزار و نگاه شی گرایانه نباشه برنامه نیست و 100 در 100 با گسترش و توصعه اون به مشکل بر می خورید ...
یک چیز خیلی مهم این وسط وجود داره و اونم اینه که هدف شما از برنامه نویسی چیه؟ واسه یک مهندس نرم افزار شاخه های فعالیت گوناگونی وجود داره ، یکی میره سمت وب یکی به صورت تخصصی تو کار طراحی قالبه ، یکی کارش smartphone هستش یکی دیگه فقط واسه کامپیوتر های شخصی برنامه میسازه و غیر... حالا این واسه فردی بود که 4 - 6 سال تو دانشگاه به صورت آکادمیک (البته من زیاد قبولش ندارم) درس خونده ...
ولی به نظر من همین قدری که با برنامه نویسی آشنا هستید خیلی می تونه تو رشته خودتون کمکتون کنه چون من خودم رشتم سخت افزاره اینو میگم که حیفه میتونید به جای اینکه رو ساخت پروژه های نرم افزاری و یاد گیری برنامه نویسی وقت میزارید ، قضیه سخت افزار رو ادامه بدبد و برای پر کردن جای خالیه نرم افزار کنار سخت افزار با یکی که تو کار برنامه نویسیه همکاری داشته باشی .
موفق باشی
returnx
سه شنبه 29 اردیبهشت 1394, 18:37 عصر
میشه گفت ساخت و تولید یک نرم افزاری که تو اون مباحث مهندسی نرم افزار و نگاه شی گرایانه نباشه برنامه نیست و 100 در 100 با گسترش و توصعه اون به مشکل بر می خورید ...
همیشه بهترین انتخاب برای پیاده سازی یک پروژه ، برنامه نویسی شی گرا نیست و خیلی وقت ها متد ها و رویکرد های دیگر هم می توانند بخوبی پاسخ گو باشند، حتی بهتر از روش شی گرا!
ravaei
سه شنبه 29 اردیبهشت 1394, 20:21 عصر
همیشه بهترین انتخاب برای پیاده سازی یک پروژه ، برنامه نویسی شی گرا نیست و خیلی وقت ها متد ها و رویکرد های دیگر هم می توانند بخوبی پاسخ گو باشند، حتی بهتر از روش شی گرا!
میشه منظورتون از رویکرد ها و متد هایی غیر از حالت شی گرا رو بگید؟
returnx
سه شنبه 29 اردیبهشت 1394, 22:55 عصر
میشه منظورتون از رویکرد ها و متد هایی غیر از حالت شی گرا رو بگید؟
یک رویکرد برنامه نویسی یا روش برنامه نویسی میتونه هر یک از روش هایی باشه که در لینک زیر لیست شده :
http://fa.wikipedia.org/wiki/%D9%BE%D8%A7%D8%B1%D8%A7%D8%AF%D8%A7%DB%8C%D9%85_% D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87%E2%80%8C%D9%86 %D9%88%DB%8C%D8%B3%DB%8C
هر یک از این روش ها ، مزیت ها و معایب مختلفی دارند که با توجه به نوع پروژه یک متخصص تشخیص میده کارامد ترین روش برای پروژه ی مورد نظر کدام است...
اصرار بر اینکه تمام برنامه ها از روش شی گرا پی روی کنند ، به هیچ عنوان نمیتونه درست باشه!
hosseinam1370
سه شنبه 29 اردیبهشت 1394, 23:58 عصر
دوست عزیز من چند وقتیه اینجا فعالم و پست های شما رو میبینم و یادمه پستی زده بودید برای ایجاد یک رابط کاربری واسه پروژه ء میکروکنترلر ... اگه شما می خواید مقداری دانش برنامه نویسی کسب کنید صرفا برای تکمیل پروژه های سخت افزاری ، مسلما یک تفکر اشتباهیه ... دلیلش هم اینه که خیلی از افرادی که وارده دنیایه برنامه نویسی میشن یا اطلاعات کافی از اونو ندارن فکر می کنن کار هایی که به چشم ساده میاد پس برنامه نویسیش هم سادست و این طرز فکر غلطه :متعجب:
وقتی شما می خواین یک میکروکنترلر رو از هر نوعی با هر پروگرمری و حتی با هر کامپایلری پروگرام کنید مسلما نیازی به امکانات پیشرفته یک زبان ندارید و میشه گفت ساخت و تولید یک نرم افزاری که تو اون مباحث مهندسی نرم افزار و نگاه شی گرایانه نباشه برنامه نیست و 100 در 100 با گسترش و توصعه اون به مشکل بر می خورید ...
یک چیز خیلی مهم این وسط وجود داره و اونم اینه که هدف شما از برنامه نویسی چیه؟ واسه یک مهندس نرم افزار شاخه های فعالیت گوناگونی وجود داره ، یکی میره سمت وب یکی به صورت تخصصی تو کار طراحی قالبه ، یکی کارش smartphone هستش یکی دیگه فقط واسه کامپیوتر های شخصی برنامه میسازه و غیر... حالا این واسه فردی بود که 4 - 6 سال تو دانشگاه به صورت آکادمیک (البته من زیاد قبولش ندارم) درس خونده ...
ولی به نظر من همین قدری که با برنامه نویسی آشنا هستید خیلی می تونه تو رشته خودتون کمکتون کنه چون من خودم رشتم سخت افزاره اینو میگم که حیفه میتونید به جای اینکه رو ساخت پروژه های نرم افزاری و یاد گیری برنامه نویسی وقت میزارید ، قضیه سخت افزار رو ادامه بدبد و برای پر کردن جای خالیه نرم افزار کنار سخت افزار با یکی که تو کار برنامه نویسیه همکاری داشته باشی .
موفق باشی
خوب کلا هدفم ارتباط کامپیوتر با صنعت توسط میکروکنترلر هست، میتونستم پروژه هامو در نبود برنامه نویسی کامپیوتری انجام بدم ، ولی این نتونست ذهنمو ارضا کنه، همش به فکر این بودم که بیام کامپیوتر رو ببرم تو صنعت، برای همین نیاز به توسعه نرم افزار پیدا کردم ، و اومدم سراغ سی/سی++، که واقعا یکی از بهترین تصمیماتم اومدن سراغ سی/سی++ بود، و هیچوقت از بیخوابی هایی که اون چند ماهی برای یادگیریش کشیدم ، پشیمون نیستم،و نخواهم شد.البته قبل از اینکه وارد شم ، چندتا کتابشو دیده بودم ، و میدونستم اینقدرآ هم ساده نیست و با اطلاعاتم خیلی فاصله داره ، ولی باید وارد میشدم و شدم ،و فکر کنم قواعدشو(دستورات و شی گرایی) تا حد قابل قبولی فهمیدم ، که الان تو سی شارپ دارم با سرعت پیش میرم.
حالا چون من مثله شما دوستان کامپیوتری نیستم ، و منابع فارسی هم وجود نداشت برای کیوت،نمی تونستم کلاس ها رو بشناسم ، یا بفهمم که کلاس ها (به جز ویدجت ها) برای چه کاری استفاده میشن. مثلا تا الان فکر میکردم برای سیو کردن پروژه ، من باید از فایل ها استفاده کنم و راه دیگه ایی ندارم ، ولی امروز فهمیدم میشه از sql استفاده کرد.
مشکل من طرز استفاده از کلاس ها و قواعد نیست، مشکل من هدف نوشتن کلاس هاست ، که باید بفهممشون.
برای همین رفتم سراغ سی شارپ ، چون منابعش زیاد بود ، و دنبال معادل های کلاسش تو کیوت میگردم ، تا کیوت بفهمم.
در ضمن اینجا دوروبره من جای خالی نرم افزار رو کسی نیست که پر کنه ، اگرم باشن اینقدر ناز دارن که.
نمیخوام یه برنامه نویس حرفه ای شم ، چون اصلا تو این داستانا نیستم ، من باید یجا دیگه باشم ، تا همین حد که بتونم از طریق usb و ماژول های ارتباطی دیگه ، چند دستور ساده از کامپیوتر بفرستم و بگیرم ، و یه ویندوز فروم داشته باشم ، برام کافیه.(البته استاندارد هم برنامشو نوشته باشم) .وتا همین حد ادامه خواهم داد، و برمیگردم دنبال داستانای خودم.
ممنون از نظر و توصیتون.
ravaei
چهارشنبه 30 اردیبهشت 1394, 02:49 صبح
یک رویکرد برنامه نویسی یا روش برنامه نویسی میتونه هر یک از روش هایی باشه که در لینک زیر لیست شده :
http://fa.wikipedia.org/wiki/%D9%BE%D8%A7%D8%B1%D8%A7%D8%AF%D8%A7%DB%8C%D9%85_% D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87%E2%80%8C%D9%86 %D9%88%DB%8C%D8%B3%DB%8C
هر یک از این روش ها ، مزیت ها و معایب مختلفی دارند که با توجه به نوع پروژه یک متخصص تشخیص میده کارامد ترین روش برای پروژه ی مورد نظر کدام است...
اصرار بر اینکه تمام برنامه ها از روش شی گرا پی روی کنند ، به هیچ عنوان نمیتونه درست باشه!
ممنون از لینکی که دادین با اکثر روش های برنامه نویسی که تو لینک درج شده آشنا بودم و بعضی شون هم برام جالب بود ... ولی احتمالا شما منظورتون از مقایسه این روش ها با هم تو کلیه حالت های برنامه نویسی بوده و نه در سطح بالا ، چون بحث ما با دوستمون در رابطه با گذشتن از برنامه نویسی برای میکرو ها و برنامه نویسی پیشرفته تحت محیط ویژوال هستش ...
یک مفهومی هست که میشه گفت به نظر من خیلی بد جا افتاده و اونم اینه که ما مثلا میایم برنامه نویسی ساخت یافته رو مقایسه می کنیم با شی گرا این یک مقایسه کاملا اشتباهه..!
برنامه نویسی شی گرا خودش از برنامه های ساخت یافته تشکیل شده ... تو برنامه نویسی به صورت پیشرفته مثل این میمونه که انسان رو با شکم مقایسه کنیم :افسرده:
دلیل :
برنامه نویسی ساخت یافته چیست ؟ "برنامهنویسی ساختیافته یک پارادایم برنامهنویسی (http://fa.wikipedia.org/wiki/%D9%BE%D8%A7%D8%B1%D8%A7%D8%AF%D8%A7%DB%8C%D9%85_% D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87%E2%80%8C%D9%86 %D9%88%DB%8C%D8%B3%DB%8C) است که طبق آن برنامهنویس قدمها و روالهایی را که لازم است تا برنامه به جواب برسد، مشخص میکند. در این روش از برنامهنویسی، انجام یک روال به روالهای کوچکتر تقسیم میشود و به این ترتیب یک برنامه با شکسته شدن به ریز برنامههای کوچکتر سعی میکند تا عملکرد مد نظر را پیادهسازی کند." <ویکیپدیا>
برنامه نویسی شی گرا چیست ؟ یک شیوه برنامه نویسی است که ساختار یا بلوک اصلی اجزای آن، شیها (http://fa.wikipedia.org/w/index.php?title=(%D8%B9%D9%84%D9%88%D9%85_%DA%A9%D 8%A7%D9%85%D9%BE%DB%8C%D9%88%D8%AA%D8%B1)_%D8%B4%D B%8C&action=edit&redlink=1&preload=%D8%A7%D9%84%DA%AF%D9%88:%D8%A7%DB%8C%D8%A C%D8%A7%D8%AF+%D9%85%D9%82%D8%A7%D9%84%D9%87/%D8%A7%D8%B3%D8%AA%D8%AE%D9%88%D8%A7%D9%86%E2%80%8 C%D8%A8%D9%86%D8%AF%DB%8C&editintro=%D8%A7%D9%84%DA%AF%D9%88:%D8%A7%DB%8C%D8 %AC%D8%A7%D8%AF+%D9%85%D9%82%D8%A7%D9%84%D9%87/%D8%A7%D8%AF%DB%8C%D8%AA%E2%80%8C%D9%86%D9%88%D8%A A%DB%8C%D8%B3&summary=%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF+%DB%8C%DA%A 9+%D9%85%D9%82%D8%A7%D9%84%D9%87+%D9%86%D9%88+%D8% A7%D8%B2+%D8%B7%D8%B1%DB%8C%D9%82+%D8%A7%DB%8C%D8% AC%D8%A7%D8%AF%DA%AF%D8%B1&nosummary=&prefix=&minor=&create=%D8%AF%D8%B1%D8%B3%D8%AA+%DA%A9%D8%B1%D8%AF %D9%86+%D9%85%D9%82%D8%A7%D9%84%D9%87+%D8%AC%D8%AF %DB%8C%D8%AF&withJS=MediaWiki:Intro-Welcome-NewUsers.js) میباشند. در واقع در این شیوه برنامه نویسی، برنامه به شیء گرایش پیدا میکند. به این معنا که دادهها (http://fa.wikipedia.org/wiki/%D8%AF%D8%A7%D8%AF%D9%87%E2%80%8C%D9%87%D8%A7) و توابعی(به صورت ساخت یافته) که قرار است بر روی این دادهها عمل کنند، تا حد امکان در قالبی به نام شی در کنار یکدیگر قرار گرفته، جمعبندی شده و یک واحد (شی) را تشکیل داده و نسبت به محیط بیرونِ خود، کپسوله (http://fa.wikipedia.org/wiki/%DA%A9%D9%BE%D8%B3%D9%88%D9%84%D9%87%E2%80%8C%D8%B 3%D8%A7%D8%B2%DB%8C_(%D8%B9%D9%84%D9%85_%D8%B1%D8% A7%DB%8C%D8%A7%D9%86%D9%87)) میشوند. <ویکیپدیا با اندکی دخل و تصرف>:لبخندساده:
از تعاریفی که برای دو نوع روش برنامه نویسی بالا وجود داره میشه این نتیجه رو گرفت که برای برنامه هایی نیاز به برنامه نویسی ساخت یافته وجود داره که برنامه دارای توابعی گوناگون هستش ولی مرتبط با یک موضوع میباشند (زمان قدیم که شی گرا نبود رو کاری نداریم) ولی وقتی برنامه توسعه داده میشه و موضوعات و گزینه هایی به برنامه اضافه میشه که ارتباطی با هم ندارن (منظور از ارتباط کارایی متفاوته) بحث شی گرایی و کلاس مطرح میشه ...
البته بحث ما برنامه های کاربردی که دوستمون می خوان یاد بگیرن هستش نه برنامه نویسی برای avr یا ...
سخن بنده :
میشه گفت ساخت و تولید یک نرم افزاری که تو اون مباحث مهندسی نرم افزار و نگاه شی گرایانه نباشه برنامه نیست و 100 در 100 با گسترش و توصعه
اون به مشکل بر می خورید ...
گسترش و توصعه یعنی چه؟ اضافه کردن ابعاد گوناگون به برنامه ... که همین ابعاد گوناگون ممکنه کار های خاص و مجزا از هم انجام بدم . (نیاز به شی گرایی)
اصلا مگه میشه گفت کسی با محیط ویژوال کار کنه و آبجکت ارینتد کار نکنه؟؟؟ اصلا تو کیوت وفتی یه پروژه جدید ( QtWıdget app) باز میکنیم اولین چیزی که میبینیم سازنده و مخربه.
Hadiir.net
چهارشنبه 30 اردیبهشت 1394, 03:53 صبح
سلام من از سال هشتاد و دو به بعد با برنامه نویسی آشنا شدم و قبلش هم آشنایی کامل با کامپیوتر و سیستم عامل و ... داشتم و یجورایی باهم بزرگ شدیم اما الانه بعد از گذشت اینهمه سال هنوز میگم اندر خم یک کوچه ام. درضمن تعریف نباشه اتفاقا خیلی هم استعداد دارم و پیشتکار اما.... نتیجتا به اینجا رسیدم که من هیچ هرچند اندازه خودم سعی مو میکنم اما خدا بهم یه پسر داده که الان چهار سال شه علاقه شدیدی هم کامپیوتر داره و حسابی باهاش درگیره راستش من تو فکر اینم که کم کم از الان بهش برنامه نویسی رو یاد بدم البته باتوجه به اندازه فهم و درکش تا اینکه انشالله اون بتونه توی آینده اش یجورایی بشه برنامه نویس.
returnx
چهارشنبه 30 اردیبهشت 1394, 18:12 عصر
من اصلا قصدم این نبود و نیست که روش های برنامه نویسی را با هم مقایسه کنم ، منظورم اینکه خیلی وقت ها ما نیاز نداریم بطور شی گرا کد بنویسیم به دلایل مختلف ، مثلا اصلا بعد توسعه مهم نیست تو یک پروژه و زمان تولید مهم ترِ ، اینجاست که اصلا روش شی گرا به کار نمیاد!
یک مبحثی هست به عنوان تولید و یک مبحث هست به عنوان توسعه، بعضا پیش میاد برای ما زمان تولید یک محصول بسیار مهم تر از توسعه پذیر بودن محصول هست ، اینجاست که اصلا برنامه نویسی شی گرا به کار نمیاد و ما میریم سراغ روشی که ما را در سریع ترین حالت ممکن به تولید برسونه...
برای همینه که نمیشه برای تمام پروژه ها یک نسخه ی واحد پیچید و گفت بهترین راه ممکن برای پیاده سازی پروژه ی مورد نظر حتما و حتما استفاده از روش شی گراست!
هنوزم هم خیلی از پروژه ها با C نوشته میشه و بخوبی هم کار می کنند و خبری هم از شی گرایی نیست و بخوبی هم توسعه پیدا می کنند!
و البته دلیلی هم وجود نداره که یک پروژه که سعی شده به طور شی گرا نوشته بشه براحتی قابل توسعه باشه!
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.