PDA

View Full Version : اصول طراحی و ساخت نرم افزارهای تجاری و اساسی



Omid.R.A.Candy
شنبه 13 مهر 1392, 11:05 صبح
سلام

همون طور که می دانید با VS می توان نرم افزارهای مختلفی با زبان های مختلف نوشت.ولی آن چیزی که مهم است این است که آیا نرم افزارهای تولید شده با این زبان آیا قدرت رقابت جهانی دارد؟ و یا باید با زبان های دیگری کار کنیم.؟

بطور مثال نرم افزار اتوکد را بر اساس کدام زبان برنامه نویسی کرده اند؟

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

و آیا مشخص بودن نوع نرم افزار که می خواهیم طراحی کنیم زبان برنامه نویسی را مشخص می کند؟

و یا بطور مثال کامپوننت های تلریک یا دیو با چه زبانی نوشته شده اند؟

مثلا بخواهیم یک نرم افزار مهندسی-علمی طراحی کنیم که هر دو ید بیضا را یعنی قدرت محاسباتی سریع و زیبایی ظاهری برنامه حفظ شود باید از کدام زبان استفاده کرد؟

NitroPlus
شنبه 13 مهر 1392, 11:56 صبح
به نظرم فرق اونچنانی نداره!
مثلا یه نرم افزار میشناسم برای دریافت شبکه ماهواره ای از تکنولوِژی دات نت داره استفاده میکنه در عین حال قوی و طرفداره های خاص خدش رو داره
اما بهتره از زبان های C/C++ و #C برای تولید پروژه هاتون استفاده کنید
و نیازه پروژهتون رو بسنجید!
ضمن نرم افزار های یاد شده هر کدم یا زبان های مختلف نوشته شده!
موفق باشید

Omid.R.A.Candy
شنبه 13 مهر 1392, 12:13 عصر
خوب من خودم با vb کار می کنم و فرق چندانی نمی بینم بین c# البته کدنویس هاشون قابل تبدیله! از محتوای c شارپ چیزی نمی دونم.آیا محتوای فایل exe این دو زبان باهم تفاوت دارند؟

فرق بین c و c++ در چیه؟

NitroPlus
شنبه 13 مهر 1392, 16:39 عصر
فرق بین c و C++‎ در چیه؟
C++ نسبته به C قدرتمند تر و بهتره!

آیا محتوای فایل exe این دو زبان باهم تفاوت دارند؟
نه! فرقی نداره!

Omid.R.A.Candy
شنبه 13 مهر 1392, 17:11 عصر
اگه بخواییم یه برنامه ابر قدرت رو یاد بگیریم c++ خوبه؟ یا رو این هم هست؟

در ضمن یه سوالی داشتم آیا با c++ میشه برا ربات ها و یا صفحات ال ای دی برنامه نویسی کرد؟

sadeghlinux
شنبه 13 مهر 1392, 17:25 عصر
قبلا قدرت تو c بود (الان هم هست) C++ بهینه شده C هست و توش میتونی ازحالت شئ گرایی استفاده کنی

تو قدرتمند بودنش شک نکن

لینوکس رو با C گسترش دادن و شایدم ویندوز!

موفق باشی

Omid.R.A.Candy
شنبه 13 مهر 1392, 18:05 عصر
قبلا قدرت تو c بود (الان هم هست) C++ بهینه شده C هست و توش میتونی ازحالت شئ گرایی استفاده کنی

تو قدرتمند بودنش شک نکن

لینوکس رو با C گسترش دادن و شایدم ویندوز!



موفق باشی

پس اگه از لحاظ اهمیت و قدرت رده بندی کنیم میشه:
1 - C
2-++C
3-#C

درست فهمیدم؟

aliagamon
شنبه 13 مهر 1392, 18:18 عصر
اگه لزومی نداره برین رو سی ++ همون وی بی رو استفاده کنید زبان خوبی ....
اما اگه به هر دلیلی فکر میکنین باید برین رو سی ++ باید بگم زبان فوق العاده خوب وا گسترده هست ... برای مثال )لینوکس بالا ذکر شد) ویندوز xp با زبان سی ++ نوشته شده ....
برای بورد های LED من کار نکردم خبر ندارم ....
روبات رو با سی ++ برنامه میدن ..... من خودم واسه امداد گر و خط یاب کار کردم

aliagamon
شنبه 13 مهر 1392, 18:21 عصر
پس اگه از لحاظ اهمیت و قدرت رده بندی کنیم میشه:
1 - C
2-++C
3-#C

درست فهمیدم؟
نه اینطور ها هم نیست الان دیگه زبان سی قدرت کافی برای پروژه های بزرگ رو نداره ....
سی شارپ و سی ++ هم فرق چندانی ندارن اتفاقا سی شارپ به دلیل کتابخانه دات نت قوی تر هم شده اما همین نقطه قوت نقطه ضعفش هم هست و خاصیت cross platform رو از اون میگیره ....

volkswagen
شنبه 13 مهر 1392, 20:38 عصر


نه! فرقی نداره!
تو اونجا که من می دونم فایل های exe اینا با هم فرق می کنند و ظاهرا سردراوردن از فایل های vb سخت تره

البته توی ورژن 6 اینطوری بود ، الان رو نمی دونم

Omid.R.A.Candy
یک شنبه 14 مهر 1392, 04:50 صبح
cross platform چیه؟

پس ++c به دات ت متکی نیست.چه خوب! ولی ++c رو الان رو vs می بینم! این بدین معنیه که به فریم ورک نیازداره!



آقا من رو ویژوال سی شارپ و سی پلاس رو می بینم ولی خبری از سی نیست! یعنی دیگه سی نداریم؟

NitroPlus
یک شنبه 14 مهر 1392, 14:11 عصر
در ضمن یه سوالی داشتم آیا با C++‎ میشه برا ربات ها و یا صفحات ال ای دی برنامه نویسی کرد؟
آره صفحات LED با میکرو کنتلر AVR کار میکنند که باید با C++ باهاش کد زد

aliagamon
دوشنبه 15 مهر 1392, 15:13 عصر
تو اونجا که من می دونم فایل های exe اینا با هم فرق می کنند و ظاهرا سردراوردن از فایل های vb سخت تره

البته توی ورژن 6 اینطوری بود ، الان رو نمی دونم


cross platform چیه؟

پس ++c به دات ت متکی نیست.چه خوب! ولی ++c رو الان رو vs می بینم! این بدین معنیه که به فریم ورک نیازداره!



آقا من رو ویژوال سی شارپ و سی پلاس رو می بینم ولی خبری از سی نیست! یعنی دیگه سی نداریم؟


cross platform برنامه هایی هستن که رویه چند سیستم عمل میان مثلا فلان برنامه رویه ویندوز و لینوکس میاد یا فلان بازی واسه اندروید و ای او اس میاد
ویژوال سی++ با سی++ فرق داره ویژوال سی ++ به فریم ورک ماکروسافت وابسته شده و درواقع نسخه ماکروسفتی سی++ هست ... اما خود سی ++ به ماکروسافت متکی نیست و رو همه سیستم عامل ها میشه استفاده کرد ....
باز هم به نوع کار بستگی داره مثلا اگه نیازی به cross platform بودن نیست رو همین VC++ کار کنین یا همین وی بی ....
همونطور که گفتم ویژوال سی ++ نسخه ماکروسافتی سی++ هست برای همین پشتیبانی میشه تو ویژوال استودیو ..... برای سی و سی++ بهتره برین سراغ GCC و لینوکس چون بیس و پای کار اونجاست یا از کامپیلر هایی چون MinGW (http://www.mingw.org/) و Cygwin (http://cygwin.com/) استفاده کن که gcc رویه ویندوز هستن

Omid.R.A.Candy
سه شنبه 16 مهر 1392, 04:43 صبح
cross platform برنامه هایی هستن که رویه چند سیستم عمل میان مثلا فلان برنامه رویه ویندوز و لینوکس میاد یا فلان بازی واسه اندروید و ای او اس میاد
ویژوال سی++ با سی++ فرق داره ویژوال سی ++ به فریم ورک ماکروسافت وابسته شده و درواقع نسخه ماکروسفتی سی++ هست ... اما خود سی ++ به ماکروسافت متکی نیست و رو همه سیستم عامل ها میشه استفاده کرد ....
باز هم به نوع کار بستگی داره مثلا اگه نیازی به cross platform بودن نیست رو همین VC++ کار کنین یا همین وی بی ....
همونطور که گفتم ویژوال سی ++ نسخه ماکروسافتی سی++ هست برای همین پشتیبانی میشه تو ویژوال استودیو ..... برای سی و سی++ بهتره برین سراغ GCC و لینوکس چون بیس و پای کار اونجاست یا از کامپیلر هایی چون MinGW (http://www.mingw.org/) و Cygwin (http://cygwin.com/) استفاده کن که gcc رویه ویندوز هستن

اطلاعات خیلی مفید و جامعی دادین!

اگه ++c با ویژوال++c تفاوت دره ! آیه تفاوته فقط در دات نته؟!!! و خود ++c رو کدوم شرکت نوشته؟

cross platform رو نفهمیدم یعنی چی!!! میشه ساده تر توضیح بدین؟!!!

ویک سول حاشیه ای و اون اینکه برای سیستم عامل مک با چه زبانی که قدرت vs رو داشته باشه میشه برنامه نوشت؟

aliagamon
چهارشنبه 17 مهر 1392, 20:12 عصر
تفاوت تو یه فریم ورک هست و دقیقا یه چیزی تو مایه های دات نت میمونه ....
زبان سی ++ رو نمیشه گفت کی ساخته چون هرکی یه دستی تو کار داشته (ماکروسافت .... اپل ...استالمن [بنیان گذر پروژه گنو]...توروالدز[نویسنده هسته لینوکس]......)خلاصه زبانی که همه روش کار کردن واقعا انعطاف پذیر .... اما بنیان گذر این زبان ستراستروپ بود http://www.stroustrup.com/
cross platform هم فکر کنم توضیح کامل بود برنامه هایی که به سیستم عامل خاصی محدود نیست ....
تو مک معمولا با objective C مینویسن

Omid.R.A.Candy
چهارشنبه 17 مهر 1392, 23:24 عصر
تفاوت تو یه فریم ورک هست و دقیقا یه چیزی تو مایه های دات نت میمونه ....
زبان سی ++ رو نمیشه گفت کی ساخته چون هرکی یه دستی تو کار داشته (ماکروسافت .... اپل ...استالمن [بنیان گذر پروژه گنو]...توروالدز[نویسنده هسته لینوکس]......)خلاصه زبانی که همه روش کار کردن واقعا انعطاف پذیر .... اما بنیان گذر این زبان ستراستروپ بود http://www.stroustrup.com/
cross platform هم فکر کنم توضیح کامل بود برنامه هایی که به سیستم عامل خاصی محدود نیست ....
تو مک معمولا با objective C مینویسن


اگر کسی ++c رو بلد باشه می تونه ++c ویژوال رو هم کار کنه؟ یا کد نویسی هاش تفاوت میکنه؟

و اگه ما در ++c یه برنامه ای حالا هرچی شد نوشتیم با توجه به دارا بودن cross platform میشه انتظار داشت که تو هر سیستم عملی چه ویندوزی و چه مکی و چه لینوکسی کار کنه؟

و اون ++c که میشه برا روبات برنامه نوشت برا ویژواله یا خود ++c؟

و در ضمن اگر با ++c ویژوال برنامه ای بنویسیم این برنامه فقط تو ویندوز قابل اجراست؟

هک کردن برنامه های ای که با خود ++c نوشته میشه چه جوریاست؟ سخته؟ یا نصب به دات نت آسون تره؟

برای اینکه بخوام خود ++c رو یاد بگیرم از کجا و چه کتابهایی شروع کنم؟ الان کدوم ورژن آخرین نسخشه؟ از کجا دانلود کنم؟ ...

ramin_22
پنج شنبه 18 مهر 1392, 07:11 صبح
الان در این تاپیک اصول طراحی و ساخت نرم افزارهای تجاری و اساسی را خیلی خوب یاد گرفتیم !

Omid.R.A.Candy
پنج شنبه 18 مهر 1392, 12:20 عصر
الان در این تاپیک اصول طراحی و ساخت نرم افزارهای تجاری و اساسی را خیلی خوب یاد گرفتیم !

اجازه بدین بحثها تموم بشه برات یه pdf درست می کنم با یه نمونه برنامه تا خوب یاد بگیری.:چشمک:

Vitallity
پنج شنبه 18 مهر 1392, 13:32 عصر
اگر کسی ++c رو بلد باشه می تونه ++c ویژوال رو هم کار کنه؟ یا کد نویسی هاش تفاوت میکنه؟

ببین C++‎ یک زبان برنامه‌نویسی هست و Visual C++‎ یک IDE (Integrated Devlopment Environment ) یعنی محیطی هست که امکانات توسعه نرم‌افزار به زبان C++‎ رو توی یه جا جمع کرده... چه امکاناتی؟ امکانات ابتدایی مثل فرمت کد و استایل تا امکاناتی مثل کامپایلر و Debugger و ابزارهای Profiling و ...


و اگه ما در ++c یه برنامه ای حالا هرچی شد نوشتیم با توجه به دارا بودن cross platform میشه انتظار داشت که تو هر سیستم عملی چه ویندوزی و چه مکی و چه لینوکسی کار کنه؟Cross platform تا زمانی ممکن هست که کدی رو که نوشتی کامپایلر دیگه توی سیستم عامل دیگه هم بتونه اون رو کامپایل کنه. یعنی اگر توی ویندور از Windows forms یا winsoc استفاده کردی نباید توقع داشته باشی توی لینوکس یا هر سیستم عامل دیگه‌ای هم اجرا بشه چون از کتاخونه‌های اختصاصی سیستم‌عامل ویندور استفاده کردی، برای همین یه کتابخونه‌هایی رو توسعه دادن که با استفاده از اونا میشه کد جامع‌تری برای بقیه Platform ها هم نوشت. مثل Boost یا Qt یا ...


و اون ++c که میشه برا روبات برنامه نوشت برا ویژواله یا خود ++c؟همون کدی که برای ربات می‌خواهی بنویسی باید توسط یه سیستم عامل اجرا بشه. این‌طور نیست؟ توی این‌جور موارد روی یه پردازنده کوچیک (Micro processor) یه سیستم عامل نصب می‌کنن که تا جایی که می‌دونم توزیعی از لینوکس هست. و با توجه به توضیح سوال قبل فکر کنم جواب واضح هست.(اما برای کد زدن این جور سیستم‌ها(Embedded systems) از C استفاده می‌کنن به خاطر بازدهی بیشتر... اما چرا C بازدهی بیشتری داره و سریع‌تر هست از موضوع این بحث خارجه )


و در ضمن اگر با ++c ویژوال برنامه ای بنویسیم این برنامه فقط تو ویندوز قابل اجراست؟ هم نه، هم آره (جواب دو تا سوال قبلتر رو بخون)


هک کردن برنامه های ای که با خود ++c نوشته میشه چه جوریاست؟ سخته؟ یا نصب به دات نت آسون تره؟سخته، بله، بله.


برای اینکه بخوام خود ++c رو یاد بگیرم از کجا و چه کتابهایی شروع کنم؟ الان کدوم ورژن آخرین نسخشه؟ از کجا دانلود کنم؟ ... من به دوستام همیشه توصیه می‌کنم همیشه از کتاب‌های به زبان انگلیسی استفاده کنند. چرا؟ چون توی ترجمه مفهوم به درستی انتقال پیدا نمی‌کنه و درک مطلب خیلی از موارد گنگ و مبهم می‌شه و برای فهمیدن یه موضوع ساده باید چند بار اون مطلب رو بخونی... تقریباً هیچ کتاب برنامه نویسی خوبی به زبان فارسی نداریم! به جای اینکه 5 سال وقت بذاری تا مطالب رو به زبان فارسی بخونی 1 سال صرف یادگرفتن زبان کن تا اون راه 5 ساله رو توی دو سال طی کنی!
خوب جدای این فلسفه بافی‌ها یه کتاب خوب به فارسی در سطح خیلی مبتدی هست که اون رو پیش‌نهاد می‌کنم: " آموزش برنامه نویسی سی پلاس پلاس بدون ترس"
اما اگر زبانت خوبه The C++ Programming for Game Developers (Module I) و Module II رو مطالعه کن... و بدون شک، بدون اغراق بهترین کتاب برای شروع یادگیری C++ هست.
اما برای سطح‌های بالاتر:

Code Complete
Effective C++
More Effective C++
Thinking in C++
و سال‌ها بعد:
Design Patterns: Elements of Reusable Object-Oriented Software

aliagamon
پنج شنبه 18 مهر 1392, 15:13 عصر
کتاب فارسی خیلی خوب هم بخوای میتونی از کتاب سی++ جعفر نژاد قمی استفاده کنی

a_mohammadi_m
جمعه 26 مهر 1392, 23:35 عصر
با سلام
اولا برای محیطهای مختلف انواع c رو داریم و معمولا برنامه نوشته شده با یکی از اونها در جاهای دیگه خیلی قابل استفاده نیست مگر با تغییرات ضروری
ثانیا الان اکثر زبانها Visual شده و برنامه نویسی به شکل قدیم متنی داره منقرض میشه
ثالثا اگه میخواهید برنامه تون در بیشتر پلات فرمها راحت اجرا بشه تقریبا میشه گفت جاوا این کار رو میتونه انجام بده
زبان C در معنی عام به این دلیل که انواع مختلفش خیلی شیبه هم هستند تجربه شما در یکی از انواع اون به شما در استفاده از انواع دیگرش کمک میکنه اما باز هم باید اون نوع خاص رو یاد بگیری