جنگولرن
Audio
ضمن تشکر از دوستان
ویس دو تا ویدئو قبلی
این لینک ویدئوها
https://t.me/djangolearn_ir/939
https://t.me/djangolearn_ir/948
ویس دو تا ویدئو قبلی
این لینک ویدئوها
https://t.me/djangolearn_ir/939
https://t.me/djangolearn_ir/948
❤1
Forwarded from کانال دانشجویان آیزیلِرن (Ahmad)
🙋🏽♂️ سلام وقت همگی بخیر!
🔥 همونطور که گفتم قرار بود که یه تخفیف خیلی خوب روی دوره صفر تا قهرمانیِ پایتون اِعمال بشه!
🤝🏼 قیمت با تخفیف:1.599.000 تومان (599.000 تومان)
🎯 کد تخفیف :BF2024
🎯 لینک خرید دوره پایتون: https://zarinp.al/644119
🎯 ظرفیت :50 نفر
------------------
📋 بعد از خرید تصویر رسید رو به آیدی زیر ارسال کنید تا دوره براتون اضافه بشه.
🙋🏻♂️ @izlearn_support
🔥 همونطور که گفتم قرار بود که یه تخفیف خیلی خوب روی دوره صفر تا قهرمانیِ پایتون اِعمال بشه!
🤝🏼 قیمت با تخفیف:
🎯 کد تخفیف :
🎯 لینک خرید دوره پایتون: https://zarinp.al/644119
🎯 ظرفیت :
------------------
📋 بعد از خرید تصویر رسید رو به آیدی زیر ارسال کنید تا دوره براتون اضافه بشه.
🙋🏻♂️ @izlearn_support
👍3👎3❤1
✅تست نویسی رو دستکم نگیرید
از کانال per3onal
برای اینکه تست بنویسید :
خیلی وقت بود جنگو کد نزده بودم و یک سری موارد رو فراموش کرده بودم (مواردی که مربوط میشه فقط و فقط به خود جنگو)
خیلی هم اعتقادی به
حالا نگیم
بگذریم؛ کد رو زدم و تموم شد و با
همه چیز به خوبی کار میکرد که رفتم سراغ تست نویسی؛ همه تستها به خوبی کار میکرد جز یک مورد
یک
من توی این
خلاصهاش کنم:
نهایتا متوجه شدم روی
قبل از اینکه کاستوم شده شما رو اجرا کنه میره چک میکنه آیا دیتا رو اگر بخواد کنه دیتابیس بهش تایید میده یا نه.
(تابع نرمالایز کردن اون فیلد خاص رو من توی مربوط به صدا میزدم؛ چون توی تمام فریمورکهای استاندارد ولید کردن اول باید توی صورت بگیره و محدودیتهای دیتابیس هستند.)
خلاصه که چون توی تستهام از
اگر این تست نبود:
۱- من باقی بخشهای پروژه رو با دیزاینی که باگ داشت کد زده بودم
۲- باگ خودش رو نشون نمیداد مگر توی
۳- درست کردن این باگ حتی اگر برای هفته بعدی هم میافتاد؛ حداقل ۵-۶ روزکاری زمان میبرد تا مشکلش رو بتونیم حل کنیم.
بخاطر حجم داده و حجم کد و
تست نویسی رو دستکم نگیرید واقعا.
از کانال per3onal
برای اینکه تست بنویسید :
خیلی وقت بود جنگو کد نزده بودم و یک سری موارد رو فراموش کرده بودم (مواردی که مربوط میشه فقط و فقط به خود جنگو)
خیلی هم اعتقادی به
TDD
ندارم ولی معتقدم تست نویسی باید باشه؛ حالا که بحثش شد بذار بگم تا همین چندسال قبل بدون TDD
کد نمیزدم؛ اما یک عیب بزرگ داشتم TDD
فقط و فقط وقتی درست عمل میکنه که شما تمام نیاز بیزینس رو بدونی و دقیقا بدونی چطور قراره از سیستم استفاده بشه.حالا نگیم
۱۰۰٪
حداقل ۸۰٪
پروژه رو باید کامل بدونید؛ باگش در اومد دیگه بیزینسی جز بیزینس خودت وجود نداره که ۸۰٪
اش مشخص باشه. تغییرات بسیار است.بگذریم؛ کد رو زدم و تموم شد و با
Insomnia, bruno
تستش کردم (bruno
رو هنوز خیلی بلدش نیستم ولی باید یادبگیرم که خب درحال حاضر وقتش نیست برای همین رکوئستهایی که مهم نیست رو export-import
میزنم بین این دوتا ابزار)همه چیز به خوبی کار میکرد که رفتم سراغ تست نویسی؛ همه تستها به خوبی کار میکرد جز یک مورد
یک
generic.CreateAPIView
یا views.APIView
هرکاری میکردم توی یکی از تستهای خاص جواب نمیداد جالبتر این بود که دقیقا همین تست توی Insomnia
داشت جواب میداد؛ اونم بطور کامل و درست؛ دیباگر هم حتی هیچی نشون نمیداد.من توی این
Endpoint
فقط میخواستم یک دیتایی رو دریافت کنم Deserialize
کنم بعد با اون چیزی که توی دیتابیس دارم مقایسه کنم که یا تایید بدم یا ارور بدم.خلاصهاش کنم:
نهایتا متوجه شدم روی
model
و یکی از فیلدها محدودیت unique=True
گذاشتم و توی Insomnia
دارم اون فیلد رو با دیتای متفاوتی از چیزی که توی دیتابیس ایجاد کردم صدا میزنم همینجا یادآوری شد که :serializer.is_valid()
validate
validate
(تابع نرمالایز کردن اون فیلد خاص رو من توی
validate
serializer
serializer
Fallback
خلاصه که چون توی تستهام از
faker
استفاده میکن (اینم خودش یک best practice
هست که باید رعایت بشه) توی هر دو endpoint
اون فیلد بصورت دقیقا یکسان ارسال میشد و باگ در اومد و با یک redesign
کوچیک همه جیز درست شد.اگر این تست نبود:
۱- من باقی بخشهای پروژه رو با دیزاینی که باگ داشت کد زده بودم
۲- باگ خودش رو نشون نمیداد مگر توی
stage, production
توی محیط تست قطعا بازم با همین استاندارد که بذار normalization
رو هم همزمان تست کنم همه چیز ادامه پیدا میکرد. ۳- درست کردن این باگ حتی اگر برای هفته بعدی هم میافتاد؛ حداقل ۵-۶ روزکاری زمان میبرد تا مشکلش رو بتونیم حل کنیم.
بخاطر حجم داده و حجم کد و
dependency
هایی که بوجود میومد (چیزی که الان کمتر از ۱ ساعت وقت گرفت با یک redesign
کامل)تست نویسی رو دستکم نگیرید واقعا.
👍27👎18✍3❤2
Forwarded from Ninja Learn | نینجا لرن
💎 ـPartial Functions در پایتون 💎
تا حالا شده یه تابع بنویسی که پر از آرگومان باشه و همیشه بخوای یه سری از اون آرگومانها مقدار ثابتی داشته باشن؟ مثلا فرض کن توی یه پروژه مدام داری درخواست HTTP میفرستی و همیشه متد رو روی
🔎 ـPartial Functions چی هست؟
خیلی ساده، Partial Function بهت اجازه میده یه نسخه سفارشیشده از تابع اصلی بسازی که یه سری از آرگومانهاش از قبل مقداردهی شده. این کار با
🧠 چرا Partial Functions مفیدن؟
✅ سادگی و تمیزی کد: به
✅ کاهش خطا:
✅ ایجاد نسخههای شخصیسازیشده از توابع:
🛠️ چطور Partial Functions بسازیم؟
اینجا
🚀 کاربردهای Partial Functions
1⃣ سادهسازی توابع با آرگومانهای زیاد
وقتی توابع زیادی با پارامترهای تکراری داری، Partial Functions میتونه کمکت کنه:
2⃣ انعطاف بیشتر با توابع دیگر
ـPartial Functions میتونه با توابعی مثل
3⃣ بهبود خوانایی کد در سیستمهای بزرگ
وقتی پروژههات پیچیده میشن، Partial Functions بهت کمک میکنن توابعی بسازی که واضحترن:
⚖️ مقایسه با دیگر روشها
ـPartial Functions یه جایگزین سبکتر برای تعریف کلاسهای خاص یا توابع جدیده. اما وقتی منطق خیلی پیچیدهای داری یا نیاز به شرطهای مختلف هست، بهتره به جای Partial Functions از کلاسها یا Wrapper Functions استفاده کنی.
✍️ جمعبندی
فهمیدیم Partial Functions ابزاری ساده اما قدرتمند در پایتون هستن که میتونن کدهای تکراری رو حذف کنن و انعطاف بالایی بهت بدن.
امید وارم مفید بوده باشه :)
تا حالا شده یه تابع بنویسی که پر از آرگومان باشه و همیشه بخوای یه سری از اون آرگومانها مقدار ثابتی داشته باشن؟ مثلا فرض کن توی یه پروژه مدام داری درخواست HTTP میفرستی و همیشه متد رو روی
POST
میذاری. به جای تکرار این مقدار ثابت، Partial Functions به کمکت میان و کدتو خیلی حرفهایتر میکنن. 🔎 ـPartial Functions چی هست؟
خیلی ساده، Partial Function بهت اجازه میده یه نسخه سفارشیشده از تابع اصلی بسازی که یه سری از آرگومانهاش از قبل مقداردهی شده. این کار با
functools.partial
انجام میشه. 🧠 چرا Partial Functions مفیدن؟
✅ سادگی و تمیزی کد: به
جای تکرار، یه بار آرگومان ثابت رو تعریف میکنی.
✅ کاهش خطا:
آرگومانهای ثابت توی یه جای مشخص مقداردهی میشن.
✅ ایجاد نسخههای شخصیسازیشده از توابع:
بدون نیاز به تعریف تابع جدید.
🛠️ چطور Partial Functions بسازیم؟
from functools import partial
def multiply(x, y):
return x * y
double = partial(multiply, y=2)
print(double(5)) # خروجی: 10
اینجا
double
نسخهای از multiply
شده که مقدار y
همیشه 2
هست. فقط لازمه x
رو بهش بدی. 🚀 کاربردهای Partial Functions
1⃣ سادهسازی توابع با آرگومانهای زیاد
وقتی توابع زیادی با پارامترهای تکراری داری، Partial Functions میتونه کمکت کنه:
def send_request(method, url, headers, data):
# ارسال درخواست
pass
post_request = partial(send_request, method='POST')
post_request(url='/api/data', headers={}, data={})
2⃣ انعطاف بیشتر با توابع دیگر
ـPartial Functions میتونه با توابعی مثل
map
و filter
خیلی خوب کار کنه: from functools import partial
def power(base, exponent):
return base ** exponent
square = partial(power, exponent=2)
numbers = [1, 2, 3, 4]
squared_numbers = list(map(square, numbers))
print(squared_numbers) # خروجی: [1, 4, 9, 16]
3⃣ بهبود خوانایی کد در سیستمهای بزرگ
وقتی پروژههات پیچیده میشن، Partial Functions بهت کمک میکنن توابعی بسازی که واضحترن:
from functools import partial
def logger(log_level, message):
print(f"[{log_level}] {message}")
info_logger = partial(logger, log_level='INFO')
info_logger("This is an info message") # خروجی: [INFO] This is an info message
⚖️ مقایسه با دیگر روشها
ـPartial Functions یه جایگزین سبکتر برای تعریف کلاسهای خاص یا توابع جدیده. اما وقتی منطق خیلی پیچیدهای داری یا نیاز به شرطهای مختلف هست، بهتره به جای Partial Functions از کلاسها یا Wrapper Functions استفاده کنی.
✍️ جمعبندی
فهمیدیم Partial Functions ابزاری ساده اما قدرتمند در پایتون هستن که میتونن کدهای تکراری رو حذف کنن و انعطاف بالایی بهت بدن.
#python #programing
🔆 CHANNEL | GROUP
👍13👏2🤮2❤1
جنگولرن
✅تست نویسی رو دستکم نگیرید از کانال per3onal برای اینکه تست بنویسید : خیلی وقت بود جنگو کد نزده بودم و یک سری موارد رو فراموش کرده بودم (مواردی که مربوط میشه فقط و فقط به خود جنگو) خیلی هم اعتقادی به TDD ندارم ولی معتقدم تست نویسی باید باشه؛ حالا که بحثش…
این پست فعلا یه دیس لایک داره.
عالی میشه اگه دلیل دیسلایک رو بدونیم.
آیا چیزی که گفته ایراد داره؟
ویرایش:
دیس لایک ها زیاد شد. عجب
عالی میشه اگه دلیل دیسلایک رو بدونیم.
آیا چیزی که گفته ایراد داره؟
ویرایش:
دیس لایک ها زیاد شد. عجب
❤6🤔2🤮2
Forwarded from Golem Course
الوعده وفا!
بالاخره تمام شد. ۹ ماه پیش زمانی که ضبط دوره یادگیری عمیق را شروع کردم، قول دادم که بیش از ۱۰۰ ویدیو برای آن ضبط خواهم کرد. امروز تمام ویدیوها را میتوانید از پلیلیست یوتیوب تماشا کنید. در مجموع حدود ۲۶ ساعت محتوا است و مباحث زیر را پوشش دادم:
Optimization Algorithm (SGD, Momentum, Nesterov, Adam, ...)
Deep Neural Networks
Convolutional Neural Networks
Residual Neural Networks
Transformer and Large Language Models
Autoencoder
Variational Autoencoder (VAEs)
Generative Adversarial Networks (GAEs)
Normalizing Flows
Diffusion Models
Graph Neural Networks (GNNs)
Reinforcement Learning
@golemcourse
بالاخره تمام شد. ۹ ماه پیش زمانی که ضبط دوره یادگیری عمیق را شروع کردم، قول دادم که بیش از ۱۰۰ ویدیو برای آن ضبط خواهم کرد. امروز تمام ویدیوها را میتوانید از پلیلیست یوتیوب تماشا کنید. در مجموع حدود ۲۶ ساعت محتوا است و مباحث زیر را پوشش دادم:
Optimization Algorithm (SGD, Momentum, Nesterov, Adam, ...)
Deep Neural Networks
Convolutional Neural Networks
Residual Neural Networks
Transformer and Large Language Models
Autoencoder
Variational Autoencoder (VAEs)
Generative Adversarial Networks (GAEs)
Normalizing Flows
Diffusion Models
Graph Neural Networks (GNNs)
Reinforcement Learning
@golemcourse
YouTube
یادگیری عمیق
در این سری از ویدیوهای آموزشی یادگیری عمیق، هم مباحث نظری و هم مباحث عملی در قالب کد یاد داده میشود.
❤13👍4🤮4🔥2👏2
Forwarded from Django Expert (Hêmn Hosseinpana)
پیکربندی لاگ زدن در جنگو - django logging
در این سری از ویدیوها که به ترفندها و نکته های جنگو میپردازیم، به سراغ لاگ زدن در جنگو رفتیم و کانفیگ ها و شیوه پیکربندی آن را از طریق بررسی و خواندن کد داخلی جنگو، شرح دادیم. در این ویدیو به جای کد نوشتن، بیشتر کد خوندیم که بفهمیم جنگو خودش برای لاگ زدن چگونه کار میکند و ما چگونه میتونیم از آن استفاده کنیم. همچنین امکان django logging را در سرویس های کلودی مانند sentry و APM هم مطرح کردیم. این مفاهیم رو در پروژه مینی ترلو به شکل عملی استفاده میکنیم.
video link: https://youtu.be/LGatKmpL7k8
playlist: https://www.youtube.com/playlist?list=PLJ9zDGwhhsBwdrfdaoOqbYev3_ocuBOfv
#django #logging #microfrontend_ir
〰️〰️〰️〰️〰️
©️ @DjangoEx
در این سری از ویدیوها که به ترفندها و نکته های جنگو میپردازیم، به سراغ لاگ زدن در جنگو رفتیم و کانفیگ ها و شیوه پیکربندی آن را از طریق بررسی و خواندن کد داخلی جنگو، شرح دادیم. در این ویدیو به جای کد نوشتن، بیشتر کد خوندیم که بفهمیم جنگو خودش برای لاگ زدن چگونه کار میکند و ما چگونه میتونیم از آن استفاده کنیم. همچنین امکان django logging را در سرویس های کلودی مانند sentry و APM هم مطرح کردیم. این مفاهیم رو در پروژه مینی ترلو به شکل عملی استفاده میکنیم.
video link: https://youtu.be/LGatKmpL7k8
playlist: https://www.youtube.com/playlist?list=PLJ9zDGwhhsBwdrfdaoOqbYev3_ocuBOfv
#django #logging #microfrontend_ir
〰️〰️〰️〰️〰️
©️ @DjangoEx
👍11👏2
Media is too big
VIEW IN TELEGRAM
✅مصاحبه با Sadra Yahyapour تنها GitHub Campus Expert ایران
سر کلاس دوازدهم، تجارت الکترونیک
هنرستان شهید دبیریان محله نازی آباد تهران
لینک آپارات:
https://aparat.com/v/wkl8u79
لینک یوتیوب:
https://youtu.be/bxFeAh6ytVU
✔️صدرا یک مهندس نرم افزار ع Open Source Contributor هست
✔️و Technical Writer
✔️و علاقمند به Machine Learning هست و...
سوالهای زیر رو از Sadra پرسیدم:
✔️چطور دانشکده شمسی پور با رتبه خوب قبول شدی؟ چقدر درس خوندی؟
✔️چه شرکت هایی کار کردی؟
✔️داستان اوپن سورس چیه؟ و چطور میشه ازش پول در بیاریم؟
✔️چطور توی لینکدین و گیت هاب اسم در کردید؟
✔️دانشگاه دولتی یا آزاد فرقی اداره توی این مسیر؟
و...
کانال تلگرامی صدرا https://t.me/lnxpylnxpy
سر کلاس دوازدهم، تجارت الکترونیک
هنرستان شهید دبیریان محله نازی آباد تهران
لینک آپارات:
https://aparat.com/v/wkl8u79
لینک یوتیوب:
https://youtu.be/bxFeAh6ytVU
✔️صدرا یک مهندس نرم افزار ع Open Source Contributor هست
✔️و Technical Writer
✔️و علاقمند به Machine Learning هست و...
سوالهای زیر رو از Sadra پرسیدم:
✔️چطور دانشکده شمسی پور با رتبه خوب قبول شدی؟ چقدر درس خوندی؟
✔️چه شرکت هایی کار کردی؟
✔️داستان اوپن سورس چیه؟ و چطور میشه ازش پول در بیاریم؟
✔️چطور توی لینکدین و گیت هاب اسم در کردید؟
✔️دانشگاه دولتی یا آزاد فرقی اداره توی این مسیر؟
و...
کانال تلگرامی صدرا https://t.me/lnxpylnxpy
🔥11👍3
Audio
ویس مصاحبه با Sadra
کانال تلگرامی صدرا https://t.me/lnxpylnxpy
لینک ویدئوش
https://t.me/djangolearn_ir/960
کانال تلگرامی صدرا https://t.me/lnxpylnxpy
لینک ویدئوش
https://t.me/djangolearn_ir/960
🔥7👎1
Forwarded from یادگیری ماشین با چاشنی صنعت (Abolfazl 🤘)
توصیه های برادرانه من به شما
طبق چیزایی که دارم میبینم تو لینکدین و کامیونیتی ها، اکثر افراد دانش تکنیکال خوبی دارن واقعا
اما پای مهندسی نرم افزار که پیش میاد میلنگن.
شاید اصلی ترین دلیلش فقدان علمی لازم برای صنعت در دانشگاه ها باشه.
دوستان مهندسی نرم افزار واقعا قصه و حفظ کردنی نیست.
شما باید از تجربه افراد مختلف استفاده کنید همیشه و از کوچکترین تجارب افراد نگذرید.
چند روز پیش، عزیزی میگفت که نمیدونم چرا افراد با ۴ سال کارکردن میشن تیم لید و باید حتما برای مهندس نرم افزار شدن یا تیم لید صدتا ابزار رو بلد باشید. دوست ما فقط وب رو در نظر گرفته بود به عنوان شناسه برای مهندس نرم افزار و ابزارهایی که گفته بود، همه مرتبط با برنامه نویسی و توسعه وب بود و اصرار داشت کسی که این ابزار ها رو بلد نباشه مهندس نرم افزار نیست..
بخش اول اشتباه دوستمون این بود که مهندسی نرم افزار رو تو ابزار میدید. فک کنم در هیچ جای دنیا کسی مهندسی نرم افزار رو بر پایه ابزار تعریف نکنه.
بخش دوم اشتباه این بود که میگفت باید تک تک اتفاقات رو خودمون تجربه کنیم به جای درس گرفتن از تجربهی بقیه..
اگر میخواستیم تک تک اتفاقات رو خودمون تجربه کنیم، پس وجود افرادی مثل مارتین فاولر و اسکات امبلر و امثال اونا بی معنی میشد.
چون اونا دارن سالها تجربه خودشون رو در توسعه نرم افزار در اختیار ما قرار میدن که ما قرار نباشه همه چیز رو از صفر تجربه کنیم. و به طبع ما هم در این پروسه، به تجربه های مفیدی دست پیدا میکنیم که میتونه برای بقیه مفید باشه.
از طرفی علم مهندسی نرم افزار اصلا جنبه تئوری نداره و تماما عملیه.
حتی اگر شما اکادمیک روی یه موضوع مرتبط با مهندسی نرم افزار کار می کنید در قدم اول و آخر فقط صنعت رو میبینید و اتفاقاتی که در صنعت میفته رو رصد میکنید.
متاسفانه اکثرا مهندسی نرم افزار رو به کد زدن محدود کردن در صورتی که کد، فقط بخشی از مهندسی نرم افزاره.
نتیجه این کار میشه برنامه های غیر قابل نگهداری و در نهایت شکست پروژه
مثل اکثر پروژه هایی که شکست خوردن و حتی پروژه هایی که شکست نخوردن اما در شرف شکست هستن.
مثلا در یکی از اپلیکیشن هایی که روزانه استفاده میکنیم، من اسمشو نمیارم اما فقدان رویکرد CICD بیداد میکنه و به شدت مشکل زا شده.
این اپلیکیشن حتی مشکل single point of failure داره. به این معنی که اگر یک بخش از سیستم بیاد پایین، کل سیستم میخوابه و عملا برای این موضوع فکر نشده و یا این که فکر شده اما بودجه محدود بوده یا هر چیز دیگه.
لطفا اگر در این زمینه ها کار میکنید، سعی کنید دانش مهندسی نرم افزارتون رو ارتقا بدید تا بتونید سیستم های قدرتمندتری رو ایجاد کنید.
طبق چیزایی که دارم میبینم تو لینکدین و کامیونیتی ها، اکثر افراد دانش تکنیکال خوبی دارن واقعا
اما پای مهندسی نرم افزار که پیش میاد میلنگن.
شاید اصلی ترین دلیلش فقدان علمی لازم برای صنعت در دانشگاه ها باشه.
دوستان مهندسی نرم افزار واقعا قصه و حفظ کردنی نیست.
شما باید از تجربه افراد مختلف استفاده کنید همیشه و از کوچکترین تجارب افراد نگذرید.
چند روز پیش، عزیزی میگفت که نمیدونم چرا افراد با ۴ سال کارکردن میشن تیم لید و باید حتما برای مهندس نرم افزار شدن یا تیم لید صدتا ابزار رو بلد باشید. دوست ما فقط وب رو در نظر گرفته بود به عنوان شناسه برای مهندس نرم افزار و ابزارهایی که گفته بود، همه مرتبط با برنامه نویسی و توسعه وب بود و اصرار داشت کسی که این ابزار ها رو بلد نباشه مهندس نرم افزار نیست..
بخش اول اشتباه دوستمون این بود که مهندسی نرم افزار رو تو ابزار میدید. فک کنم در هیچ جای دنیا کسی مهندسی نرم افزار رو بر پایه ابزار تعریف نکنه.
بخش دوم اشتباه این بود که میگفت باید تک تک اتفاقات رو خودمون تجربه کنیم به جای درس گرفتن از تجربهی بقیه..
اگر میخواستیم تک تک اتفاقات رو خودمون تجربه کنیم، پس وجود افرادی مثل مارتین فاولر و اسکات امبلر و امثال اونا بی معنی میشد.
چون اونا دارن سالها تجربه خودشون رو در توسعه نرم افزار در اختیار ما قرار میدن که ما قرار نباشه همه چیز رو از صفر تجربه کنیم. و به طبع ما هم در این پروسه، به تجربه های مفیدی دست پیدا میکنیم که میتونه برای بقیه مفید باشه.
از طرفی علم مهندسی نرم افزار اصلا جنبه تئوری نداره و تماما عملیه.
حتی اگر شما اکادمیک روی یه موضوع مرتبط با مهندسی نرم افزار کار می کنید در قدم اول و آخر فقط صنعت رو میبینید و اتفاقاتی که در صنعت میفته رو رصد میکنید.
متاسفانه اکثرا مهندسی نرم افزار رو به کد زدن محدود کردن در صورتی که کد، فقط بخشی از مهندسی نرم افزاره.
نتیجه این کار میشه برنامه های غیر قابل نگهداری و در نهایت شکست پروژه
مثل اکثر پروژه هایی که شکست خوردن و حتی پروژه هایی که شکست نخوردن اما در شرف شکست هستن.
مثلا در یکی از اپلیکیشن هایی که روزانه استفاده میکنیم، من اسمشو نمیارم اما فقدان رویکرد CICD بیداد میکنه و به شدت مشکل زا شده.
این اپلیکیشن حتی مشکل single point of failure داره. به این معنی که اگر یک بخش از سیستم بیاد پایین، کل سیستم میخوابه و عملا برای این موضوع فکر نشده و یا این که فکر شده اما بودجه محدود بوده یا هر چیز دیگه.
لطفا اگر در این زمینه ها کار میکنید، سعی کنید دانش مهندسی نرم افزارتون رو ارتقا بدید تا بتونید سیستم های قدرتمندتری رو ایجاد کنید.
👍18❤2
✅جلسه حضوری مهندس ابراهیم اخزری با بچه های مدرسه
هنرستان شهید دبیریان نازی آباد تهران
✔️مهندس ابراهیم اخزری محقق امنیت هستن
✔️در مورد امنیت و زبان های برنامه نویسی مرتبط با امنیت صحبت کردن
✔️و همه سوالهای دانش آموزهارو هم پاسخ دادن
تشکر از مهندس اخزری
آدرس کانال ایشون:
https://t.me/itshield
هنرستان شهید دبیریان نازی آباد تهران
✔️مهندس ابراهیم اخزری محقق امنیت هستن
✔️در مورد امنیت و زبان های برنامه نویسی مرتبط با امنیت صحبت کردن
✔️و همه سوالهای دانش آموزهارو هم پاسخ دادن
تشکر از مهندس اخزری
آدرس کانال ایشون:
https://t.me/itshield
👏15🤮10
✅برای قیمت تخفیفی در فروشگاه جنگو تون چطور عمل می کنید؟
✔️منظورم این چیزی که توی عکس هست.
بعضی شاید بگن یه فیلد قیمت تخفیفی میزارم. میشه، ولی اگه بخوای به 100 محصول تخفیف بدی یا تخفیفش رو برداری باید 100 بار ویرایش کنی.
با بررسی فروشگاه های مختلف متوجه میشید که معمولا قیمت تخفیفی رو بر حسب دسته بندی یا کالکشن یا... میدن
اینجوری همه محصولاتی که عضو اون دسته بندی یا... هست، یکجا قیمت تخفیفی میخورن.
مسلما باید هر محصول بتونه جزو چند دسته بندی یا... باشه. که بتونیم تخفیف های مختلف هم داشته باشیم.
✔️تخفیف درصدی، تخفیف ثابت، تخفیف زمان دار و...
✔️این موضوع ارتباطی به جنگو نداره و همه فروشگاه ها، حتی پرستاشاپ هم شامل میشه.
نظرتون رو کامنت کنید یا به @miladhzz بفرستید.
✔️منظورم این چیزی که توی عکس هست.
بعضی شاید بگن یه فیلد قیمت تخفیفی میزارم. میشه، ولی اگه بخوای به 100 محصول تخفیف بدی یا تخفیفش رو برداری باید 100 بار ویرایش کنی.
با بررسی فروشگاه های مختلف متوجه میشید که معمولا قیمت تخفیفی رو بر حسب دسته بندی یا کالکشن یا... میدن
اینجوری همه محصولاتی که عضو اون دسته بندی یا... هست، یکجا قیمت تخفیفی میخورن.
مسلما باید هر محصول بتونه جزو چند دسته بندی یا... باشه. که بتونیم تخفیف های مختلف هم داشته باشیم.
✔️تخفیف درصدی، تخفیف ثابت، تخفیف زمان دار و...
✔️این موضوع ارتباطی به جنگو نداره و همه فروشگاه ها، حتی پرستاشاپ هم شامل میشه.
نظرتون رو کامنت کنید یا به @miladhzz بفرستید.
✍6👍3
✅پارامتر through توی ارتباط ManyToMany در جنگو
توی مدل های جنگو وقتی یه فیلد ManyToMany ایجاد می کنیم، و Migrate کنیم. خود جنگو یه جدول واسط برای هندل کردن ارتباط چند به چند میسازه.
✔️می تونیم اون جدول واسط رو خودمون کاستوم کنیم (به هر دلیلی)
لذا مثل عکس میتونیم از through استفاده کنیم.
کانال میکرو فرانت اند توی ویدئوی زیر بیشتر توضیحش داده
https://t.me/microfrontend_ir/180
❔سوال: through_fields برای فیلدهای چند به چند کارش چیه؟ و چه استفاده ای داره؟ (توی عکس نیست)
توی مدل های جنگو وقتی یه فیلد ManyToMany ایجاد می کنیم، و Migrate کنیم. خود جنگو یه جدول واسط برای هندل کردن ارتباط چند به چند میسازه.
✔️می تونیم اون جدول واسط رو خودمون کاستوم کنیم (به هر دلیلی)
لذا مثل عکس میتونیم از through استفاده کنیم.
کانال میکرو فرانت اند توی ویدئوی زیر بیشتر توضیحش داده
https://t.me/microfrontend_ir/180
❔سوال: through_fields برای فیلدهای چند به چند کارش چیه؟ و چه استفاده ای داره؟ (توی عکس نیست)
👍8✍2
Forwarded from Microfrontend.ir
@IIIllIlll زحمت کشیدن یک ریپو خوب برای آموزش او ار ام جنگو ساختن
https://github.com/rz-k/django-orm-tutorial
https://github.com/rz-k/django-orm-tutorial
❤5
Forwarded from Python BackendHub (Mani)
یکی از اشتباهات رایج و خیلی بد تو دیزاین دیتابیس که من دیدم خیلی انجام میدن اینه که سعی میکنن state یک entity رو با چند boolean ست کنند.
مثلا برای یوزر داریم:
is_active
is_banned
یا شما میتونی برای پردازش یک دیتایی اینطوری هم ذخیره کنی:
is_pending
is_success
اما خیلی پرکتیس بدیه. چرا؟ به ۲ دلیل:
۱. حالت هایی به وجود میاد از ترکیب این boolean ها که رخ دادنش ممکن نیست. مثلا چطوری میشه is_pending=true باشه و is_success هم true باشه؟ حالا هرچی جلوتر برید و تعداد boolean هاتون بیشتر شه این ترکیب هایی که امکان رخ دادنشون وجود نداره خیلی بیشتر میشه. مثلا ۴ تا boolean میشه ۱۶ حالت. آیا واقعا همه ۱۶ حالت رو دارین؟!
۲. راه حل دوم خیلی بهتره! راه حل دوم چیه؟استفاده از یک Enum تو دیتابیستون.
PENDING
SUCCESS
FAILED
حالا یک جایی نیازه که ایمیل بزنید اگه این پردازش موفقیت آمیز نبود. خیلی راحت میتونید رو همه حالت ها match case کنید. و در نهایت یک assert never هم قرار بدید.
اینطوری فردا اگه یک state جدید اضافه کنید به اپلیکیشنتون, همه جای کدتون ارور تایپینگ میخورید تا مجبور شید رفتار و ساید افکت state جدید رو تو همه جا هندل کنید.
@PyBackendHub
مثلا برای یوزر داریم:
is_active
is_banned
یا شما میتونی برای پردازش یک دیتایی اینطوری هم ذخیره کنی:
is_pending
is_success
اما خیلی پرکتیس بدیه. چرا؟ به ۲ دلیل:
۱. حالت هایی به وجود میاد از ترکیب این boolean ها که رخ دادنش ممکن نیست. مثلا چطوری میشه is_pending=true باشه و is_success هم true باشه؟ حالا هرچی جلوتر برید و تعداد boolean هاتون بیشتر شه این ترکیب هایی که امکان رخ دادنشون وجود نداره خیلی بیشتر میشه. مثلا ۴ تا boolean میشه ۱۶ حالت. آیا واقعا همه ۱۶ حالت رو دارین؟!
۲. راه حل دوم خیلی بهتره! راه حل دوم چیه؟استفاده از یک Enum تو دیتابیستون.
PENDING
SUCCESS
FAILED
حالا یک جایی نیازه که ایمیل بزنید اگه این پردازش موفقیت آمیز نبود. خیلی راحت میتونید رو همه حالت ها match case کنید. و در نهایت یک assert never هم قرار بدید.
اینطوری فردا اگه یک state جدید اضافه کنید به اپلیکیشنتون, همه جای کدتون ارور تایپینگ میخورید تا مجبور شید رفتار و ساید افکت state جدید رو تو همه جا هندل کنید.
match state:
case State.FAILED:
email_to_user()
case State.SUCCESS | State.FAILED:
pass # do nothing
case _:
assert_never(state)
@PyBackendHub
👍24❤3
✅دوره (غیر رایگان) فروشگاه اینترنتی با جنگو آپدیت شد.
لینک دوره:
https://www.daneshjooyar.com/project-django/
✔️چند قسمت رایگان از این دوره رو اینجا ببینید:
https://www.aparat.com/v/tga7df6
https://t.me/djangolearn_ir/531
https://t.me/djangolearn_ir/533
https://t.me/djangolearn_ir/573
https://t.me/djangolearn_ir/676
https://t.me/djangolearn_ir/724
https://t.me/djangolearn_ir/889
در صورتی که از لحاظ مالی توانایی پرداخت همه مبلغ دوره رو ندارید، خصوصی پیام بدید.
لینک دوره:
https://www.daneshjooyar.com/project-django/
✔️چند قسمت رایگان از این دوره رو اینجا ببینید:
https://www.aparat.com/v/tga7df6
https://t.me/djangolearn_ir/531
https://t.me/djangolearn_ir/533
https://t.me/djangolearn_ir/573
https://t.me/djangolearn_ir/676
https://t.me/djangolearn_ir/724
https://t.me/djangolearn_ir/889
در صورتی که از لحاظ مالی توانایی پرداخت همه مبلغ دوره رو ندارید، خصوصی پیام بدید.
👍4
جنگولرن
✅دوره (غیر رایگان) فروشگاه اینترنتی با جنگو آپدیت شد. لینک دوره: https://www.daneshjooyar.com/project-django/ ✔️چند قسمت رایگان از این دوره رو اینجا ببینید: https://www.aparat.com/v/tga7df6 https://t.me/djangolearn_ir/531 https://t.me/djangolearn_ir/533…
سلام به همه
اگه دوره بالا رو خریداری کردید
لطفا خصوصی به @miladhzz پیام بدید
تا به کانال اطلاع رسانی دوره (غیر رایگان) فروشگاه اینترنتی با جنگو اضافه تون کنم.
اگه دوره بالا رو خریداری کردید
لطفا خصوصی به @miladhzz پیام بدید
تا به کانال اطلاع رسانی دوره (غیر رایگان) فروشگاه اینترنتی با جنگو اضافه تون کنم.
👍2😁1