سلام ,
دوستان من یک پکیج Nodejs دارم میسازم که دوست دارم در موردش باهاتون صحبت کنم و از نظراتون استفاده کنم :)
ماه پیش با یک تیم برنامه نویس PHP داشتیم روی یک پروژه کار میکردیم که من برنامه نویس Nodejs اون تیم بودم .
اکثر بچه های PHP میگفتن که دلیل این که نمیان سمت Nodejs و کلا Javascript اینه که کد هاش خیلی به هم ریختس و کار کردن با Nodejs پدر آدمو در میاره ! هی باید Route ساخت و وصلش کرد به Controller و خیلی رو مخه !
من یه ایده ی جالبی به سرم زد که گفتم باهاتون در میون بزارم شاید جالب باشه براتون .
ایده ی من اینه که ما از Controller ها به عنوان Router استفاده کنیم که از این به بعد هر کدوم از Controller های ما به طور اتوماتیک بعد از ریست شدن به عنوان Route هم استفاده بشن .
حالا من این رو فعلا با Hapi و Express پیاده سازی کردم و خاستم باهاتون در اشتراک بزارم ببینم نظر شما ها چیه .
به نظر شما این کار رو توسعه بدیم به طوری که بتونن با npm نصب کنن و از Controller هاشون به عنوان Route استفاده کنن ؟
const controllerDir = path.join(__dirname.replace('bin','') , 'controller')
fs.readdir(controllerDir , (err , dir) => {
dir.forEach(dirss => {
fs.readdir(path.join(controllerDir , dirss) , (err , jsFile) => {
jsFile.forEach(cont => {
let thispath = process.env.API_VERSION + cont.replace('.js','')
console.log(thispath)
server.route({
method : 'POST' ,
path : process.env.API_VERSION + cont.replace('.js',''),
handler : require(`controller/${dirss}/${cont}`)
})
})
})
})
استفاده از کنترلر به منطق برنامه نویس برمیگرده و اینکه اینو با اون یکی کنیم یا نکنیم خب چه کاریه طرف میتونه منطق برنامه هاشو تو فایل روت بنویسه و اون فایل رو ایمپورت کنه فریمورک اکسپرس دست ادم رو باز گذاشته تا از هر منطقی که دوست داری کد بزنی و کسی که بخاطر ساخت یک کنترلر داره از زبان دگ استفاده میکنه بزار همونو استفاده کنه دگ
@mahdipakravan
شما به اون دوستانی که گفتن nodejs یا کلا javascript بهم ریخته است و ... بفرمایید یکبار در visual studio (دقت کنید vscode منظورم نیست) با nodejs کار کنن تا ببینن همه چی تحت کنترل برنامهنویس خواهد بود.
اما در مورد پیشنهاد شما، ببینید دوست عزیز هیچکس نمیتونه بگه حرف شما درسته یا غلط. برنامهنویسها بعد از یه مدت کار کردن اصطلاحا امضای خودشونو پیدا میکنن. البته بهتره هرچقدر میشه به روشهای استاندارد نزدیکتر شد.
جداسازی منطق Route از Controller باعث افزایش انعطافپذیری کد شما میشه. همون مسئله معروف افزایش خوانایی
@mirhassani
آره خب , منم صرفا گفته بودم که نظر دوستان رو بدونم ببینم مثلا کسی موافق هستش چنین ماژولی یا چنین کتابخونه ای ساخته بشه یا نه .
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟