TorhamDev | تورهام 😳
رفتن به کانال در Telegram
2 869
مشترکین
اطلاعاتی وجود ندارد24 ساعت
+107 روز
+6330 روز
آرشیو پست ها
2 869
Repost from Nima Tech Talk 💻
🚀 خبر هیجانانگیز! 🚀
اولین محتوای انگلیسی خودم رو تو یوتیوب منتشر کردم با عنوان “چطور یک پروژه فرانتاند رو با استفاده از CDKTF روی AWS پیادهسازی کنیم”. این ویدیو یک راهنمای جامع برای کمک به توسعهدهندهها، چه تازهکار و چه حرفهای، برای پیادهسازی اپلیکیشنهای فرانتاند روی AWS با استفاده از Cloud Development Kit for Terraform (CDKTF) هست.
🔗 الان ببینید:
How to deploy a Frontend project to "AWS", using " CDKTF"?
https://youtu.be/P1ZUJrzJNcs
2 869
Repost from Python BackendHub
یک نکته ای داخل این ویدیو بود که نتونستم توی ویدیو بگم چون خیلی طولانی میشد و ربط مستقیم به تایتل ویدیو هم نداشت.. به عنوان یک برنامه نویس باید بفهمید چیکار دارین میکنید.
نظر شخصیم اینه که این مهم ترین اصل برنامه نویسیه. هر کدی که شما مینویسید باید بفهمید که دلیلش چی بوده؟ چرا اینکارو کردین؟ نکته ای که من متوجه شدم اینه که خیلی از دوستان واقعا دلایلی برای کاری که میکنند ندارن... . یعنی یک reasoning ای همیشه داشته باشید حتی به غلط. چون بالاخره هممون اشتباه میکنیم دیگه.. ولی باید بدونیم داشتیم چیکار میکردیم!
مثال میگم, کسی که کتاب two scopes django رو خونده باشه اونجا نویسنده میگه که تو جنگو تمام assert ها رد میشن موقعی که دیباگ رو false میذارین. دلیلش چیه؟ دلیلش اینه که شما وقتی پایتون رو آپتیمایز ران میکنید (و خود پایتونم از حالت دیباگ خارج میشه که با داندر دیباگ میتونید ببینید) یکی از کار هایی که میکنه تمام assertion هارو ایگنور میکنه. پس شما وقتی two scopes رو دارید میخونید باید بعد اون جمله ای که نوشته یک چرا بذارید و گوگلش کنید. چرا اینکارو میکردن؟ قطعا یک دلیلی دارن دیگه... جنگو core دولوپر ها که الکی کدی وارد جنگو نمیکنن... عمق اطلاعاتتون هم در همین راستا زیاد میشه.
منتهی توصیه شخصی میکنم که خودتون رو گم نکنید شروع نکنید به پرسیدن چرا هایی که از تسک فاصله گرفتن. اون چرا ها هم مفیدن ولی یادگیری فقط بخواد عمقی باشه سطح یادگیری کم میشه. پس بالانس رو رعایت کنید. خودمم حتی این مورد رو بعضا نقض میکنم و میرم وارد عمق یادگیری میشم که اصلا بهش احتیاج نداشتم در حالی که چیزای سطحی تری که خیلی نیازش دارم هنوز بلد نیستم.
مثال دیگه وقتی شما مینویسی router.post باید بدونید داره چه اتفاقی میفته. اینکه میاین validation حجم باینری فایل input رو توی خود روتر مینویسید یعنی عمق سواد HTTP نداشتین.
مثال دیگه اینکه داریم کد رو decouple میکنیم که reusable شه باید بدونید چرا داریم اینکارو میکنیم. برنامه نویسی جغرافی نیست. من دیدم بعضیا میگن چون فلان کتاب یا فلان شخص گفته, دنبال راه حل اونا نباشید تو مرحله اول شما باید صورت سوال رو درک کنید تا بعد بتونید راه حل اونا رو درک کنید.
اگه دارید یک تابع مینویسید باید دلیل بیارین که چرا تابع نوشتین. چرا کلس ننوشتین؟ خلاصه سعی کنید خط به خط همیشه فکر کنید که دارید چیکار میکنید و خودتون رو توجیح کنید. من شخصا اینکارو کردم و خیلی نتیجه مثبتی گرفتم تا از زمانی که اینکارو نمیکردم.
@ManiFoldsPython
2 869
مثال شاید بیخود. خیلیهاتون جنگو کار میکنید و همیشه داخل پوشه کانفیگ جنگو فایل wsgi.py رو دید، شاید حتی تغییرش داده باشید اگه Django channels زده باشید. ولی تا حالا رفتید ببینید اصلا wsgi چیه؟ یا وقتی جنگو چنلز کار میکردید رفتید ببینید Asgi فرقش چیه؟ خیلیها رفتن خیلی بیشترها نرفتن.
2 869
آقا جدی بیایید فریمورک محور نباشید. همه چیز رو به فریمورکی که باهاش کار میکنید نچسبونید، اینکه چقدر SQLAlchemy بخونید کافیه چون FastAPI کار میکنید یا چقدر Mysql بلد باشم که با جنگو کار کنم که جقدر پایتون بخونم که جنگو یادبگیرم ( چنگو زیاد مقال میزنم چون اینجا خیلی بیشتر استفاده میشه).
جواب همشون: هر چقدر بیشتر بهتر
به جای چقدر sqlalchemy برای fastapi خود sqlalchemy رو یادبگیرید
به جای چقدر mysql برای جنگو خود mysql یادبگیرید. در نهایت هم اینا نظر منه، اگه میخوایید فقط جنگو کار باشید و هیچ پدیگه از بقیهجاها ندونید مثل یک داننده که فقط بلده رانندگی کنه اونم فقط و فقط با ماشین خودش اشکالی نداره، در نهایت انتخاب خودتونه:)
@TorhamDevCH
2 869
خوب دوستان، از الان میتونیم بگیم حداقل قزقستان نیستیم!😂
اینا دیگه رسما پکتها باز میکنن میخونن اگر صلاح دونستن دوباره بسته بندیش میکنن میفرستن.
اتفاقی که اینجا با http میوفته، از اونجا که http هیچ رمزنگاری روش سوار نیست، همه میتونن پکتها رو باز کنن و بخوننش. اما https که اومد و TLS اضافه کرد باعث شد که پکتها رمزنگاری بشن و کسی نتونه اونا رو بخونه؛ اگه شما لازم دارید که پکت رو بخونید باید کلیدها رمزنگاری رو داشته باشید. در نتیجه هیچ کس جز مقصد و مبدا نمیتونن بخوننش، اما شاید براتون سوال بشه که پس چطوری فیلتر میکنن؟ خب اون فیلترینگ تو لایه پایین تر اتفاق میوفته که برای مثال IP هارو میبندن، چون هیچ وقت IP و پورت رمزنگاری نمیشن همه میتونن بخوننشون، در نهایت خواستم بگم دوستان غیور قزاقستان اومدن یک برنامه نوشتن که رو یوزر نصب میشه و این کلیدهای رمزنگاری رو هم میگیره :))) و گویا نصبش هم اجباری. تازه اسمش هم چسبوندم به امنیت :)))))
@TorhamDevCH
2 869
Repost from Sadra Codes
اون گپ صورتیرنگ پایدنتیک دقیقا PydanticV2 هست. دلیل اصلی این گپ به این بزرگی اینه که سیستم ولیدیشن از پایدنتیک جدا شد و تحت یه پکیج دیگه (pydantic-core) که با راست نوشته شده بود رلیز شد. بنظرم بعد از Postgres، یکی بجاترین رلیز ها بود چراکه پرفرومنس و رانتایم رو تا ۵۰ برابر سریعتر کرد. از خوبیاش که بگذریم، باعث شد یه سری از بیزینس ها که وابستگی نرمافزاری شدیدی به PydanticV1 داشتن، با اینکه کلی تول نوشته شده واسه مهاجرت از ورژن ۱ به ۲، بخاطر Breaking changeها حسرت به دل بمونن و نتونن آپگرید کنن. :(
برای آگاهی بیشتر:
https://pydantic.dev/articles/pydantic-v2#breaking-changes--compatibility--section
2 869
با این مایندست(تفکر؟) برید تو مصاحبه 🫵
وقتی احساس کردید که مصاحبه بد پیشرفت، به چشمای مصاحبه کننده زل میزنید 👹.
بعد بهش میگید:
یا منو استخدام میکنید، یا استخدامتون میکنم!
بعد با ژست ایلیان موسک برید بیرون!2 869
Repost from Sadra Codes
چجوریه که شایان ۸ سال پیش این ویدئو رو آپلود کرده آپارات، بعد محمد ۹ سال پیش کامنت گذاشته؟ 🤔
اگه ماشین زمان پیدا کردین به مام بگین خسیسا.. نمیخوایم بخوریمش که. 😒
2 869
armon Taheri:
من یه ابزار دیگه هم نوشتم یه نگاه بهش میندازی بدرد بخور باشه بذاریش توی چنلت
اگر نیاز داشتید که پر سرعت ترین میرور رجیستری داکر رو برای دانلود امیج های تحریمی به راحتی و سرعت پیدا کنید
یه اسکریپت دولوپ کردم میتونید ازش استفاده کنین
https://github.com/ArmanTaheriGhaleTaki/fastDocker403unlocker
2 869
def fact(n: int) -> int: return n * fact(n-1) if n >= 1 else 1
بلاخره ریکرسیو درک کردم 😂
@TorhamDevCH2 869
لیستهای پایتون در حقیقت dynamic arrays هستند در نتیجه وقتی شما یک لیست رو میسازید مثلا ۵ تا ایندکس داره وقتی میخایید لیست گسترش بدید و مثلا بکنیدش ۷ تا، پایتون میاد یکجا دیگه از مموری رو allocate به اندازه ۷ تا و بعد اون ۵ قبلی کپی میکنه اونجا و ۲ تا جدید رو بهش اضافه میکنه.
به این حالت میگن داینامیک، یکدونه دیگه هم داریم که linked lists که اون در اختیار شماست برای کشف کردن :)
@TorhamDevCH
اکنون در دسترس! پژوهش تلگرام ۲۰۲۵ — مهمترین بینشهای سال 
