فریم ورک phoenix

زبان برنامه‌نویسی الیکسیر از آن زبانهاییست که این روزها سر و صدای زیادی به پا کرده. زبانی که روی شانه‌های ماشین‌مجازی ارلنگ قدرتمند ایستاده است و در مدت کوتاهی مورد اقبال بسیاری از سمت برنامه‌نویسان قرار گرفته است.

از عمده‌ی کاربردهای این زبان توسعه‌ی سرویس‌های اینترنتی و استفاده های دیگر آن در وب است که برای اینکارها یکی از معقول‌ترین روش‌ها استفاده از فریم‌ورک قدرتمند Phoenix است. طراحان این فریم‌ورک در توضیح آن بیان میکنند که این فریم‌ورک در عین بهره‌وری و سرعت بالای توسعه، بازدهی و پرفورنس بسیار بالاتری از فریم‌ورکهای متداول بدست میدهد.

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

نظرتون درباره این فریم ورک چیست

3 پسندیده

سلام، اليكسر واقعا عاليه و فينيكس بسيار قدرتمند و لذت بخش. واقعا ارزش وقت و انرژى رو داره اگر به دنبال يادگيرى هستيد

دمتون گرم عالی بود

من Elixir و Phoenix رو با کتابای زیر شروع کردم و عالی بودند:

اگر قرارباشه مقایسه ای انجام بشه به سلقیه شخصی خودتون و راحتی سینتاکس و سرعت یادگیری و اینکه کدوم یک اسون تره و… از بین :
Scala
Elixir
closure
کدوم رو با کدوم فریم ورکش انتخاب می کنید ؟

1 پسندیده

این مقایسه قبلا اینجا انجام شده, من Elixir و Phoenix رو ترجیح میدم

1 پسندیده

ممنون تشکر ، حضور ذهنتون واقعا بی نظیره الان یادم افتاد که مدتی پیش همچین سوالی ازتون پرسیده بودم

1 پسندیده

دوستان خیلی روی سرعتش تو اینترنت مطلب نوشتند . می خواستم بدونم از چه دیتابیسی استفاده می کنند معمولا . هم سریع باشه هم قدرتمند .
ما یک بار رفتیم منگو دی بی رو یاد بگیریم رسیدم وسطش همه گفتن این مشکل می خورید و …

1 پسندیده

دیتابیس postgresql استفاده می کنه که از خیلی لحاظ از MySQL بهتره اما میتونید از MySQL هم به جای postgresql استفاده کنید

2 پسندیده

تو انجمن خیلی بحث های خوبی هست ولی در مورد انتخاب مناسب دیتابیس چیزی زیاد وجود نداره .
یک سوال دارم postgresql می تونه درخواست های زیادی تقریبا همزمان رو جواب گو باشه ؟

1 پسندیده

بله و داده های بسیار زیادی هم می تونه ذخیره کنه بدون مشکل مثلا چند صد gig در هر table خیلی از شرکت های بزرگ ازش استفاده میکنند
از نظر طبقه بندی دیتابیس CA consistency-Availability هست مثله MySQL
برای درک کلی دیتابیس به CAP theorem مراجعه کنید
Cap به صورت خلاصه میگه که در هر سیستم توزیع شده شبکه سه کرکتر هست که فقط میشه دوتا از انها رو داشت
Consistency: انسجام و توافق
Availability: دسترسی
Partition Tolerance: تقسیم پذیری

PostgreSQL

یک دیتابس CA هست یعنی برای انسجام داده و دسترسی ساخته شده اما دیتابیس مثل dynamo
AP هست یعنی برای دسترسی بیشتر و تقسیم پذیری ساخته شده

انسجام در dynamo به صورت تدریجی است eventually consistent

2 پسندیده

پیشنهاد میکنم موضوع دیتابیس رو از این بحث جدا کنید

1 پسندیده

درود خدمت دوستان محترم . من دو روزی هست که دارم الکسیر رو یاد می گیرم ولی یک سوال پایه ای برام وجود اومده که نیاز به مشاوره دارم

شما فکر کنید هم روبی و ریلز بلد هستید و هم الکسیر و فونیکس . چرا و در چه زمانی ریلز انتخاب می کنید و چه زمانی فونیکس ؟

وقتی می خواهید تصمیم بگیرید چه پارامتر هایی رو در نظر می گیرید ؟ اینجوری فکر می کنم یک دید خیلی بهتری بهم بدید
با تشکر

2 پسندیده

در سال 2017 فینکس و در 2007 ریلز رو انتخاب میکنم

4 پسندیده

می شه کمی توضیح بدید . چرا یکی که ریلز بلده باید بیاد فونیکس برای پروژه هاش انتخاب بکنه فقط سرعت ؟

من کلی از مطالب این سایت خوندم بیشتر تفاوت های کلوژر و الکسیر بوده تا روبی و الکسیر .

دوست عزیز به نکته ای اشاره کردید که جنبه های زیادی دارد.
الیکسیر فقط به لحاظ سرعت و توزیع پذیری برتری از روبی ندارد بلکه به خاطر functional بودن و تغییر نشدن داده ها برنامه نوشته شده در الیکسیر بسیار ساده تره میشه و برنامه نویسی تبدیل به جا به جا کردن داده از تابع به تابع میشه. Error handling با وجود supervisor ها ساده شده و هر سیستم به شاخه های کوچک تقسیم میشه. این روش در ارلنگ برای سیستم های متحمل نقص به کارگرفته شده.

من در کار های شخصی الیکسیر استفاده میکنم. اما ریلز هنوز سریع ترین فریم ورک برای پیاده کردن ایده هست به دلیل ۱۰ سال سابقه و کلی جم و جواب به مشکلات در stack overflow
در شرکت هایی که تازه شروع به کار کردند و هدف رسیدن به بازار سریع مهمه ریلز استفاده میشه اما اگر سرعت و جواب به هزاران درخواست از ابتدا مهمه الیکسیر بهتره.
همیشه میتونید با ریلز شروع کنید و بعدقسمتهایی که مشکل دارن را به microservice در الیکسیر تبدیل کنید

5 پسندیده

شما می تونید برای منظور های عمومی ینی پروژه های عادی بیشتر از روبی و فریم ورک رایلز استفاده کنید که orm خیلی عالی هم داره و سریع می تونید هر پروژه ای رو که خواستید باهاش بالا بیارید
اما در جهاتی ممکنه شما با پروژه ای روبرو باشید که سرعت و مهمتر از اون جواب دادن به حجم ریکوست های بالا مطرح هست و پروژه هم بزرگه تو اینجا انتخاب بهتر همین الیکسر با فریم ورک فونیکس یا مثلا زبان اسکالا با فریم ورک play و… می تونه باشه
در ارتباط با بانک های اطلاعاتی هم می تونید از گزینه های مختلفی بهره ببرید سرعت تو nosql ها مثل mongodb خیلی خوشو نشون میده

1 پسندیده

براى پاسخ به قسمت اول بايد بگم كه خب اليكسر از نظر سينتكس خيلى به روبى شباهت داره و فينكس هم خيلى به ريلز شباهت داره.
اينكه چرا بيشتر از اينكه اليكسر و روبى مقايسه بشند، اليكسر و كلاژر مقايسه شدند شايد به اين دليل باشه كه روبى شى گراست ولى اليكسر و كلاژر هر دو فانكشنال هستند

1 پسندیده

رابى؟؟؟؟

دوستان اگر لطف کنند نمونه کار های خودشان که ایرانی هست با phoenix هست رو قرار بدند واقعا جای تشکر بسیار زیادی داره , ممنون می شم