Forwarded from Mishka Academy | میشکا آکادمی (ʜᴜꜱꜱᴇɪɴ ʙᴇʏɢɪ)
وقتی فوتبال تبدیل میشه به دو تا خط و یه نقطه!
دیروز پرسیدم «ابسترکشن» (Abstraction) تو دنیای اطرافمون چیه. جوابهای جالبی دادید، اما بذارید یه تعریف خیلی ساده و خودمونی ازش داشته باشیم:
حالا بیاید یه سفر بریم به گذشته. بازیهای آتاری قدیمی یا همون میکرو رو یادتونه؟ 🕹 یه بازی فوتبال داشت که کل دنیای بازی خلاصه میشد به دو تا خط سفید و یه نقطه مربعی!
دقت کردید چه اتفاق عجیبی اونجا میفتاد؟ فوتبالِ واقعی پر از پیچیدگیه: ۲۲ تا بازیکن، داور، قوانین آفساید، لباس تیمها و هزار تا جزئیات دیگه. اما توی اون بازی، طراح اومده بود تمام این لایهها رو کنده بود و ریخته بود دور. چی موند؟
یک توپ (نقطه)
دو تا بازیکن (خط)
و هدف (رد کردن توپ از خط حریف)
نکته اینجاست: با اینکه ۹۹٪ جزئیات حذف شده بود، اما «معنای هسته» فوتبال از بین نرفته بود. ما پای اون بازی همون استرس، همون حس رقابت و همون لذت گل زدن رو تجربه میکردیم که توی زمین واقعی حس میشه.
این یعنی اوج هنر ابسترکشن؛ اینکه بدونی چی رو حذف کنی که روح ماجرا صدمه نبینه. ✌️
دیروز پرسیدم «ابسترکشن» (Abstraction) تو دنیای اطرافمون چیه. جوابهای جالبی دادید، اما بذارید یه تعریف خیلی ساده و خودمونی ازش داشته باشیم:
ابسترکشن یعنی حذف تمام جزئیات غیرضروری، تا جایی که فقط و فقط «اصلِ مطلب» باقی بمونه.
حالا بیاید یه سفر بریم به گذشته. بازیهای آتاری قدیمی یا همون میکرو رو یادتونه؟ 🕹 یه بازی فوتبال داشت که کل دنیای بازی خلاصه میشد به دو تا خط سفید و یه نقطه مربعی!
دقت کردید چه اتفاق عجیبی اونجا میفتاد؟ فوتبالِ واقعی پر از پیچیدگیه: ۲۲ تا بازیکن، داور، قوانین آفساید، لباس تیمها و هزار تا جزئیات دیگه. اما توی اون بازی، طراح اومده بود تمام این لایهها رو کنده بود و ریخته بود دور. چی موند؟
یک توپ (نقطه)
دو تا بازیکن (خط)
و هدف (رد کردن توپ از خط حریف)
نکته اینجاست: با اینکه ۹۹٪ جزئیات حذف شده بود، اما «معنای هسته» فوتبال از بین نرفته بود. ما پای اون بازی همون استرس، همون حس رقابت و همون لذت گل زدن رو تجربه میکردیم که توی زمین واقعی حس میشه.
این یعنی اوج هنر ابسترکشن؛ اینکه بدونی چی رو حذف کنی که روح ماجرا صدمه نبینه. ✌️
👍3🔥1😁1
Forwarded from Python Hints
نحوه تعریف
اگر توی یک پروژه حرفهای مثل کد بالا
همیشه گفتم بازم میگم :
اگر میخوای از یک دولوپر انتقام بگیری یا بیچارهاش کنی فقط ی
مشکل کد چیه :
همهی متا دیتا مربوط به تابعی که
ولی برای
دیباگ کردن همچین کدی آدم رو دیوونه میکنه خروجی رو ببینید
راه حل : پست بعدی
@PyHints
decorator میتونه نشون بده دولوپر پروژه junior هست یا نه اگر توی یک پروژه حرفهای مثل کد بالا
decorator تعریف میکنید و بیش از ۳-۴ بار ازش استفاده میشه شما سیگنال junior developer بودن میدی به کسی که کد رو میخونه.همیشه گفتم بازم میگم :
اگر میخوای از یک دولوپر انتقام بگیری یا بیچارهاش کنی فقط ی
decorator اینطوری بنویس و توی کل پروژه استفاده کن مشکل کد چیه :
همهی متا دیتا مربوط به تابعی که
decorate شده مثل func1, func2 رو پاک میکنه و اطلاعات decorator رو جاش مینوسته توی حالت معمول این اشتباه نیست و منطق درستی هست ولی برای
decorator خیلی اشتباه داری میزنی.دیباگ کردن همچین کدی آدم رو دیوونه میکنه خروجی رو ببینید
name, docstring تابع به wrapper تغییر کرده راه حل : پست بعدی
@PyHints
Forwarded from Python Hints
Python Hints
نحوه تعریف decorator میتونه نشون بده دولوپر پروژه junior هست یا نه اگر توی یک پروژه حرفهای مثل کد بالا decorator تعریف میکنید و بیش از ۳-۴ بار ازش استفاده میشه شما سیگنال junior developer بودن میدی به کسی که کد رو میخونه. همیشه گفتم بازم میگم : اگر…
راه حل :
خروجی رو اگر دقت کنید docstrign, name تابع به درستی نشون داده شده و debug , .... برای دولوپر بعدی قطعا به مراتب راحت تر خواهد بود.
این ۲ خط تغییر (خط ۱ و ۵) خیلی زندگیها نجات داده و آدمای بزرگی بعد از دیدن این ۲ خط توی کد امید به زندگیشون بالا رفته و دست از خودکشی کشیدن
اگر
@PyHints
functools مقدس؛ این آخرین پست درباره functools هست همه موارد مهم این ماژول صحبت شدfrom functools import wraps
به لطف دکوریتور wraps به پایتون میگیم که meta data مربوط به تابع اصلی رو نگه داره و اطلاعات تابع wrapper رو روی اون بازنویسی نکنهخروجی رو اگر دقت کنید docstrign, name تابع به درستی نشون داده شده و debug , .... برای دولوپر بعدی قطعا به مراتب راحت تر خواهد بود.
این ۲ خط تغییر (خط ۱ و ۵) خیلی زندگیها نجات داده و آدمای بزرگی بعد از دیدن این ۲ خط توی کد امید به زندگیشون بالا رفته و دست از خودکشی کشیدن
اگر
decorator نوشتی تورو خدا این ۲ خط رو اضافه کن (شاید ۱ زندگی رو نجات دادی) @PyHints
❤9👍2
redis_1.pdf
225.1 KB
چقدر با دیتابیسی مثل ردیس (Redis) آشنا هستی؟
ممکنه هر روز اسم Cache بشنوی! یا توی یک پست اسم Redis ببینی؟ اما واقعا دلیل محبوبیت ردیس چیه؟
خیلی از شرکت ها و توسعه دهنده ها دیدم که از ردیس فقط برای ذخیره یک string با کلید خیلی ساده استفاده میکنند. اما خبر ندارن که ردیس چه امکانات جالبی در اختیارشون قرار میده.
Mahdi Delzendeh ✍🏻
ممکنه هر روز اسم Cache بشنوی! یا توی یک پست اسم Redis ببینی؟ اما واقعا دلیل محبوبیت ردیس چیه؟
خیلی از شرکت ها و توسعه دهنده ها دیدم که از ردیس فقط برای ذخیره یک string با کلید خیلی ساده استفاده میکنند. اما خبر ندارن که ردیس چه امکانات جالبی در اختیارشون قرار میده.
Mahdi Delzendeh ✍🏻
✍3❤1👍1
جنگولرن
redis_1.pdf
redis_2.pdf
415.1 KB
(بخش دوم Redis): معرفی Data Typeها و کاربردهای هر کدوم
توی پست قبلی با ردیس به صورت کلی آشنا شدیم. حالا وقتشه که با انواع Data Typeهاش آشنا بشیم و کاربرد هر کدوم یاد بگیریم.
فرقی که این پست با پست های قبلی داره، این هست که برای هر بخش یک سری تمرین هم در نظر گرفتم. اگه تمرین های این سری انجام دادی و نیاز به سوال یا راهنمایی داشتی بهم پیام بده.
Mahdi Delzendeh ✍🏻
توی پست قبلی با ردیس به صورت کلی آشنا شدیم. حالا وقتشه که با انواع Data Typeهاش آشنا بشیم و کاربرد هر کدوم یاد بگیریم.
فرقی که این پست با پست های قبلی داره، این هست که برای هر بخش یک سری تمرین هم در نظر گرفتم. اگه تمرین های این سری انجام دادی و نیاز به سوال یا راهنمایی داشتی بهم پیام بده.
Mahdi Delzendeh ✍🏻
❤5👍2
redis_3.pdf
275.2 KB
(بخش سوم Redis): معرفی Set و List و کاربردهای هر کدوم
به نظرتون میشه از ردیس برای طراحی یک مسابقه رای گیری تلویزیونی بین دو گروه Aو B استفاده کرد؟
یا از ردیس استفاده کنیم تا توی یک قرعه کشی به صورت رندوم یک سری برنده مشخص کنیم؟
Mahdi Delzendeh ✍🏻
به نظرتون میشه از ردیس برای طراحی یک مسابقه رای گیری تلویزیونی بین دو گروه Aو B استفاده کرد؟
یا از ردیس استفاده کنیم تا توی یک قرعه کشی به صورت رندوم یک سری برنده مشخص کنیم؟
Mahdi Delzendeh ✍🏻
👍4🆒1
redis_4.pdf
515.8 KB
(ردیس بخش چهارم): کاربردهای پیشرفته RedisJSON و Sorted Set
تا حالا به این فکر کردید که بازی های آنلاین چطور 10 بازیکن برتر جهان بهتون نشون میدن؟ چطور میتونیم از ردیس برای ساخت لیدربورد ساده استفاده کرد؟
توی این پست سراغ 2 تا از پرکاربردترین Data Type های ردیس میریم که خودم به شخصه زیاد ازشون استفاده کردم.
Mahdi Delzendeh ✍🏻
تا حالا به این فکر کردید که بازی های آنلاین چطور 10 بازیکن برتر جهان بهتون نشون میدن؟ چطور میتونیم از ردیس برای ساخت لیدربورد ساده استفاده کرد؟
توی این پست سراغ 2 تا از پرکاربردترین Data Type های ردیس میریم که خودم به شخصه زیاد ازشون استفاده کردم.
Mahdi Delzendeh ✍🏻
👍4🆒2
Forwarded from tech-afternoon (Amin Mesbahi)
در آخرین ساعات سال ۲۰۲۵، چند خطی درباره فرصتها و تهدیدهای اکوسیستم نرمافزاری ایران در سال پیشِرو نوشتم؛ اگر دوست داشتید مطالعه کنید و نظرتون رو به اشتراک بگذارید...
امین مصباحی
سال ۲۰۲۶، فرصتها و تهدیدهای اکوسیستم نرمافزار ایران…
امروز آخرین روز سال ۲۰۲۵ است؛ و میدونم این روزها سخته؛ برای همهمون. اما همین روزهای سخته که تصمیمهای امروز ما رو معنی میده. در حالی که برای خیلیها، ذهنشون نه آرومه، نه مطمئن، نه حتی امیدوار؛ این متن رو برای دلداری یا موعظه نمینویسم. میخوام صادقانه…
👏2
من دارم html css یاد میگیرم
یه ایرادی از این کدهای من بگیرید.
ریسپانسیو رو ایراد نگیرید
اینکه css توی همین فایله ایراد نگیرید.
⚠️از هوش مصنوعی نپرسید لطفا، نظر خودتون رو میخوام:
یه ایرادی از این کدهای من بگیرید.
ریسپانسیو رو ایراد نگیرید
اینکه css توی همین فایله ایراد نگیرید.
⚠️از هوش مصنوعی نپرسید لطفا، نظر خودتون رو میخوام:
<!DOCTYPE html>
<html lang="en" dir="rtl">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<noscript>Document</noscript>
<style>
:root {
--bg: #000;
--text: #fff;
}
body {
background: var(--bg);
color: var(--text);
}
.base {
height: 100vh;
justify-content: center;
align-items: center;
display: flex;
}
.product-card {
background-color: #363535;
border-radius: 20px;
border: 1px solid #FFFFFF;
overflow: hidden;
padding-bottom: 20px;
width: 260px;
}
.product-noscript {
font-weight: 600;
padding: 0 10px;
}
.discount {
background-color: #BA1C1C;
padding: 5px 10px 5px 10px;
border-radius: 40px;
}
.price-final {
font-size: 20px;
font-weight: 600;
}
.price-old {
text-decoration: line-through;
}
.product-image {
width: 100%;
display: block;
}
.product-price {
display: flex;
justify-content: space-between;
align-items: flex-start;
padding: 0 10px;
}
.product-link {
display: block;
color: inherit;
text-decoration: none;
}
</style>
</head>
<body>
<div class="base">
<article class="product-card">
<a class="product-link" href="#">
<img class="product-image" src="images/mobile.webp" alt="mobile" />
<h3 class="product-noscript">noscript</h3>
<div class="product-price">
<span class="discount">15%</span>
<div class="price-values">
<div class="price-final">3000 تومان</div>
<div class="price-old">3500</div>
</div>
</div>
</a>
</article>
</div>
</body>
</html>
🤮4❤3👍3🔥1
Forwarded from thisisnabi.dev [Farsi]
همه کارها رو خودتون انجام ندین!
واقعیت اینه که اگر بخواید همه کارها رو خودتون انجام بدین، به خیلی از برنامه های زندگیتون نمی رسید. یا اگر هم برسید زیر بار فشاری که بهتون میاد له می شید.
موضوع برون سپاری که میان درش بررسی میکنند، آیا کاری که خودمون باید انجام بدید هزینه اش بیشتره، یا اگر همین کار رو بدیم به یک تیم یا یه آدم دیگه تا برامون انجام بده چقدر برامون آب می خوره.
مثلا فکر کنید که ماشینتون نیاز به تعمیر داره و شما باید برید جلوی تعمیرگاه و یک صبح تا ظهر علافش بشید، توی این بازه زمانی می تونید چقدر پول در بیارید؟ اگر مبلغش بیشتر از اینه که زنگ بزنید تعمیرکار، شاگردش رو بفرسته دنبال ماشینتون و تعمیرشده بیاره توی پارکینگ بذاره براتون، پس بهتره که خودتون انجامش ندین. اینجا پول یک مثال هست، شاید کسی دوست نداشته باشه جایی علاف بشه.
اما این یه زیر ساخت هم می خواد، ارتباطات و هنر انتخاب تعمیرکار خوب. وگرنه این هم یک پروژه است و با رفتن شاگرد مکانیک به دور دور، احتمال فیل شدنش بالاست.
بشخصه این رویکرد رو دوست دارم و همیشه هم ازش استفاده می کنم. طمع کار نباشید و هزینه کنید. تا از زندگی تون هم لذت ببرید.
واقعیت اینه که اگر بخواید همه کارها رو خودتون انجام بدین، به خیلی از برنامه های زندگیتون نمی رسید. یا اگر هم برسید زیر بار فشاری که بهتون میاد له می شید.
موضوع برون سپاری که میان درش بررسی میکنند، آیا کاری که خودمون باید انجام بدید هزینه اش بیشتره، یا اگر همین کار رو بدیم به یک تیم یا یه آدم دیگه تا برامون انجام بده چقدر برامون آب می خوره.
مثلا فکر کنید که ماشینتون نیاز به تعمیر داره و شما باید برید جلوی تعمیرگاه و یک صبح تا ظهر علافش بشید، توی این بازه زمانی می تونید چقدر پول در بیارید؟ اگر مبلغش بیشتر از اینه که زنگ بزنید تعمیرکار، شاگردش رو بفرسته دنبال ماشینتون و تعمیرشده بیاره توی پارکینگ بذاره براتون، پس بهتره که خودتون انجامش ندین. اینجا پول یک مثال هست، شاید کسی دوست نداشته باشه جایی علاف بشه.
اما این یه زیر ساخت هم می خواد، ارتباطات و هنر انتخاب تعمیرکار خوب. وگرنه این هم یک پروژه است و با رفتن شاگرد مکانیک به دور دور، احتمال فیل شدنش بالاست.
بشخصه این رویکرد رو دوست دارم و همیشه هم ازش استفاده می کنم. طمع کار نباشید و هزینه کنید. تا از زندگی تون هم لذت ببرید.
👍11❤1👎1
Forwarded from Microfrontend.ir
پلی لیست آموزش پیشرفته برنامه نویسی CSS برای برنامه نویسان
در این پلی لیست به بررسی CSS از منظر برنامه نویسان میپردازیم و به سوالات پرتکرار در مصاحبه های فنی مرتبط با CSS پاسخ میدهیم
ویدیو اول :
آموزش پیشرفته CSS برای برنامه نویسان
https://youtu.be/1YNzfgEE-Ng
ویدیو دوم :
آموزش CSS Rules و Vendor Prefixing
https://youtu.be/GQJi7haHL-g
ویدیو سوم:
بهینه سازی سرعت لود سایت و بررسی مساله FOUC
https://youtu.be/34VrMZ5r2wI
لینک پلی لیست:
https://www.youtube.com/playlist?list=PLJ9zDGwhhsBzsppvlXNEMeohhvUj5HDYP
〰〰〰〰〰〰〰
© @Microfrontend_ir
در این پلی لیست به بررسی CSS از منظر برنامه نویسان میپردازیم و به سوالات پرتکرار در مصاحبه های فنی مرتبط با CSS پاسخ میدهیم
ویدیو اول :
آموزش پیشرفته CSS برای برنامه نویسان
https://youtu.be/1YNzfgEE-Ng
ویدیو دوم :
آموزش CSS Rules و Vendor Prefixing
https://youtu.be/GQJi7haHL-g
ویدیو سوم:
بهینه سازی سرعت لود سایت و بررسی مساله FOUC
https://youtu.be/34VrMZ5r2wI
لینک پلی لیست:
https://www.youtube.com/playlist?list=PLJ9zDGwhhsBzsppvlXNEMeohhvUj5HDYP
〰〰〰〰〰〰〰
© @Microfrontend_ir
👎2😁2❤1🔥1
کتاب Speed Up Your Django Tests
عکس های قشنگی داره
انگار این کتاب ۱۳ فصل داره و در مورد اینا 👇🏻 گفته 🥱
✔️ معرفی ابزارها برای بهینهسازی تستها
✔️ روشهای اندازهگیری زمان تست و یافتن گلوگاهها
✔️ راهکارهای سریع (Easy Wins) که در چند دقیقه قابل انجام هستند
✔️ اجرای تستها بهصورت موازی (parallel)
✔️ بهینهسازی پایگاه داده تست (مثل کاهش بار ساخت دیتابیس)
✔️ پیکربندی CI/CD برای سرعت بهتر
✔️ ساختار و سازمان دهی تستها و دادههای تستی
✔️ استفاده از mocking هدفمند برای بخشهای سنگین تستی
✔️ پوشش هم Django test framework و هم pytest
✔️ و نکات عملی برای پروژههای کوچک و بزرگ
عکس های قشنگی داره
انگار این کتاب ۱۳ فصل داره و در مورد اینا 👇🏻 گفته 🥱
✔️ معرفی ابزارها برای بهینهسازی تستها
✔️ روشهای اندازهگیری زمان تست و یافتن گلوگاهها
✔️ راهکارهای سریع (Easy Wins) که در چند دقیقه قابل انجام هستند
✔️ اجرای تستها بهصورت موازی (parallel)
✔️ بهینهسازی پایگاه داده تست (مثل کاهش بار ساخت دیتابیس)
✔️ پیکربندی CI/CD برای سرعت بهتر
✔️ ساختار و سازمان دهی تستها و دادههای تستی
✔️ استفاده از mocking هدفمند برای بخشهای سنگین تستی
✔️ پوشش هم Django test framework و هم pytest
✔️ و نکات عملی برای پروژههای کوچک و بزرگ
👍5👎1
گفته بودم دارم html css یاد میگیرم.
البته اولین بار حدودا 15 سال پیش یاد گرفتم.
اما دارم تلاش میکنم اصولی یادش بگیرم.
امروز اینو یاد گرفتم:
اگه چند تا div زیر هم داری، بهتره فاصله رو فقط با margin-bottom به المنت بالایی بدی، نه اینکه به یه div هم margin-top بدی هم margin-bottom.
اینطوری هر المنت مسئول فاصله بعد از خودشه، کامپوننتهات تمیزتر و قابل استفاده مجدد میشن و دردسر margin collapsing هم کمتر میشه.
مثلا میخوام اون وسطی از بالا و پایین فاصله داشته باشه. بهش مارجین بالا و پایین نمیدم.
الان دیسلایک هارو بزنید 😂
البته اولین بار حدودا 15 سال پیش یاد گرفتم.
اما دارم تلاش میکنم اصولی یادش بگیرم.
امروز اینو یاد گرفتم:
اگه چند تا div زیر هم داری، بهتره فاصله رو فقط با margin-bottom به المنت بالایی بدی، نه اینکه به یه div هم margin-top بدی هم margin-bottom.
اینطوری هر المنت مسئول فاصله بعد از خودشه، کامپوننتهات تمیزتر و قابل استفاده مجدد میشن و دردسر margin collapsing هم کمتر میشه.
<div class="section">بالا</div>
<div class="section">وسط</div>
<div class="section">پایین</div>
مثلا میخوام اون وسطی از بالا و پایین فاصله داشته باشه. بهش مارجین بالا و پایین نمیدم.
الان دیسلایک هارو بزنید 😂
👎18👍4❤2
کانال آقای مسعود دانش پور
مهندس نرم افزار، Director of Engineering در دیجی کالا ads
https://news.1rj.ru/str/learning_with_m
ایشون لطف کردن و ۲ آذر ۱۴۰۴ به صورت آنلاین توی کلاس درس توسعه (هنرستان کامپیوتر) برای بچه ها صحبت کردن.
نکات واقعا خوبی برای بچه ها گفتن
این جلسه ضبط نشد.
تشکر از مهندس دانش پور ❤️
مهندس نرم افزار، Director of Engineering در دیجی کالا ads
https://news.1rj.ru/str/learning_with_m
ایشون لطف کردن و ۲ آذر ۱۴۰۴ به صورت آنلاین توی کلاس درس توسعه (هنرستان کامپیوتر) برای بچه ها صحبت کردن.
نکات واقعا خوبی برای بچه ها گفتن
این جلسه ضبط نشد.
تشکر از مهندس دانش پور ❤️
Telegram
Learning With M
سلام.
من مسعود دانش پور هستم.
همسر، پدر، پسر، برادر، انسان و مهندس نرم افزار.👻
اینجا جایی هست که من تلاش می کنم موضوعاتی که برای یک مهندس نرم افزار مهم و لازمه رو بازگو کنم.
آکادمی یادگیری با M :
https://academy.daneshpour.ir
من مسعود دانش پور هستم.
همسر، پدر، پسر، برادر، انسان و مهندس نرم افزار.👻
اینجا جایی هست که من تلاش می کنم موضوعاتی که برای یک مهندس نرم افزار مهم و لازمه رو بازگو کنم.
آکادمی یادگیری با M :
https://academy.daneshpour.ir
🔥4
اینم کانال آقای مسعود بیگی CTO رسمیو
https://news.1rj.ru/str/tondtech
امروز ایشون زحمت کشیدن برای بچه ها به صورت آنلاین صحبت کردن و جواب سوالات شون رو دادن
جلسه خیلی خوبی شد.
هنرستان کامپیوتر محله نازی آباد تهران
جلسه ضبط نشد
تشکر از مهندس بیگی ❤️
https://news.1rj.ru/str/tondtech
امروز ایشون زحمت کشیدن برای بچه ها به صورت آنلاین صحبت کردن و جواب سوالات شون رو دادن
جلسه خیلی خوبی شد.
هنرستان کامپیوتر محله نازی آباد تهران
جلسه ضبط نشد
تشکر از مهندس بیگی ❤️
Telegram
TondTech
کالای ما دانش است
تبلیغات نداریم
تبلیغات نداریم
❤8🔥5😁1