سلام
مشکل و مباحث دیگه ای که در استاندارد نبودن کد ها وجود داره :
1- اغلب کد های که در سطح نت قرار میگیره ، در چند دقیقه نوشته میشه و اصلا به استاندارد بودنش توجه نمی شه .
برای خود من بار ها پیش اومده که برای رفع مشکلات کاربران در راه اندازی ماژول ها و سنسور های مختلف کد های رو ارسال کردم و به دلیل عدم دسترسی به اون ماژول اصلا کد رو تست نکردم .
بهینه سازی و استاندارد کردن کد ها وقت زیادی میخواد که معمولا برای پروژه ها و کار های مربوط به اموزش و ... نیازی به صرف این زمان نیست .
2- تجربیات عملی : به عنوان مثال برای راه اندازی یک حافظه ی EEPROM میشه چندین نوع کد نوشت که در تمامی این کد ها دستور زیر در کتاب خانه ی TWI وجود داره :
کد:
while(!(pTwi->TWI_SR & AT91C_TWI_RXRDY ) == AT91C_TWI_RXRDY );
این کد ممکنه سالیان سال بدون هیچ مشکلی کار کنه ، اما بروز مشکل در حافظه ی EEPROM ( رسیدن تعداد خوندن / نوشتن ها به مقدار غیر مجاز ، یا قطع شدن یکی از پایه های باس I2C و ... ) میتونه عمل کرد کل برنامه رو مختل کنه و برنامه برای همیشه در حلقه ی بالا گیر کنه .
این تجربه ای بود که من داشتم و بعد از کار افتادن دستگاهی که 5 سال قبل برای یکی از دوستان ساخته بودم کسب کردم .
چنین شرایطی برای پروتکل های SPI یا USART هم وجود داره .
=================================================
در کل :
اکثر افراد برنامه رو با توجه به نیاز مشتری مینویسن
جواب گرفتن از برنامه = پایان برنامه نویسی
به نظر من مشکل اصلی سیستم ، نبود کار گروهی و انجام پروژه به صورت تک نفره است .
در این حالت پروژه فقط در یک بعد پیشرفت داره و در سایر بخش ها ضعیف هست .
مثلا ممکنه در مداری ، طراحی PCB به بهترین شکل انجام بشه ، اما به طراحی مدارات الکترونیکی و برنامه نویسی توجه زیادی نشه و بلعکس