Sadra Codes
3.54K subscribers
1.01K photos
99 videos
60 files
771 links
Sadra Yahyapour ✌️

Let's dive deeper together. :)

imsadra.me (currently down)
github.com/lnxpy
linkedin.com/in/sadra-yahyapour
x.com/lnxpylnxpy
[email protected]
Download Telegram
دوتا ابزار جالب و کاربردی دواپسی که من (بعنوان بک‌اند کار) خیلی ازشون خوشم اومد!

- لوکال استک:‌ AWS لوکال
- اَکت: GitHub Actions لوکال

یه تایم می‌گفتیم چرا رو سیستمت نگه می‌داری؟ بفرست بالا رو ابرا.. از اینترنت استفاده کن.. حالا همه‌چی داره لوکال میشه. 😁
👍8
اگه شما قرار بود تست‌های پروژتون رو بنویسید، از کدوم مدل نامگذاری استفاده می‌کردید؟ + دلیل
1 - main_test.py
2 - test_main.py
10
Sadra Codes
اگه شما قرار بود تست‌های پروژتون رو بنویسید، از کدوم مدل نامگذاری استفاده می‌کردید؟ + دلیل 1 - main_test.py 2 - test_main.py
بچه‌ها نظرات جالبی دادن. بنظر خودم، اول که تمام تست‌ها باید توی یه پکیج (یه دایرکتوری حاوی init) مجزا باشن و کلا حسابشون از باقی سیستم جدا باشه. درباره نامگذاری فایل تست، من شخصا مورد اول رو پیشنهاد میدم اونم بیشتر شخصیه تا مربوط به کانونشن یا بست پرکتیس خاصی شه.

اگه اول اسم خاص باشه و بعد کلمه تست، تا اسم رو بنویسم و TAB بزنم سریع به اسم فایل میرسم و این خوبه. :)
👍10
CodeNaline S2E7 - Amin Ali
torham
کدنالین اپیزود هفتم، امین علی
تو این ایپزود با امین علی، یک بک‌اند کار ۱۹ ساله گپ زدیم که نزدیک ۱ ساله وارد بازار کار ایران شده :). سوالات رو پرسیدیم و درباره سختی و مسیر ورود به بازار کار ایران ازش سوال پرسیدیم.


این اپیزود در کست‌باکس
امین علی : @AminAlih47


🧠 @CodeNaline
💬 @TorhamDevCH
❤‍🔥3🔥1
این شما و این وبسایت تورهام ( دست و جیغ و هورا )
نکته : خودش کامل دارک، پس دارک‌مودها رو خاموش کنید.

مرسی از محمد دری که در این مسیر من را یاری کرد :).

فرانتش هم خودم و محمد زدیم با html و css خالص 🤝.

هنوز دارم کانفیگش میکنم پس حداکثر از فردا گیر بدید با تشکر

https://torham.tech/
🎉20👎1🥰1
CQS stands for Command Query Separation, a principle introduced by Bertrand Meyer in his book "Object-Oriented Software Construction." It states that..

A method should either be a command that performs an action OR a query that returns data, but not both.

This helps to maintain a clear separation of concerns and makes the code easier to understand and maintain.
👍8
وقتی سوییچ می‌کنم روی پروژه‌ای، سعی می‌کنم یبار git log —reverse بگیرم ببینم چجوری پروژه شروع شده.. مود توسعه‌دهنده چجوریا بوده. 😁

پ.ن: توی تصویر، اولین کامیت مسیج زده‌شده روی پروژه Git رو می‌بینید! (شیرین‌کاری ستون توروالدز)
🗿14🤣12👍21🔥1
Forwarded from Sonia Software Notes (Anna😻)
😁33🤣3💔1
Creating is easy.
Dare to develop it.
👍17
از localhost استفاده نکنید!

توی تقریبا تمام سیستم‌عامل‌ها و اینترفیس‌های شبکه، localhost دو آدرس آی‌پی v4 و v6 برمیگردونه و اکثر ابزارها و فریم‌ورک ها میان اول v6 رو تست می‌کنن، اگه جواب نداد و fail شد، میرن سراغ v4.

IPv4 -> 127.0.0.1
IPv6 -> ::1

این به این معنیه که یه عملیات lookup این وسط انجام میشه و خب یکم زمان‌بره. اگه سر چک کردن IPv6 به Failure بخوره، بازم زمان‌بره. حالا اگه اون فریم‌ورک یا ابزار خاص فقط v6 رو چک کنه و بیخیال v4 بشه چی؟!‌ ممکنه دوباره Failure بخوره و سیستم اونجور که باید، کار نکنه.

حال چه کنیم..؟!

خیلی راحت، از 127.0.0.1 استفاده کنید. دیگه نه فریم‌ورکی lookup انجام می‌ده (چون آدرس IP هست نه HOSTNAME) نه چیزی Fail میشه.

More: https://youtu.be/98SYTvNw1kw
👍22🤔6
از یه پکیج استفاده می‌کنم که داره هرجور که دلش می‌خواد اکسپشن ریز می‌کنه. هر اتفاقی در زمان ران کردن یکی از متدهاش رقم خورد داره یه RuntimeError صرفا با message های متفاوت ریز میکنه. مثل چنین چیزی:

try:
...
except SomeError:
raise RuntimeError(message)

هیچوقت اینجوری اکسپشن ریز نکنید. حالا من، چجوری این مدل Exception رو هندل کنم؟ بجاش مثل یه دولوپر خوب، از Exception ارثبری کنید و اون تایتل خاص رو raise کنید مثلا:
/exceptions/runtime.py
class ModelNeedsRetrain(Exception): ...

——-

/main.py
from exceptions.runtime import ModelNeedsRetrain

try:
...
except SomeError:
raise ModelNeedsRetrain(message)

اگه اینجور باشه، من این سمت راحت می‌تونم متوجه شم درد از کجاست و به خوبی هندلش کنم ولی صرفا با messageی که یه exception داره ریز می‌کنه چطور متوجه داستان شم؟ :)
👍13👌1
👌18
Forwarded from Django Expert (Mehran Tarif)
‏متاسفانه صابر راستی‌کردار، خالق فونت‌های وزیر‌ متن (همون فونت زیبایی که روی تلگرام دسکتاپ و گوگل‌داکز و... به رایگان ازش استفاده می‌کنیم) و گندم و شبنم و کلی فونت دیگه، به سرطان مبتلا شده و در وبلاگش در این مورد مطلبی نوشته:
مشاهده مطلب در وبلاگ راستی‌کردار

اگر از فونت‌هاش استفاده می‌کنیم، شاید الان دونیت (حمایت مالی) ما بیشتر از قبل به کارش بیاد.
لینک دونیت:
payping.ir/@saber

🌱 صابر راستی کردار، از جمله بچه های گل روزگار هست که وب فارسی مدیونشه، تنهاش نمیذاریم.

@DjangoIR
〰️〰️〰️〰️〰️〰️〰️
© @DjangoEx |
2.42K💔542😁7❤‍🔥1
دمت گرم!
56👍8
wtf 3.11?? :/
😁15🤔2
Forwarded from Python BackendHub
یک نکته ای که اضافه کنم اینه که اگه انگلیسی بلد نباشین همیشه از دنیا چند پله عقب ترین
یعنی تا داک فست ترجمه نشده نمیتونید بخونید
تا آموزش K8s فارسی نیاد نمیتونید یاد بگیرین
تا آموزش داکر فارسی نیاد نمیتونید یاد بگیرین
تا Mojo داکش فارسی نشه یا اموزش نیاد نمیتونید یاد بگیرین..
هیچوقت doc string رو نمیتونید بخونید.

پس هرچقدر برنامه نویس خوبیم که بشید هرچند احتمالش کم, اما همیشه عقبین از دنیا.

@ManiFoldsPython
👍34👌2🤡2
Forwarded from Compass (Raymond)
This media is not supported in your browser
VIEW IN TELEGRAM
Manual memory management 😂😂😂
#fun
🤣20👍2
Compass
Manual memory management 😂😂😂 #fun
یه زمان، سیستم توی سی اینجور بود که شما باید از Malloc استفاده می‌کردید و از CPU درخواست فضا از رم واسه متغیرتون می‌کردید. بصورت دستی ست می‌کردید که فلان متغیر، فلان قدر از رم رو (به بایت) بهش اختصاص بده.

int age = malloc(32670) // 32kb

و باید حتما یادتون می‌موند وقتی که کارتون با این متغیر (دیتا) تموم شد، حتما این رفرنسش رو پاک کنید تا اون بلاک از مموری هم پاک شه.

free(age) // used to free the memory block

حالا این وسط یه سری بدبختیا بود..

- اگه برنامه‌نویس یادش می‌رفت فانکشن free رو ران کنه: خب خیلی طبیعیه که اگه یادش می‌رفت free-up کنه، به مموری لیک می‌خوردیم. گاها دیدید RAM Resource پر میشه و سیستم دیتا رو روی Swap نگه‌داری می‌کنه؟ دقیقا همون لحظه‌س.

- اگه برنامه‌نویس بلافاصله بعد از تعریف متغیر، free رو کال می‌کرد: به راحتی اون بلاک از مموری آزاد می‌شد و شما اگه جلوتر مقدار متغیر رو چاپ کنید ممکنه یه دیتاهایی پرینت شن که خیلی عجیب و غریب باشن..!! (درواقع ممکنه دیتاهایی باشن که توسط دیگر پروسه‌ها دارن توی اون بلاک از رم نگه‌داری میشن)

- اگه برنامه‌نویس دو بار free رو کال کنه: اگه بار اول فری کال شه، بلاک رم آزاد میشه و دیتایی که داخلشه از بین میره. فرض کنید بین free اول و free دوم یه وقفه ایجاد شه و سیستم‌عامل یا هر پروسه دیگه‌ای بیاد و دقیقا توی اون بلاک از رم یه دیتای حساس قرار بده. بلافاصله بعد از اینکه free دوم ران میشه، اون دیتای حساس هم از بین میره و پروسه عملا به فنا می‌ره و این اصلا خوب نیس!

خلاصه امروز که می‌بینید خیلی راحت زبان‌ها این Memory Management رو هندل می‌کنن، همچین دارک هیستوری پشت قضیه بوده.. دلیلشم اینه که سیستم‌عامل یکم واسش دردسر داره که بتونه منیج کنه مموری رو. واسه همینه که اکثر استراتژی‌های فری آپ کردن مموری توسط خود زبان‌های برنامه‌نویسی انجام میشه.
👍16👌3👎2