TondTech – Telegram
TondTech
2.65K subscribers
1.48K photos
169 videos
133 files
1.16K links
کالای ما دانش است


تبلیغات نداریم
Download Telegram
مبلغ کل اعتبار اعطاء شده در طرح "اول آورد ۲" به دو میلیارد و ششصد میلیون تومان رسید.

تعداد ۲۶ کسب و کار یا پروژه متن باز از این اعتبار بهره‌مند شدند.

از تمام دوستان و همراهانی که درخواست عضویت ارسال کردند سپاس گزاریم.
AvalAI
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1🔥1
Forwarded from Learning With M (Masoud DaneshPour)
با انواع Test Double ها آشنایی دارید ؟

در فرآیند توسعه نرم‌افزار و تست نرم‌افزار، وقتی می‌خواهیم یک بخش از سیستم را ایزوله تست کنیم (به‌عنوان مثال یک واحد کد را بدون درگیر شدن با وابستگی‌های خارجی آن تست کنیم)، از مفهومی به نام "Test Double" استفاده می‌کنیم. Test Double یک موجودیت جایگزین برای شیء یا ماژول واقعی هست تا وابستگی‌های خارجی را در زمان تست کنترل‌پذیر و ساده‌تر بشن.

مارتین فاولر بزرگ انواع Test Double را به صورت کلی به پنج دسته تقسیم کرده است که هرکدام هدف و کاربرد خاصی دارند:

Dummy: فقط برای پر کردن جای خالی پارامترها و عدم استفاده عَملی در تست
Stub: برگرداندن پاسخ‌های ثابت و ساده برای حذف وابستگی‌های خارجی
Fake: پیاده‌سازی ساده‌شده و درون حافظه‌ای یک سرویس خارجی واقعی
Spy: مانند Stub اما با قابلیت نظارت و ثبت تعاملات برای بررسی پس از اجرا
Mock: تعریف انتظارات قبل از اجرا و کنترل دقیق تعاملات برای تست رفتار

@learning_with_m
Forwarded from refhub
به لطف Avalai.ir عزیز، برای شروع، کلیه کتاب های برجسته ی ما که از لینک زیر قابل مشاهده هست، دارای خلاصه و معرفی فارسی صوتی بر پایه مدل gpt-4o-audio-preview شدند، از این پس، اگر حوصله مطالعه جزییات و توضیحات کتاب ها را نداشتید، می توانید سری به بخش صوتی و معرفی فارسی کتاب هم بزنید
برای ما به عنوان کتابفروشی هوشمند، استفاده از تمام پتانسیل های مناسب و مرتبط AI یک ارزش نهادینه است که امیدواریم به کار شما کتابخوان های عزیز بیاید
https://refhub.ir/fa/featured_refrences/

با عشق
تیم توسعه Refhub.ir
🔥7👍2👏1🤩1
Forwarded from Azibom Channel (MohammadReza Shabani)
سلام و درود دوستان امیدوارم خوب باشید

برای روز ۱۳ دی من یه تاک دارم داخل Digikala Next و قراره درباره soft skills صحبت کنم

- Overwork
- Micromanage
- Career development
- ...

ارائه خوبی میشه از نظر خودم:) صحبت کردم و ۷ ۸ نفر میتونن به عنوان مهمان از طرف من حضور داشته باشن

اگر دوست داشتید بهم پیام بدین تا هماهنگ کنیم

لطفا پیامتون در این قالب باشه

نام و نام خانوادگی:
سابقه کاریتون:
آخرین مشکل سافت اسکیلی ای باهاش دست و پنجه نرم کردید:

اگرم share کنید که برسه به دست کسانی که باید خیلی ممنون میشم

مراقبت کنید


@azibom
@azibomChannel

Azibom.com
8
Forwarded from tech-afternoon (Amin Mesbahi)
📌 ربع‌بندی بدهی فنی (Technical Debt Quadrant)

دیروز یه توییتی زدم که برای توضیح بهتر منظورم (که هیچ ربطی هم به نرم‌افزار نداشت)، از توصیف بدهی فنی ناآگاهانه‌ی بی‌پروا استفاده کردم، این شد که گفتم شاید بد نباشه کمی عمیق‌تر در مورد بدهی فنی گپ بزنیم...

مارتین فولر سال‌ها پیش یک ربع‌بندی (Quadrant) برای طبقه‌بندی انواع بدهی ‌های فنی معرفی کرد که تا امروز هم قابل تعمیم و استفاده است، برای اینکه دید بهتری نسبت به بدهی فنی‌هامون داشته باشیم. برای «احمقانه»‌ها توجیه نتراشیم... بابت عاقلانه‌ترها هم خودمون رو بیش از حد سرزنش نکنیم.

1. بی‌پروا و غیرآگاهانه (Reckless & Inadvertent)
بدون آگاهی و بی‌برنامه ایجاد شده.

2. بی‌پروا و آگاهانه (Reckless & Deliberate)
تیم آگاهانه و به صورت بی‌پروا برای سرعت بخشیدن به کار ایجاد کرده.

3. محتاطانه و غیرآگاهانه (Prudent & Inadvertent)
به صورت تصادفی اما با رعایت اصول اولیه ایجاد شده.

4. محتاطانه و آگاهانه (Prudent & Deliberate)
آگاهانه و با برنامه‌ریزی برای دستیابی به اهداف کوتاه‌مدت ایجاد شده.

ری‌اکشن 🤓 برای اعلام تمایل برای توضیح بیشتر و مثال و...
🏆3👍1
tech-afternoon
📌 ربع‌بندی بدهی فنی (Technical Debt Quadrant) دیروز یه توییتی زدم که برای توضیح بهتر منظورم (که هیچ ربطی هم به نرم‌افزار نداشت)، از توصیف بدهی فنی ناآگاهانه‌ی بی‌پروا استفاده کردم، این شد که گفتم شاید بد نباشه کمی عمیق‌تر در مورد بدهی فنی گپ بزنیم... مارتین…
یک از خوشبختی های این روزهای من اینه که مسعود دانشپور عزیز و امین مصباحی عزیزم کانال های تلگرامشون رو فعال کردن، این آرزوی پارسال من بود که میکروفن تک در اکوسیستم ایران دست آدم های صالح و با سواد باشه و خیلی خوشحالم که میتونیم بیشتر ازشون بخونیم و یاد بگیریم
🔥7
Forwarded from refhub
رفقا یه کتابخوان اندرویدی تر و تمیز داشته باشید برای کتاب های ما حاضرید براش ، حق اشتراک ماهیانه بدین؟
Anonymous Poll
54%
بلی
46%
خیر
Forwarded from refhub
اگه کتابخوان به کارتون میاد، حاضرید برای اشتراک ماهیانه چقدر پرداخت کنید ؟
Anonymous Poll
74%
50 هزار تومان
26%
70 هزار تومان
Forwarded from Learning With M (Masoud DaneshPour)
🚀 من همیشه اصول پایه ای رو دوست دارم، برای همین خیلی وقت ها برای خودم مرورشون می کنم.
امروز داشتم OOP رو مطالعه می کردم، برای همین گفتم با شما هم Share کنم :

در برنامه‌نویسی شیءگرا (Object-Oriented Programming – OOP)، مفاهیمی معرفی می‌شند که هدف‌شان ساده‌سازی طراحی، توسعه و نگهداشت کد هست که عبارت اند از :

Encapsulation: پنهان کردن جزئیات و ارائه واسط عمومی
Abstraction: ساده‌سازی و انتزاع‌سازی مفاهیم بدون نمایش جزئیات غیرضروری
Inheritance: استفاده‌ی مجدد از کد و ایجاد سلسله‌مراتب بین کلاس‌ها
Polymorphism: رفتارهای مختلف برای یک متد واحد بسته به کلاس یا نوع شیء

@learning_with_m
که می دونیم که Polymorphism دو نوع داره که شامل :

Overriding: اگر کلاس فرزند متدی را که در کلاس والد تعریف شده بازتعریف کند، بسته به نوع شیء در زمان اجرا متد مناسب صدا زده می‌شود. (Runtime polymorphism)
Overloading: در یک کلاس چند متد با نام یکسان ولی پارامترهای متفاوت تعریف می‌کنیم، و بسته به تعداد و نوع پارامترها، متد مناسب در زمان کامپایل انتخاب می‌شود. (Compile-time polymorphism)

حالا شما به من بگید، در S.O.L.I.D، حرف L که برای Liskov Substitution Principle (LSP) هست، کدوم یکی از مفاهیم بالا رو هدف قرار داده ؟ اصلا چه ربطی بین LSP و مفاهیم بالا هست ؟
4
TondTech
<unknown> – Brick Man, Massoud Beygi
Brav.ai هم داره خوب جلو میره تو این مسیر. یه سمپل دادم بهش بسازه از شعرای قدیمی، ببینید چه کرد..
‏آقا برگام... Brev داره میزنه جلو از suno 😎
ببینید شعرمو چیکار کرد لامصبببب

https://brev.ai/music/1864004-jorm
🎯 Senior .Net Developer

💵 حقوق سالانه: قابل مذاکره

📍محل کار: تهران - حضوری

⚙️ صنعت: تکنولوژی

🌟 مهارت‌های کلیدی:
• مسلط بر توسعه نرم‌افزار با .Net
• تجربه در زمینه ساختار نرم‌افزار
• مهارت حل مسئله

📩 برای ارسال رزومه می‌توانید از طریق این لینک و یا آیدی تلگرام @HRBamboosHeadHunter اقدام نمایید.
-------------
برای اطلاع از آخرین موقعیت‌های شغلی ما را در لینکدین و واتساپ دنبال کنید.

#Senior_DotNET_Developer #DotNET #موقعیت_شغلی #استخدام
🎯 Senior .NET Engineer

💵 حقوق سالانه: ۰.۸ تا ۱ میلیارد تومان


📍محل کار: تهران - نیمه حضوری

⚙️ صنعت: فین‌تک

🌟 مهارت‌های کلیدی:
• مسلط بر توسعه نرم‌افزار با .Net
• مهارت رهبری و مدیریت تیم
• مهارت حل مسئله

📩 برای ارسال رزومه می‌توانید از طریق این لینک و یا آیدی تلگرام @HRBamboosHeadHunter اقدام نمایید.
-------------
برای اطلاع از آخرین موقعیت‌های شغلی ما را در لینکدین و واتساپ دنبال کنید.

#Senior_DotNet_Engineer #DotNet #موقعیت_شغلی #استخدام
Forwarded from Learning With M (Masoud DaneshPour)
از OOP بگی، از S.O.L.I.D بگی و از Coupling & Cohesion نگی، اشتباه کردی.
هرچه قدر استفاده از S.O.L.I.D توی مصاحبه ها زیاده و فهمش کمتر، Coupling & Cohesion مفهومیه که نه تنها بهش پرداخته نمیشه، بلکه فهمش هم مهمتره به نظرم.

حالا این دو تا بچه چی هستند ؟
Coupling
این مهفوم بسیار جذاب حرفش در مورد اتصال های بی مورد و یا نادرسته، وقتی این مفهوم رو نشناسی کلا نمی بینیش، ولی وقتی باهاش آشنا میشی همه جا میاد جلو چشمت(یه مدت مدیدی من به کاپلینگ می گفتم کوپلینگ!)
حالا حرفش چیه؟ میگه آقا انقدر همه چیز رو به هم اتصال نده، اتصال دادن خوبه ها ولی تهش بدبختیه، هرچی بیشتر وصل باشی مثل ریشه تو خاک یک درخته، بعدا نمی تونی درش بیاری، نکنه نشه، انرژی زیادی می بره.
Coupling انواع مختلفی داره که شامل موارد زیر هست، فقط حواسمون باشه که این موارد از بدتری به بهترین هستند :

Content Coupling: ماژولی مستقیماً در کد داخلی ماژول دیگر تغییر ایجاد می‌کند.
Common Coupling: ماژول‌ها متغیرهای سراسری مشترک دارند.
External Coupling: ماژول‌ها به منبع خارجی یکسانی وابسته‌اند (مثل فایل یا دستگاه مشترک).
Control Coupling: یک ماژول رفتار ماژول دیگر را از طریق پارامترهای کنترلی تعیین می‌کند.
Stamp Coupling: ماژول‌ها ساختار داده پیچیده‌ای را به اشتراک می‌گذارند، اما همیشه به کل آن نیاز ندارند.
Data Coupling: ماژول‌ها تنها داده‌های مورد نیاز را به شکل پارامترهای ساده تبادل می‌کنند (بهترین حالت).



Coupling یه مفهوم خیلی جالبه که بعدا بشتر در مورد انواعش صحبت می کنم و مواردی مثل Afferent و Efferent رو باز می کنم. قول می دم 😉

خب بریم سر وقت بچه بعدی، Cohesion.
حالا این مفهوم چی میگیه؟ میگه دوست من حالا که LSP رو رعایت کردی، بهتر نیست چیزایی که به هم ربط دارن رو کنار هم بزاری ؟ چرا اینو میگه ؟ چون SRP رو بهتر بتونی رعایت کنی. میبینید چطور مفاهیم بهم می تونن پیوند بخورن؟ جالب نیست؟ همینه من مفاهیم پایه ای رو دوست دارم، همشون هوای همیدگه رو دارن.

Coincidental Cohesion: وظایف نامرتبط به‌صورت تصادفی در یک ماژول جمع شده‌اند.
Logical Cohesion: وظایف مشابه از لحاظ نوع (نه هدف) در یک ماژول قرار دارند و با کلیدهای کنترلی انتخاب می‌شوند.
Temporal Cohesion: وظایف مرتبط با یک نقطه زمانی مشترک (مثلاً راه‌اندازی برنامه) در یک ماژول هستند.
Procedural Cohesion: وظایف در یک ترتیب مشخص برای رسیدن به یک هدف کلی اجرا می‌شوند، ولی داده مشترک ندارند.
Communicational Cohesion: وظایف حول یک داده یا داده‌های مرتبط مشترک عمل می‌کنند.
Sequential Cohesion: خروجی یک وظیفه ورودی وظیفه بعدی است، تشکیل زنجیره‌ای معنادار.
Functional Cohesion: تمام وظایف ماژول برای انجام یک کار واحد و مشخص به صورت متمرکز طراحی شده‌اند (بهترین حالت)


حالا شما به من بگید، Functional Cohesion مثل کدوم مفهومی می مونه که تا الان یاد گرفتیم ؟
4👍1
Forwarded from tech-afternoon (Amin Mesbahi)
📽 توضیح تکمیلی بر تحلیل ساختارمند بدهی فنی (کوادرانت فاولر)
پیش از هر چیز از دوستانی که با ری‌اکشن 🤓 برای بررسی عمیق‌تر موضوع بدهی فنی، ابراز علاقه کرده بودند متشکرم.

سعی کردم تا توی این ویدیو ۲۵ دقیقه‌ای مطلبی که چند روز پیش نوشته بودم رو عمیق‌تر توضیح بدم. امیدوارم که مفید واقع بشه.
این ویدیو در مورد بررسی ساختارمند بدهی‌های فنی با رویکرد ربع‌بندی مارتین فاولر است.
دونستن اینکه بدهی فنی ما چه خصوصیاتی داره، کمک می‌کنه تا جلو بازتولید بدهی‌های مشابه رو در صورت لزوم بگیریم یا راهکار بهتری برای اصلاحشون اتخاذ کنیم.

مقدمه: (0:00)
تعریف بدهی فنی: (0:37)
خصوصیات رایج بدهی‌های فنی: (3:15)
انواع بدهی فنی: (5:40)
لزوم بررسی ساختارمند بدهی فنی: (7:28)
کوادرانت (ربع‌بندی) مارتین فاولر: (12:30)
نوع اول-آگاهانه و منطقی: (13:30)
نوع دوم-ناخواسته و محتاطانه: (15:10)
نوع سوم-آگاهانه و غیرمسئولانه: (16:41)
نوع چهارم-ناآگاهانه و بی‌پروا: (17:37)
سایر طبقه‌بندی‌ها: (18:51)
جمع‌بندی: (22:35)

خیلی خوشحال می‌شم تا بهانه‌ای باشه برای هم‌فکری و گپ و گفت بیشتر 🌱💬😊
👍8
#رویداد_حضوری

⭐️ارتباط مؤثر در فرآیند توسعه محصول

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

مخاطب این رویداد:
مدیران محصول، طراحان محصول و توسعه‌دهندگان نرم‌افزار

ارائه‌دهندگان:
آرزو کریم‌پور - اجایل کوچ علی‌بابا
مسعود دانش‌پور - چپتر لید علی‌بابا
علیرضا پوریوسف - بنیانگذار رترو

زمان:
پنجشنبه ۲۹ آذرماه - ساعت ۱۰ الی ۱۳

مکان:
کارخانه نوآوری آزادی، دفتر روز اول علی‌بابا

ثبت نام از طریق لینک زیر:
retro.college/event
(ظرفیت محدود است)

درآمد حاصل از فروش بلیط این رویداد به خیریه رامونا اهدا خواهد شد.

(تفاوت بلیط اول و دوم فقط در عدد اهدایی شما برای خیریه خواهد بود)

در صورتی که سوالی داشتید میتونید از اکانت ادمین بپرسید:
@RetroAdmin

به امید دیدارتون در این رویداد

@RetroProduct
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
به نظرم https://www.meilisearch.com جزو مظلوم ترین، محجور ترین و بهترین سرویس هاست.
سرچ Refhub.ir رو روش بستیم و عشق میکنیم با نتیجه ش
🔥7👍1
. این نقطه رو میگذارم اینجا، یه روز برمیگردم، بهتون میگم جریانش چی بود. فقط بدونید خوبس 😁
💯91
Forwarded from tech-afternoon (Amin Mesbahi)
🌟 ساده نگه داشتن سیستم‌ها، ۶ درس از Werner Vogels

حرف‌های زیادی میشه درباره AWS زد، اما واقعیت اینه که این غول کلود، سیستم‌ها و سرویس‌هاش رو طی دو دهه با موفقیت scale کرده و همچنان کاربری راحتش رو حفظ کرده.

ورنر فوگلس، CTO آمازون، تو کنفرانس AWS re:Invent درس‌های جذابی از تجربه‌اش تو نگهداری سیستم‌های پیچیده مطرح کرد.

💫 نکته کلیدی؟ پیچیدگی همیشه توی طراحی سیستم‌ها کمین میکنه، پس مهندس باید هوشیار باشه.

💫 هدف این نیست که پیچیدگی رو کلا حذف کنیم، بلکه باید اون رو مدیریت کنیم. لری تسلر میگه: "پیچیدگی رو نمیشه حذف کرد، فقط میشه جابجاش کرد".

یه مثال جالب: طراحی دوچرخه!

یک چرخه: خیلی انعطاف‌پذیره، اما سوار شدنش سخته
سه چرخه: راحته، ولی جابجا کردنش سخته
دوچرخه: تعادل ایده‌آل بین راحتی و انعطاف‌پذیری

۶ توصیه Vogels برای مدیریت پیچیدگی:

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

۲. پیچیدگی رو خرد کنید
تغییرات کوچک رو نادیده نگیرید
هر سرویس باید اونقدر کوچک باشه که تو ذهن یه مهندس جا بشه

۳. معماری رو با نیازهای کسب‌وکار هماهنگ کنید
اجزای هوشمند با رابط‌های ریزدانه بسازید
با واحدهای کسب‌وکار همکاری کنید

۴. کار رو به سلول‌ها تقسیم کنید
معماری سلولی پیچیدگی رو مدیریت میکنه
مشکلات رو محدود میکنه بدون تاثیر روی کل سیستم

۵. سیستم‌های پیش‌بینی‌پذیر طراحی کنید
عدم قطعیت رو کاهش بدید
از معماری‌های با پالس ثابت استفاده کنید

۶. همه چی رو اتوماتیک کنید
اتوماسیون استاندارد باشه
فقط جاهایی که نیاز به قضاوت انسانی هست، دخالت انسان لازمه

💫 خلاصه کلام: "سادگی نیاز به انضباط داره" - Werner Vogels

در موردش صحبت کنیم؟ نظر شما چیه؟
😍53
Forwarded from Ali Asghar arjmand | علی اصغر ارجمند (Ali Asghar Arjmand)
دیجیکالا، علی بابا و دیوار چطوری به کارمنداشون سهام میدن؟
🚀🚀🚀
چند روز پیش طی صحبتی که با علی جوانمردی عزیزکوفاندر زودکس داشتم، گپی در این مورد زدیم که استارتاپ ها چه برنامه هایی برای نگه‌داشت کارمند های خودشون دارن؟

🔻 چیکار میکنن تا کارمندای کلیدی خودشون فکر رفتن نکنن یا سازمان های دیگ نتونن جذبشون کنن؟
هر کدوم از این فعالیت ها چه ریسک هایی داره؟

نکات جالبی رو در مورد چند استارتاپ ایرانی مثل دیوار، علی بابا و دیجیکالا فهمیدم که چطور کارمندای خودشون رو ترغیب میکنن و نرخ خروج رو کم می کنن!

همین شد که حس کردم برای خیلی ها دغدغه مهمیه و یک سری پرس و جو و تحقیق در مورد ESOP انجام دادم.
📈 Employee Stock ownership Plans

🔗 پست جدید لینکدینم در مورد سهام دادن استارتاپ هارو از اینجا میتونید ببینید!

🔻 کتابچه ای برای مطالعه بیشتر در این مورد رو تا چند ساعت دیگه براتون میگذارم.
🤣21