PDA

View Full Version : سوال در مورد ایجکس و نحوه قرار دادن کد در صفحه



sairon123
پنج شنبه 20 فروردین 1394, 22:41 عصر
سلام دوستان عزیز
چند وقتیه دارم رو ایجکس کار میکنم ، یه سوالی برام پیش اومده ، ممون میشم نظر خودتون رو بگین

مثلا برای قسمت مطالب سایت می خوام از ایجکس استفاذه کنم ، به دو حالت این کار رو انجام دادم

یکی اینکه ، یک صفحه درست میکنم و تمام کدها مثل قرار دادن پست ، حذف پست و ویرایش و .... رو تو همین یک صفحه میزارم و تو این حالت ممکنه مثلا 20 تا شرط if تو یک صفحه باشه

یکی دیگه اینه که برای هر کدوم یه صفحه جدا بنویسم ، مثلا برای قرار دادن یا حذف ، تو این حالت تعداد صفحات زیاد میشه ولی تو هر صفحه مثلا یه شرط قرار میگیره

به نظر شما کدوم حالت اصولی تر و مناسب تر و بهینه تره ؟ همچنین کدوم حالت سرعت بهتری داره ؟

freeman99
پنج شنبه 20 فروردین 1394, 23:54 عصر
خب بنظر من بستگی داره.
من تجربه ای که در پروژهء خودم داشتم این بود که فایل جداگانه برای هرچیزی خیلی بهتره، مگر مواردی که یجورایی اشتراک کد زیاد داریم و حجم و تفاوت عملیات کدها هم خیلی زیاد نیست.
بنظر من در ایجاد کردن فایلهای جدید و جداگانه نباید هیچ تاملی کرد چون هیچ ضرر خاصی نداره و باعث کاهش حجم کد و دسته بندی و تشخیص بهتر میشه که توی مراحل توسعه و تست خیلی مفیده.
بقیش دیگه تجربی خودت در جریان کدنوشتن و طراحی کردن حدس میزنی، فکر میکنی، تصمیم میگیری، میفهمی. بستگی به جزییات موردی هر چیزی داره خب نمیشه فتوا و فرمول کلی برای هرکس و هر برنامه و شرایط و چیزی داد.
کاهش دادن حجم کد و اینکه توی هر فایل فقط یک عملیات خاص باشه خیلی مفیده. توی ادیتور برنامه نویسی اینا هم هرچی حجم کد کمتر باشه مدام نخواد کلی بالا و پایین کنی و بین بخشها و چیزهای مختلف سویچ کنی خب خیلی موثره در راحتی و سرعت کدنویسی.
بنظرت غیر از اینه؟
حالا یکی کد برنامش مختصره و کلی، میاد چندتا عملیات و کارکرد رو توی یک صفحه میذاره. ولی چیزی که بنظر من میاد اینه که اون کدهایی که اینطور هستن اغلب اونقدری کامل و دقیق نیستن و بخاطر همین حجم و پیچیدگی اونا کمه و شباهت و مشترکات زیادی دارن. مثل پروژهء من بخواد باشه با اون حجم و پیچیدگی و جزییات، اغلب عملیات ها اونقدری حجم کد و تفاوت و جزییات مختلف و عدم اشتراک دارن که نمیشه اونطور همه رو مشابه دید و با هم یک جا گذاشت و ترکیب کرد.
کلا از ایجاد کردن فایل جدید هیچ نترس بنظر من. بعدا ممکنه بعضی موارد رو شناسایی کنی ببینی میشه چندتا فایل رو کمتر و ترکیب کرد با هم میشه اونا رو اینطور کرد. برای خود من پیش آمده ولی طبیعتا چنین مواردی زیاد نیستن.
البته گفتم بستگی به حجم و جزییات و پیچیدگی برنامت داره. برنامه هایی که در اون سطح خیلی حرفه ای و با جزییات و منطق دقیق و مفصل نیستن طبیعتا حجم کدشون خیلی کمتره و کدها و عملیات مختلف با شباهت و اشتراک خیلی بیشتری دارن که در نتیجه در موارد خیلی بیشتری میشه اونا رو با هم مجتمع کرد که اینطوری بهتر هم هست طبیعتا برای چنین کدها و برنامه ای چون دلیلی نداره بخوایم اونا رو از هم جدا کنیم.
پس خودت ببین داری چکار میکنی ماهیت و حجم و شباهت و اشتراک کدهات چطوریه. در جریان کار خودت میفهمی خب! مسئلهء آنچنان پیچیده ای نیست و بنظرم بصورت تجربی مشخص میشه کاملا!

البته بنظرم الگوهای طراحی استفاده شده هم میتونه روی این مسئله تاثیراتی بذاره که من دیگه در این زمینه تخصص و تجربهء خاصی ندارم.
مثلا اینکه MVC استفاده کنی یا نکنی شاید تاثیر بذاره. یعنی ساختار کلی کد برنامت رو خب تحت تاثیر قرار میده دیگه.
درجهء استفاده از شیء گرایی هم احتمالا تاثیر بذاره، چون کدهای زیادی رو توی اشیاء گردآوری میکنه.
اینا جزییاته دیگه بازم گفتم که نهایت برمیگرده به همون که کدت دقیقا چی هست چه شکلیه چه مختصات و مشترکات و شباهت هایی داره چه حجمی داره. چیزی که جلوی چشمت داری میبینی! چیزی که داری مینویسی! خودت باید بفهمی. چیزی نیست که بیش از این دیگران بتونن درموردش قضاوت کنن و بجای شما تصمیم بگیرن، مگر اینکه کل برنامه و کدت رو داشته باشن و بررسی کنن. خودت رو اذیت نکن بیشتر گیر این مسائل نشو. بخصوص که تازه کار هم هستی اول شروع کن باید فعلا تجربه و آزمون کنی تا دستت بیاد. خودت امتحان کن کد بزن ببین نظرت چیه چه مشکلاتی چه مزایا و معایبی میبینی عملا. فکر نمیکنم زیاد طول بکشه و سخت باشه.

freeman99
جمعه 21 فروردین 1394, 00:17 صبح
یکی اینکه ، یک صفحه درست میکنم و تمام کدها مثل قرار دادن پست ، حذف پست و ویرایش و .... رو تو همین یک صفحه میزارم و تو این حالت ممکنه مثلا 20 تا شرط if تو یک صفحه باشه
20 تا شرط که بنظر یخورده زیاد میاد. ولی بازم بستگی به حجم کد داره. اگر اون فایل بخواد اینطوری مجموعا 400 خط بشه، بنظرم زیاده! ولی اگر کدهات برای هر شرط کمه خب شاید مشکل چندانی نباشه. بخصوص اگر کدها شباهت و اشتراک زیادی داشته باشن.
بستگی داره چطوری برنامه رو بنویسی. حجم کدها چقدر باشه و چطوری اون رو دسته بندی و مدیریت کنی مثلا شاید ببری توی فایلهای اینکلودی، توی اشیاء، توابع، غیره.
در کل تجربهء من این بوده که هر فایل سورس اگر بیشتر از یک حجم و تعداد خطوط زیادی بره، کار کردن روش واقعا مشکل میشه و خیلی وقتا این مشکل رو داشتم که هی باید بزنم بالا و پایین و کلی به چشمم فشار بیار و دنبال کدهای خاصی بین اون همه کد بگردم. وقتی کد کمتر باشه خب این کار خیلی راحتتره و کمتر نیاز به جابجایی و جستجو داری. مدیریت و تشخیص عملیات مختلف در محیطهای ادیتور و اینها هم با فایلهای مجزا راحتتره بنظر من و نیاز به علامتگذاری های خاص دستی و کامنت و اینها خیلی کمتر میشه.
حالا یوقت هست یک الگوریتم و عملیات های خاص متوالی هست و بیشتر نیاز هست فقط بصورت ترتیبی خط به خط بخونی و پیش بری، اون مشکلش کمتره باز.
فکر کن مثلا داری کد مربوط به یک عملیات رو نگاه میکنی، این وسط حالا به هر دلیلی که واسه خود من دائم پیش میاد اون رو رها میکنم میرم دنبال یک عملیات و کدهای دیگری رو بررسی کنم، حالا اگر اون عملیات و کدهای دیگر هم همه یا بخشی از کدش توی همون فایل باشه باید اون فایل و مکانی رو که داره اسکرول کنم ببرم سر کدهای جدید، و به این شکل وقتی بخوام برگردم سر عملیات و کدهای قبلی، اونوقت مشکل پیش میاد و باید دوباره مکان اون کدهای قبلی رو پیدا و تنظیم کنم و این تمرکزم رو کم میکنه و وقت و انرژی رو هدر میده. ولی وقتی توی فایل مجزا باشه شما فایل مورد تمرکز قبلی رو دقیقا همون جایی که توی ادیتور بوده رها میکنی و وقتی هم برگردی دقیقا سر همون جای قبلیه و فورا میتونی شروع کنی به ادامه و راحت هم یادت میاد دقیقا چرا اونجاست تا کجا چه کدی رو دنبال کرده بودی و سرگرم چه موضوعی بودی. این مسئلهء سویچ کردن بین عملیات و کدهای مختلف ممکنه بارها و بارها تکرار بشه و مدام باید اسکرول کنی بین اونا. ولی وقتی فایلها جداگانه باشن فقط کارش چندتا کلیک و جابجا شدن بین Tab ها در ادیتوره. برای خود منکه این مسئله در عمل خیلی تاثیر داشته.

freeman99
جمعه 21 فروردین 1394, 00:29 صبح
از من پرسیدن که چرا اینقدر فایل کانفیگ داری چرا همهء کانفیگ هات رو توی یدونه نذاشتی. پاسخ این بود که خب مگه دسته بندی مشکلی داره؟! من الان هر سری متغییرهای کانفیگی رو که از نظر کارکردی با هم شباهت دارن و مربوط هستن توی یک فایل مجزا گذاشتم با نام گویا. اینطوری هر وقت هم میخوام میتونم سریع هرکدام رو پیداشون کنم. بهرحال تعداد متغییرهای کانفیگ من واقعا زیاد بود و کامنت هم زیاد داشت که اگر همه رو توی یک فایل میذاشتم فایل واقعا طولانی ای میشد! حالا هی باید توی ادیتور بالا و پایین میکردم و دنبال متغییرهای کانفیگ خاص میگشتم که واقعا اذیت میکرد. ولی اگر تعداد متغییرهای کانفیگ خیلی کمتر بود خب همه رو توی یه فایل میذاشتم، حتی اگر از نظر کارکردی با هم تفاوت زیادی داشتن.
یه مشکل فقط تعداد اینکلودهایی مختلفی بود که هرجا که نیاز به متغییرهای کانفیگ هر فایل داشتم باید انجام میدادم، که اونم اخیرا با درست کردن یک کلاس کانفیگ که اینترفیس مشترک و خودکاری رو برای دسترسی به تمام متغییرهای کانفیگ در اختیار قرار میده حل کردم.

sairon123
جمعه 21 فروردین 1394, 19:44 عصر
ممنون داداش گلم ، خیلی کامل توضیح دادی ، به این نتیجه رسیدم که تا جایی که ممکنه از صفحات بیشتر استفاده کنم

اره ، من خودم هم اول وقتی فایلهای شما رو دیدم ، تعجب کردم که چقدر فایل دارین ، ولی الان با توضیحاتی که دادین ، به نظر من هم اینطوری بهتره ،

من اول فکر کرده بودم تعداد فایل زیاد شه ، سرعت لود پایین میاد :قهقهه::قهقهه::قهقهه:

یه سوال دیگه دارم ، ببخشید خیلی زحمت دادم

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

میخواستم بدونم mysql تو تعداد بازدید بالا و یا تعداد داده های بالا مشکل بر میخوره ؟

و یه سوال دیگه اینکه میشه دیتابیس غیر رابطه ای رو یاد گرفت یا اینکه کار باهاش سخته ؟