𝐶𝑜𝑑𝑒 𝐶𝑎𝑡
136 subscribers
48 photos
37 videos
3 files
20 links
A cat 🐈‍⬛ wandering through the world of code.

Python • Django • Web • Tech •BackEnd
ــــــــــــــــــــــــــــــــــــــــــــــــــ
The Margins Channel:
@HashiaHa
Discussion:
@Hashia0

Directory: t.me/CodeCat_Dev?direct
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
توی این کلیپ نشون می‌دم چطور یه پروژه جدید به سایتم اضافه می‌کنم و بعد حذفش می‌کنم 🎯

همه‌ش از داخل پنل ادمین جنگو — بدون یه خط کد اضافه.

واقعاً هر بار انجامش می‌دم ذوق می‌کنم چقدر راحته 😍

@MPL_Code
راهنمای آپلود پروژه روی گیت‌هاب

از واجب ترین مواردی که هر برنامه نویسی باید بلد باشه اینجا میتونید بخونید
🔗. Link

@MPL_Code
Forwarded from Click University (Mina Barati)
هوش مصنوعی سرعت کدنویسی رو بالا برده، اما GitLab ترمز کشید.
اینجا بخونید
🔗 Link

@ClickUniversity
خبر خوب برای پایتونی ها 🐍

مستندات رسمی پایتون حالا به‌طور کامل به فارسی در دسترس قرار گرفته است.

این پروژه حاصل تلاش گروهی از برنامه‌نویس‌های داوطلب (با هماهنگی آقایان علیرضا شعبانی و سپهر رسولی) است که با استانداردهای رسمی پایتون (PEP 545) پیش رفته‌اند.
این مستندات شامل ترجمه کامل راهنمای رسمی پایتون (از مباحث پایه تا پیشرفته و کتابخانه استاندارد) است و با نسخه ۳.۱۴ هماهنگ شده است.

برای مطالعه و استفاده می‌تونید به لینک پایین مراجعه کنید.

🔗 [لینک]

@MPL_Code
فرق کیبورد یک توسعه دهنده با کیبورد یک وایب کدر 😑

@MPL_Code
چرا توی جنگو باید اسم پوشه Template رو تکرار کنیم؟

اینجوری:
polls/templates/polls/index.html

(یعنی یک بار اسم اپ، و دوباره داخل تمپلیت هم همون اسم!)

مشکل چیه؟
فرض کن دو تا اپ داری: polls و blog. هر دو هم یه فایل index.html دارن. جنگو برای پیدا کردن تمپلیت، میره توی همه پوشه‌ها می‌گرده و اولین فایلی که اسمش match کنه رو برمی‌داره!
یعنی ممکنه کد اپ polls رو اجرا کنی ولی صفحه‌ی blog به کاربر نشون داده بشه! 🤦‍♂️

✅ راه‌حل چیه؟ (Namespacing)
باید برای تمپلیت‌ها «فضای نام» (Namespace) درست کنیم. یعنی فایل‌ها رو داخل یک زیرپوشه‌ی هم‌نام با اپ بذاریم:
📁 polls/templates/polls/index.html
📁 blog/templates/blog/index.html

💡 نتیجه:
الان توی views.py وقتی می‌نویسی
render(request, "polls/index.html")، 

جنگو دقیقاً می‌دونه باید کدوم فایل رو باز کنه و دیگه هیچ تداخلی پیش نمیاد.

پس یادت باشه: همیشه تمپلیت‌ها رو داخل پوشه‌ی هم‌نام اپ قرار بده!
#جنگو

@MPL_Code
Forwarded from ~حاشیه~ (Mina Barati)
بعد از حدود دو هفته فعالیت مداوم در لینکدین، به یه نتیجه جالب رسیدم:

هرچقدر بیشتر از مسیر پیشرفت، موفقیت‌ها و کارهایی که انجام می‌دید منتشر کنید، بیشتر دیده می‌شید.
من توی این مدت چیزهای دیگه‌ای هم از تجربه‌هام نوشتم؛ چیزهایی که فکر می‌کردم شاید برای بقیه هم مفید باشه، اما خیلی دیده نشد.
ولی وقتی یک پروژه ساده رو به پایان رسوندم و نتیجه‌ش رو منتشر کردم، بازدید خیلی بیشتری گرفت.
شاید به همین دلیله که ما در شبکه‌های اجتماعی، بیشتر موفقیت‌های بقیه رو می‌بینیم تا شکست‌ها، سردرگمی‌ها و روزهای سختشون.
ما معمولاً نتیجه‌ی مسیر آدم‌ها رو می‌بینیم، نه تمام مسیری که طی کردن.
پس چیزی که در فضای مجازی می‌بینیم، لزوماً تمام واقعیت زندگی یا مسیر حرفه‌ای یک نفر نیست؛ فقط بخشیه که تصمیم گرفته با بقیه به اشتراک بذاره.
#لینکدین

@Hashaiha
اگه موقع یادگیری برنامه نویسی یا حالا هر موضوعی دارید نوت برداری می‌کنید، حتما حداقل دوبار مرور اش کنید اینکار باعث میشه نوت برداری تون بی فایده نباشه :)

@MPL_Code
یه تکنیک میخام بهتون بگم، در کنار اینکه زبان برنامه نویسی مورد نظرتون رو تخصصی یاد میگیرید، زبان انگلیسی تون هم تقویت میشه:

برید داکیومنت همون زبان رو بخونید شاید اوایل فکر کنید سخته و متوجه نشید ولی همین موضوع یه نکته داره ، مواردی که متوجه نمی‌شید رو با گوگل ترانسلت ترجمه کنید نوت برداری کنید، کلمه به کلمه و جمله به جمله همه رو تا درک نکردید و نفهمیدید به آسونی ازش نگذرید، اینطوری به دانش برنامه نویسی و زبان انگلیسی تون اضافه میشه،
البته هرچند AI هست و در موارد خیلی پیچیده میتونید ازش بخواید براتون توضیح ساده یی بده، ولی هیچی بنظر من جای روش های قدیمی و خاک خورده رو نمیگیره، این مسیر مداومت میخاد و شما تهش به پیر(متخصص) مسیر خودتون تبدیل میشید.
#تکنیک
@CodeCat_Dev
This media is not supported in your browser
VIEW IN TELEGRAM
اگه تو مسیر یادگیری هستی و نمیدونی گام بعدی تون چه چیزی یادبگیرید یا کلا کدوم مسیر رو برید این سایت عالیه:
roadmap.sh

و اگه پایتون رو انتخاب کردید و هدف بعدی تون جنگو هست این ریپو ادامه مسیر رو براتون چیده:
https://github.com/HHHMHA/django-roadmap

@CodeCat_Dev
Media is too big
VIEW IN TELEGRAM
از همون اول، برنامه‌نویسی رو انتخاب کردم چون از ساختن لذت می‌بردم.
از اون لحظه‌ای که کدِ لعنتی بالاخره کار می‌کنه و یه چیزی از هیچ ساخته می‌شه — چیزی که قبلش وجود نداشت.
حالا هوش مصنوعی اومده و همه می‌گن «دیگه لازم نیست خودت کد بزنی».
می‌گن سریع‌تره، ارزون‌تره، بی‌خطاست.
شاید راست بگن. شاید بازار عوض شده. شاید کارفرماها دنبال سرعت باشن، نه سلیقه.
ولی من ترجیح می‌دم خودم این کار رو انجام بدم.
نه از سر لجبازی.
از سر عشق.
چون وقتی خودم می‌نویسم، می‌فهمم. وقتی می‌فهمم، رشد می‌کنم. وقتی رشد می‌کنم، زنده‌ام.
می‌دونم آدم‌هایی هستن که مثل من فکر می‌کنن.
و اگه هم نباشن؟ برام مهم نیست.
حتی اگه باعث بشه کارفرما منو نخواد، حتی اگه بیکار بمونم —
باز هم همون کاری رو می‌کنم که بهش علاقه دارم.

چون موفقیت برای من یعنی رضایت خودم، نه فقط تأیید بازار.

🐾 @CodeCat_Dev
امروز فهمیدم یکی از خطرناک‌ترین دشمنان برنامه‌نویس‌ها باگ‌های پیچیده نیستن؛ یه حرف بزرگ و کوچیک هست.
من توی مدل نوشته بودم:
Product
بعد توی Serializer با اعتمادبه‌نفس نوشتم 🤣
product
جنگو هم گفت: «پیشی جونم همچین فیلدی نداریم.»
من: «چطور نداریم؟ خودم ساختمش!»
جنگو : «آره، ولی اسمش Product ـه، نه product...»
البته این اشتباه منو اینطوری بهم‌ نگفت دو ساعت سرش خودم رو به این در و اون در زدم
خلاصه چند ساعتی زندگی‌مو مرور کردم و فهمیدم تمام این مدت داشتم سر P و p با فریم‌ورک بحث می‌کردم.
درس امروز:
پایتون به حروف بزرگ و کوچک رحم نمی‌کنه.
این‌دو تا Product و product برای پایتون یکی نیستن.
یک حرف کوچیک، یک ارور بزرگ.
پ.ن: بنده این موضوع رو میدونستم ولی خب پیش میاد 🤣

🐾 @CodeCat_Dev
🐍 یه قابلیت کاربردی پایتون که باعث میشه کد تون تمیزتر بشه
تا حالا خواستید چند مقدار رو هم‌زمان از یک لیست بردارید و شماره‌ی هر کدوم رو هم داشته باشید؟

به‌جای این:
names = ["Ali", "Sara", "Mina"]

for i in range(len(names)):
print(i, names[i])

پایتون یک راه تمیزتر داره: enumerate() 👇
names = ["Ali", "Sara", "Mina"]

for index, name in enumerate(names):
print(index, name)

خروجی:
0 Ali
1 Sara
2 Mina

حتی می‌تونید شماره‌گذاری رو از ۱ شروع کنید:
for index, name in enumerate(names, start=1):
print(index, name)

خروجی:
1 Ali
2 Sara
3 Mina

نکته: enumerate() وقتی خیلی کاربردیه که هم‌زمان به خود مقدار و شماره/ایندکس آن نیاز دارید؛ بدون اینکه مجبور باشید با range(len(...)) کار کنید.

🐾@CodeCat_Dev
شده بخوایید چند تا ترمینال تو VSCodeهمزمان باز کنید؟
اینجایی که تو عکس خط کشیدم اینکار رو خیلی تمیز انجام میده

🐾 @CodeCat_Dev
وقتی فقط سر یک اسمگذاری اشتباه متغییر پنیک می‌کنی:🤭🫣

🐾 @CodeCat_Dev
Tirishko
Heydoo Hedayati
عاشق جنوب و لهجه شون م

🐾 @CodeCat_Dev