PDA

View Full Version : سوال: کتابخانه استاندارد c++. چگونه چرخ را از نوع اختراع کنیم؟



PSPier
دوشنبه 12 خرداد 1393, 16:45 عصر
وقتی سراغ فریمورک Qt رفتم به مساله جالبی بر خوردم. سازنده های Qt فقط به اضافه کردن امکانات جدید به کتابخونه ی استاندارد بسنده نکردن، بلکه بیشتر اون رو از نو ساختن (مثل QString). به قولی چرخ رو از نو اختراع کردن!
این مساله این ایده رو به ذهن من آورد که چرا من این کارو نکنم!؟ (متاسفانه سوالات شبیه این به محض وارد شدن به یه فریمورک به ذهن شخص می رسه. البته اینکه کسی بخواد کتابخونه ی استاندارد رو دستکاری کنه تقریبا غیر ممکن و ساده لوحانست!) این ایده(هر چند که وقت زیادی از من گرفت) باعث شد درک خیلی بهتری از کتابخونه ی استاندارد و در کل بحث کتابخونه تو C++‎ پیدا کنم.
حالا این تاپیک رو زدم تا از دوستان خواهش کنم (مخصوصا برنامه نویس های حرفه ای که احتمالا چنین کاری رو انجام دادن) که سوالای من رو بخونن و اطلاعات و مخصوصا تجربیاتشون روتو این زمینه به اشتراک بذارن.
(اگه هم توی سوالام مشکل فنی هست(اگه هست واسه اینه که خواستم خیلی ساده باشن!) خوشحال می شم اشتباهمو توضیح بدین).

1) کتابخونه استاندارد C++‎‎‎‎‎‎‎ رو کی می سازه؟ اصلا چرا می سازه، وقتی کتابخونه های فریمورک های Qt یا visual C++‎‎‎‎‎ هستن؟ (البته منظورم آپدیت های جدید مثل C++‎‎‎‎‎11 هست )

2) این کتابخونه چرا ناقص به نظر میاد؟ به تعبیر دیگه ای میشه این طوری گفت که این کتابخونه چرا کاربرد تجاری نداره؟

3) فایل های سرآیند این کتابخونه رو تو کامپایلر های مختلف پیدا میشه. فایل های پیاده سازی رو از کجا میشه پیدا کرد؟

4) آیا این کتابخونه open source هست؟ (به فرض دسترسی به سورس این کتابخونه) آیا میشه توی اون تغییر ایجاد کرد و توزیعش کرد؟

5) (به فرض دسترسی به سورس این کتابخونه) باید چی بلد باشیم و به چه چیزی دسترسی داشته باشیم که بتونیم توش تغییر ایجاد کنیم؟(مثلا آیا باید assembly بلد باشیم؟)

6) در نهایت، از صفر، بدون دسترسی به هیچ کتابخونه ی دیگه ای چطور میشه یه کتابخونه جدید ساخت؟ باید چی بلد باشیم و به چه چیزی دسترسی داشته باشیم که بتونیم توش تغییر ایجاد کنیم؟

motherboard
دوشنبه 12 خرداد 1393, 19:01 عصر
کتابخونه استاندارد C++‎ رو کی می سازه
یک ادم برنامه نویس!!!!!! دونستن اینها فکر نمی کنم خیلی لازم باشه.این سوالتون من رو یاد درس ادبیات دوره راهنمایی انداخت.اونجا که معلم می گفت خواجه عبدالله انصاری که بود!!!!!!! الان مثلا بدونی میشی برنامه نویس؟؟؟!!!!!! برو شروع کن به برنامه نویسی.کسایی کتابخونه می سازن که مرد برنامه نویسی هستند.

PSPier
دوشنبه 12 خرداد 1393, 22:33 عصر
یک ادم برنامه نویس!!!!!! دونستن اینها فکر نمی کنم خیلی لازم باشه.این سوالتون من رو یاد درس ادبیات دوره راهنمایی انداخت.اونجا که معلم می گفت خواجه عبدالله انصاری که بود!!!!!!! الان مثلا بدونی میشی برنامه نویس؟؟؟!!!!!! برو شروع کن به برنامه نویسی.کسایی کتابخونه می سازن که مرد برنامه نویسی هستند.


آقای رضا اینکه به همچین تاپیکی جواب دادین ممنون. ولی باید بگم نظرتون یکم سختگیرانه بود! (یه مبتدی مثل من دلسرد میشه)

motherboard
دوشنبه 12 خرداد 1393, 23:43 عصر
آقای رضا اینکه به همچین تاپیکی جواب دادین ممنون. ولی باید بگم نظرتون یکم سختگیرانه بود! (یه مبتدی مثل من دلسرد میشه)
تمام حرف من اینه که با مقاله خوندن در مورد اینکه چه کسانی کتابخانه می نویسند کسی برنامه نویس نمیشه.برای کتابخانه ساختن شما باید یک مبحث خیلی خیلی مهم به اسم تابع رو بلد باشی.زمانی که به درستی تابع رو درک نکردید حالا شما صد تا مقاله در مورد اینکه کتابخانه ها رو چه کسانی می سازند بخون.در واقع داری کتاب داستان می خونی.شما مبحث تابع رو قشنگ یاد بگیر.اون وقت متوجه می شی که کتابخونه ساختن یعنی چی!!!!!!!

omid_kma
سه شنبه 13 خرداد 1393, 00:01 صبح
++C یک کمیته ویژه داره که استاندارد ها و این که هر قسمت به چه شکل باید کار کنه رو داخلش تدوین می کنن .
می تونین آخرین ورژن استاندارد رو از این لینک دانلود کنین https://raw.githubusercontent.com/cplusplus/draft/master/papers/N3936.pdf
که داخلش ویژگی هایی که هر قسمت باید داشته باشه کامل ذکر شده
مثلا متن مربوط به sort موجود در هدر algorithm :

sort [sort]
template<class RandomAccessIterator>
void sort(RandomAccessIterator first, RandomAccessIterator last);
template<class RandomAccessIterator, class Compare>
void sort(RandomAccessIterator first, RandomAccessIterator last,
Compare comp);
1 Effects: Sorts the elements in the range [first,last).
2 Requires: RandomAccessIterator shall satisfy the requirements of ValueSwappable (17.6.3.2). The
type of *first shall satisfy the requirements of MoveConstructible (Table 20) and of MoveAssignable
(Table 22).
Complexity: O(N log(N)) (where N == last - first) comparisons.

و هر کامپایلری کتابخانه هاشو به هر شکلی که بخواد مینویسه فقط مهم اینه که استاندارد کاملا رعایت بشه . مثلا در مورد همین sort حتما باید داخلش NlogN بار مقایسه انجام بشه ( یعنی افرادی زیادی هستن که این library ها رو می نویسن )

داخل 11++C فقط کتابخانه اضافه نشده خیلی ویژگی (http://www.7khatcode.com/index.php?qa=3180&qa_1=%D9%88%DB%8C%DA%98%DA%AF%DB%8C-%D9%87%D8%A7%DB%8C-c-11) های دیگه اضافه شده که ربطی به کتابخونه ندارن مثل move semantic (http://www.7khatcode.com/43/%D9%85%D9%86%D8%B8%D9%88%D8%B1-%D8%A7%D8%B2-move-semantics-%D8%AF%D8%B1-c-11-%DA%86%DB%8C%D9%87-%D8%9F)
ضمنا Qt صرفا یک فریمورک برای GUI هستش مقایسش با STL درست نیست از ++C خیلی جاهای دیگه هم استفاده میشه مثل نوشتن engine game برنامه برای سیستم های embded , ..

میتونین پیاده سازی استاندارد توسط GCC رو توی github پیدا کنین https://github.com/mirrors/gcc
مثلا این فایل مربوط به پیاده سازی vector در gcc
https://github.com/mirrors/gcc/blob/master/libstdc%2B%2B-v3/include/bits/stl_bvector.h

motherboard
سه شنبه 13 خرداد 1393, 00:26 صبح
با تشکر از جناب omid_kma (http://barnamenevis.org/member.php?323331-omid_kma) .موضوع مهمی که وجود داره اینه که این دوست گرامی بیاد چنین مقاله هایی رو روزانه تکرار کنه.ایا چیزی یاد می گیره؟؟؟؟؟چنین مقاله هایی به عنوان اطلاعات عمومی برنامه نویس در طی حرفه ای که داره لازمه.اما اینکه یک مبتدی بیاد بگه کتابخونه ها رو کی درست می کنه؟و یک سری اطلاعات عمومی برنامه نویسی رو در این رابطه می خواد اون هم در زمانی که اصلا نمیدونه تابع چیه و تابع در ذهنش دو تا پرانتز هستش چه سودی به حالش داره؟اینگونه اطلاعات برای یک تازه کار که مباحث کلیدی رو نمیدونه هیچ سودی رو براش نداره.البته دونستن اینها لازم هستش.اما به موقعش.

omid_kma
سه شنبه 13 خرداد 1393, 01:11 صبح
برنامه نویسی یعنی همین . برنامه نویسی که کنجکاو نباشه که برنامه نویس نمیشه اسمشو گذاشت .
من دلیلی نمیبینم که بخاطر پرسیدن سوال کسی رو سرزنش کرد !!
دونستن یک مطلب همیشه بهتر از ندونستنشه !
این سوال هم از 99 درصد سوالایی که توی این سایت پرسیده میشه بهتره وگرنه منم دوست نداشتم وقتمو این جا تلف کنم !! چیزایی مثل
http://barnamenevis.org/showthread.php?454123-%D9%83%D8%A7%D9%85%D9%BE%D8%A7%D9%8A%D9%84-%D9%8A%D9%83-%D9%83%D8%AF
http://barnamenevis.org/showthread.php?453864-%D9%BE%D8%B1%D8%AF%D8%A7%D8%AE%D8%AA-%D9%82%D8%A8%D9%88%D8%B6
http://barnamenevis.org/showthread.php?454124-%D8%A8%D9%87%D9%85-%D8%B1%DB%8C%D8%AE%D8%AA%D9%86-%D8%A7%D8%B4%DA%A9%D8%A7%D9%84-%DA%AF%D8%B1%D8%A7%D9%81%DB%8C%DA%A9%DB%8C-%D9%87%D9%86%DA%AF%D8%A7%D9%85-Run-%DA%AF%D8%B1%D9%81%D8%AA%D9%86-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87
و وووو

حالا به هر حال اگر شما ناراحت شدی من پستم رو پاک می کنم !!

PSPier
سه شنبه 13 خرداد 1393, 02:40 صبح
اقای omid-kma واقعا ممنون. لطف بسیار بزرگی کردین که وقت گذاشتین واسه این تاپیک. سراغ همچین تاپیکی تو خیلی از فروم ها گشتم(خارجی و داخلی) چند تا هم پیدا کردم ولی همه بی جواب(وبدون لینک!) بابت لینکی که واسه gcc گذاشتین هم ممنون. انتظار ندارم خودتون کامل توضیح بدین، ولی اخاهش می کنم اگه میشه(وقت و حوصلش رو دارین) اطلاعات بیشتری رو به اشتراک بذارین(لینک هم بدین که عالیه).


"موضوع مهمی که وجود داره اینه که این دوست گرامی بیاد چنین مقاله هایی رو روزانه تکرار کنه.ایا چیزی یاد می گیره؟؟؟؟؟چنین مقاله هایی به عنوان اطلاعات عمومی برنامه نویس در طی حرفه ای که داره لازمه.اما اینکه یک مبتدی بیاد بگه کتابخونه ها رو کی درست می کنه؟و یک سری اطلاعات عمومی برنامه نویسی رو در این رابطه می خواد اون هم در زمانی که اصلا نمیدونه تابع چیه و تابع در ذهنش دو تا پرانتز هستش چه سودی به حالش داره؟اینگونه اطلاعات برای یک تازه کار که مباحث کلیدی رو نمیدونه هیچ سودی رو براش نداره.البته دونستن اینها لازم هستش.اما به موقعش."

با نظرشما در باره ی اینکه دونستن این چیزا واسه تازه کارا زوده موافقم. ولی فکر کنم مشکل از منه. من گفتم مبتدیم، شما هم با این پیش فرض به مساله نگاه میکنین. این که میگم مبتدیم واسه اینه که می خوام از دید یه مبتدی به قضیه نگاه بشه! اگه این تاپیک خیلی مبتدیانه به نظر میاد به خاطر اینه که خواستم جوری باشه که یه مبتدی(یکی که تازه با C++‎‎‎ آشنا شده) گیج نشه پیش خودش بگه اینا چی دارن میگن! (محض اطلاع، من مدت زیادیه که دارم برنامه می نویسم. مدت زیادی با .net و بعد باQtکار کردم). از طرفی هم جواب این سوال ها رو هر کسی به درستی نمی دونه. من مطالب زیادی رو در باره ی کتابخونه ی C++‎‎‎ میدونم اما ناقصن. به خاطر همین هم قبل از به اشتراک گذاشتنشون بهتر دیدم از افراد باتجربه ای مثل omid-kma بخوام که اگه منابع و اطلاعات بهتری دارن به اشتراک بذارن. به هر حال امیدوارم منظورم رو خوب رسونده باشم. اگه شما هم اطلاعاتی دارین که کمک به این تاپیک میکنه ممنون میشم به اشتراک بذارین.

PSPier
سه شنبه 13 خرداد 1393, 03:01 صبح
"هر کامپایلری کتابخانه هاشو به هر شکلی که بخواد مینویسه فقط مهم اینه که استاندارد کاملا رعایت بشه"

این یعنی کامپایلری که توی Qt وجود داره و کامپایلری که توی visual c++ وجود داره فقط استاندارد رو رعایت کردن ولی با پیاده سازی های مختلف؟


ضمنا Qt صرفا یک فریمورک برای GUI هستش مقایسش با STL درست نیست.

میشه بیشتر توضیح بدین؟

حالا یه سوال، فرض کنیم نحوه پیاده سازی iostream و همچنین استانداردش رو می دونیم. اگه بخوایم توش دست ببریم آیا با همین مقدار c++ که بلدیم می تونیم این کارو بکنیم؟ به دانش دیگه ای نیاز نیست؟ (اگه توی سوالام مشکل فنی هست خوشحال می شم اشتباهمو توضیح بدین).

motherboard
سه شنبه 13 خرداد 1393, 11:40 صبح
برنامه نویسی یعنی همین . برنامه نویسی که کنجکاو نباشه که برنامه نویس نمیشه اسمشو گذاشت .
من دلیلی نمیبینم که بخاطر پرسیدن سوال کسی رو سرزنش کرد !!
بله درسته.برنامه نویس باید کنجکاو باشه.من این دوست گرامی رو نسبت به طرح سوال و ایجاد تاپیک برای اون سرزنش نکردم.اما ایشون تاپیکی رو ایجاد کرده بود که از دید یک مبتدی می خواست بدونه کتابخانه رو چه کسی می نویسه و یک سری اطلاعات دیگه.این چیزها بد نیست بلکه هم واجبه.من هم از روی دلسوزی گفتم که بر فرض که همه ی کاربرها اومدند یک پی دی اف جداگانه در مورد این سوالتون ارائه دادند.ایا کاربر مبتدی با همه ی این ها می تونید کتابخانه درست کند؟؟؟؟؟!!!!!!!البته که نه.برای برنامه نویس شدن باید برنامه نوشت هرچند ادم از تاریخچه برنامه نویسی و یک سری اطلاعات عمومی اطلاع نداشته باشه.!!!!!

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

این سوال هم از 99 درصد سوالایی که توی این سایت پرسیده میشه بهتره وگرنه منم دوست نداشتم وقتمو این جا تلف کنم !! چیزایی مثل
http://barnamenevis.org/showthread.p...3-%D9%83%D8%AF (http://barnamenevis.org/showthread.php?454123-%D9%83%D8%A7%D9%85%D9%BE%D8%A7%D9%8A%D9%84-%D9%8A%D9%83-%D9%83%D8%AF)
http://barnamenevis.org/showthread.p...A8%D9%88%D8%B6 (http://barnamenevis.org/showthread.php?453864-%D9%BE%D8%B1%D8%AF%D8%A7%D8%AE%D8%AA-%D9%82%D8%A8%D9%88%D8%B6)
http://barnamenevis.org/showthread.p...A7%D9%85%D9%87 (http://barnamenevis.org/showthread.php?454124-%D8%A8%D9%87%D9%85-%D8%B1%DB%8C%D8%AE%D8%AA%D9%86-%D8%A7%D8%B4%DA%A9%D8%A7%D9%84-%DA%AF%D8%B1%D8%A7%D9%81%DB%8C%DA%A9%DB%8C-%D9%87%D9%86%DA%AF%D8%A7%D9%85-Run-%DA%AF%D8%B1%D9%81%D8%AA%D9%86-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87)
و وووو
اول اینکه درست نیست به پست های دیگر کاربران احترام نگذارید.چون در اکثر موارد شما اصلا پستی رو در اون تاپیک ها ارسال نمی کنید که دارید این طور قضاوت می کنید.پس لااقل به پست های دیگران که زحمت می کشند و وقت می گذارند و پاسخی رو ارائه می کنند احترام بگذارید.

حالا به هر حال اگر شما ناراحت شدی من پستم رو پاک می کنم !!
من ناراحت نشدم بلکه ظاهرا شما ناراحت شدید!!!!.من که بابت پستتون از شما تشکر کردم و اتفاقا از پستتون استفاده بردم.من تنها نسبت به افراد مبتدی که خیال می کنند با دانستن این جور موارد میشن برنامه نویس انتقاد کردم و گفتم زمانی که مبتدی مفهوم تابع رو درک نکرده حالا هزار تا مقاله هم در مورد این جور موارد بخونه اخرش هیچی به هیچی.در عین حال خیلی از کسانی که پست شما رو مطالعه می خونند استفاده می کنند همان طور که من استفاده بردم.اما چون این عزیز سوال رو از دیدگاه یک مبتدی صفر بیان کرد به خاطر همین انتقاد کردم و گفتم دونستن این موارد هر چند از روی کنجکاوی سودی به حالش نداره.در ضمن به نظر شما و بعضی کاربران روحیه ظریفی رو دارید.شما اگر بخواهید وارد محیط کار بشید باید دیگه تحمل انتقادتون بره بالا.!!!!!!

اگه این تاپیک خیلی مبتدیانه به نظر میاد به خاطر اینه که خواستم جوری باشه که یه مبتدی(یکی که تازه با C++‎‎‎‎‎‎ آشنا شده) گیج نشه پیش خودش بگه اینا چی دارن میگن!
این تاپیک اصلا مبتدیانه به نظر نمیاد و کسی که تازه شروع کرده به یادگیری از این گونه اطلاعات چیزی دستگیرش نمیشه.البته افراد مبتدی رو میگم.همون افرادی که خودتون ذکر کردید!!!.هرچند خیلی ها هم هستند که از این تاپیک استفاده می کنند.و من هیچ وقت نگفتم جناب omid_kma (http://barnamenevis.org/member.php?323331-omid_kma) مطلب بیهوده ای رو گذاشته.بلکه چون شما از دید یک مبتدی این سوال رو مطرح کردید من هم گفتم که دونستن این موارد در ابتدا برای یک مبتدی که تابع رو نمیدونه چیه به درد نمی خوره.

من مطالب زیادی رو در باره ی کتابخونه ی C++‎‎‎‎‎‎ میدونم اما ناقصن.
پس این سوال رو باید از دید خودتون که در این مرحله قرار دارید بپرسید و نه برعکس گفته هاتون که این سوال رو از دید یک مبتدی کاملا صفر بیان کردید.

اگه شما هم اطلاعاتی دارین که کمک به این تاپیک میکنه ممنون میشم به اشتراک بذارین.
من از اطلاعات جناب omid_kma (http://barnamenevis.org/member.php?323331-omid_kma) استفاده کردم

omid_kma
سه شنبه 13 خرداد 1393, 15:00 عصر
"

[/I]این یعنی کامپایلری که توی Qt وجود داره و کامپایلری که توی visual C++‎‎‎‎ وجود داره فقط استاندارد رو رعایت کردن ولی با پیاده سازی های مختلف؟

.
Qt خودش کامپایلر نداره از کامپایلر gcc یا msvc که مخصوص مایکروسافت هست استفاده می کنه البته یک شبه کامپایلر داره که میاد signal , slot های داخل کد رو به کد استاندارد ++C تبدیل می کنه (moc http://qt-project.org/doc/qt-4.8/moc.html)
و آره ++vc یا مثلا gcc یا Clang هر کدوم پیاده سازی خودشون رو دارن

در مورد STL و Qt خب طبیعتا از ++C خیلی جاهای دیگه میشه استفاده کرد که Qt اون جا support نمیشه یا کاربرد ی نداره(خیلی چیزا نیازی به ui ندارن ) شما مثلا SQLite رو فرض کن که با ++C نوشته شده یا مثلا Opencv یا چیزای دیگه اکثرا از STL استفاده کردن یا Container های خاص خودشون رو نوشتن . هر جا که کامپایلر ++C وجود داشته باشه از STL هم میشه استفاده کرد (البته بستگی به کامپایلر هم داره ) ولی Qt به این شکل نیست ..
یک نکته هم هست برای فروش برنامه های نوشته شده با Qt نیاز به licence coommercial هست ولی STL کاملا رایگانه .
این لینک رو هم اگر ببینید کاملا بستگی به نظر شخصی داره خیلیا با STL ٰراحت ترن http://stackoverflow.com/questions/1668259/stl-or-qt-containers



حالا یه سوال، فرض کنیم نحوه پیاده سازی iostream و همچنین استانداردش رو می دونیم. اگه بخوایم توش دست ببریم آیا با همین مقدار C++‎ که بلدیم می تونیم این کارو بکنیم ؟
شدنیه ولی خب تقریبا بعیده که بشه چیزی که مثلا الان gcc داره رو بهتر کرد .

کامبیز اسدزاده
سه شنبه 13 خرداد 1393, 15:42 عصر
دوست عزیز نوشتن کتابخانه برای عموم به این راحتیا که فکر میکنید نیست ! شاید شما بنویسید و خیلی هم خوب باشه ولی باید در نظر داشته باشید که کتابخانه نویسی هزارو یک جور نکته ریزو درشت داره از خود کد نویسیش بگیر برو تا پشتیبانی اون ! به نظر شما چرا کتابخانه Qt نسبت به wXwidget بهتره ؟ دلیل داره همه اینها به خاطر وجود یک تیم درست حسابی و چندین شرکت ریزو درشت در کنار هم و سیاست همه جانبه و پشتیبانی از تمام سکوهای موجود باعث شده کتابخانه Qt جذابیت پیدا کنه...

هر کتابخانه ای برای هدفی ایجاد میشه و هر یک از این کتابخانه ها موجب راحتی کار با C++‎ میشه حالا اینکه یکی میاد برای طراحی GUI از Qt استفاده میکنه و برای شبکه از POCO و ... بستگی داره به سلیقه ولی در کل همه این موارد باید در نظر گرفته بشه که کتاب خانه نویسی الکی و همینجوری پیاده سازی نمیشه.

این که شما به ذهنت رسیده کتابخانه بنویسید خوبه ولی قبل از شما این فکر و تفکرات در ذهن خیلی ها اومده و رفته مخصوصا در ایران به جای فکر کردن به این مورد بهتره سر نخ رو بگیرید تا آخرش برید! کتابخانه نوشتن اونم تنهایی کمی نه بسیار دشوار هستش مخصوصا به این تیکه باید توجه کنید شما باید استاد C++‎‎‎ 11 و در حال حاظر و به زود نسخه های ۱۴ و ۱۷ باشید تا بعد بتونید با اطلاعات کافی در رابطه با کتابخانه ها و نحوه ایجاد اونها وقت جهت تجزیه تحلیل و کار بگذارید.

حالا فرض کنید کل برنامه نویس های همین برنامه نویس جمع بشن و یه کتابخانه ای بنویسند به جز خود ما هیچکسی خواهنانش نخواهد بود اینو جدی میگم :) پس وقت تلف کردنه.

در کل خیلی خوبه که سعی میکنید به چنین مواردی فکر کنید. خسته نباشید
موفق باشید.:لبخندساده:

motherboard
سه شنبه 13 خرداد 1393, 16:09 عصر
این که شما به ذهنت رسیده کتابخانه بنویسید خوبه ولی قبل از شما این فکر و تفکرات در ذهن خیلی ها اومده و رفته مخصوصا در ایران به جای فکر کردن به این مورد بهتره سر نخ رو بگیرید تا آخرش برید!
من فکر می کنم جناب why.darkness (http://barnamenevis.org/member.php?219337-why-darkness) متوجه منظور بنده شدند. من هم در پست های بالا به این تاکید می کردم که کسی که می خواد راجع به کتابخونه بدونه و مهارت ساختنش رو داشته باشه باید مهارتش رو ببره بالا.مثلا این دوست ما سوال رو در ابتدا از دید یک مبتدی صفر پرسیدند. زمانی که کسی مفهوم تابع رو درک نکرده باشه با خوندن انواع کتابخونه و مدل های کتابخونه و Qt و فلان بیسار چیز زیادی عایدش نمیشه.و صرفا داره یک سری چیزهارو حفظ می کنه.و اگر زمانی فردی مفهوم تابع رو درک کرد تازه متوجه میشه اصلا کتابخونه Qt که میگن یعنی چی!!!!!و حتی کسی هم که تابع رو درک کرده باشه باز باید مهارت خیلی بالایی رو داشته باشه تا بتونه کدهای بهینه ای رو بنویسه.

PSPier
چهارشنبه 14 خرداد 1393, 05:18 صبح
دوست عزیز نوشتن کتابخانه برای عموم به این راحتیا که فکر میکنید نیست ! شاید شما بنویسید و خیلی هم خوب باشه ولی باید در نظر داشته باشید که کتابخانه نویسی هزارو یک جور نکته ریزو درشت داره از خود کد نویسیش بگیر برو تا پشتیبانی اون ! به نظر شما چرا کتابخانه Qt نسبت به wXwidget بهتره ؟ دلیل داره همه اینها به خاطر وجود یک تیم درست حسابی و چندین شرکت ریزو درشت در کنار هم و سیاست همه جانبه و پشتیبانی از تمام سکوهای موجود باعث شده کتابخانه Qt جذابیت پیدا کنه..


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



این که شما به ذهنت رسیده کتابخانه بنویسید خوبه ولی قبل از شما این فکر و تفکرات در ذهن خیلی ها اومده و رفته مخصوصا در ایران به جای فکر کردن به این مورد بهتره سر نخ رو بگیرید تا آخرش برید! کتابخانه نوشتن اونم تنهایی کمی نه بسیار دشوار هستش مخصوصا به این تیکه باید توجه کنید شما باید استاد C++‎‎‎‎‎ 11 و در حال حاظر و به زود نسخه های ۱۴ و ۱۷ باشید تا بعد بتونید با اطلاعات کافی در رابطه با کتابخانه ها و نحوه ایجاد اونها وقت جهت تجزیه تحلیل و کار بگذارید.

من نمی خوام یه کتابخونه ی عظیم بسازم. بیشتر دلم می خواد اطلاعات و درکم بیشتر بشه. شاید هم یه روزی تونستم یه کتابخونه ی ریزه میزه واسه یه کار خاص بسازم.

کامبیز اسدزاده
چهارشنبه 14 خرداد 1393, 10:10 صبح
این مساله متاسفانه وجود داره. فراگیر کردن یه کتابخونه یا فریمورک فرایند سخت و پیچیده ایه. حتی با داشتن یه محصول خوب باید وقت و هزینه زیادی واسه فراگیر کردنش صرف کرد.
من نمی خوام یه کتابخونه ی عظیم بسازم. بیشتر دلم می خواد اطلاعات و درکم بیشتر بشه. شاید هم یه روزی تونستم یه کتابخونه ی ریزه میزه واسه یه کار خاص بسازم.

خواستن توانستن است :چشمک: ولی این موارد رو هم باید در نظر بگیرید.