جنگولرن
3.82K subscribers
287 photos
74 videos
31 files
557 links
آموزش Django و بستگان
Download Telegram
شما برای ساختن محیط ایزوله از کدوم استفاده میکنید؟
virtualenv or python -m venv or pipenv
لینک زیر رو بخونید. هر کسی دلیل خودش رو گفته. من خودم از python -m venv استفاده میکنم.
https://stackoverflow.com/questions/41573587/what-is-the-difference-between-venv-pyvenv-pyenv-virtualenv-virtualenvwrappe
پترن یا متدولوژی ۱۲ فاکتور چیه؟
The Twelve Factors

توی لینک زیر آقای محمد قدسیان این ۱۲ اصل رو خیلی ساده و قشنگ توضیح دادن.
از گیت هاب https://github.com/arocks و ریپو edge به این ۱۲ اصل رسیدم.

لینک مقاله فارسی در ویرگول:
https://virgool.io/@mohammad.ghodsian/twelve-factor-app-methodology-blw5cti9tkem
Forwarded from Django Expert (Mohammad Babazadeh)
✔️ معماری مونولیتیک چیست؟

بررسی ۳ الگوی طراحی رایج در معماری های یکپارچه نرم افزار:
1. Single Monolithic
2. Modular Monolithic
3. Layered Monolithic
پیشنهاد میکنم این ویدئو رو حتما ببینید چون به درک بهتری از معماری ماژولار و لایه بندی شده فریمورک Django میرسید.

🖥 مشاهده در یوتوب
👉 Link: https://youtu.be/QnBZnW3qzwk

#monolithic #software_architecture #bobycloud
〰️〰️〰️〰️〰️〰️
©@DjangoEx | @AI_Python | @BobyDotCloud
This media is not supported in your browser
VIEW IN TELEGRAM
تلفظ درست جنگو - از لینکدین علی خلف نژاد
👍1
The Power of Django ORM
مقاله ای در مورد جنگو از صدرا یحیی پور
در مورد Django ORM

- What is ORM
- Use Exceptions in get()
- Django connection
- Iterators
- Set The Timeout
- ORM Best Tricks
-- F() Function
-- Aggregations
-- len() or count()
-- bulk() For Ever

لینک:
https://imsadra.me/the-power-of-django-orm
👍3
مطلبی از دانیال کیماسی، مهندس نرم افزار از کوئرا - Django و Nextjs

ما توی کوئرا حدود یک سالی هست که از Nextjs استفاده می‌کنیم. از همون ابتدا برای integration بین Django و Next.js پکیجی رو توسعه دادیم که به تازگی داخل گیت‌هاب منتشر کردیم.
داخل این مقاله شیوه انجام این کار رو توضیح دادم و همینطور یه راهنمایی اولیه برای استفاده از این پکیج قرار داده شده.

لینک مقاله در Medium:
https://medium.com/@danialkeimasi/django-next-js-the-easy-way-655efb6d28e1

لینک ریپو گیت‌هاب:
https://github.com/QueraTeam/django-nextjs
سال 1401 رو با مطلبی در مورد django migrations شروع کنیم.
فرض کنید 2 برنامه نویس علی و رضا همزمان روی یک یا چند مدل دارن تغییرات میدن و هر کدوم مایگریشن های خودشون رو میسازن و روی دیتابیس لوکال مایگریت می کنن. بعد از تکمیل کارشون همه چی رو commit و push میکنن.
حالا ممکنه وقتی میخواهیم روی سرور مایگریت کنیم خطای Conflicting migrations detected رو ببینم. دلیلش هم مشخصه.
راهکار شما اینجا چیه؟
- بعضی ها کلا فولدر migrations رو ignore میکنن. (در این صورت اگه data migration داشته باشیم به فنا میره)
- بعضی ها توی تغییرات دیتابیسی سخت گیری میکنن و برنامه نویس اجازه نداره بدون هماهنگی تغییری در مدل ها اعمال کنه. (البته اگه قبل از کدنویسی تحلیل درستی داشته باشیم تغییرات حین توسعه به حداقل میرسه)
- بعضی ها هم تغییرات دیتابیس رو دستی روی سرور اعمال میکنن. (یکم مطمئن نیست و ممکنه باعث خطا بشه)

اما جنگو توی داکیومنت ها صراحتا گفته که مایگریشن ها جزئی از کدبیس هستن. پس نباید ignore کنیم.
جنگو کامند -merge رو برای مشکل conflict داره که می تونیم ازش استفاده کنیم.
مقاله زیر رو بخونید، در این مورد توضیح داده:
https://www.algotech.solutions/blog/python/django-migrations-and-how-to-manage-conflicts/
تفاوت 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/
👍4
Forwarded from Django Expert (Sadra)
متد setUp و tearDown در یونیت تستینگ پایتون!

در این پست سعی کردم یه نگاه به این قضیه داشته باشیم و ببینیم چطور میشه با استفاده از این دو متد، خوانایی تست ها رو یه لول بالاتر ببریم و DRY رو رعایت کنیم. تا اینجا اومدیم.. یه سر هم میزنیم به جنگو. اینکه جنگو درواقع چطور از این مکانیزم واسه ایجاد یک دیتابیس کش در کلاس TestCase خودش استفاده میکنه و یه محیط ایزوله برای اجرای تست ها میسازه!

اگه پست رو مفید دیدید، حتما به اشتراک بذارید. :)❤️

https://imsadra.me/setup-and-teardown-in-python-unit-testing

〰️〰️〰️〰️〰️〰️
©@DjangoEx
👍4👎1
پاسخ به سوال یکی از دوستان در مورد اینکه چطور بدون کارآموزی سطح خودمو بالا ببرم؟
اینقدر زیاد نوشتم که گفتم توی کانال هم منتشر کنم 😅

قطعا شما یه سری دوره و آموزش دیدید.
و احتمالا به سطح متوسط به پایین رسیدید.
الان جای اینکه کارآموزی بدون حقوق کنید.
توی جابینجا یا بقیه سایت های کاریابی ببینید برای جنگو کارها چیا لازمه.
✔️و بعدش حتما حتما حداقل ده یا بیست تا مصاحبه هم بدید.
همه رو هم انلاین مصاحبه بده که هزینه نداشته باشه.
برای اینکه دعوت به مصاحبه بشید (دقت کنید برای کارآموزی رزومه ندید برای برنامه نویس middle رزومه بدید)
✔️ برای هر فرصت شغلی (شرکت) رزومه مخصوص اون شرکت رو آماده کنید و از روی چیزهایی که می خوان رزومه بسازید. طوری که حداقل 90 درصد نیازهای اونارو پوشش بده. و روزمه های ارسالی رو تک تک نگه دارید.
قبل مصاحبه هم رزومه ارسالی برای اون شرکت رو نگاه کنید و در مورد چیزهایی که میخوان یکم مطالعه کنید.
توی مصاحبه ها و با توجه به سوالاتی که میپرسن متوجه میشید ایده آل ها چیا هستن (هر چند وقتی میرید توی شرکت همش اسپاگتی ان)
بعد از مصاحبه ها دو حالت داره. یا استخدام میشید به عنوان برنامه نویس متوسط یا نه
✔️اگه نه (که احتمال نه خیلی زیاده) همه نکات رو یادداشت میکنید و روی اونا خودتون رو قوی می کنید. این میشه کارآموزی در خانه
روش بالا یکم اخلاقی شاید نباشه 😅

✔️برای اینکه سطح خودتون هم بالا ببرید
- کتاب هایی مثل جنگو دیزاین پترن. two scope. django api و... رو بخونید.
- افراد حرفه ای (واقعی) رو دنبال کنید
- کنفرانس های djanocon هم توی یوتیوب ببینید.
- ریپازیتوی های جنگو اوپن سورس با star بالا رو پیدا کنید و با کدنویسی شون آشنا بشید.
👍20
چند سطر از کتاب جنگو دیزاین پترن
بعضی وقتها ممکنه مدل های ما کدشون زیاد بشه (چاق بشن)
اگه چندتا مدل توی یه فایل داشته باشیم میتونیم برای هر کدوم یک فایل مجزا ایجاد کنیم
و برای اینکه مثل قبل مثلا بنویسیم import models.Post از فایل __init__.py کمک میگیریم.
👍12
اپ core در پروژه فروشگاه اوپن سورس saleor که با جنگو توسعه داده شده!
✔️ معمولا توی core کارهای فریمورکی رو انجام میدیم. یعنی چیزهایی که مربوط به پروژه هست و میتونیم توی پروژه های دیگه هم استفاده کنیم، توی core می گذاریم.
یعنی کدهایی مثل کارهای لاگ گیری. مثل caching مثل jwt (کدهای resuable)
✔️ اینها چیزهایی هستن که ممکنه توی بقیه پروژه ها هم بنویسیم پس میبریم توی یه اپ به اسم core

لینک پروژه saleor در گیت هاب (فورک شده):
https://github.com/miladhzz/saleor
👍8
اگه نرمال سازی دیتابیس رو خونده باشید با کلید اصلی و کلید کاندید و ... آشنا هستید
بعضی مواقع کلید اصلی میتونه ترکیبی از چند فیلد باشه
یعنی ممکنه جدول ستون id به عنوان کلید اصلی نداشته باشه و به جاش دو یا چند تا فیلد با هم، یک کلید اصلی (primary key) رو ایجاد کنند
✔️ همونطوری که می دونید جنگو جفت کلید رو به صورت مستقیم پشتیبانی نمی کنه
اما برای هندل کردن این موضوع unique_together رو ارائه کرده و ما میتونیم توی مدل ها ازش استفاده کنیم و دو یا چند تا فیلد رو با هم unique کنیم
وقتی دو تا فیلد با هم unique_together میشن دیگه این دو تا ستون با همدیگه تکرار نمیشن. دقیقا همون رفتار جفت کلید اصلی توی دیتابیس هارو داره


برای مطالعه بیشتر در موردش لینکهای زیر رو بخونید:

https://docs.djangoproject.com/en/4.0/ref/models/options/#unique-together

https://gsilvapt.iss.one/posts/django-how-to-properly-modify-unique-together/
👍2
اگه میخواهید لاگین و پارامترها و... یه رکوئست رو توی گوگل کروم، کامل کپی کنید و توی postman ازش استفاده کنید این گزینه رو بزنید.
توی postman هم میتونید ایمپورتش کنید.
دیگه لازم نیست توی postman توکن بگیریم و هدر ست کنیم و...
لکن #منهای_جنگو 😁
1
Testing
Django Expert
فایل گفت و گو با مهندس سروش سرآبادانی در خصوص تست نویسی

© @DjangoEx
جنگولرن
Django Expert – Testing
لینک پروفایل آقای سروش در Linkedin

https://www.linkedin.com/in/soroosh-sarabadani/
👍1
Forwarded from Django Expert (Boby Cloud)
✔️ بچه ها توی کانال گفتیم سفته ندید و اگر میدید خیلی مراقب باشید که سفید نباشه و تا جایی که میتونید اصلا سفته ندید.
شرکتی هم که سفته میخواد لیاقت اینو نداره براش کار کنید.

ممنونم از آقا میلاد که جسارت به خرج دادند و این تجربشون رو به اشتراک گذاشتند حتما بخونید:

https://www.linkedin.com/posts/miladhzz_aebaepaesaevabraeqaezaepaezaexaepaex-aevagpaetabraeuaesaeq-activity-6935513680922988544-QxdY?utm_source=linkedin_share&utm_medium=member_desktop_web


© @DjangoEx
🤯13👍7
داره مارو میگه؟
ولی حرفش قابل تامل هست. و میشه یکم بهش فکر کرد.
نظر شما چیه؟ البته مهربانانه نظر بدید لطفا
💩11👍4👎1
جنگولرن
داره مارو میگه؟ ولی حرفش قابل تامل هست. و میشه یکم بهش فکر کرد. نظر شما چیه؟ البته مهربانانه نظر بدید لطفا
🤓 نظر شخصی من در مورد این مطلب:
من خودم همه چیزهایی که گفته رو پاس کردم.
قطعا ساختمان داده و طراحی الگوریتم و حتی ذخیره بازیابی سه تا درس مهم و مفید هستند.
و توصیه میکنم که اینارو یه بار بخونید (لازم نیست عمیق شید توی این ها)
اما در مورد این:
"فکر می کنید با یه فریمورک میتونید کارتون رو پیش ببرید و..."

آقا من اپراتورم، من کپی میکنم. باور کن من روز برنامه نویس هم هیچی استوری نکردم و نمیکنم 🤢
اما اگه یه فریمورک بتونه به پول در آوردن من کمک کنه و کاری کنه که من تمرکزم روی بیزینس پروژه باشه (نه Cross-cutting concern) قطعا از اون فریمورک نهایت استفاده رو میکنم.
👍12👏2🔥1
Forwarded from Django Expert (Sadra)
یونیت تستینگ در پایتون و بست پرکتیس‌ها 🔥

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

https://imsadra.me/unit-testing-in-python-and-best-practices

امیدوارم لذت ببرید. :) ❤️

〰️〰️〰️〰️〰️
© @DjangoEx |‌ @lnxpylnxpy
🔥3😢1
Forwarded from Django Expert (Boby Cloud)
✔️ کتاب هایی که آقای رمضانی عزیز در وبینار دیشب معرفی کردند

صحبتی هم که در رابطه با کتاب و نحوه مطالعه و آپدیت بودن ایشون بود هم بسیار جذاب بود که وبینار رو ببینید تا از زبان ایشون بشنوید.

پ ن: با تشکر از بچه های ftg-iran که یک سری از این کتاب هارو به فارسی ترجمه کردن و در گیتهاب گذاشتند.
https://github.com/ftg-iran

〰️〰️〰️〰️〰️
© @DjangoEx
👍4