انجمنهای فارسی اوبونتو
جامعه کاربران => کافه اوبونتو => نویسنده: masoudk در 09 آبان 1391، 08:43 بظ
-
بچه ها من خیلی ناراحتم.
اگه بخواین بدونید چرا بخاطر اینه که اصلا شرکت خوبی کار نمیکنم.
مدیرعامل شرکت اصلا ساختار برنامه ها براش مهم نیست، فقط براش مهم اینه که خروجی رو ببینه، و من پیش بینی میکنم با این وضعیت حتمی مشکلات زیادی برای سیستم هایی که ما مینویسیم به وجود میاد.
مثلا همکار من روی یه دکمه دابل کلیک میکنه و هرچی کد داره اون تو مینویسه. وقتی واسش حرف از ساختار و کلاس میزنم ناراحت میشه و میگه تو خودت هرجور دوست داری برنامه نویسی کن و به من کاری نداشته باش.
توی محیط کار من هیچ کس به شی گرایی فکر نمیکنه، اصلا لازم نیست بدونی polymorphism چیه. همه فقط میخوان یه چیزی بنویسن که به خروجی برسن. من واقعا دوست ندارم اینجوری برنامه نویسی کنم، واقعا از اینجور کار کردن بدم میاد. بدبختی اینه که بعضی وقتا مجبوریم چند نفری روی یه پروژه کار کنیم و اختلافها باعث دعوا میشه.
از یه طرف به پولی که از این شرکت میگیرم نیاز دارم، از طرفی حالم از برنامه نویسی بدون ساختار به هم میخوره. از طرفی میترسم بعد از کلی گشتن دوباره یه شرکتی رو پیدا کنم که به ساختار اهمیت نمیدن.
محیط کار شما چه جوریه؟ شما با یه ساختار مشخص برنامه نویسی میکنید؟ یا اینکه همه جا مثل محیط کار من آش شعله قلم کاره؟
-
من حوزه برنامه نویسیم وب هست .
در وب سایت ها اگر بخوای در هم برنامه بنویسی اصلا کار پیش نمیره . من قبلا در یک شرکتی کار میکردم که واقعا رییسش به برنامه نویسی شی گرا علاقه داشت و کاملا اصولی بود کاراش . متاسفانه نتونستم که اونجا بمونم . با ساعتای دانشگام جور نبود. الان برای خودم دارم کار میکنم. اصلا چند روزه که خود برنامه نویسی (منظورم خود زبان هست) رها کردم و دارم روی پایه های برنامه نویسی کار میکنم. شما هم اگه واقعا به پولش احتیاج داری بمون وگرنه برای احترام به علمی که داری از اون شرکت بیا بیرون و دنبال یه شرکت درست و درمون باش .
-
متاسفانه اکثر محیطهای کاری کوچیک، حتی خارج از ایران، همینطور هستش. عموما این مشکل توی محیطهای علمی کمتره و اگر گروه برنامهنویسی وجود داره، یک رییس پروژه خوب که به مهندسی نرمافزار مسلط هست میتونه این مشکل رو حل کنه، که حداقل قسمتهای مختلف برنامه روی هم به صورت مستقیم تاثیر نذارند و با پیش بردن یک بخش برنامه به صورت اشتباه، همه گروه مجبور به ادامه کار به همون شکل نباشند یا نیاز به بازنویسی کل پروژه نباشه.
-
توی این جور محیط ها باید فقط کاری رو که بهت سپردن باید بخوبی انجام بدی و لا غیر.
-
مگه شما توی ماکروسافت کار میکنی؟ :o ;D ;) \\:D/
-
البته برنامهنویسی ساختیافته با شیٔگرا متفاوته. شیٔگرایی یکی از روشهای ساختیافته است و روشهای دیگهای هم داریم. در مقیاسهای بزرگ باید جتماً به صورت ساختیافته کار کرد، ولی خب میشه با کلاس و… اصلاً کاری نداشت و از روش ساختیافتهی دیگهای استفاده کرد
-
البته برنامهنویسی ساختیافته با شیٔگرا متفاوته. شیٔگرایی یکی از روشهای ساختیافته است و روشهای دیگهای هم داریم. در مقیاسهای بزرگ باید جتماً به صورت ساختیافته کار کرد، ولی خب میشه با کلاس و… اصلاً کاری نداشت و از روش ساختیافتهی دیگهای استفاده کرد
اینجوری بعد از دو سه تا ورژن از برنامه کاملا با یه اسپاگتی کد وجشتناک روبرو میشیم.
مثلا کد لینوکس رو در نظر بگیرید. با اینکه با C نوشته شده ولی شی گرایی رو با ترفندهایی توش پیاده کردن وگرنه تا الان ۲۰ سال دوام نمیآورد.
-
اینجوری بعد از دو سه تا ورژن از برنامه کاملا با یه اسپاگتی کد وجشتناک روبرو میشیم.
مثلا کد لینوکس رو در نظر بگیرید. با اینکه با C نوشته شده ولی شی گرایی رو با ترفندهایی توش پیاده کردن وگرنه تا الان ۲۰ سال دوام نمیآورد.
هاها! اتَفاقاً بهترین مثال رو زدی. لینوکس از شیٔگرایی استفاده نمیکنه. اگه مدرکی دیدی که خلاف این حرف صحبت میکرد خوشحال میشم نشونم بدی. متأسّفانه افراد ناآگاه، شیٔگرایی رو تنها راه موجود معرّفی میکنن، در حالی که حقیقت نداره. من مخالف شیٔگرایی نیستم و خودم هم در صورت نیاز ازش استفاده میکنم، ولی عموماً کارهام رو بدون نیاز به شیٔگرایی انجام میدم، چون برای بیشتر نیازهای من، اصلاً استفاده از این روش منطقی نیست
-
این همون متنیه که قبلا خوندم
http://lwn.net/Articles/444910/
شی گرایی تنها راه موجود نیست ولی واسه برنامه های متوسط و بزرگ تنها راهه چون هر چقدر که برنامه پیش میره نیاز به مراقبت بیشتر میشه و این جز با شی گرایی ممکن نیست.
در مورد برنامه های کوچک حق با شماست. اصلا صرف نمیکنه که شی گرایی نوشته بشه.
-
حرف دانیال درسته . شی گرایی یکم کد ها پیچیده میکنه . بهترین ظرز برنامه نویسی روش ماژولار هست .اولا که شما میتونید در چندین جای برنامه و حتی برنامه های دیگه ازش استفاده کنید و هم اصلا گنگ نیست و به راحتی میشه از کدهاش سر در اورد . شی گرایی خیلی تو در تو هست . اتفاقا برای برنامه های خیلی بزرگ روش ساخت یافته خیلی بهتره . شما چندین چند تابع مینویسید و به راحتی ازشون در هر جا استفاده میکنید . البته هیچ بنی بشری نمیتونه منکر قدرت شی گرایی بشه .
-
شی گرایی یکم کد ها پیچیده میکنه . بهترین ظرز برنامه نویسی روش ماژولار هست.
چیزی که با شی گرایی پیاده سازی شده باشه، اگه روزی شما شرکت رو ترک کنید نفر بعدی به راحتی میتونه کار شما رو ادامه بده.
برنامه نویسی ماژولار مشکل داره، یکم که ماژولها به هم مرتبط بشن تست کردن برنامه مشکل میشه، کار کردن روی برنامه ی دیگران توی این روش سخت تره.
شی گرایی کدها رو ساده تر میکنه.
-
فقط مرگم بده راحت شم ](*,)
کلید خارجی تعریف نمیکنه، میگه کلید خارجی بعدا error میده سخت میشه درست کردنش ](*,)
-
کلید خارجی چیه؟
توی sql ؟
-
کلید خارجی چیه؟
توی sql ؟
آره، اگه تعریف بشه اجازه نمیده اطلاعات ناسازگار وارد بشه.
اینجا تعریف نمیکنن! میگن error میده! بعد خودشون سعی میکنن توی کد نقش کلید خارجی رو بازی کنن!
-
کلید خارجی چیه؟
توی sql ؟
آره، اگه تعریف بشه اجازه نمیده اطلاعات ناسازگار وارد بشه.
اینجا تعریف نمیکنن! میگن error میده! بعد خودشون سعی میکنن توی کد نقش کلید خارجی رو بازی کنن!
دیوار نزدیکیاتون هست؟ برای این امر خیر --> ](*,)
-
منم بابت این چنین شرکت هایی متاسفم :(
من خیلی سال پیش برای برنامه نویسی وارد یک شرکت شدم که کار توسعه یک نرم افزار حسابداری رو انجام میدادیم.(اون زمان با delphi7 و sql server 2000 بود)
با اینکه من قبلا اصلا کدهای برنامه رو ندیده بودم و هیچ آشنایی با ساختار اون و پایگاه داده نداشتم ولی برنامه خیلی خوب نوشته شده بود و تقیبا همه اصول و قانون ها توش درست تعریف شده بودند و در عرض یک ماه تونستم خودمو باهاش سازگار کنم.
همه شرکت ها اینجوری نیستن. ما شرکت های کاربلد کم نداریم که وقتی با غرور واردشون میشی و میگی من برنامه نویس هستم تازه می فهمی خیلی مونده تا برنامه نویس بشی 8). البته وارد شدن به همچین شرکت هایی و پیدا کردنشون همچین آسون نیست. ;)
الان خیلی وقته برا دل خودم برنامه مینویسم ولی همیشه سعی کردم طوری برنامه نویسی کنم که اگه روزی روزگاری یک فرد آشنا به برنامه نویسی کدهای منو بررسی کرد بگه به به ;D