thisisnabi.dev [Farsi] – Telegram
thisisnabi.dev [Farsi]
2.16K subscribers
458 photos
38 videos
24 files
160 links
اینجا مطالبی از تجربیات خودم رو در زمینه طراحی سیستم با دات نت باهاتون به اشتراک میذارم.
Download Telegram
این بزرگواران که خفن ترین برنامه های دنیا رو دولوپ کردن و یا حداقل استارتش رو زدن، من تا حالا ندیدم که بشینن و حرف های قلمبه سلمبه از طراحی نرم افزار بزنن.

اگر شما دیدید، ممنون میشم برای من دایرکت کنید.
وقتی لینک verify می فرستید از GUID استفاده نکنید. چراش رو فردا توی یه ویدیو فردا توضیح می دم براتون.
این مثال خوبی از hexagonal architecture هستش.
در اینجا یک ساختار ماژولار رو روی monolithic می بینیم.



@thisisnabi_dev
خیلی مسخرس که توی مصاحبه ها از یک توسعه دهنده مزایا و معایب مایکروسرویس ها رو می پرسن،

این مسائل مربوط به آدم هایی هست که در سطح سازمان تعیین کننده و تصمیم گیرنده هستن، نه یه دولوپر ساده که فردا روزی که اومد داخل سازمان تهش روی یکی ۲ تا سرویس قراره کانتریبوت داشته باشه.
تهش دولوپر باید پترن های موجود در این معماری و بدونه 😊

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

Microservices Patterns
Building Microservices

#چی_خوندیم_و_چی_شد
با مفاهیمی که در سی شارپ مطرح هستن آشنا بشید :)

اینکه شما مرز بین زبان، فریم ورک، پترن و یا پرینسیپل، معماری و یا رویکر توسعه نرم افزار رو بتونید تشخیص بدید یک هنر هست.

#سین_مثل_سم
کد باید document-less باشه :)
زبان های سطح بالا به وجود اومدن تا ما بتونیم خیلی راحت کد رو بخونیم + با استفاده از Unit Test ها و انواع دیگه تست ها می تونیم به ماهیت نیازمندی پی ببریم.
نظر شخصیم اینه که روی کد هیچ گونه مستندی نداشته باشیم اما فرایند های سیستم دیاگرام بیس باشن.

اگر تونستید فرایند ها رو diagram as code بنویسید که شما از بنده های صالح هستید.
داکیومنت ها خوبن، ولی زمان تغییر کد بیس معمولا آپدیت نمیشن و بعد از یه مدت یه جزیره متفاوت هستن برای خودشون.

@thisisnabi_dev
حضرت می فرماید:
نمی دونم در رابطه به 4+1 View Model Of Software Architecture چیزی خوندید یا نه، اما این مقاله اصلیش خیلی خفنه.

https://www.cs.ubc.ca/~gregor/teaching/papers/4+1view-architecture.pdf

#چی_خوندیم_و_چی_شد

@thisisnabi_dev
میگن با پولی که مردم بلوکه کردن برای خرید خودرو میشه کارخونه بنز رو یکجا خرید 😂😂

خلاصه که گفتم بهونه ای بشه تا یادی کنیم از اله زیبایی 😍
ایناس که می مونه، سی چه شارپی آخه :))
این تعداد از رفیق رو کسی نداره 😅
یک عاشقانه کلاسیک 😷

@thisisnabi_dev
2
آیا Code Coverage 100% شما رو به کمال می رسونه؟
خیر :)

بیشتر توضیح میدی؟
خیر :))

مریضی؟
آره :)))

@thisisnabi_dev
👍1
تست واقعا جذاب اما میتونه پیچیده و گمراه کننده باشه.
اگر تغییرات reversible باشه کمتر اینا پیش میاد.
ولی معمولا دیپلوی های ما اینطوری نیست.

یکی از بست پراکتیس ها اینه که تغییرات رو یکی یکی دیپلویی بدیم تا اگر مشکلی بود به سادگی یک کلیک کردن رول بک کنیم فرایند رو.

اینطوری هاست که توی آمازون میانگین هر 10 ثانیه یه دیپلوی دارن :)
عموما می تونیم بدون هیچ ساختاری به تمام functional requirement های داخل یک نرم افزار برسیم.

برای رسیدن به مواردی چون maintainability, changability , testability, agility, avialibility و غیره س که ما میایم و معماری و ساختار ها رو به نرم افزار تحمیل می کنیم.

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

@thisisnabi_dev
توپ نیست که هرچقدر تکه هاش بیشتر باشه خوب تره!
باندری سرویس ها رو پیدا کردن یکی از سخت ترین کارهای داخل سیستم های سرویس گراست.
مابقیش همه نمونه کد آماده داره :)

@thisisnabi_dev
امیدوارم که مفید بوده باشه

1️⃣ logging
https://lnkd.in/dhbZNitt

2️⃣ API Design Rules
https://lnkd.in/d4w-ziXe

3️⃣ Model Binding
https://lnkd.in/d-97nASh

4️⃣ Tactical side in DDD
https://lnkd.in/dnei-Vwn

5️⃣ Software Resilience
https://lnkd.in/dEkFt8_R

6️⃣ HTTP Protocol
https://lnkd.in/dVMhqZ-C

7️⃣ Action Filters
https://lnkd.in/dAVeY7Cg

8️⃣ Object Pooling
https://lnkd.in/duZaSHtw

9️⃣ MondoDb in .NET
https://lnkd.in/dHvUttYM

@thisisnabi_dev
thisisnabi.dev [Farsi]
توپ نیست که هرچقدر تکه هاش بیشتر باشه خوب تره! باندری سرویس ها رو پیدا کردن یکی از سخت ترین کارهای داخل سیستم های سرویس گراست. مابقیش همه نمونه کد آماده داره :) @thisisnabi_dev
اگر دوست داشتید این پست رو ببینید و بعد ادامه این متن رو بخونید.

https://www.linkedin.com/posts/aminrousta_aepaeuaepahyaesabraeqaepaecahyaet-activity-7234976012361437184-wjdO?utm_source=share&utm_medium=member_android

اکثر دوستان دارن به این فکر میکنن که اجایل بودن به معنای سریع بودن نیست.

من روانی به این فکر میکنم که کاپلینگ با ۱۴ سرویس؟
چه خبره!
بعضی موقع ها نیاز نیست اینقدر سرویس ها شکسته بشن، هزینه Integration رو همیشه ما میس میکنیم.
45 ساعت حرف زدیم :/

البته هنوز 110 ساعتش مونده 😂