رفتن به مطلب
جامعه‌ی برنامه‌نویسان مُدرن ایران

kambiz behnia

کاربـــر رسمی
  • تعداد ارسال ها

    17
  • تاریخ عضویت

  • روز های برد

    1

آخرین بار برد kambiz behnia در 12 تیر

kambiz behnia یکی از رکورد داران بیشترین تعداد پسند مطالب است !

اعتبار در سایت

4 خوب

درباره kambiz behnia

توسعه‌ دهنده بَک اِند
توسعه‌ دهنده فرانت اِند
طراحان
  • تاریخ تولد تعیین نشده
  1. kambiz behnia

    از بابت توضیح در پاسخ اول متشکرم سعی میکنم کتابی را که معرفی کرده بودید حتما مطالعه کنم. احساس میکنم پاسخ دوم با پاسخ اول در تناقض باشد و بطور کلی استفاده به این شکل درست نباشد. خودم فکر میکنم چون مقدار بازگشتی تابع را مستقیما به دستور copy ارسال کرده ایم و احتمالا در آن از حافظه استک استفاده نشده در عمل دوچار مشکل نشده ایم ولی چنانچه اگر به صورت دیگری استفاده کنیم حتما مشکل حافظه خواهیم داشت مثلا خودم دوباره strcpy را بازنویسی کنم بطوریکه در ابتدا آن اقدام به تعریف یک آرایه 256 تای از char نمودم اگر چه در بدنه آن هیچ استفاده ای از آن نکردم ولی موجب خراب شده داده های مورد نظر من شد و تابع بهصورت درست عمل نکرد و وقتی آن حاظه را از استک نگرفت برنامه کار مورد نظر من را انجام داد. یکی از دوستان برای چنین مواردی اصطلاح جالبی داشت "برنامه به غلط درست کار میکند."
  2. در برسی کدهای برنامه ای که قبلا نوشته شده بود و ظاهرا در حال حاضر بدرستی کار می کند به صحت عمل تابع مشابه doXOR شک کردم. متن doXOR و روش استفاده شده از آن را در زیر اضافه می کنم. لازم به ذکر است فقط به روش زیر استفاده می شود. char *doXOR(char *cData1, char * cData2) { char cData[256]; // for (int i = 0; i < 256; ++i) { cData[i] =cData1[i] ^ cData2[i]; } // cData[255] = 0; return cData; } void usedoXOR() { char cData1[256]; char cData2[256]; char cData3[256]; // memset(cData1, 0, sizeof(cData1)); memset(cData2, 0, sizeof(cData2)); memset(cData3, 0, sizeof(cData3)); strcpy(cData1, "In C, the following 6 operators are bitwise operators (work at bit-level)"); strcpy(cData2, "Typical usage of a right shift operator in C can be seen from the following code."); strcpy(cData3, doXOR(cData1, cData2)); } همانطور که میبینید در doXOR در انتها آدرس cData که یک متغییر محلی است برگشت داده می شود و من انتظار دارم قبل از خارج شدن از doXOR حافظه های اختصاص داده شده آزاد گردد لذا بهد از خروج از doXOR آدرس cData معتبر نخواهد بود اگر چه همچنان حاوی اطلاعات قبلی است. نظر شما چیست. 1 - نوشتن به این شکل مشکل دارد یا نه؟ 2 - اگر مشکلی دارد آیا نحوه استفاده ما در usedoXOR از خروجی doXOR به عنوان ورودی strcpy موجب شده تا این مشکل خود را نشان ندهد؟ 3 - آیا نوع کمپایلر و سیستم عامل میتوانند در پاسخ به دو سوال بالا تاثیرگذار باشند.
  3. kambiz behnia

    با این حساب باید تمرکزم رو روی Meta Data قرار بدم اگر چه با توجه به استفاده از SP در برنامه های دیگر کارفرما به استفاده از آن و یا مواردی مشابه آن تمایل بیشتری دارد. آخه عمری با روش SP کارکردن و به آن عادت کرده اند. از وقتی که گذاشتید متشکرم. اگر در ادامه در مورد استفاده از Meta Data به مشکل و یا سوالی برخوردم مزاحم شما خواهم شد.
  4. kambiz behnia

    فرض را براین بگذاریم که یک Object داده وجود دارد (که میتواند یک کلاس از کلاسهایی باشد که خودمان ایجاد کرده ایم و یا یک آرایه از کاراکتر و یا هر دیتا تایپ داخلی ++C "فرض کنیم حتی امکان سریالایز کرده داده وجود داشته باشد") حال میخواهیم برحسب شرایط تغیراتی روی این داده انجام گیرد. در حالت نرمال در داخل کد برنامه این کار را بکمک نوشتن متد ها انجام میدهیم. واضح است که با تغییر logic هرکدام از این متد ها مجددا باید کل برنامه کمپایل گردد. حال با توجه به اینکه logic مورد استفاده از قبل مشخص نیست و تقریبا هر چند وقت یکبار تغییر میکند و حتی گاهی تصمیم براین قرار میگیرد که از ساعت 9 تا 12 ظهر یک منطق و از 12 ظهر تا 2 منطق دیگر و دوبار منطق قبلی برای logic آن تابع در نظر گرفته شود. (چیزی شبیه تصمیم گیری بعضی از مدیران ) فرض کنیم قراراست مشخص کنیم چه وسایل نقلیه ای می تواند از یک محور خاص عبور کند در حالت نرمال میگوئیم همه در شرایط خاص بعضی حال باید این بعضی را مشخص کنیم. تصمیم بر اسال شماره پلاک باشد؟ کدام شماره ها بر اسال مدل و سال ساخت باشد و یا رنگ هم در نظر گرفته شود؟ راننده هم مهم است؟ مبدا و مقصد چطور؟ آیا باید به وسیله نقلیه چیزی اضافه و یا کم شود؟ آیا باید وسیله خاصی داخل خودرو باشد باشد؟ همه این موارد میتواند موجب تصمیم گیری جهت اعلام محدودیت های ترافیکی شود. شاید عجیب بنظر برسد ولی محدودیتهای ترافیکی اعلام شده در موارد خاص تابع هیچ قانون کلی نیست و با توجه به شرایط محیط، زمانی و مکانی اعلام و اعمال میشود. یک مثال وقتی ما مثلا در Sql Server اقدام به ایجاد Stored Procedures میکنیم دیگر برنامه ها اقدام به صدا کردن این Stored Procedures خواهند کرد و این کار کد داخل ان خواهد شود حا هرگاه من اقدام به تغییر logic این Stored Procedures کنم بعد از ذخیره درصورت صدا کردن این Stored Procedures توسط هر برنامه دیگری کدهای جدید اعمال خواهند شد. آیا امکان داشتن چنین قابلیتی در کنار برنامه های ++C وجود دارد؟ (برای دیگر زبانها چطور؟)
  5. kambiz behnia

    اتفاقا منظورم همان تغییر logic تابع هست. یعنی امیدی نیست. نظرتان در باره پاسخ کاربر quark چیست؟
  6. kambiz behnia

    همانطور که جناب آقای شیری فرمودن ارائه مثال میتواند تاثیر بهتری داشته باشد. چون با توجه به توضیحات شما ذهن من رفت طرف فانکشن پونتر و استفاده از آنها.
  7. kambiz behnia

    اگر امکان این وجو داشته باشد تا کد helloWorld را تغییر داده و بدون نیاز به کمپایل مجدد برنامه اصلی بتوان از کد جدید استفاده کرد احتمالا پاسخگوی کارم خواهد بود.
  8. kambiz behnia

    احتمالا استفاده از روش پیشنهادی شما پاسخگوی من باشد. حال بنظر شما استفاده از چه زبان اسکریپتی در ++C از نظر سرعت برنامه و سهولت استفاده کارآمدتر خواهد بود
  9. kambiz behnia

    اگر درست متوجه شده باشم استفاده از متا دیتا پاسخ گوی من نخواهد بود چون لازمه استفاده ازآن این است تا در برنامه اصلی بدانیم باید دنبال چه مواردی بگردیم
  10. kambiz behnia

    منظور رفتار متفاوت در زمان اجرا هست ولی چون از قبل نوع عملکرد مشخص نیست و تغییرات زیاد است میخواستم به روشی بخش کمپایل مجدد کد را به شکلی حذف کنم. فکر نمیکنم مبحث تزیق کد کاربردی برایم داشته باشد. اگر درست متوجه شده باشم دات نت و جاوا برای اجرا سورس کد را به یک واسطه تبدیل و کدهای داخل آنرا اجرا میکنند حال در این حالت اگر سورس کد اصلی تغییر کند آیا دوبراره بطورخدکار آنرا کمپایل خواهند کرد در باره Dalvik چیزی نمیدانم شاید جوابم را بدهد اگر تا حدودی نزیک پاسخم بود مزاحم خواهم شد. اگر بتوان از داخل برنامه c++ از زبان پایتون استفاده کرد و دادهایی را تبادل نمود و ایتون قابلیت کمپایل (منظور همان تفسیر دوباره است ) زمان اجرا را داشته باشد احتمالا کارساز خواهد بود متشکرم
  11. kambiz behnia

    کمی گنگ بودن سوال را قبول دارم. فرض کنید دربرنامه به Sq Server وصل شده و اقدام به صدا کردن پروسیجرهایی که از قبل نوشته و در دیتابیس ذخیره شده است مکنیم. هر وقت ما اقدام به تغییر یک پروسیجر بکنیم از آن به بعد آن کد جدید هنگام صدا کردن پروسیجر اجرا خواهد شد. میخواستم مشابه این را داشته باشم. گفتم شاید کتابخانه هایی وجود داشته باشند که به کمک آنها بتوان کدهای داخل فایلی را parse کرده و دستورات آنرا اجرا کرد چیزی شبیه یک مفسر کوچک زبان که دستورات محدودی را شامل میشود. مثلا در windows میتوانیم بخشی را کد را داخل فایل dll قرار دهیم و هرگاه کد dll را عوض کرده و دوباره کمپایل کنیم و فایل dll را جایگزین فایل قبلی کنیم تغییرات جدید اعمال خواهد شد. تقریبا میخواهم مشابه این کار را انجام دهم بطوریکه لازم به کمپایل مجدد چیزی نباشد و تغییرات در حد عوض کردن یک فایل text باشد. شاید اینطوری بهتر باشد چگونه یک فایل script که حاوی کدهای است که در امکان تغییر داده های اصلی را میدهد را اجرا کنیم.
  12. فرض کنیم متدی به نام Calculate برای یکی از کلاسها درون برنامه وجود دارد و برحسب شرایطی فرا خوانی میشود. آیا راهی وجو دارد که بتوان کد داخی آنرا تغییر داد طوری که بعد از تغییر برنامه کد تغییر یافته را اجرا کند همانند proceger در sql server
  13. kambiz behnia

    احتمالا لازمه اجرا شد برنامه به روش گفته شده در بالا login شدن کاربر باشد. لطفا در مورد برنامه های که بدون login شدن کاربر بطور خودکار اجرا خواهند شد (برای محیط های مختلف توضیح دهید).
  14. kambiz behnia

    تو برنامه ای که در به ارث رسیده مقدار پارامتر اول در SELECT صفر داده شده و همین استفاده ازآن شده است ضمن آنکه برنامه برای محیط Windows بوده و در محیط VS کمپایل شده.
  15. kambiz behnia

    هنگام استفاده از دستور select پارامتر اول همواره یک واحد بیشتر از مقدار socket هست. در کدهایی دیده ام که این مقدار را برابر صفر قرار داده اند و همین استفاده ای که شما گفتید را از این دستور کرده اند. البته آن کد برای محیط windows بود (شاید در محیط windows به این پارامتر توجه نکند. حضور ذهن ندارم ولی ظاهرا درویندوز برای همخوانی با توابع c در محیط unix و linux توابعی ارائه داده که از بعضی از پارامترهای آن استفاده نمیشود). در هرحال اگر پارامتر اول را صفر دهیم چه اتفاقی میافتد.
×
×
  • جدید...