Ruby on Rails مرده است، پایان.

نه.
من ROR را دوست دارم، این زبان اول من نیست، اما تقریباً.
هر بار که ایده ای دارم، در Ruby به آن فکر می کنم، در Ruby on Rails، برای من خیلی راحت تر است، اگر بدانید می خواهید به چه چیزی برسید، می توانید به راحتی یک MVP در یک روز بسازید.
با استفاده از ROR، من روی پروژههای کوچک و بزرگ، برخی بیش از حد بزرگ کار کردهام، اما Rails باعث میشود هر حرکتی که انجام میدهید، طبیعی باشد.
Ruby and Rails پارادایم “Convention Over Configuration” را به حدی افراط می دهند که فکر کردن در مورد دور زدن آن مانند کفر به نظر می رسد.
همه چیز زیباست، اما یک مشکل نزدیک است.
زمانی که به انجام هر کاری که در یک پروژه انجام میشود فقط با استفاده از Rails فکر میکنیم، میتوانیم در سمت یکپارچگی اشتباه کنیم، و این چیزی است که برای من اتفاق افتاد.
منظور من از آن چیست که ما از یک چارچوب و شیوه های خوب آن استفاده می کنیم، اما اقدامات خوب باید ما را سازماندهی کند، نه اینکه ما را محدود کند.
به عنوان مثال، من مجبور شدم پرس و جوهای پیچیده SQL ایجاد کنم و برای اینکه بدعت گذار نباشم، بدیهی است که آنها را با استفاده از روش ها و مدل های خوب ActiveRecord انجام دادم، که گاهی اوقات منجر به پرس و جوهای گران می شود که هضم آن برای خود SQL دشوار است، آه، اما من از روش های چارچوب خوبی استفاده کردم.
با توجه به افکار من، هیچ چیز نباید پایگاه داده را لمس کند، اگر نه از طریق یک مدل داده، “updated_at” آن باید منعکس کننده آخرین تاریخ به روز رسانی چیزی باشد که لمس شده است، نه اینکه به چیزی خارجی برای دسترسی به پروژه اشاره کنیم.
با این همه کجا می خواستی بری؟درست در این مرحله، یک چارچوب، مهم نیست که چقدر قدرتمند، بزرگ و همه کاره باشد، هنوز هم همین است، یک چارچوب، یک چارچوب کاری، نه محدودکننده، بلکه سازمانی.
استفاده از یک چارچوب به این معنی نیست که ما باید خود را به شدت به اقدامات خوب آن محدود کنیم (من قبلاً سیل نظرات طرفداران اقدامات خوب را می بینم)، ما فقط باید در هر زمان و زمانی که ممکن است از آنها استفاده کنیم، آنچه را که نیاز داریم و برای بقیه. ، از نبوغ توسعه دهنده ما استفاده کنید.
این آخرین بار کار با اسکرپرها برای به دست آوردن قیمت محصول در RantiQ، نمایه سازی اخبار و نام های تجاری، سازمان ها و افراد در Dolem Labs و غیره. تصمیم گرفتم پارادایمای را که تقریباً روی سختافزارم چاپ کرده بودم، بشکنم، با وجود انجام وظایف با چارچوب دلخواهم، تصمیم گرفتم به روشهای دیگر، حتی زبانهای دیگر، فرصت بدهم.
اکنون خزندهها روی پایتون اجرا میشوند و بدون یک چارچوب راهنما، حداقل نه یک چارچوب واقعی، من مدلهای دادهام را در صورت نیاز سازماندهی میکنم، پرسوجوهای گرانقیمتی را اجرا میکنم که در صورت نیاز «کارهای دیوانهکننده» انجام میدهند، و هزاران صفحه وب را تجزیه و تحلیل میکنم. روز و یک بار دیگر استانداردهایم را می شکند، نه به یک زبان، نه همه چیز تحت نظارت یک چارچوب.
و بله، اسکریپتهای پایتون پایگاه داده را لمس میکنند، هزاران رکورد را وارد میکنند، صدها مورد دیگر را بهروزرسانی میکنند و اطلاعات را فهرستبندی میکنند تا Rails کار خود را آسانتر کند.
و بله، همه چیز بهتر است، من نمی خواهم وارد موضوع Monolith vs Micro Services شوم، در حال حاضر بسیار فرسوده شده است. خواهید دید که با بارگذاری یک اسکریپت پایتون (نه به خاطر پایتون بودن، به این دلیل است که هیچ چارچوبی وجود ندارد) برای انجام کار خراش دادن، بدون نیاز به بارگیری کل چارچوب برای یک کار ساده، همه چیز بسیار سریعتر و با عملکرد بیشتر جریان پیدا کرد. هنگام ایجاد پرس و جوهای SQL آزادانه. همچنین برای قسمت جلویی همه چیز آسان تر و ارزان تر بود، زیرا برخی از اسکریپت ها اطلاعات را “پیش جویدن” می کنند و آن را آماده مصرف می گذارند.
باید مراقب باشی؟بله، شما باید مراقب باشید، باید چارچوب را بشناسید تا داده ها را خراب نکنید و بعد وقتی می خواهید آن را مصرف کنید همه چیز منفجر شود.
اکنون جداولی دارم که Ruby on Rails از وجود آنها اطلاعی ندارد، جداولی که برای انجام فرآیندهای نمایه سازی گران قیمت استفاده می شوند، ROR نیازی به دانستن آن ندارد و من دیگر احساس گناه نمی کنم 🙂
به هر حال من نمی گویم آنها کارهای احمقانه انجام می دهند، می گویم همانطور که اسکرام چارچوبی است که باید بر اساس آن توسعه را به شکلی چابک انجام دهیم، اصلاً چیزی نیست که ما را محدود کند، تشریفات آن را دارد (بسیاری برای سلیقه من) آنها معمولاً اجباری نیستند، شما آنچه را که برای اجرای پروژه نیاز دارید بردارید.
با بازگشت به کد، مواردی وجود دارد که میتوانند در زبانها و/یا فریمورکهای دیگر بسیار کارآمدتر از زبانی باشند که بهعنوان پایه استفاده میکنید، ارزش ارزیابی آن و رفع هرگونه شک و تردید را دارد.
آیا انجام این کار همیشه توصیه می شود؟
خیر، به طور کلی توصیه میشود به شیوههای خوب زبان/چارچوبی که استفاده میکنید، پایبند باشید، بهخصوص اگر در اولین قدمهایش یک استارتآپ است. نگهداری یک پروژه با زبانها و فریمورکهای مختلف میتواند بسیار پرهزینه باشد، بدون توجه به منطق اجرای آنها، و حتی بیشتر از آن، اگر اسکریپتهایی در سرورهای مختلف در حال اجرا باشند، میتواند دردسرساز باشد.
و برای بستن، آزمایش کنید، خودتان را به یک روش انجام کارها نبندید.
بهترین ها.
پل.