جالب بود!!!همچنن دقت های محاسباتی توی این سیستمها انقد زیاده که قابل مقایسه با C نیست
جالب بود!!!همچنن دقت های محاسباتی توی این سیستمها انقد زیاده که قابل مقایسه با C نیست
Hope is a good thing, maybe the best of things, and no good thing ever dies
جسارتن یه پیشنهادی بدم خدمتتون این هست که VB6.0 رو بیخیال شید همون Visual Basic.Net رو کار کنید. vb6 خیلی قدیمی شده دیگه و حتی ممکنه برای پیدا کردن visual studio قدیمی هم به مشکل بخورین. vb.net هم همون استراکچر ساده رو داره تقریبا در عین حال که امکان استفاده از ساختارها و امکانات پیشرقته امروزی رو هم در اختیارتون قرار میده
به دلیل مشغله زیاد از پاسخ به پیامهای خصوصیِ غیرخصوصی اکیدا معذورم....
ضمن پوزش تاخیر تاپیک Verbal@Advantage کامل شد.
پروژه آپلود پادکستهای انگلیش پاد شروع شد. به همگان توصیه میشود گوش کنند.
امضا کنید اینجا رو لطفا
البته این نکته رو اضافه کنم دقت بالا در C قابل پیاده سازی هست منتها خوب توی .net مثلا یه نوع داده به اسم Decimal اضافه کردن که فوق العاده دقتش بالاست و بیسش روی floating point نیستش که این خودش خیلی دقت رو بالا میبره. و استفاده از این نوع داده ها بسیار راحتتر هست از درگیری برای پیدا کردن یا پیاده سازی ساختارهای با دقت بالا.
به دلیل مشغله زیاد از پاسخ به پیامهای خصوصیِ غیرخصوصی اکیدا معذورم....
ضمن پوزش تاخیر تاپیک Verbal@Advantage کامل شد.
پروژه آپلود پادکستهای انگلیش پاد شروع شد. به همگان توصیه میشود گوش کنند.
امضا کنید اینجا رو لطفا
با سلام خدمت همگی. اول از همه می خواستم از دوستی که این تاپیک رو باز کرده تشکر کنم که باعث شد من یه سوالی که اخیرن برام پیش اومده رو بتونم مطرح کنم. خدا ایشا... پیرت کنه!!
من یه مدتیه که دارم با C برای کارهای با محاسبات سنگین(scientific computing) کار می کنم و برنامه های نسبتا طولانی ای هم نوشتم (حدود 5000 خط) ولی مشکلم اینه که با object oriented programming آشنایی ندارم و برنامه هام رو procedural مینویسم و از من بپذیرید که debug کردن برنامه های procedural در این اندازه بعضی وقتها واقعا گریه آدمو در میاره یعنی اینجوری:
حالا مشکل من اینه که چون تا حالا oop کار نکردم یادگیریش برام یه کم سخت شده و اکثر کتاب هایی هم که میبینم فقط syntax برنامه نویسی oop رو یاد میدن (مثلا کلاس در c++ با چه دستوری تعریف می شود و ...)
و در مورد خود ساختارهای object ها و نحوه تفکر برای پیاده سازی یک الگوریتم در قالب یک برنامه object oriented و استفاده از قابلیت های oop توضیحی نمی دهند....
و از اون طرف کتابهایی که در مورد آموزش OOP وجود دارند معمولا از زبان هایی غیر از c++ (معمولا java) استفاده می کنند.
می خواستم در این مورد از دوستان مطلع کمک بگیرم که کتاب یا مرجعی برای آموزش پایه ای نحوه تفکر و پیاده سازی یک برنامه با ساختار object oriented (البته با تاکید بر c++) به من معرفی کنند.
امیدوارم که تونسته باشم منظورمو به طور واضح برسونم.
با تشکر از همه
سوال جالبی بود از طرف کسی که نرم افزار نخونده و به شی گرا فکر میکنه.
قبل از اینکه شما رو به صفحات قطور یا سریالهای طولانی آموزشی ارجاع بدم ، چند نکته رو میخوام گوشزد کنم.
تفکر شی گرایی بیش از اینکه ربطی به زبان برنامه نویسی داشته ، ربط به مفهمو کلی و فلسفه وجودی اون داره. شما باید سعی کنید چیزی رو که میخواین پیاده کنید رو بصورت شی گرا ببینید در کنارش مهندسی بکنید شی رو و بعد پیاده کنید و برای اینکار فقط نیاز به سه چیز هست : دانش شی گرایی ، قلم و کاغذ!
مفهموم شی گرایی و طراحی نرم افزار براساس شی گرایی چیزی نیست که یک شبه شما بتونید اون رو یاد بگیرید البته تو کارهای کوچیک شما خیلی راحتتر میتونید جلو برید و سریع به نتیجه برسید ولی اگر واقعاً میخواین چیزی که به معنای واقعی شی گرا مطرح میشه رو یاد بگیرید و برنامه هاتون کامل براساس اون مفهوم بره جلو حداقل 2سال باید به این صورت کد زده باشید تا بتونید یک درخواست بزرگ رو به اجزا atomic تبدیل کنید.
تو پروژه های خیلی بزرگ این تمرین شی گرایی زمان بیشتری رو میطلبه شاید 5 سال و البته در کنار شی گرایی شما باید design patternها رو هم یاد بگیرید در حال حاضر 23 الگوی طراحی برای مهندسی نرم افزار پیشنهاد شده که همه روزه داره سرتاسر دنیا ازش استفاده میشه و باهاش نرم افزار مینویسن.
اما یکی مهمترین نکات مهندسی نرم افزار که همیشه باید مد نظر داشته باشید separation of concerns هست یعنی دسته بندی نیازها / نیازها تو دنیای کامپیوتر عموماً به سه دسته : نمایش ، کنترل ، مدل تقسیم میشه.
نمایش : رابط کاربری و تمامی functionهای مربطو به رابط کاربری باید در یک پکیج باشند
مدل : مغز فعالیتهای شما معمولاً توی مدل جا میگیره ، مدل همون جایی هست که توابع محسباتی باید باشند
کنترل : میشه گفت به عنوان ستون فقرات برنامه عمل میکنه جایی درخواست های رابط کاربری رو به مدل وصل میکنه و بالعکس
این فلسفه بالا به انواع مختلف تو الگوهای طراحی پیاده شده از جمله MVC / MVP /MVVM
شما هرچی بیشتر بتونی به شی و کوچک کردن یک شی بزرگ به اجزا خیلی کوچیک جدایی ناپذیر(atom) فکر کنی در این راه موفق تری
کتاب مبتدی برای شروع طراحی شی گرا به نظرم این کتاب بد نیست
http://www.amazon.com/Head-First-Obj...1427601&sr=1-1
نوشتارش ساده و pratctical هست منتها زبانی که استفاده میکنه جاوا هست
برای سی پلاس پلاس : کتاب دیتل ها یه مثال کامل از پیاده سازی یک دستگاه atm بصورت شی داره که البته خوندن و پیشرفتن با کتاب فکر کنم چندماهی وقتتون رو بگیره ولی اگر واقعاً ایده ایی از شی ندارین ولی دوست دارین که ایده بگیرین تنها راه تمرینه و اون کتاب تمرین خوبیه برای تمرین.
http://www.amazon.com/C-Programmers-...1428512&sr=1-2
این کتاب هم بد نیست ولی فرض بر اینه که شما سی پلاس پلاس بلد هستید و با مفاهیم پایه آشنایی دارین(ولی بعید میدونم نسخه الکترونیکی داشته باشه!)
http://www.amazon.com/Effective-Obje.../dp/0130867691
برای الگو طراحی این کتاب
http://www.amazon.com/Design-Pattern...1428644&sr=1-2
Hope is a good thing, maybe the best of things, and no good thing ever dies
دوستانی که برنامه نویسی ++C کار می کنند، این سایت بسیار خوب هست برای اصول اولیه.
درود
کتاب thinking in c++ یا thinking in java یا thinking in patterns رو پیشنهاد میکنم منتها دنبال oop توی C نباشید(اگر برداشتم از صحبتتون درست باشه البته!) و اگر تارگتتون محاسبات پیچیده هست پیشنهاد میکنم برنامه نویسی همروند رو هم بررسی بفرمایید زندگانی براتون خیلی زیباتر خواهد شد. البته یه سری نکته داره منتها یاد بگیرید باشون کار کنید حله!+ میتونید از زبانهایی که امکان threading رو داشته باشند (در C هست منتها خیلی سختهههههه) استفاده کنید که باز میتونه انتحاب خوبی باشه برای زیباتر کردن زندگانیتون.
پیروز باشید
به دلیل مشغله زیاد از پاسخ به پیامهای خصوصیِ غیرخصوصی اکیدا معذورم....
ضمن پوزش تاخیر تاپیک Verbal@Advantage کامل شد.
پروژه آپلود پادکستهای انگلیش پاد شروع شد. به همگان توصیه میشود گوش کنند.
امضا کنید اینجا رو لطفا
درود
متاسفانه F# رو نمیشناسم در حدی که اضحار نظری دربارش کنم منتها runtime در c++ سریعتر از دیگران هست. منتها به ایده ی بنده در دنیای امروزی میشه خیلی از محاسبات رو بسیار ساده تر کرد و از پیچیدگیشون کم کرد از جمله روشهاش Devide and conquer هست که میتونید معادله رو به زیر معادلاتی تقسیم و حل کنید بعد ترکیبشون کنید. روش دیگه برنامه نویسی همروند هست که میتونید همزمان بیشترین resource های سیستم استفاده کنید.
جمع یندی: ترجیه میدم هندل کردن محاسبات پیچیده بیشتر توسط برنامه نویس انجام شه تا زبان منتها اگر دقت خیلی بالا بخاین با ساختار decimal که تو یه پست دیگه گفته بودم سرعتتون یه مقدار پایین میاد. به نظرم بستگی داره با کدوم راحتتر هستید و ابزارهای مورد نیازتون تو کدوم آماده هست.
پیروز باشید
به دلیل مشغله زیاد از پاسخ به پیامهای خصوصیِ غیرخصوصی اکیدا معذورم....
ضمن پوزش تاخیر تاپیک Verbal@Advantage کامل شد.
پروژه آپلود پادکستهای انگلیش پاد شروع شد. به همگان توصیه میشود گوش کنند.
امضا کنید اینجا رو لطفا
علاقه مندی ها (Bookmarks)