برای چه کاری Umbrella در ساخت phoenix اپ استفاده می شود؟

درود . من تا حدودی که متوجه شدم اگر خواهیم چند پروژه درست بکنیم از Umbrella به صورت زیر استفاده می کنیم

 mix new rsvp_umbrella --umbrella

فقط تا همین مقدار متوجه شدم یک سری ابزار ها یک پارچه که در کلش استفاده بشه ولی واقعیت امر درک نکردمش :smiley: دقیقا چی هست ؟
اگر اساتید اطلاعاتی در این رابطه دارند ممون می شم

2 پسندیده

اگر از زاويه اليكسر و ميكس به umbrella نگاه كنى بهتره

2 پسندیده

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

Umbrella وقتی نیاز دارید که برنامه شما از قسمت های کاملا مجزا درست شده که بعدا احتمال داره سرویس جدا بشه مثلا اگر فرض کنیم داریم روی یک برنامه فروشگاه کار میکنیم قسمت کاربرها کاملا جدا از قسمت کالا ها و حساب داری هستش پس میشه این ها رو در umbrella زیر application های جدا گذاشت باید فکر کنی که میشه یک قسمت برنامه جدا باشه و دیتابیس خودشو داشته باشه در این صورت کاندید خوبیه برای umbrella
اگر میخوای بیشتر راجع به مدل کردن برنامه مطالعه کنی کتاب Domain Driven Design پیشنهاد میکنم
هر app جدا در DDD
Bounded context گفته میشه

1 پسندیده
1 پسندیده

درود خدمت شما . من اون کتابی که فرمودید رو هم پیدا کردم . حدود ۱۰۰ خوردی صفحه داره . به شخصه سیستمی که در آینده می خوام بنویسم نیاز به همین روند داره . ممنون از راهنمایی خوب و کامل و همیشگیتون تشکر دوست گرامی @samdvr

سوال : بلخره یک جاهایی از این سیستم نیاز به ریلیشن بین چندتا دیتابیس داره درسته ؟ مثلا کاربران دو سیستم . اینجوری فقط ما اومدیم فایل هاشون برای زیاد نشدن پروژه و بخش بندی پروژه جداشون کردیم !!؟ با برخی از فایل هایی که دیتابیس مخصوص خودشان را دارند

1 پسندیده

جدا کردن وظیفه ی سیستم ها به معنای این نیست که هیچ ریلیشن بین سیستم ها نیست
سیستم کاربرها تمام اطلاعات کاربر مثل ادرس میتونه داشته باشه و سیستم فروش اطلاعات فروشها که با user_id مرتبت به سیستم کاربر هامیشه
هر سیستم به تنهایی وظیفه خاصی داره ولی به هم کاملا بی ربط هم نیستند

1 پسندیده

در برنامه نویسی به جدا کردن مسولیت separation of concerns هم گفته میشه چه در برنامه نویسی چه درطراحی سیستم ها هدف ما اینکه تا ممکنه قسمت ها وظیفه های جدا داشته باشندو کمتر به همدیگه وابستگی داشته باشند

1 پسندیده

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

در پوشه اپ دوتا پروژه درست کرده

۱. پروژه خود الکسیر
۲. پروژه فونیکس

بعد می یاد کل مواردی مثل پست گرس و ecto رو روی پروژه الکسیر در فایل mix قرار می ده و نصب می کنه و بعد کل دیتابیس بخونه آبدیت کنه و … هم تو شماره ۱ یعنی پروژه الکسیر قرار می ده .

من معنی کارشو نفهمیدم . اگر بر اساس لینک ها و راهنمایی های شما باشه مثلا ایشون نباید برای دو سیستم مثلا دوتا پروژه فونیکس درست بکنه ؟ دلیل اینکه الکسیر درست کرده چی هست ؟

ممنون هم از کتاب و هم لینک های خوبی که قرار دادید. خیلی در ایده پردازی کمک کرد

چند مدل میشه این کارو انجام داد در DDD برنامه و منطق اصلی برنامه رو باید از قسمت ذخیره سازی (persistence) که در اینجا ecto این کارو انجام میده جدا کرد و همچنین قسمت presentation
عرض بنده این بود که در مثال بالا اگر میدونی داده برنامه جداست phoenix app جدا درست کن برای هر کدوم ولی این حتما نباید phoenix باشه
Phoenix فقط وقتی استفاده کن که میخوای با web کار کنی و api داشته باشی هر app در umbrella میتونه elixir app معمولی باشه که منطق bounded context نگه داره
Phoenix تنهالایه web برنامه هستش

1 پسندیده