-
بحث دربارۀ گفتگوی فنی شماره یک (اصول و قواعد کد نویسی)
سلام
احتمالا در اعلانات سایت دیده باشید که اولین سری گفتگوی فنی سایت شروع به کار کرد.
تاپیک اصلی مربوط به سوال و جواب بوده و فقط مجری و مهمانان در اون شرکت دارند. دیگر کاربران سایت برای مشارکت در بحث (گفتگو در مورد سوال و جواب ها ، انتقاد یا پیشنهاد در مورد بحث جاری ، پیشنهاد سوال به مجری برای پرسیدن از مهمانان و ...) از این تاپیک استفاده کنند.
-
نقل قول: بحث دربارۀ گفتگوی فنی شماره یک (اصول و قواعد کد نویسی)
ایده خوبیه
منتها چون گفتگوها زنده است باید مثه سیستم های chatting پیاده سازی بشه
فکر کنم تو vBulletin این کار با Ajax به راحتی امکان پذیر باشه .
این جوری ما مجبوریم مدام صفحه رو بارگذاری کنیم .
-
نقل قول: بحث دربارۀ گفتگوی فنی شماره یک (اصول و قواعد کد نویسی)
یعنی زحمت یه refresh رو هم نمیکشید ؟
-
نقل قول: بحث دربارۀ گفتگوی فنی شماره یک (اصول و قواعد کد نویسی)
اجازه بدید فعلا با روند فعلی بریم جلو. بعدا با توجه به میزان استقبال و درصد پیشرفت ، می تونیم روی خیلی ایده های دیگری (از جمله سیستم چت آنلاین ، انتشار پادکست یا حتی ویدئو) فکر کنیم. منتها فعلا شما به دید یه سیستم آزمایشی نگاه کنید که قبلا در این سایت سابقه نداشته و ما برای اولین بار داریم همچین طرحی رو اجرا می کنیم. در ضمن فعلا گفتگو ها کاملا real time نیست
-
نقل قول: بحث دربارۀ گفتگوی فنی شماره یک (اصول و قواعد کد نویسی)
به نظر من طرح خیلی خوبیه ،امیدوارم ادامه پیدا کنه
یکی از دوستانم که زحمت کشیدن و پا برهنه پریدن وسط تاپیک با اینکه گفته شده بود اونجا پست نزارند! :اشتباه:
-
نقل قول: بحث دربارۀ گفتگوی فنی شماره یک (اصول و قواعد کد نویسی)
سوالم در زمینه فناور برنامه نویسی موبایل هستش در.NET , Framwork . اگه از موضوع بحثتان دورم پس ffoadn ...ولی اگر مختصر میتونید راهنمایی کنید ..
چوی اینروزها خیلی فکرم رو مشغول کرده آیا این فناوری در Framwork پیشرفتی داشته و چگونه است یگویید تا من سراغ ان برم ,... البته من بی اطلاع هستم .
بهمین خاطر مجیور شده که سراغ جاوا و NetBeans برم که زیاد موفقیت آمیز نبود البته سری به تایپیکها جاوا و مشابه این پستها زدم ولی پاسخس نگرفتم .
البته من هم مثل دوست خوبمون از این طریق گفتگو زیاد راضی نیستم ولی بازم خدا را شکر که امثال شما به فکر ما هستید و همی هم غنیمت می دانم ...
نمی دونم چرا کسی نیست یا نه جواب نمی دن ... اینطوری جواب نمی ده بدرد نمی خوره ببخشید رک می گم
-
نقل قول: بحث دربارۀ گفتگوی فنی شماره یک (اصول و قواعد کد نویسی)
با تشکر از حرکت خوبتان! به شدت منتظر real time شدن بحث هستم! چون بحث داغ می مونه و جذاب
قضاوت هم در مورد بحثی که تا به حال شده زوده! فقط امیدوارم بحث به سمت هر چه فنی تر شدن پیش برود و از گفتن بدیهیات پرهیز شود. مثلا
"برای برنامه نویس(کد نویس) خوب شدن نیاز به تجربه هست!" خب! معلومه که هست!
یه سوال : آیا محوریت مباحث روی ابزارهای مایکروسافتی هست؟ (یعنی اگر نیاز به ابزار در گفتگوها شد ، از پلتفرم مایکروسافتی استفاده میشود؟)
-
نقل قول: بحث دربارۀ گفتگوی فنی شماره یک (اصول و قواعد کد نویسی)
نقل قول:
یه سوال : آیا محوریت مباحث روی ابزارهای مایکروسافتی هست؟ (یعنی اگر نیاز به ابزار در گفتگوها شد ، از پلتفرم مایکروسافتی استفاده میشود؟)
نه لزوما. فعلا به دلیل نداشتن تالار مرتبط به این موضوع ها و نیز بیشتر بودن تعداد برنامه نویسان محصولات مایکروسافت ، بحث رو در این تالار راه انداختیم (سعی بر این هست که در استفاده از ابزار طوری عمل کنیم که طیف وسیعی از برنامه نویسا بتونن از مبحث استفاده کنن)
-
نقل قول: بحث دربارۀ گفتگوی فنی شماره یک (اصول و قواعد کد نویسی)
سلام
پیشهاد میکنم این گفتگو ها بالای تمام تاپیکهای مرتبط اضافه بشه تا همه در جریان قرار بگیرند
-
نقل قول: بحث دربارۀ گفتگوی فنی شماره یک (اصول و قواعد کد نویسی)
سلام
میشه لینک دانلود کتاب Beautiful Code رو بزارین.
ممنون
-
نقل قول: بحث دربارۀ گفتگوی فنی شماره یک (اصول و قواعد کد نویسی)
چنین لینکی توی سایت قرار نمی گیره(قوانین سایت) : پ.خ بده لینکشو بدم
کتاب های شاهکار دیگه
Pragmatic Programmer, The: From Journeyman to Master
Code Complete By Steve McConnell
و کتاب های اقای Joel Spolsky
-
نقل قول: بحث دربارۀ گفتگوی فنی شماره یک (اصول و قواعد کد نویسی)
در پيام خصوصي هم به آقاي اصغري گفتم ،
به نظر ميرسه آقاي مداح مشغله زيادي داشته باشند و خيلي دير جواب ميدن .
اگه بشه ، كه تعداد ميهمانان را بيشتر كنيد ، تا تاپيك از حالت ركود خارج بشه بسيار موثرتر خواهد بود .
-
نقل قول: بحث دربارۀ گفتگوی فنی شماره یک (اصول و قواعد کد نویسی)
طرح بسیار بسیار عالی و مفیدی است.
لطفا این کار رو ادامه بدید.
من فکرمی کنم این کار تاثیر زیادی در بالا بردن سطح سایت داشته باشه.
من که لینک بحث رو برای همه ی دوستانمم ایمیل کردم تا اونها هم بیان و استفاده کنند.(دوستانم عضو برنامه نویس نیستند)
از همه ی دوستان متشکرم.
ممنون
-
نقل قول: بحث دربارۀ گفتگوی فنی شماره یک (اصول و قواعد کد نویسی)
سلام،
یک سؤالی که برای من پیش آمده این هست که اگر همیشه کدهای تمیز بنویسیم، اگر همیشه کدهای خوانا بنویسیم، اگر همیشه اصول و قواعد نامگذاری شناسه ها رو رعایت کنیم؛ تا جایی که به قول آقای مداح ذهن برای این شیوه کدنویسی تربیت بشه، اونوقت چطور میتونیم سر از یک کد کثیف در بیاریم؟
حتماً تاحالا مجبور بودید که نحوه عملکرد کدی رو بررسی کنید، اگر این کد از نظر شما که ذهنتون کد کثیف رو نمی پذیره، کثیف باشه چه راهکاری برای بررسی اون کد پیشنهاد می کنید؟ برای خود من بارها این موضوع پیش آمده و تا زمانی که حداقل ملزومات یک کد خوانا رو روی اون کد اعمال نکنم نمی تونم حتی یک خط از دستورات رو درک کنم. شما برای فهم کدهای بو دار:چشمک: چه کار می کنید که زمان زیادی براش تلف نشه. البته با فرض اینکه شما اجازه حذف کل کدها رو به منظور بازنویسی ندارید.
سؤال دوم من در مورد متغیر شمارنده در حلقه ها هست. آقای موسوی از انتخاب نام هایی مثل i و j و k و ... به عنوان ویژگی های یک کد کثیف یاد کردند (البته به نقل از یک کتاب). اگر اینطور هست، پس اصلاً چطور شد که i و j و ... برای همه برنامه نویسان همیشه یادآور متغیر شمارنده هست و چرا اینقدر شیوع پیدا کرده؟
متشکرم/
-
نقل قول: بحث دربارۀ گفتگوی فنی شماره یک (اصول و قواعد کد نویسی)
یک سوال داشتم که امیداورم دوستان شرکت کننده در بحث پاسخ بدهند.
فکر نمی کنید نوشتن کد به روشی که شما می فرمایید کمی سخت و خسته کننده باشه؟
مثلا در حلقه ی for به جای استفاده از i,j,k از متغیر های ColomNum,RowNom ئ امثال اینها که خیلی طولانی هستند استفاده کنیم!
آیا این روش سخت تر نیست؟
آیا شما به عنوان یک برنامه نویس با تجربه می تونید بگید که بعد از مدتی به این سختی عادت میکنیم؟
-
نقل قول: بحث دربارۀ گفتگوی فنی شماره یک (اصول و قواعد کد نویسی)
به نظر من خیلی از گفته های مطرح شده در عمل نادیده گرفته میشن البته هرکسی برای خودش قواعد کاری داری
من خیلی کم توی حلقه ها از i و j استفاده میکنم ولی صرفا نباید استفاده کرد رو نمیشه قبول کرد.
این رو توی همه ی زمینه ها تجربه کردم چه کد نویسی چه طراحی چه نقشه کشی و چه نقشه برداری و خیلی چیزهای دیگه همیشه تئوری به ایده آل ها میپردازه ولی در عمل خیلی از این ایده آل ها زیر پا گذاشته میشن.
هر چیزی بستگی به موقعیت داره و اینکه چطور میخوای کار کنی و هیچ چیز قاطعیت صد در صد نداره من توی صحبتهای اساتید مهمان تا الان نکته جدیدی ندیدم ولی خوشم میاد بالاخره استارتی زده شد.
-
نقل قول: بحث دربارۀ گفتگوی فنی شماره یک (اصول و قواعد کد نویسی)
با سلام و تشکر
منظور شما اینه که استفاده از region خوب نیست؟
من فکر میکردم که کمک زیادی به خوانایی کد و مرتب بودنش میکنه.
یعنی سعس کنیم ازش استفاده نکنیم؟
-
نقل قول: بحث دربارۀ گفتگوی فنی شماره یک (اصول و قواعد کد نویسی)
نقل قول:
نوشته شده توسط
el_abdollahi
با سلام و تشکر
منظور شما اینه که استفاده از region خوب نیست؟
من فکر میکردم که کمک زیادی به خوانایی کد و مرتب بودنش میکنه.
یعنی سعس کنیم ازش استفاده نکنیم؟
نه اينكه خوب نيست ، نبايد استفاده از اون باعث بشه كدهاي بودار بنويسين و مخفيش كنين
-
نقل قول: بحث دربارۀ گفتگوی فنی شماره یک (اصول و قواعد کد نویسی)
سلام...
جناب مداح، مهدی عسگری و موسوی خسته نباشید....
چون دیدم میخواهید بحث Refactoring رو تموم کنید میخواستم پیشنهاد بدم در مورد تکنیک های Refactoring نظیر Extract Methods, Extract Interface و ... هم کمی به طور اجمالی توضیحی بدید...
با تشکر/
-
نقل قول: بحث دربارۀ گفتگوی فنی شماره یک (اصول و قواعد کد نویسی)
به نظرم جالب بود ،
Naming Conventions for .NET / C# Projects
شما هم نگاهي بيندازيد .
-
نقل قول: بحث دربارۀ گفتگوی فنی شماره یک (اصول و قواعد کد نویسی)
نقل قول:
نوشته شده توسط
Lastphoenix
بعضی چیزهاش منسوخ شده.
-
نقل قول: بحث دربارۀ گفتگوی فنی شماره یک (اصول و قواعد کد نویسی)
دوست عزیز جناب اقای اقا مهدی عسگری به نظر من اگر تا جایی که امکان داره جلو بحث ها گرفته نشه بهتر هست احساس کردم توی بحث فعلی اساتید حرف های زیادی برای گفتن دارن اما بعضا تصمیم گرفته میشه که بحث عوض بشه که این درست نیست
به نظرم اجازه بدین بحث پیش بره تا وقتی که حرف ها ادامه داره جلو اون گرفته نشه خطری که این گفتگوها رو تهدید میکنه
"خفه کردن یا خفه شدن گفتگو در نطفه هست"
و یکی در مورد حرف هایی که اینجا زده میشه و بعضا مربوط هست به سلیقه افراد نه حرف علمی قابل اتکا تا انجایی که امکان دارد این نوع حرف ها رو داخل گفتگو ها تزریق نکنید چراکه "جدل سلیقه ای" رو عملا خواه نا خواه به گفتگو ها منتقل کرده ایم
و یک گفتگو مستدل و تمیز رو الوده کرده ایم
-
نقل قول: بحث دربارۀ گفتگوی فنی شماره یک (اصول و قواعد کد نویسی)
اتفاقا من هم با شما موافقم ولی نمی دونم منظورتون آیا پست خاصی هست؟
من سعی می کنم از هر مبحثی یه نتیجۀ خوبی گرفته بشه و بعد بریم سراغ مبحث بعدی. از طرفی هم نمی خوام مدت های مدید سر یک بحث خاص بمونیم. در ضمن اینجا سه نفری با هم تصمیم می گیریم.
-
نقل قول: بحث دربارۀ گفتگوی فنی شماره یک (اصول و قواعد کد نویسی)
نقل قول:
به نظرم اجازه بدین بحث پیش بره تا وقتی که حرف ها ادامه داره جلو اون گرفته نشه خطری که این گفتگوها رو تهدید میکنه
"خفه کردن یا خفه شدن گفتگو در نطفه هست"
اینطور نیست؛ چون مهمانان بحث با مجری برنامه دائما در ارتباط هستند، و نظرات خودشان را با هم رد و بدل می کنند، تا در حین بحث چیزی از قلم نیافته، و بحث به از مسیر منحرف نشه. اینطوری نیست که مجری همینطوری از یک شاخه به شاخه ایی بپره، و مثلا مهمانان را غافلگیر کنه. این بحث ها فقط بهانه ایی هستند برای انتقال دانش صحیح درباره موضوعات خاص به کاربران.
-
نقل قول: بحث دربارۀ گفتگوی فنی شماره یک (اصول و قواعد کد نویسی)
نقل قول:
نوشته شده توسط
Mehdi Asgari
اتفاقا من هم با شما موافقم ولی نمی دونم منظورتون آیا پست خاصی هست؟
من سعی می کنم از هر مبحثی یه نتیجۀ خوبی گرفته بشه و بعد بریم سراغ مبحث بعدی. از طرفی هم نمی خوام مدت های مدید سر یک بحث خاص بمونیم. در ضمن اینجا سه نفری با هم تصمیم می گیریم.
منظورم
نقل قول:
من یک مبحث هم مد نظرم هست برای این گفتگو: مستند سازی کد
منتها قبل از ورود به این مبحث ، شما اگه حرفی در ادامۀ مبحث نام گذاری و کد اصولی و Refactoring دارید ، بگید تا اون مبحث رو تموم کرده و سراغ بحث جدید بریم.
به ذهن میاد کمی تعجیل وجود داره
منظور من از عدم تزریق یعضی از گفتگو ها گفتگوهای مربوط به تاپیک "دربارۀ گفتگوی فنی شماره یک (اصول و قواعد کد نویسی) " هست
و در ضمن به اجرای خوب شما و گفتگو های مستدل دوستان عزیز اقایان مداح و موسوی تبریک میگویم
-
نقل قول: بحث دربارۀ گفتگوی فنی شماره یک (اصول و قواعد کد نویسی)
با سلام خدمت همه ی دوستان
از زحمتی که کشیدید بسیار ممنون امیدوارم بحث ادامه دار باشه
دوستان و اساتید گرامی آیا امکانش هست در مورد تحلیل یک سیستم قبل از شروع برنامه نویسی و روشهای مدلینگ سیستم ، چگونگی تحلیل یک سیستم و استفاده از UML و RUP و گامهایی که قبل از شروع برنامه نویسی باید به آنها پرداخته بشه در آینده صحبت کنید؟
-
نقل قول: بحث دربارۀ گفتگوی فنی شماره یک (اصول و قواعد کد نویسی)
یک پیشنهاد داشتم
اگه امکانش هست این بحث ها رو دسته بندی کنید وبه عنوان یک مقاله در اختیار اعضا قرار بدین
-
نقل قول: بحث دربارۀ گفتگوی فنی شماره یک (اصول و قواعد کد نویسی)
بحث ها که جلو تر رفت امکان چاپ کتابی تحت همین عنوان هم وجود داره
کتابی خاص که بی شک به زبان فارسی تا به حال نوشته نشده است
چاپ همچین کتاب و حمایت از ان تا حدی میتونه زحمات دوستان دست اندر کار رو جبران کند
-
نقل قول: بحث دربارۀ گفتگوی فنی شماره یک (اصول و قواعد کد نویسی)
برادر مهدی موسوی بنده در حال حاضر همچنان دارم یه بوی بدی احساس می کنم.
در مثال ماشینی که زدید، باید متدهای Start و Brake رو Virtual تعریف کنید اما این کار رو نکردید.
موفق باشید.
-
نقل قول: بحث دربارۀ گفتگوی فنی شماره یک (اصول و قواعد کد نویسی)
با سلام به دوستان
گفتگوی فنی ایده خوب وجالبیه.من که خیلی استفاده کردم.
خسته نباشید و متشکرم
-
نقل قول: بحث دربارۀ گفتگوی فنی شماره یک (اصول و قواعد کد نویسی)
نقل قول:
نوشته شده توسط
Behrouz_Rad
برادر مهدی موسوی بنده در حال حاضر همچنان دارم یه بوی بدی احساس می کنم.
در مثال ماشینی که زدید، باید متدهای Start و Brake رو Virtual تعریف کنید اما این کار رو نکردید.
موفق باشید.
میشه لطف کنید دلیلشم بفرمایید ما تازه کارام بهره ببریم؟
ممنون
-
نقل قول: بحث دربارۀ گفتگوی فنی شماره یک (اصول و قواعد کد نویسی)
نقل قول:
نوشته شده توسط
ricky22
میشه لطف کنید دلیلشم بفرمایید ما تازه کارام بهره ببریم؟
ممنون
البته بنده تماشاچی هستم ولی اگر دوربین روی من بیاد دلایلم رو عرض می کنم :چشمک:
در متد Brake کلاس Car دستور چاپ عبارت Car Call و در متد Brake کلاس Porsche دستور چاپ عبارت Porsche Call رو بنویس و به شکل ذیل فراخوانی کن:
public void test(Car c)
{
c.Brake();
}
Car car = new Car();
Porsche porsche = new Porsche();
test(car);
test(porsche);
در هر دو حالت میبینی که عبارت Car Call در خروجی ظاهر میشه که این صحیح نیست. حال متد Brake کلاس Car رو Virtual و متد Brake کلاس Porsche رو override تعریف کن.. در این حالت، دستورات فوق موجب میشن که عبارت مخصوص همان متد در خروجی چاپ بشه که این صحیح هست.
موفق باشید.
-
نقل قول: بحث دربارۀ گفتگوی فنی شماره یک (اصول و قواعد کد نویسی)
نقل قول:
البته بنده تماشاچی هستم ولی اگر دوربین روی من بیاد دلایلم رو عرض می کنم :چشمک:
اگر یک صندلی هم اضافه میکردین که جناب بهروز از جایگاه تماشاچیان بیاد و کنار خودتون بشینه
بد نبود :چشمک:
-
نقل قول: بحث دربارۀ گفتگوی فنی شماره یک (اصول و قواعد کد نویسی)
به نظر من بهتره يه مقدار هم در مورد Prefix هاي كلاس و توابع صبحت كنيد.
مثلا كلاسي كه با Abstract تعريف شده با كلاسي كه Virtual تعريف شده چه تفاوتهايي داره. overrides چي هست و چه كابردهايي داره ...
sealed , static , ...
اينها رو من چندسال پيش يه چيزهايي در موردشون خوندنم و در كتابها هم توضيح مختصري داده بودند ولي واقعيتش تفهيم نشد.
تازه الان كه بعد از 4 5 سال دارم برنامه نويسي ميكنم مفهومشون رو نيمه نصفه درك ميكنم.
تازه كارها كه ديگه جاي خود دارند.
-
نقل قول: بحث دربارۀ گفتگوی فنی شماره یک (اصول و قواعد کد نویسی)
نقل قول:
نوشته شده توسط
salehbagheri
به نظر من بهتره يه مقدار هم در مورد Prefix هاي كلاس و توابع صبحت كنيد.
مثلا كلاسي كه با Abstract تعريف شده با كلاسي كه Virtual تعريف شده چه تفاوتهايي داره. overrides چي هست و چه كابردهايي داره ...
sealed , static , ...
اينها رو من چندسال پيش يه چيزهايي در موردشون خوندنم و در كتابها هم توضيح مختصري داده بودند ولي واقعيتش تفهيم نشد.
تازه الان كه بعد از 4 5 سال دارم برنامه نويسي ميكنم مفهومشون رو نيمه نصفه درك ميكنم.
تازه كارها كه ديگه جاي خود دارند.
البته پرواضح است كه كلمات كليدي Abstract ، Virtual و ... Perfix نيستند .
من با برادر salehbagheri موافقم ، تا حالا چندين مرتبه در مورد اونها خوندم ، ولي هنوز مفهوم رو كامل درك نكردم. شايد علت نبودن نياز بوده ، يعني تا اون ضرورت نياز رو احساس نكني ، اون مفاهيم رو هم نميتونيم درك كنيم .
ولي تصور ميكنم اون هم يك تاپيك جداگانه و مختص خودشو ميخواد ، كه اميدوارم مديريت در موردش فكر كنه و اون رو يكي از گزينه هاي بعدي "گفتگوهاي فني" قرار بده .
به عنوان نمونه ، من با اينكه تفاوت متدهاي Static و Instance Methods رو ميدونم ،ولي هنوز در محل استفاده اونها مشكل دارم .
تمام متدهاي كلاس Utility من از نوع Static هستند ، آيا بايد غير از اين باشه ؟
-
نقل قول: بحث دربارۀ گفتگوی فنی شماره یک (اصول و قواعد کد نویسی)
دوستان ، من مطلبی رو شفاف کنم
برای شمارۀ اول گفتگوی فنی (که الان در حال ضبط و نیز روی آنتنه) فقط بر روی تشخیص و تولید کد خوب بحث می کنیم (و سعی بر این است که مستقل از زبان و پلتفرم بحث کنیم)
بحث های فنی تر (مثل بحث شی گرایی) رو قصد داریم در آینده در گفتگوهای بعدی مطرح کنیم
(لطفا فعلا بحث معطوف باشه بر چگونگی نوشتن کد خوب. جزییات فنی رو لطفا مطرح نکنید)
-
نقل قول: بحث دربارۀ گفتگوی فنی شماره یک (اصول و قواعد کد نویسی)
سلام
واقعا از بحث لذت بردم توی این 20 سال بخش زیادی ار موضوعات را از نزدیک لمس کرده بودم ولی بصورت متمرکز ندیده بودم از یک بخش خیلی دلخور شدم و آن موضوع i , j , k است این روش نامگذاری یک استاندارد توفیق اجباری شده است و این موضوع از نامگذاری متغیرهای صحیح در زبان فرترن 77 به ارث رسیده و ظاهرا همه این روش را پذیرفته اند (یک توافق جمعی کاری به غلط و درست ندارم) پس لازم بود به این موضوع اشاره می شد ولی با همه اوصاف انصافا شرکت کنندگان باتجربه و مسلط هستند معلوم است خاک برنامه نویسی خورده اند.
-
نقل قول: بحث دربارۀ گفتگوی فنی شماره یک (اصول و قواعد کد نویسی)
لطفا يكي به من بگه ، در مثال آقاي موسوي ، اگر از Car از ICar ارث بري نميكرد ، چه اتفاقي ميافتاد ؟
در اين مثال چه ضرورتي داشت كه يك اينترفيس داشته باشيم ؟
-
نقل قول: بحث دربارۀ گفتگوی فنی شماره یک (اصول و قواعد کد نویسی)
نقل قول:
(لطفا فعلا بحث معطوف باشه بر چگونگی نوشتن کد خوب. جزییات فنی رو لطفا مطرح نکنید)
وقتي يك بنده خدا محتواي كد رو نميفهمه از كجا تشخيص بده خوبه يا بد؟ اگه مخاطبان شما افراد حرفه اي هستند كه هيچ! اگه افراد مبتدي رو مخاطب قرار ميديد بايد همه چيز رو مد نظر داشته باشيد! پس در مثالهاتون از شبه كد استفاده كنيد تا دركش بهتر تر بشه ...
-
نقل قول: بحث دربارۀ گفتگوی فنی شماره یک (اصول و قواعد کد نویسی)
نقل قول:
نوشته شده توسط
Lastphoenix
لطفا يكي به من بگه ، در مثال آقاي موسوي ، اگر از Car از ICar ارث بري نميكرد ، چه اتفاقي ميافتاد ؟
در اين مثال چه ضرورتي داشت كه يك اينترفيس داشته باشيم ؟
آقای کارگردان لطفاً مجددا دوربین رو این سمت بیارید... آها مرسی ممنون :)
شما همیشه در بالاترین سطح از موجودیت های مربوط به هم کلاسی داری که بهش میگن کلاس "انتزاعی"... در این کلاس مجموعه ای از خصیصه ها و رفتارهای عمومی اشیا رو گرد هم میاری. به عنوان مثال: تمامی ماشین ها رنگ دارند، تمامی ماشین ها توسط یک شرکت تولید شدند، تمامی ماشین ها می تونن ترمز بگیرن و تمامی ماشین ها می تونن شروع حرکت داشته باشن.
پس دو خصیصه ی "رنگ" و "مالک" و رفتارهای "ترمز" و "شروع حرکت" می تونن برای همه ی ماشین های دنیا وجود داشته باشن. اینها "انتزاعی" برای ماشین هاست که در بالاترین سطح قرار میدی.
بنده اگر جای برادر موسوی بودم، اسم interface رو ICar نمیگذاشتم. به نظر من نام IMobility بهتر هست.. یعنی هر چیزی که حرکت می کنه. منظور این نیست که مثلاً یک "مگس" هم توسط یک شرکت تولید میشه، منظور این هست که از واژه ای کلی تر استفاده بشه و پیش خود اینطور در نظر بگیری که منظور از IMobility یعنی "تمامی وسایل نقلیه ی قابل حرکت".
"تمامی وسایل نقلیه ی قابل حرکت" دو خصیصه ی "رنگ" و "مالک" و رفتارهای "ترمز" و "شروع حرکت" رو دارن... پس ICar محدود کننده است. حداقل در ذهن.
و اما... interface یک قالب کلی از خصیصه ها و رفتارهای خامی ایجاد می کنه که بعداً توسط کلاس هایی که اون رو پیاده سازی می کنن تغییر می کنه... من به interface ها میگم "یاد آور".
بعداً اگر قرار بر این بود که کلاسی برای دوچرخه یا موتورسیلکت داشته باشم، کلاسی با نام Bike ایجاد می کنم و اجزای IMobility رو برای اون پیاده سازی می کنم...
این طوری بسیار زیباتر خواهد بود...
در حقیقت interface بهت "یادآوری" می کنه که: "پسرم وسیله ی نقلیه ی تو حتما باید حداقل دو خصیصه ی "رنگ" و "مالک" و رفتارهای "ترمز" و "شروع حرکت" رو داشته باشه تا بتونی یک وسیله ی نقلیه حسابش کنی"
لطفاً جمله ی بالا رو 100 بار با دقت بخون ;)
موفق باشید :لبخندساده: