جنگولرن – Telegram
جنگولرن
4.17K subscribers
326 photos
89 videos
33 files
626 links
آموزش Django و بستگان
-مفاهیم پر کاربرد پایتون
-مفاهیم مهندسی نرم افزار
-آشنایی با تجربه حرفه ای ها
-آشنایی با راهکارهای حرفه ای ها برای افزایش پرفورمنس
و...
اگه سوال داری به @miladhzz پیام بده.
Download Telegram
کلاس Meta رو توی جنگو حتما دیدید

کسی میتونه بگه چرا جنگو تصمیم گرفته برای مشخص کردن model
از Meta استفاده کنه؟
چرا از class attribute ها استفاده نکرده؟
مثل مشخص کردن مدل توی جنریک ویوها

ویرایش:
کامنت هارو بخونید
3🔥1🥱1
چرخه حیات جنگو

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

بد نیست ببینیدش، تقریبا 5 دقیقه اس

https://www.aparat.com/v/k32189c

@codbama
5👎1🥱1
🚀 رویداد Soft Craft | اپیزود اول: کارگاه داکر برای مهندسین نرم‌افزار 🚀


🎯 مجموعه رویدادهای Soft Craft با هدف تقویت مهارت‌های مهندسی نرم‌افزار برگزار می‌شه و اپیزود اول به یکی از مهم‌ترین ابزارهای دنیای DevOps، یعنی داکر (Docker) اختصاص داره.

🐳 توی این کارگاه، به‌صورت عملی یاد می‌گیرید:

• داکر چی هست و چه مسئله‌ای رو حل می‌کنه؟
کانتینر، ایمیج، داکرفایل و داکر هاب چطور کار می‌کنن؟
• چطور سرویس‌هامون رو با docker-compose‌ مدیریت کنیم؟

این جلسه برای دانشجوها و برنامه‌نویس‌هایی مناسبه که می‌خوان وارد دنیای حرفه‌ای توسعه و استقرار نرم‌افزار بشن، می‌خوان پروژه‌هاشون رو قابل‌حمل‌تر و قابل‌اعتمادتر اجرا کنن و یک قدم به دنیای DevOps نزدیک‌تر بشن 🔥

👤 مدرس: احمد رفیعی (موسس DockerMe و مهندس دواپس)
🗓 پنج‌شنبه و جمعه ۲۰ و ۲۱ آذر ۱۴۰۴
ساعت ۱۹:۳۰ تا ۲۱:۳۰
📍 آنلاین در بستر گوگل‌میت


🔗 جهت کسب اطلاعات بیشتر و ثبت‌نام:
https://east-guilan-ce.ir/events/softcraft-e01-docker-for-developers

در صورت وجود سؤال یا ابهام به پشتیبانی انجمن پیام بدید 🫱🏼‍🫲🏽

🆔 @GuilanCE
3
در جنگو برای GROUP BY از values استفاده می کنیم.
اگه درک values و روش درست استفاده اش برای شما سخته میتونید از لینک زیر استفاده کنید.
کوئری های SQL رو کنار دستورات ORM جنگو قرار داده که فهم موضوع رو راحت تر میکنه.
https://hakibenita.com/django-group-by-sql
2👍1
نکته از کتاب جنگو دیزاین پترن درباره اپ های جنگو



Ideally, each app must be reusable and loosely coupled to others. You can create as many apps as you need. Never be afraid to add more apps or refactor the existing ones into multiple apps. A typical Django project contains 15-20 apps.

البته نمیشه گفت پروژه ای که اپ زیاد داره، کارش درسته، یا برعکس

@codbama
👍62👎1
This media is not supported in your browser
VIEW IN TELEGRAM
تلفظ درست جنگو 😎
The "D" is silent.

@codbama
🔥19😁11👍1
تفاوت OpenAPI و Swagger چیه؟

اگه تا حالا از swagger برای مستندسازی API هاتون استفاده کرده باشید. قطعا OpenAPI هم کنارش به چشمتون خورده.
میشه بگیم؛ OpenAPI یه استاندارد برای توصیف API هست و Swagger مجموعه ابزارهایی هست که از OpenApi استفاده میکنه و بصری سازی و... میکنه.
OpenAPI = Specification
Swagger = Tools for implementing the specification

این یعنی ما میتونیم به جای swagger از ابزارهای دیگه ای هم استفاده کنیم. مثل redoc یا حتی خودمون ابزاری شبیه به اینا بسازیم.

جزییات بیشتر رو از لینک زیر بخونید:
https://swagger.io/blog/api-strategy/difference-between-swagger-and-openapi/


@codbama
2👍641
کاربرد db_default در جنگو

تبلیغ 👈🏻 @codbama

توی Django 5 قابلیتی داریم به اسم db_default که یعنی مقدار پیش فرض فیلد مستقیما توی خود دیتابیس تعیین بشه.
فرقش با default اینه که default فقط داخل Django اعمال میشه ولی db_default حتی وقتی داده با SQL یا سرویس دیگه ای وارد دیتابیس میشه هم کار میکنه.

این مثال داکیومنت Django هست:
from django.db import models
from django.db.models.functions import Now, Pi


class MyModel(models.Model):
age = models.IntegerField(db_default=18)
created = models.DateTimeField(db_default=Now())
circumference = models.FloatField(db_default=2 * Pi())

اینجا دیتابیس خودش سن رو 18 میذاره
زمان ایجاد رکورد رو ثبت میکنه
و حتی مقدار 2 ضربدر پی رو هم همونجا حساب میکنه.

خلاصه db_default یعنی پیش فرض واقعی و مطمئن توی دیتابیس 😊
👍184
چند سطر از کتاب جنگو دیزاین پترن

تبلیغ 👈 @codbama

بعضی وقتها ممکنه مدل های ما کدشون زیاد بشه (چاق بشن)
اگه چندتا مدل توی یه فایل داشته باشیم میتونیم برای هر کدوم یک فایل مجزا ایجاد کنیم
و برای اینکه مثل قبل مثلا بنویسیم import models.Post از فایل init.py کمک میگیریم.
124👍2
استفاده از GenAI در توسعه نرم‌افزار، خوب، بد، زشت!

این سه پست رو از کانال techafternoon حتما بخونید.
کانال امین مصباحی هست. الان توی Tesla شغلش اینه:
Staff Software Engineer 🔥🔥🔥

فصل اول: The Bad: بدهی فنی‌ای که نمی‌بینیم
https://news.1rj.ru/str/techafternoon/401

فصل دوم: The Ugly: تبعات طولانی‌مدت
https://news.1rj.ru/str/techafternoon/402

فصل سوم: The Good: موفقیت در سازمان‌های بالغ
https://news.1rj.ru/str/techafternoon/403

اینم کانال یوتیوبش، فکر کنم زیر 210 نفر ممبر داره
البته مطالب هر چه تخصصی تر باشه، ممبر کمتره، مثل جنگولرن😁

متن پست هاش رو توی کامنت های همین پست میزارم
🔥4
✔️ راهنمای کلین کد در پایتون

کتاب کلین کد معروف آقای Robert C. Martin برای هر برنامه نویسی از واجباته، اما چون درمورد جاوا صحبت میکنه، برای برنامه نویس های پایتون لذت بخش و خیلی بدردبخور نیست.
این ریپو راهنمای بسیار خوب و دقیقی برای کد تمیز نوشتن در پایتون هست که همون کتاب کلین کده، اما به زبان پایتون

از خوندنش لذت ببرید
👉 Link:  https://github.com/SepehrRasouli/clean-code-python

بچه‌ها سپهر کل ریپو کلین کد پایتون رو به فارسی ترجمه کرده،‌ برای حمایت ازش استار بدید 🔥✌️

DjangoEx
👍91
تصویر strategy design pattern

از کتاب fluent python

تا حالا از این پترن استفاده کردی؟
بله 👍
خیر 👎
👎15👍11
یلدای همه مبارک ❤️
31👎1
یه مطلب خوب در مورد Fixtures در جنگو

تبلیغ 👈 @codbama

خیلی خلاصه بخوام بگم. با fixtures میتونیم seed data از روی فایل انجام بدیم. کاربردش توی تست بیشتر به چشم میاد

https://dev.to/hussainislam/django-fixtures-seeding-databases-5ai
دیشب معنی بخشی از یه شعر محلی رو از chatGPT پرسیدم

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

خدا بخیر بگذرونه...
😁221
در حال بررسی کدهای این ریپازیتوری (https://github.com/miladhzz/DRF-TDD-example) بودم که:
✔️ توی تنظیمات پروژه اش با TEST_RUNNER آشنا شدم.

به صورت کلی بخوام بگم: ما برای اجرای تست ها از ابزار داخلی خود جنگو ( که با دستور manage.py test اجرا میشه )  استفاده میکنیم. اما جنگو این امکان رو به ما میده که از فریمورک های تست دیگه هم استفاده کنیم.

اتفاقا توی همین پروژه با nose آشنا شدم و دارم در مورد تفاوتش با pytest تحقیق میکنم.
در مورد TEST_RUNNER میتونید از لینک زیر بیشتر بخونید (داکیومنت جنگو):
https://docs.djangoproject.com/en/4.1/topics/testing/advanced/#using-different-testing-frameworks

پروژه رو فورک کردم که داشته باشیمش :)

تبلیغ 👈 @codbama
5