uz
Feedback
TorhamDev | تورهام 😳

TorhamDev | تورهام 😳

Kanalga Telegram’da o‘tish

زه گهواره تا گور، زور است زور

Ko'proq ko'rsatish
2 869
Obunachilar
Ma'lumot yo'q24 soatlar
+107 kunlar
+6330 kunlar
Postlar arxiv
🚀 خبر هیجان‌انگیز! 🚀 اولین محتوای انگلیسی خودم رو تو یوتیوب منتشر کردم با عنوان “چطور یک پروژه فرانت‌اند رو با استفاده از C
🚀 خبر هیجان‌انگیز! 🚀 اولین محتوای انگلیسی خودم رو تو یوتیوب منتشر کردم با عنوان “چطور یک پروژه فرانت‌اند رو با استفاده از CDKTF روی AWS پیاده‌سازی کنیم”. این ویدیو یک راهنمای جامع برای کمک به توسعه‌دهنده‌ها، چه تازه‌کار و چه حرفه‌ای، برای پیاده‌سازی اپلیکیشن‌های فرانت‌اند روی AWS با استفاده از Cloud Development Kit for Terraform (CDKTF) هست. 🔗 الان ببینید: How to deploy a Frontend project to "AWS", using " CDKTF"? https://youtu.be/P1ZUJrzJNcs

Repost from Python BackendHub
یک نکته ای داخل این ویدیو بود که نتونستم توی ویدیو بگم چون خیلی طولانی میشد و ربط مستقیم به تایتل ویدیو هم نداشت.. به عنوان یک برنامه نویس باید بفهمید چیکار دارین میکنید. نظر شخصیم اینه که این مهم ترین اصل برنامه نویسیه. هر کدی که شما مینویسید باید بفهمید که دلیلش چی بوده؟ چرا اینکارو کردین؟ نکته ای که من متوجه شدم اینه که خیلی از دوستان واقعا دلایلی برای کاری که میکنند ندارن... . یعنی یک reasoning ای همیشه داشته باشید حتی به غلط. چون بالاخره هممون اشتباه میکنیم دیگه.. ولی باید بدونیم داشتیم چیکار میکردیم! مثال میگم, کسی که کتاب two scopes django رو خونده باشه اونجا نویسنده میگه که تو جنگو تمام assert ها رد میشن موقعی که دیباگ رو false میذارین. دلیلش چیه؟ دلیلش اینه که شما وقتی پایتون رو آپتیمایز ران میکنید (و خود پایتونم از حالت دیباگ خارج میشه که با داندر دیباگ میتونید ببینید) یکی از کار هایی که میکنه تمام assertion هارو ایگنور میکنه. پس شما وقتی two scopes رو دارید میخونید باید بعد اون جمله ای که نوشته یک چرا بذارید و گوگلش کنید. چرا اینکارو میکردن؟‌ قطعا یک دلیلی دارن دیگه... جنگو core دولوپر ها که الکی کدی وارد جنگو نمیکنن... عمق اطلاعاتتون هم در همین راستا زیاد میشه. منتهی توصیه شخصی میکنم که خودتون رو گم نکنید شروع نکنید به پرسیدن چرا هایی که از تسک فاصله گرفتن. اون چرا ها هم مفیدن ولی یادگیری فقط بخواد عمقی باشه سطح یادگیری کم میشه. پس بالانس رو رعایت کنید. خودمم حتی این مورد رو بعضا نقض میکنم و میرم وارد عمق یادگیری میشم که اصلا بهش احتیاج نداشتم در حالی که چیزای سطحی تری که خیلی نیازش دارم هنوز بلد نیستم. مثال دیگه وقتی شما مینویسی router.post باید بدونید داره چه اتفاقی میفته. اینکه میاین validation حجم باینری فایل input رو توی خود روتر مینویسید یعنی عمق سواد HTTP نداشتین. مثال دیگه اینکه داریم کد رو decouple میکنیم که reusable شه باید بدونید چرا داریم اینکارو میکنیم. برنامه نویسی جغرافی نیست. من دیدم بعضیا میگن چون فلان کتاب یا فلان شخص گفته, دنبال راه حل اونا نباشید تو مرحله اول شما باید صورت سوال رو درک کنید تا بعد بتونید راه حل اونا رو درک کنید. اگه دارید یک تابع مینویسید باید دلیل بیارین که چرا تابع نوشتین. چرا کلس ننوشتین؟ خلاصه سعی کنید خط به خط همیشه فکر کنید که دارید چیکار میکنید و خودتون رو توجیح کنید. من شخصا اینکارو کردم و خیلی نتیجه مثبتی گرفتم تا از زمانی که اینکارو نمیکردم. @ManiFoldsPython

مثال شاید بی‌خود. خیلی‌هاتون جنگو کار میکنید و همیشه داخل پوشه کانفیگ جنگو فایل wsgi.py رو دید، شاید حتی تغییرش داده باشید اگه Django channels زده باشید. ولی تا حالا رفتید ببینید اصلا wsgi چیه؟‌ یا وقتی جنگو چنلز کار میکردید رفتید ببینید Asgi فرقش چیه؟ خیلی‌ها رفتن خیلی بیشتر‌ها نرفتن.

آقا جدی بیایید فریمورک محور نباشید. همه چیز رو به فریمورکی که باهاش کار می‌کنید نچسبونید، اینکه چقدر SQLAlchemy بخونید کافیه چون FastAPI کار میکنید یا چقدر Mysql بلد باشم که با جنگو کار کنم که جقدر پایتون بخونم که جنگو یادبگیرم ( چنگو زیاد مقال میزنم چون اینجا خیلی بیشتر استفاده میشه). جواب همشون: هر چقدر بیشتر بهتر به جای چقدر sqlalchemy برای fastapi خود sqlalchemy رو یادبگیرید به جای چقدر mysql برای جنگو خود mysql یادبگیرید. در نهایت هم اینا نظر منه، اگه میخوایید فقط جنگو کار باشید و هیچ پ‌دیگه از بقیه‌جاها ندونید مثل یک داننده که فقط بلده رانندگی کنه اونم فقط و فقط با ماشین خودش اشکالی نداره، در نهایت انتخاب خودتونه:) @TorhamDevCH

خوب دوستان، از الان میتونیم بگیم حداقل قزقستان نیستیم!😂 اینا دیگه رسما پکت‌ها باز میکنن میخونن اگر صلاح دونستن دوباره بسته ب
خوب دوستان، از الان میتونیم بگیم حداقل قزقستان نیستیم!😂 اینا دیگه رسما پکت‌ها باز میکنن میخونن اگر صلاح دونستن دوباره بسته بندیش میکنن میفرستن. اتفاقی که اینجا با http میوفته، از اونجا که http هیچ رمزنگاری روش سوار نیست، همه میتونن پکت‌ها رو باز کنن و بخوننش. اما https که اومد و TLS اضافه کرد باعث شد که پکت‌ها رمزنگاری بشن و کسی نتونه اونا رو بخونه؛ اگه شما لازم دارید که پکت رو بخونید باید کلید‌ها رمزنگاری رو داشته باشید. در نتیجه هیچ کس جز مقصد و مبدا نمیتونن بخوننش، اما شاید براتون سوال بشه که پس چطوری فیلتر میکنن؟ خب اون فیلترینگ تو لایه پایین تر اتفاق میوفته که برای مثال IP هارو میبندن، چون هیچ وقت IP و پورت رمزنگاری نمیشن همه میتونن بخوننشون، در نهایت خواستم بگم دوستان غیور قزاقستان اومدن یک برنامه نوشتن که رو یوزر نصب میشه و این کلید‌های رمزنگاری رو هم میگیره :))) و گویا نصبش هم اجباری. تازه اسمش هم چسبوندم به امنیت :))))) @TorhamDevCH

Repost from Sadra Codes
اون گپ صورتی‌رنگ پای‌دنتیک دقیقا PydanticV2 هست. دلیل اصلی این گپ به این بزرگی اینه که سیستم ولیدیشن از پای‌دنتیک جدا شد و تح
اون گپ صورتی‌رنگ پای‌دنتیک دقیقا PydanticV2 هست. دلیل اصلی این گپ به این بزرگی اینه که سیستم ولیدیشن از پای‌دنتیک جدا شد و تحت یه پکیج دیگه (pydantic-core) که با راست نوشته شده بود رلیز شد. بنظرم بعد از Postgres، یکی بجاترین رلیز ها بود چراکه پرفرومنس و ران‌تایم رو تا ۵۰ برابر سریعتر کرد. از خوبیاش که بگذریم، باعث شد یه سری از بیزینس ها که وابستگی نرم‌افزاری شدیدی به PydanticV1 داشتن، با اینکه کلی تول نوشته شده واسه مهاجرت از ورژن ۱ به ۲، بخاطر Breaking changeها حسرت به دل بمونن و نتونن آپگرید کنن. :( برای آگاهی بیشتر: https://pydantic.dev/articles/pydantic-v2#breaking-changes--compatibility--section

04 My Stress.flac26.89 MB

داش اصلا بک‌اند بمولا 🥰❤️ @TorhamDevCH

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

Repost from Sadra Codes
چجوریه که شایان ۸ سال پیش این ویدئو رو آپلود کرده آپارات، بعد محمد ۹ سال پیش کامنت گذاشته؟ 🤔 اگه ماشین زمان پیدا کردین به ما
چجوریه که شایان ۸ سال پیش این ویدئو رو آپلود کرده آپارات، بعد محمد ۹ سال پیش کامنت گذاشته؟ 🤔 اگه ماشین زمان پیدا کردین به مام بگین خسیسا.. نمی‌خوایم بخوریمش که. 😒

بهترین اسم فانکشن وجود ندا... 🗿 @TorhamDevCH
بهترین اسم فانکشن وجود ندا... 🗿 @TorhamDevCH

armon Taheri: من یه ابزار دیگه هم نوشتم یه نگاه بهش میندازی بدرد بخور باشه بذاریش توی چنلت اگر نیاز داشتید که پر سرعت ترین میرور رجیستری داکر رو برای دانلود امیج های تحریمی به راحتی و سرعت پیدا کنید یه اسکریپت دولوپ کردم میتونید ازش استفاده کنین https://github.com/ArmanTaheriGhaleTaki/fastDocker403unlocker

Repost from Sadra Codes
ورژن جدید Hey قراره این‌شکلی باشه! :) 💻 + راه‌اندازی و ستاپش راحت‌تر شده. + از mdb.ai استفاده می‌کنه. + سریعتر و تمیزتر پاسخ می‌ده. + شخصی‌سازی میشه. و... پی‌نوشت: Hey یه اپ CLI هست که صرفا وصله به ChatGPT.

def fact(n: int) -> int: return n * fact(n-1) if n >= 1 else 1
بلاخره ریکرسیو درک کردم 😂 @TorhamDevCH

هر اتفاقی: اینترنت رو گند بزنید تا ببینیم چی میشه

شاید یک متود append باید بهش اضافه کنم، شاید هم نه.

نمیدونم والا گفتم یکدونه linked list بنویسم. @TorhamDevCH
نمیدونم والا گفتم یکدونه linked list بنویسم. @TorhamDevCH

لیست‌های پایتون در حقیقت dynamic arrays هستند در نتیجه وقتی شما یک لیست رو میسازید مثلا ۵ تا ایندکس داره وقتی میخایید لیست گس
لیست‌های پایتون در حقیقت dynamic arrays هستند در نتیجه وقتی شما یک لیست رو میسازید مثلا ۵ تا ایندکس داره وقتی میخایید لیست گسترش بدید و مثلا بکنیدش ۷ تا، پایتون میاد یکجا دیگه از مموری رو allocate به اندازه ۷ تا و بعد اون ۵ قبلی کپی میکنه اونجا و ۲ تا جدید رو بهش اضافه میکنه. به این حالت میگن داینامیک، یکدونه دیگه هم داریم که linked lists که اون در اختیار شماست برای کشف کردن :) @TorhamDevCH

14 No Excuses.flac21.50 MB