Forwarded from Woland's Linux Journal (Woland)
💠پلاگین داتنت برای ویم💠
پلاگینی برای کار با خطفرمان داتنت از داخل ویم نوشتم که روی گیتهاب بارگذاری شده.
با استفاده از این پلاگین میتونین برخی از دستورات پرکاربرد dotnet رو از داخل ویم اجرا کنید.
هنوز تمام قابلیتهای داتنت رو ساپورت نمیکنه، اگه داتنت کار میکنید میتونین به پروژه کمک کنید.
همچنین برای خلاصی از ویژوآل استودیو میتونین از Omnisharp یا csharp-ls در کنار ویم استفاده کنید که هردوشون خیلی خوب هستن.
طبعا اگه از WinForms و Designer ویژوآل استودیو استفاده دارید کاری نمیشه براش کرد، ولی برای کد زدن کافیه.
بعدها یه راهنمای کامل برای تنظیم ویم برای سیشارپ مینویسم.
🔹لینک پلاگین:
👉🔗 Dotnet-Vim
#vim #dotnet #csharp
#ویم #سی_شارپ
پلاگینی برای کار با خطفرمان داتنت از داخل ویم نوشتم که روی گیتهاب بارگذاری شده.
با استفاده از این پلاگین میتونین برخی از دستورات پرکاربرد dotnet رو از داخل ویم اجرا کنید.
هنوز تمام قابلیتهای داتنت رو ساپورت نمیکنه، اگه داتنت کار میکنید میتونین به پروژه کمک کنید.
همچنین برای خلاصی از ویژوآل استودیو میتونین از Omnisharp یا csharp-ls در کنار ویم استفاده کنید که هردوشون خیلی خوب هستن.
طبعا اگه از WinForms و Designer ویژوآل استودیو استفاده دارید کاری نمیشه براش کرد، ولی برای کد زدن کافیه.
بعدها یه راهنمای کامل برای تنظیم ویم برای سیشارپ مینویسم.
🔹لینک پلاگین:
👉🔗 Dotnet-Vim
#vim #dotnet #csharp
#ویم #سی_شارپ
Forwarded from Syntax | سینتکس (Daimon)
6 الگوی برتر معماری نرمافزار
معماری مونولیتیک (Monolithic Architecture)
در معماری مونولیتیک، تمام اجزای یک برنامه در یک کدبیس واحد و یکپارچه ترکیب میشوند. این رویکرد، فرآیند استقرار (Deployment) را ساده کرده و برای برنامههای کوچک مدیریت آن آسانتر است. با این حال، با رشد برنامه، این معماری میتواند سنگین و پیچیده شود، به طوری که مقیاسپذیری و نگهداری آن دشوار میگردد. هر تغییری در بخشی از برنامه ممکن است نیازمند استقرار دوباره کل سیستم باشد.
این معماری برای پروژههای کوچک و تیمهای کوچک مناسب است، اما برای پروژههای بزرگتر، به دلیل وابستگیهای زیاد میان اجزاء، مدیریت تغییرات بسیار دشوار میشود.
الگوی (Controller-Worker Pattern)
این الگو منطق کنترل (Control Logic) را از منطق پردازش (Processing Logic) جدا میکند. کنترلر وظیفه مدیریت درخواستهای ورودی، جریان دادهها و تخصیص وظایف به اجزای کارگر (Worker) را بر عهده دارد. اجزای کارگر وظایف پردازشی واقعی را انجام میدهند. این الگو برای مدیریت وظایف غیرهمزمان (Asynchronous Tasks) مفید است و میتواند مقیاسپذیری را با امکان اجرای همزمان چندین نمونه از اجزای کارگر بهبود بخشد.
مناسب برای سیستمهایی است که بار پردازشی غیرهمزمان دارند، مانند پردازش صفها (Queues) یا مدیریت درخواستهای سنگین.
معماری میکروسرویسها (Microservices Architecture)
معماری میکروسرویسها برنامه را به سرویسهای کوچک و مستقل تقسیم میکند که از طریق APIهای مشخص با یکدیگر ارتباط برقرار میکنند. هر سرویس مسئول یک قابلیت خاص از کسبوکار است و میتواند بهطور مستقل توسعه، استقرار و مقیاسپذیری شود. این معماری انعطافپذیری بیشتری فراهم میکند و امکان استفاده از فناوریهای مختلف برای سرویسهای مختلف را میدهد. اما مدیریت سرویسها و ارتباط بین آنها میتواند پیچیدگیهایی به همراه داشته باشد.
این معماری مناسب سازمانهایی است که نیاز به توسعه سریع و مقیاسپذیری خدمات دارند. اما نیازمند ابزارهای مناسب برای نظارت، هماهنگی و مدیریت ارتباطات میان سرویسها است.
مدل (Model-View-Controller یا MVC)
الگوی MVC یک برنامه را به سه بخش مرتبط تقسیم میکند:
- مدل (Model): وظیفه مدیریت دادهها و منطق کسبوکار را دارد.
- نما (View): دادهها را به کاربر نمایش میدهد.
- کنترلر (Controller): ورودی کاربر را مدیریت کرده و با مدل تعامل دارد.
این جداسازی باعث سازماندهی بهتر کد میشود و مدیریت و مقیاسپذیری برنامه، بهویژه در توسعه وب، را آسانتر میکند.
این الگو در اکثر فریمورکهای وب مانند Django و Ruby on Rails استفاده میشود و برای پروژههایی که نیاز به تعامل زیاد با کاربر دارند، ایدهآل است.
معماری رویداد-محور (Event-Driven Architecture)
در معماری رویداد-محور، اجزا از طریق تولید و مصرف رویدادها با یکدیگر ارتباط برقرار میکنند. هنگامی که یک رویداد رخ میدهد (مانند یک اقدام کاربر یا تغییری در سیستم)، رویداد های خاصی در سیستم ایجاد میشود و دیگر اجزای سیستم نسبت به رویداد ها اکشن مناسبی که نیاز دارند را انجام می دهند. این معماری بسیار جدا از هم (Decoupled) است و مقیاسپذیری و انعطافپذیری بیشتری فراهم میکند، چرا که اجزا میتوانند بهطور مستقل تکامل یابند.
این معماری در سیستمهای توزیعشده بسیار مفید است.
معماری لایهای (Layered Architecture)
در معماری لایهای، برنامه به لایههای مجزا با وظایف مشخص تقسیم میشود. لایههای رایج شامل موارد زیر هستند:
- لایه ارائه (Presentation Layer): وظیفه نمایش داده به کاربر.
- لایه منطق کسبوکار (Business Logic Layer): مدیریت منطق اصلی برنامه.
- لایه دسترسی به داده (Data Access Layer): مدیریت تعامل با پایگاه داده.
هر لایه تنها با لایه مجاور خود ارتباط برقرار میکند که باعث جداسازی وظایف (Separation of Concerns) میشود. این الگو نگهداری را آسان کرده و به تیمها اجازه میدهد بهطور مستقل روی لایههای مختلف کار کنند. با این حال، وجود لایههای متعدد ممکن است باعث کاهش عملکرد به دلیل سربار ناشی از ارتباط میان لایهها شود.
این معماری برای سیستمهای بزرگ و تیمهای توسعه که به تفکیک وظایف نیاز دارند، مناسب است. اما باید بهینهسازی لازم برای جلوگیری از کاهش عملکرد انجام شود.
source
@Syntax_fa
معماری مونولیتیک (Monolithic Architecture)
در معماری مونولیتیک، تمام اجزای یک برنامه در یک کدبیس واحد و یکپارچه ترکیب میشوند. این رویکرد، فرآیند استقرار (Deployment) را ساده کرده و برای برنامههای کوچک مدیریت آن آسانتر است. با این حال، با رشد برنامه، این معماری میتواند سنگین و پیچیده شود، به طوری که مقیاسپذیری و نگهداری آن دشوار میگردد. هر تغییری در بخشی از برنامه ممکن است نیازمند استقرار دوباره کل سیستم باشد.
این معماری برای پروژههای کوچک و تیمهای کوچک مناسب است، اما برای پروژههای بزرگتر، به دلیل وابستگیهای زیاد میان اجزاء، مدیریت تغییرات بسیار دشوار میشود.
الگوی (Controller-Worker Pattern)
این الگو منطق کنترل (Control Logic) را از منطق پردازش (Processing Logic) جدا میکند. کنترلر وظیفه مدیریت درخواستهای ورودی، جریان دادهها و تخصیص وظایف به اجزای کارگر (Worker) را بر عهده دارد. اجزای کارگر وظایف پردازشی واقعی را انجام میدهند. این الگو برای مدیریت وظایف غیرهمزمان (Asynchronous Tasks) مفید است و میتواند مقیاسپذیری را با امکان اجرای همزمان چندین نمونه از اجزای کارگر بهبود بخشد.
مناسب برای سیستمهایی است که بار پردازشی غیرهمزمان دارند، مانند پردازش صفها (Queues) یا مدیریت درخواستهای سنگین.
معماری میکروسرویسها (Microservices Architecture)
معماری میکروسرویسها برنامه را به سرویسهای کوچک و مستقل تقسیم میکند که از طریق APIهای مشخص با یکدیگر ارتباط برقرار میکنند. هر سرویس مسئول یک قابلیت خاص از کسبوکار است و میتواند بهطور مستقل توسعه، استقرار و مقیاسپذیری شود. این معماری انعطافپذیری بیشتری فراهم میکند و امکان استفاده از فناوریهای مختلف برای سرویسهای مختلف را میدهد. اما مدیریت سرویسها و ارتباط بین آنها میتواند پیچیدگیهایی به همراه داشته باشد.
این معماری مناسب سازمانهایی است که نیاز به توسعه سریع و مقیاسپذیری خدمات دارند. اما نیازمند ابزارهای مناسب برای نظارت، هماهنگی و مدیریت ارتباطات میان سرویسها است.
مدل (Model-View-Controller یا MVC)
الگوی MVC یک برنامه را به سه بخش مرتبط تقسیم میکند:
- مدل (Model): وظیفه مدیریت دادهها و منطق کسبوکار را دارد.
- نما (View): دادهها را به کاربر نمایش میدهد.
- کنترلر (Controller): ورودی کاربر را مدیریت کرده و با مدل تعامل دارد.
این جداسازی باعث سازماندهی بهتر کد میشود و مدیریت و مقیاسپذیری برنامه، بهویژه در توسعه وب، را آسانتر میکند.
این الگو در اکثر فریمورکهای وب مانند Django و Ruby on Rails استفاده میشود و برای پروژههایی که نیاز به تعامل زیاد با کاربر دارند، ایدهآل است.
معماری رویداد-محور (Event-Driven Architecture)
در معماری رویداد-محور، اجزا از طریق تولید و مصرف رویدادها با یکدیگر ارتباط برقرار میکنند. هنگامی که یک رویداد رخ میدهد (مانند یک اقدام کاربر یا تغییری در سیستم)، رویداد های خاصی در سیستم ایجاد میشود و دیگر اجزای سیستم نسبت به رویداد ها اکشن مناسبی که نیاز دارند را انجام می دهند. این معماری بسیار جدا از هم (Decoupled) است و مقیاسپذیری و انعطافپذیری بیشتری فراهم میکند، چرا که اجزا میتوانند بهطور مستقل تکامل یابند.
این معماری در سیستمهای توزیعشده بسیار مفید است.
معماری لایهای (Layered Architecture)
در معماری لایهای، برنامه به لایههای مجزا با وظایف مشخص تقسیم میشود. لایههای رایج شامل موارد زیر هستند:
- لایه ارائه (Presentation Layer): وظیفه نمایش داده به کاربر.
- لایه منطق کسبوکار (Business Logic Layer): مدیریت منطق اصلی برنامه.
- لایه دسترسی به داده (Data Access Layer): مدیریت تعامل با پایگاه داده.
هر لایه تنها با لایه مجاور خود ارتباط برقرار میکند که باعث جداسازی وظایف (Separation of Concerns) میشود. این الگو نگهداری را آسان کرده و به تیمها اجازه میدهد بهطور مستقل روی لایههای مختلف کار کنند. با این حال، وجود لایههای متعدد ممکن است باعث کاهش عملکرد به دلیل سربار ناشی از ارتباط میان لایهها شود.
این معماری برای سیستمهای بزرگ و تیمهای توسعه که به تفکیک وظایف نیاز دارند، مناسب است. اما باید بهینهسازی لازم برای جلوگیری از کاهش عملکرد انجام شود.
source
@Syntax_fa
Linkedin
Sina Riyahi on LinkedIn: #csharp #efcore #dotnet #dotnetcore
Top 6 Architectural Patterns
Monolithic Architecture:
In a monolithic architecture, all components of an application are integrated into a single, unified…
Monolithic Architecture:
In a monolithic architecture, all components of an application are integrated into a single, unified…
Forwarded from کدنویس یکروزه (پدرام رحیمی)
لینکهای فراگیری Javascript
علاوه بر اینکه در یک پُست هشتگ های کانال رو معرفی کرده ام، حالا لینکهایی از مطالب مربوط جاوااسکریپت رو هم براتون میذارم که دوره کنید:
- کار با Local storage دیتابیس داخلی
- مشکلات محاسباتی در جاوااسکریپت
- روش ساخت برنامه تست چند جوابی
- چهار فرآیند CRUD در جاوااسکریپت
- آموزش Typescript یا جاوااسکریپت۶
- یک برنامه ی محاسباتی جاوااسکریپت
- جزوه ی مدرن جاوااسکریپت فارسی
- قفل گذاری روی برنامه ی تحت وب
- جزوه ی نصب و آموزش Node.js
- روش ساخت اَپ تک صفحه در Vue.js
- روش ساخت تاس با ۵ خط کدنویسی
علاوه بر اینها روی هشتگ زیر بزنید:
#javascript
علاوه بر اینکه در یک پُست هشتگ های کانال رو معرفی کرده ام، حالا لینکهایی از مطالب مربوط جاوااسکریپت رو هم براتون میذارم که دوره کنید:
- کار با Local storage دیتابیس داخلی
- مشکلات محاسباتی در جاوااسکریپت
- روش ساخت برنامه تست چند جوابی
- چهار فرآیند CRUD در جاوااسکریپت
- آموزش Typescript یا جاوااسکریپت۶
- یک برنامه ی محاسباتی جاوااسکریپت
- جزوه ی مدرن جاوااسکریپت فارسی
- قفل گذاری روی برنامه ی تحت وب
- جزوه ی نصب و آموزش Node.js
- روش ساخت اَپ تک صفحه در Vue.js
- روش ساخت تاس با ۵ خط کدنویسی
علاوه بر اینها روی هشتگ زیر بزنید:
#javascript
Telegram
کدنویس یکروزه
دسترسی به مطالب کانال:
مبتدی #beginner
گرافیک #graphics
بانک #database
کدها #code
محیط #ide
ابزارها #tools
بازی #game
کتاب #book
آندروید…
مبتدی #beginner
گرافیک #graphics
بانک #database
کدها #code
محیط #ide
ابزارها #tools
بازی #game
کتاب #book
آندروید…
Forwarded from Hamed
🚀 ترجمهی فارسی کتاب C# 12 in a Nutshell رو شروع کردم و روی GitHub منتشرش کردم:
🔗https://github.com/hheydarian/csharp-12-in-a-nutshell-persian
این کتاب یکی از کامل ترین منابع برای یادگیری و تسلط بر زبان #CSharp هست.
اگه علاقه مندید یه مرجع فارسی خوب و دقیق برای #CSharp بسازیم، خوشحال میشم همراه بشید.
میتونید فورک بگیرید، مشارکت کنید و به بهتر شدنش کمک کنید 💡
#CSharp #GitHub
#OpenSource #Net
🔗https://github.com/hheydarian/csharp-12-in-a-nutshell-persian
این کتاب یکی از کامل ترین منابع برای یادگیری و تسلط بر زبان #CSharp هست.
اگه علاقه مندید یه مرجع فارسی خوب و دقیق برای #CSharp بسازیم، خوشحال میشم همراه بشید.
میتونید فورک بگیرید، مشارکت کنید و به بهتر شدنش کمک کنید 💡
#CSharp #GitHub
#OpenSource #Net