TorhamDev | تورهام 😳 – Telegram
TorhamDev | تورهام 😳
2.84K subscribers
421 photos
49 videos
21 files
591 links
code, linux and anything related.

• YouTube
youtube.com/@techwithtori

• CodeNaline Podcast
@CodeNaline

• Group
@GothamProgrammers

• Github
github.com/TorhamDev

• Email
torhamdev@gmail.com
Download Telegram
Freaks
Surf Curse
#music@TorhamDevCH

حال کد نیست
👍5👎1🤝1
Forwarded from Python BackendHub (Mani)
تو بحث کردن دو روش داریم:
Strawman: یعنی ضعیف‌ترین و دم‌دستی‌ترین برداشت از حرف طرف مقابل رو می‌گیری و همونو می‌کوبی.
Steelman: یعنی قوی‌ترین و منطقی‌ترین نسخه از حرف طرف مقابل رو تصور می‌کنی و بعد اونو نقد می‌کنی.

تو بحث‌های تکنیکال و تو حوزه خودمون، حداقل steelman باشید. یعنی قبل از اینکه یه ایده رو بکوبید، سعی کنید بهترین حالت ممکنش رو در بیارید و بعد نقد کنید. ولی می‌بینم یک عده اخیرا کلا دلیلی نمیارن؛ ایده رو از بیسیک می‌زنن و میگن «کلا خوب نیست» بدون حتی یه خط استدلال! جملشون هم انگلیسی مینویسن که مثلا جذبه بیشتری داشته باشه :)) اینطوری نه بحث جلو میره، نه کسی چیزی یاد می‌گیره. اگه می‌خواید نقد کنید، اول قوی‌ترین نسخه‌ی ایده رو بسازید، بعد برید سراغ نقد.

@PyBackendHub
👍41
Forwarded from Python BackendHub (Mani)
یک سوال رو میخوام مطرح کنم , شما یک فانکشن parent دارید. داخل این فانکشن شما باید یوزر رو بگیرید (`getUser`) و بعد سه تا فانکشن inner1 و inner2 و inner3 رو صدا بزنید و یوزر رو بهشون بدید تا یک پردازشی تو دیتابیس انجام بده.
فانکشن inner1 و inner2 یوزر آیدی میگیرن و نیاز دارن یوزر لاک باشه تو دیتابیس وگرنه ممکنه ریس کاندیشن بخوره. ولی فانکشن ۳ براش مهم نیست چون پردازشی که میکنه ریس کاندیشن نمیخوره.

سوالی که پیش میاد اینه که شما چطور توابعتون رو طراحی میکنید که این مشکل به وجود نیاد؟ کدتون احتمالا این شکلیه.


def parent():
user = get_user(lock=True)
inner1(user)
inner2(user)
inner3(user)


همونطور که میبینید نحوه استفاده inner1 و inner2 کاپل شده به یوزر. من اگه حواسم نباشه lock=true رو نذارم کدم در برابر ریس کاندیشن سیف نیست. اگه یک نفر دیگه یک جای دیگه دوباره inner1 رو استفاده کنه و یادش بره یوزر رو لاک کنه بازم همین مشکلو داریم. درواقع یک استیت مشترک بین چند فانکشن داریم که فقط میشه چشمی دنبالش کرد... قبل اینکه پست بعدیو بخونید یکم بهش فکر کنید ببینید راه حلی داره این موضوع؟


@PyBackendHub
👨‍💻1
Forwarded from Python BackendHub (Mani)
برند تایپ یا همون New Type یعنی یه تایپ جدید بسازی رو همون تایپ قدیمی، بدون این که تو ران‌تایم هیچ خرجی داشته باشه. یه جورایی مثل اینه که سابکلس بسازی ولی واقعاً سابکلس نکردی.

فایده‌ش چیه؟ به تایپ‌چکر می‌فهمونی مثلا UserId با یه string فرق داره. تو ران‌تایم هردوش استرینگن ولی تو تایپ دیگه یکی نیستن.

تو مثال ما، یه UserId درست می‌کنیم، بعد یه برند جنریک به اسم Locked<T>. اگه تو getUser(true) صدا بزنیم خروجیش میشه Locked<UserId>. حالا توابعی که می‌خوان یوزر لاک شده باشه فقط همینو قبول می‌کنن. یعنی دولوپر مجبوره قبل استفاده یوزر رو لاک کنه، وگرنه تایپ‌چکر گیر میده و کدت دیپلوی نمیشه.

اگه اینو نداشتیم، باید تو هر تابع دوباره یوزر رو لاک می‌کردیم که هم تکراری میشه هم ران‌تایم گرون‌تر.

مزایا:
- جلوی خطا رو می‌گیره
- خودش یه جور داکیومنت زنده‌ست
- یه بار لاک می‌کنی، ران‌تایم سریع‌تره
- نگه داری کدتون رو راحت تر میکنه (maintainability)

ضررش؟ فقط دو سه خط تایپ بیشتر می‌نویسی، همین. که البته مقایسه کنی با کدی که باید بیشتر مینوشتی چون این تایپا رو نداشتی هیچ بود.

@PyBackendHub
1
The World We Knew (Over And Over)
Frank Sinatra
#music@TorhamDevCH

فعلا پست‌های مانی بخونید
3
خوب شرکت هم استکش رو از پایتون به گولنگ داره تغییر میده و بنده ماه آخرم و تعدیل میشم :)
here we go again

برم رزومه رو مرتب کنم
💔45🍾4🤣3🗿1
Quick reminder: Google.com
👍101
عجب
🤩5🤣4
روزی یک مقاله رو یادتونه؟ متاسفانه خیلی وقت نمیکنم مقاله بخونم :( و این باعث شد دیگه ادامه‌اش ندم، خوندن مقاله کمی با دیدن آموزش یا ویدیو فرق میکنه حداقل برای من. چون باید نکاتش بفهمم و گاهی یک یادداشت کوچیکی ازش بردارم ولی ویدیو دیدن این مشکل نداره و اگه نکته ای باشه قالبا کسی که ویدیو رو ساخته بهش اشاره میکنه. در نتیجه از این لحظه روزی یک ویدیو معرفی میکنم، احتمالا روزی یکدونه بیشتر چون من خیلی در یوتیوب وقت میگذرونم :)
👍111
ویدیو امروز، itertools. تو ویدیو تمام ۲۱ فانکشنالیتی itertools معرفی میکنه مثالشون میگه و اینکه چه کاربردی میتونن داشته باشن.

موضوع این نیست که همشون رو حفظ باشیم، موضوع اینه بدونید وجود دارن و در مواقع مناسب دربارش گوگل کنید و استفاده کنید :)

https://youtu.be/1p7xa_BHYDs


#vid_per_day

@TorhamDevCH
👍111🔥1
TorhamDev | تورهام 😳 pinned «روزی یک مقاله رو یادتونه؟ متاسفانه خیلی وقت نمیکنم مقاله بخونم :( و این باعث شد دیگه ادامه‌اش ندم، خوندن مقاله کمی با دیدن آموزش یا ویدیو فرق میکنه حداقل برای من. چون باید نکاتش بفهمم و گاهی یک یادداشت کوچیکی ازش بردارم ولی ویدیو دیدن این مشکل نداره و اگه…»
قول میدم این آخرین بار 🙏

@TorhamDevCH
14
تمام شد، مبارک خیلیا.

ولی خب یک ماه طول میکشه کانفیگ کنم همچی رو

@TorhamDevCH
👍133🤣1🍌1🖕1
https://www.youtube.com/watch?v=vBH6GRJ1REM

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

#vid_per_day
@TorhamDevCH
3
- اومدم پکیج‌های اضافه رو پاک کنم، زدم تمام نتورک پکیج‌ها رو پاک کردم.

- دیدم به اینترنت وصل نمیتونم بشم هیجوره

- ۲ ساعت دیباگش کردم و با low لول ترین حالت ممکن تونستم به شبکه lan وصل شم.

- دوباره پکیج‌های نتورک نصب کردم.

میخاستم جیغ بکشم یکجاهاییش.

@TorhamDevCH
🤣201