Forwarded from ترجمه آزاد کتاب (Amirreza)
ترجمه کتاب Django for APIs به اتمام رسید! 🔥🔥🥳🥳
کتاب ترجمه شده رو میتونید از اینجا مطالعه کنید:
https://github.com/ftg-iran/dfa-persian
ممنون از همه رفقایی که توی این کار مشارکت کردند❤️(ترجمه/معرفی/طراحی جلد/مدیریت و...)
کتاب بعدی برای ترجمه Django Design Patterns and Best Practices هست که اطلاعات بیشتر رو اطلاع رسانی میکنیم.
لینک این کتاب: https://www.packtpub.com/product/django-design-patterns-and-best-practices/9781783986644
گروه ما: @ftg_iran
کانال ما: @free_translation
کتاب ترجمه شده رو میتونید از اینجا مطالعه کنید:
https://github.com/ftg-iran/dfa-persian
ممنون از همه رفقایی که توی این کار مشارکت کردند❤️(ترجمه/معرفی/طراحی جلد/مدیریت و...)
کتاب بعدی برای ترجمه Django Design Patterns and Best Practices هست که اطلاعات بیشتر رو اطلاع رسانی میکنیم.
لینک این کتاب: https://www.packtpub.com/product/django-design-patterns-and-best-practices/9781783986644
گروه ما: @ftg_iran
کانال ما: @free_translation
Forwarded from ترجمه آزاد کتاب (Amir Motahari)
ترجمه کتاب به اتمام رسید! 🥳
ممنون از همه رفقایی که توی این کار مشارکت کردند(ترجمه/معرفی/طراحی جلد/مدیریت و...)
اگر آماده اید بریم برای ترجمه کتاب بعدی، یعنی django for apis :)
https://github.com/ftg-iran/dfa-persian
اگر مایلید تمام فصل یا قسمتی از فصلی رو ترجمه کنید، یک issues ایجاد کنید، و اونجا درخواستتون رو ثبت کنید که یک وقت اشتباها چندنفر روی یک فصل/بخش کار نکنند.
پیشاپیش از همکاریتون ممنونیم ❤️
راستی به مناسبت اتمام ترجمه، قراره یک کتاب به یکی از اعضای کانال به انتخاب خودش به قید قرعه هدیه بدیم. شانس افرادی که در این ترجمه همکاری داشتن ضرب در ۳ میشه(خلاصه باید یک فرقی باشه 😁)
روش شرکت در این قرعه کشی رو در پست بعدی(که یکی دو روز دیگه ارسال میشه) اطلاع میدیم.
کتاب ترجمه شده رو میتونید از اینجا مطالعه کنید:
https://github.com/mthri/dfp-persian
ممنون از همه رفقایی که توی این کار مشارکت کردند(ترجمه/معرفی/طراحی جلد/مدیریت و...)
اگر آماده اید بریم برای ترجمه کتاب بعدی، یعنی django for apis :)
https://github.com/ftg-iran/dfa-persian
اگر مایلید تمام فصل یا قسمتی از فصلی رو ترجمه کنید، یک issues ایجاد کنید، و اونجا درخواستتون رو ثبت کنید که یک وقت اشتباها چندنفر روی یک فصل/بخش کار نکنند.
پیشاپیش از همکاریتون ممنونیم ❤️
راستی به مناسبت اتمام ترجمه، قراره یک کتاب به یکی از اعضای کانال به انتخاب خودش به قید قرعه هدیه بدیم. شانس افرادی که در این ترجمه همکاری داشتن ضرب در ۳ میشه(خلاصه باید یک فرقی باشه 😁)
روش شرکت در این قرعه کشی رو در پست بعدی(که یکی دو روز دیگه ارسال میشه) اطلاع میدیم.
کتاب ترجمه شده رو میتونید از اینجا مطالعه کنید:
https://github.com/mthri/dfp-persian
👍1
✅ یه مطلب کوتاه و مفید در مورد کش کردن در جنگو با استفاده از memcache .
استفاده از cache توی اکثر پروژه ها ضروری میشه. من تجربه استفاده از memcache رو دارم و واقعا تاثیرش توی خروجی فوق العاده بود
لینک مطلب در ویرگول:
https://vrgl.ir/AapbO
استفاده از cache توی اکثر پروژه ها ضروری میشه. من تجربه استفاده از memcache رو دارم و واقعا تاثیرش توی خروجی فوق العاده بود
لینک مطلب در ویرگول:
https://vrgl.ir/AapbO
ویرگول
نکتههای جنگویی - کش کردن - قسمت دوم
در قسمت قبلی پایهی سری مطالب نکات جنگویی رو آماده کردم. و در این مطلب و مطالب بعدی نکتههایی که ممکنه بدردمون بخوره رو با هم یاد میگیریم.ک…
👍2
سلام به همه.
ویدئوی جدید برنامه نویسی از پایه قسمت اول رو ساختم. و توی یوتیوب و آپارات منتشر کردم.
توی این ویدئو در مورد اینکه کامپیوتر چیه و انواعش صحبت کردم و دونه دونه قطعاتش رو توضیح دادم. از لینک های زیر می تونید ببینید.
❗️❗️❗️ سطح بسیار مبتدی ❗️❗️❗️
آپارات:
https://www.aparat.com/v/8pO3t
یوتیوب:
https://youtu.be/kRy8tLiCfak
ویدئوی جدید برنامه نویسی از پایه قسمت اول رو ساختم. و توی یوتیوب و آپارات منتشر کردم.
توی این ویدئو در مورد اینکه کامپیوتر چیه و انواعش صحبت کردم و دونه دونه قطعاتش رو توضیح دادم. از لینک های زیر می تونید ببینید.
❗️❗️❗️ سطح بسیار مبتدی ❗️❗️❗️
آپارات:
https://www.aparat.com/v/8pO3t
یوتیوب:
https://youtu.be/kRy8tLiCfak
آپارات - سرویس اشتراک ویدیو
برنامه نویسی از پایه قسمت اول - کامپیوتر چیست
توی این ویدئو در مورد کامپیوتر و انواع اون و قطعاتش صحبت می کنیم. یکم در مورد رم موبایل و یکم در مورد لپ تاپ هم گفتیم. قراره از پایه همه چیو یاد بگیریم تا یه برنامه نویس خوب بشیم.
👍5🤮1
✅ شاید برای شما هم اتفاق بیافتد!!!
چند روز پیش یکی از دوستان بعد از اینکه یوزر جنگو رو کاستوم کرده بود. توی حذف کاربرها مشکل داشت.
همین که وارد صفحه حذف میشد پیغام خطای متد str می اومد.
من ریموت زدم و مستقیم رفتم سراغ مدل کاستوم شده اش. اما همه چی اوکی بود.
بالاخره مجبور شدم دیباگ کنم و متوجه شدم توی متد str به username اشاره کرده و چون خودش صراحتا None کرده بود. لکن خطا میداد...!
برای اینکه خوب متوجه بشید، خطارو شبیه سازی کردم و یه ویدئو ازش گرفتم. (دیر وقت بود و نمیشد صحبت کنم بیصدا ببینید 🙂)
البته خود جنگو خطاهارو معمولا خوب نشون میده. آخر ویدئو مشخصه
نسخه جنگو 4.0.6 و پایتون 3.10.5
ویدئو 👇🏻👇🏻👇🏻👇🏻
چند روز پیش یکی از دوستان بعد از اینکه یوزر جنگو رو کاستوم کرده بود. توی حذف کاربرها مشکل داشت.
همین که وارد صفحه حذف میشد پیغام خطای متد str می اومد.
من ریموت زدم و مستقیم رفتم سراغ مدل کاستوم شده اش. اما همه چی اوکی بود.
بالاخره مجبور شدم دیباگ کنم و متوجه شدم توی متد str به username اشاره کرده و چون خودش صراحتا None کرده بود. لکن خطا میداد...!
برای اینکه خوب متوجه بشید، خطارو شبیه سازی کردم و یه ویدئو ازش گرفتم. (دیر وقت بود و نمیشد صحبت کنم بیصدا ببینید 🙂)
البته خود جنگو خطاهارو معمولا خوب نشون میده. آخر ویدئو مشخصه
نسخه جنگو 4.0.6 و پایتون 3.10.5
ویدئو 👇🏻👇🏻👇🏻👇🏻
This media is not supported in your browser
VIEW IN TELEGRAM
ویدئوی خطای str که بالاتر توضیح دادم. صدا نداره
👍8
یه اکشن هایی توی کد هستن که گاهی نیازه یا همه با هم انجام بشن یا هیچ کدوم.
که توی جنگو ما از #transaction_atomic واسه هندل کردنش استفاده میکنیم.
و این فقط مربوط به بخش های مالی پروژه نمیشه.
چون معروف ترین مثالی که واسه اش زده میشه مثال حساب بانکیه.
ولی شما فرض کنید که یک موجودیت teacher دارید که یک نوع از User هستش. شما واسه ساخت موجودیت تیچر ؛ اول یوزر رو میسازید ؛ بعد از اون هم تیچر رو. توی خط کد های پشت سر هم.
حالا در نظر بگیرید برنامه خط اول رو پشت سر میذاره ؛ یوزر داخل مدل یوزر ساخته میشه اما قبل از این که همین یوزر داخل مدل تیچر هم ساخته بشه ؛ کد کرش میکنه یا هر نوع اکسپشنی رخ میده.
اینجاست که شما با اطلاعات ورودی یک دیتای ناقص در دیتابیس تعریف کردید.
میخوام بگم استفاده از #transaction_atomic ها مختص شرایط خیلی خاصی نیست.
فقط کافیه یه کم راجع به ترنزکشن ها توی دیتابیس بدونید و روش استفاده ازش رو مطالعه کنید.
از لینکدین fateme Akrami
که توی جنگو ما از #transaction_atomic واسه هندل کردنش استفاده میکنیم.
و این فقط مربوط به بخش های مالی پروژه نمیشه.
چون معروف ترین مثالی که واسه اش زده میشه مثال حساب بانکیه.
ولی شما فرض کنید که یک موجودیت teacher دارید که یک نوع از User هستش. شما واسه ساخت موجودیت تیچر ؛ اول یوزر رو میسازید ؛ بعد از اون هم تیچر رو. توی خط کد های پشت سر هم.
حالا در نظر بگیرید برنامه خط اول رو پشت سر میذاره ؛ یوزر داخل مدل یوزر ساخته میشه اما قبل از این که همین یوزر داخل مدل تیچر هم ساخته بشه ؛ کد کرش میکنه یا هر نوع اکسپشنی رخ میده.
اینجاست که شما با اطلاعات ورودی یک دیتای ناقص در دیتابیس تعریف کردید.
میخوام بگم استفاده از #transaction_atomic ها مختص شرایط خیلی خاصی نیست.
فقط کافیه یه کم راجع به ترنزکشن ها توی دیتابیس بدونید و روش استفاده ازش رو مطالعه کنید.
از لینکدین fateme Akrami
👍3
❔ به نظر شما دلیل خطا چیه؟
کدها همین هستن و بیشتر از این نیست.
نیم ساعت درگیرش بودم (درگیر ۴ خط کد) 🤦🏻♂️
کدها همین هستن و بیشتر از این نیست.
نیم ساعت درگیرش بودم (درگیر ۴ خط کد) 🤦🏻♂️
👍1
📌 چنل برنامه نویسی سید و رفقا
کانالی پر از تجربه ها، اخبار و موارد فان برنامه نویسی هستش
🖥 @SEYED_BAX
عضو کانالش بشید. بیشتر مطالبش برنامه نویسیه 😁
حالا در کنارش شاید آموزش آشپزی، یا روش نقد کردن چک بی محل، یا ... هم یاد بگیرید.
کانالی پر از تجربه ها، اخبار و موارد فان برنامه نویسی هستش
🖥 @SEYED_BAX
عضو کانالش بشید. بیشتر مطالبش برنامه نویسیه 😁
حالا در کنارش شاید آموزش آشپزی، یا روش نقد کردن چک بی محل، یا ... هم یاد بگیرید.
❤4👍1
✅ تا حالا به api versioning توجه کردید؟
متاسفانه برخی از اشخاصی که drf آموزش میدن به این مسئله اشاره نمیکنن و دوستامون تو محیط کار بخاطر ساختار اشتباهی که برای پیاده سازی پروژشون انتخاب کردن چاه اولو برا خودشون و دومیو برا شخصی که قراره جایگزینشون بشه میکَنن.
فرض کنید در حال پیاده سازی پروژه ی صرافی هستید .
پروژتون طبق معمول یکسری app داره که ما رو یکیش focus میکنیم ،
مثلا payment app.
اشتباهی که بسیار رایجه پیاده سازی کلاس های drf تو views.py ساخته شده داخل payment app هست !
در حالی که با ساختن یه پوشه به اسم api
میتونیم کنترل بیشتری تو پیاده سازی داشته باشیم
و هر ورژن رو تو پوشه ی خودش و فایلای خودش پیاده سازی کنیم تا شرکت هایی که از خدمات صرافیمون استفاده میکنن بتونن بین ورژن ها برحسب شرایطشون قدرت انتخاب داشته باشن .
با این ساختار یه پروژه ی حرفه ای تر و پخته تر داریم . برای درک بهتر عکس رو ببینید .
از لینکدین Erfan Aliaghdam
متاسفانه برخی از اشخاصی که drf آموزش میدن به این مسئله اشاره نمیکنن و دوستامون تو محیط کار بخاطر ساختار اشتباهی که برای پیاده سازی پروژشون انتخاب کردن چاه اولو برا خودشون و دومیو برا شخصی که قراره جایگزینشون بشه میکَنن.
فرض کنید در حال پیاده سازی پروژه ی صرافی هستید .
پروژتون طبق معمول یکسری app داره که ما رو یکیش focus میکنیم ،
مثلا payment app.
اشتباهی که بسیار رایجه پیاده سازی کلاس های drf تو views.py ساخته شده داخل payment app هست !
در حالی که با ساختن یه پوشه به اسم api
میتونیم کنترل بیشتری تو پیاده سازی داشته باشیم
و هر ورژن رو تو پوشه ی خودش و فایلای خودش پیاده سازی کنیم تا شرکت هایی که از خدمات صرافیمون استفاده میکنن بتونن بین ورژن ها برحسب شرایطشون قدرت انتخاب داشته باشن .
با این ساختار یه پروژه ی حرفه ای تر و پخته تر داریم . برای درک بهتر عکس رو ببینید .
از لینکدین Erfan Aliaghdam
👍11
🥺 اولین آموزشی که ساختم برای 6 سال پیش بوده 🥺
ربطی به جنگو نداره، با محیط اکلیپس و برنامه نویسی اندروید بود
اون موقع ها اندروید استودیو هنوز خبری ازش نبود
ویدئوها بی صدا هستن و متنی آموزش دادم 😅
اعتماد به نفس صفر بوده
لینک آپارات:
https://www.aparat.com/v/fPxde
ربطی به جنگو نداره، با محیط اکلیپس و برنامه نویسی اندروید بود
اون موقع ها اندروید استودیو هنوز خبری ازش نبود
ویدئوها بی صدا هستن و متنی آموزش دادم 😅
اعتماد به نفس صفر بوده
لینک آپارات:
https://www.aparat.com/v/fPxde
❤7
جنگولرن
✅ Django Testing - Model Testing Introduction https://www.youtube.com/watch?v=GBgRMdjAx_c
✔️ در این ویدیو که مقدمه تست نویسی در جنگو هست، موارد زیر توضیح داده شده (کلا 36 دقیقه اس):
- فولدر بندی تست ها برحسب مدل
- نصب پکیج coverage که این پکیج نشون میده کدهای ما چقدر توسط تست کاور شدن
- ارث بری از کلاس TestCase و ساخت و اجرای یک تست ساده
- پیاده سازی متد setUp در کلاس تست - این متد به ازای هر متد در کلاس تست یکبار اجرا میشه
- پیاده سازی کلاس متد ع setUpTestData این متد یک بار به ازای هر کلاس تست اجرا میشه
- نصب پکیج model-bakery برای ساخت fixture برای ایجاد رکورد اتوماتیکه فیک جهت تست
- فولدر بندی تست ها برحسب مدل
- نصب پکیج coverage که این پکیج نشون میده کدهای ما چقدر توسط تست کاور شدن
- ارث بری از کلاس TestCase و ساخت و اجرای یک تست ساده
- پیاده سازی متد setUp در کلاس تست - این متد به ازای هر متد در کلاس تست یکبار اجرا میشه
- پیاده سازی کلاس متد ع setUpTestData این متد یک بار به ازای هر کلاس تست اجرا میشه
- نصب پکیج model-bakery برای ساخت fixture برای ایجاد رکورد اتوماتیکه فیک جهت تست
👍2
✅ شاید همگی با این جمله ی خفن و معروف آشنا باشیم .
"premature optimization is the root of All evil"
بنظر شما رانندگی با ماشین فرمول یک تو خیابون های شهر کار عاقلانه ایه؟
خب مشخصه ، نه .
پس یادمون باشه قبل هر تصمیمی برای ارتقای یک پروژه یه شاخص مهم رو در نظر بگیریم ، این شاخص چیزی نیست جز نیاز مشتری ، باید این نیاز رو پیدا کنیم .
یه سوال
از کجا بفهمیم که نیاز به improvement هست یا نه و یا ساده تر بگم چطور تشخیص بدیم که نیاز داریم ارتقا بدیم یا نه ؟ اینحاست که performance testing مطرح میشه.
بنظر من performance testing ارزش یک برنامه نویس رو نشون میده ، تنها راه مقابله با کمالگرایی بیهوده ، سدیه به نام performance testing.
ما به عنوان یک برنامه نویس قراره ارزشمون رو با پاسخ به یک نیاز نشون بدیم ، نه آب در هاون کوبیدن .
سوال بعدی، خب چطور performance testing انجام بدیم ؟
یکی از روش ها تو پروژه های جنگویی استفاده از locust هست با اینکار میتونین بفهمین که پروژتون چند مرده حلاجه و به بیانی دیگر نیاز به improvement رو تشخیص بدین .
پس یادمون نره کنار هر مهارت خفنی که یاد میگیریم در نظر بگیریم که مدیریت زمانی میکنیم و ارزش اون کار دیده میشه یا نه.
کمالگرایی آفتیه که تو باغ هر برنامه نویسی میوفته ، با locuat آفتکشی کنید .
بازم از لینکدین Erfan Aliaghdam
لینک:
https://www.linkedin.com/posts/erfan-aliaghdam-20a439204_performanceabrtesting-testing-django-activity-6955392499020349440-ktMP?utm_source=linkedin_share&utm_medium=member_desktop_web
"premature optimization is the root of All evil"
بنظر شما رانندگی با ماشین فرمول یک تو خیابون های شهر کار عاقلانه ایه؟
خب مشخصه ، نه .
پس یادمون باشه قبل هر تصمیمی برای ارتقای یک پروژه یه شاخص مهم رو در نظر بگیریم ، این شاخص چیزی نیست جز نیاز مشتری ، باید این نیاز رو پیدا کنیم .
یه سوال
از کجا بفهمیم که نیاز به improvement هست یا نه و یا ساده تر بگم چطور تشخیص بدیم که نیاز داریم ارتقا بدیم یا نه ؟ اینحاست که performance testing مطرح میشه.
بنظر من performance testing ارزش یک برنامه نویس رو نشون میده ، تنها راه مقابله با کمالگرایی بیهوده ، سدیه به نام performance testing.
ما به عنوان یک برنامه نویس قراره ارزشمون رو با پاسخ به یک نیاز نشون بدیم ، نه آب در هاون کوبیدن .
سوال بعدی، خب چطور performance testing انجام بدیم ؟
یکی از روش ها تو پروژه های جنگویی استفاده از locust هست با اینکار میتونین بفهمین که پروژتون چند مرده حلاجه و به بیانی دیگر نیاز به improvement رو تشخیص بدین .
پس یادمون نره کنار هر مهارت خفنی که یاد میگیریم در نظر بگیریم که مدیریت زمانی میکنیم و ارزش اون کار دیده میشه یا نه.
کمالگرایی آفتیه که تو باغ هر برنامه نویسی میوفته ، با locuat آفتکشی کنید .
بازم از لینکدین Erfan Aliaghdam
لینک:
https://www.linkedin.com/posts/erfan-aliaghdam-20a439204_performanceabrtesting-testing-django-activity-6955392499020349440-ktMP?utm_source=linkedin_share&utm_medium=member_desktop_web
👍3
✅ «تا حالا شنیدید که میگن پایتون برای فلان پروژه خوب نیست چون نمیتونه به اندازه کافی سریع باشه؟ من شنیدم. و این جمله کمی ناامید کنندهس چون که بانکهای بزرگ، یوتوب، اینستاگرام، و خییلی جاهای دیگه که نسبت به performance حساس هستن هنوز هم میان پایتون رو انتخاب میکنن و از این قضیه راضی هم هستن.»
چرایی این استفاده گسترده از پایتون و چرا پایتون حتی برای جاهایی که performance بالا خیلی ضروری عه مثل بانکهای بزرگ یوتوب و اینستاگرام، انتخاب خیلی خوبیه رو اینجا بخونید:
https://b2n.ir/k38624
تشکر از @pyeafp
چرایی این استفاده گسترده از پایتون و چرا پایتون حتی برای جاهایی که performance بالا خیلی ضروری عه مثل بانکهای بزرگ یوتوب و اینستاگرام، انتخاب خیلی خوبیه رو اینجا بخونید:
https://b2n.ir/k38624
تشکر از @pyeafp
👍8👎1