😁14👍1
Dependency Inversion
در پست های قبل درباره یکی از اصول solid به اسم Open / Close توضیح دادیم.
در این پست به یکی دیگر از اصول solid یعنی Dependency Inversion می پریدازیم.
High level modules should not depend on low-level modules. Both should depend on abstractions.
ماژول های سطح بالا نباید به ماژول های سطح پایین وابسته باشند. بلکه هر دو باید به یک abstraction وابسه باشند(درباره abstraction چند پست بالاتر توضیح دادم)
بیاید یک مثال بزنیم. سرویس اکانت برای اینکه بتونه otp code رو ارسال کنه به سرویس sms وابسته است و نمیتواند بدون سرویس sms کار کند و ما هم نمیتوانیم این وابستگی را حذف کنیم. پس راه حل چیست؟
کاری که ما می کنیم این است اکانت رو بصورت مستقیم به سرویس sms وصل نمیکنیم بجاش از یک abstraction و قرارداد استفاده میکنیم. برای مثال میگیم سرویس اس ام اس یک متد به اسم send_sms داره که متن پیام و شماره موبایل رو میگیره و در نهایت فلان چیز رو به عنوان خروجی برمیگردونه.
از اون طرف سرویس اس ام اس هم باید قوانین abstraction رو پیاده سازی بکنه و این abstract ما هست که وسط این دو سرویس قرار میگیره.
در این صورت خیلی ساده می تونیم سرویسمون رو جایگزین کنیم.
حتی برای تست میتونیم یک سرویس به اسم dummy sms service بنویسم تا به راحتی تست هایمان را انجام دهیم و از همه مهم تر یک طراحی ماژولار داریم.
با اینکار ما اومدیم Dependency رو Inversion کردیم.
این یکی از مهم ترین اصول مهندسی نرم افزار است.
همچنین در دوره آموزش پیشرفته جنگو درباره interface توضیح داده شده است و در قسمت های بعدی برای استفاده از سرویس logger از این روش استفاده می کنیم.
#Dependency_inversion #Solid
@Syntax_fa
در پست های قبل درباره یکی از اصول solid به اسم Open / Close توضیح دادیم.
در این پست به یکی دیگر از اصول solid یعنی Dependency Inversion می پریدازیم.
High level modules should not depend on low-level modules. Both should depend on abstractions.
ماژول های سطح بالا نباید به ماژول های سطح پایین وابسته باشند. بلکه هر دو باید به یک abstraction وابسه باشند(درباره abstraction چند پست بالاتر توضیح دادم)
بیاید یک مثال بزنیم. سرویس اکانت برای اینکه بتونه otp code رو ارسال کنه به سرویس sms وابسته است و نمیتواند بدون سرویس sms کار کند و ما هم نمیتوانیم این وابستگی را حذف کنیم. پس راه حل چیست؟
کاری که ما می کنیم این است اکانت رو بصورت مستقیم به سرویس sms وصل نمیکنیم بجاش از یک abstraction و قرارداد استفاده میکنیم. برای مثال میگیم سرویس اس ام اس یک متد به اسم send_sms داره که متن پیام و شماره موبایل رو میگیره و در نهایت فلان چیز رو به عنوان خروجی برمیگردونه.
از اون طرف سرویس اس ام اس هم باید قوانین abstraction رو پیاده سازی بکنه و این abstract ما هست که وسط این دو سرویس قرار میگیره.
در این صورت خیلی ساده می تونیم سرویسمون رو جایگزین کنیم.
حتی برای تست میتونیم یک سرویس به اسم dummy sms service بنویسم تا به راحتی تست هایمان را انجام دهیم و از همه مهم تر یک طراحی ماژولار داریم.
با اینکار ما اومدیم Dependency رو Inversion کردیم.
این یکی از مهم ترین اصول مهندسی نرم افزار است.
همچنین در دوره آموزش پیشرفته جنگو درباره interface توضیح داده شده است و در قسمت های بعدی برای استفاده از سرویس logger از این روش استفاده می کنیم.
#Dependency_inversion #Solid
@Syntax_fa
👍11
مینی دوره آموزش پیشرفته جنگو
پیاده سازی لاگر seq:
https://youtu.be/m44OhEaZ-is?si=-FeCt59-_iD2BAx1
#Django #logger
@Syntax_fa
پیاده سازی لاگر seq:
https://youtu.be/m44OhEaZ-is?si=-FeCt59-_iD2BAx1
#Django #logger
@Syntax_fa
🔥5👍3
تاحالا درباره اینکه چجوری تو زبان برنامه نویسیتون یه عدد رندوم میسازید فکر کردید؟
همونطور که میدونیم در کامپیوتر چیزی به عنوان تصادفی نداریم پس چطور عدد های رندوم ساخته میشن؟
پیشنهاد میدم یکی از این دو مقاله رو بخونید:
https://virgool.io/javacup/random-generate-jnwpgxv84hgf
https://www.freecodecamp.org/news/random-number-generator/
#Random
@Syntax_fa
همونطور که میدونیم در کامپیوتر چیزی به عنوان تصادفی نداریم پس چطور عدد های رندوم ساخته میشن؟
پیشنهاد میدم یکی از این دو مقاله رو بخونید:
https://virgool.io/javacup/random-generate-jnwpgxv84hgf
https://www.freecodecamp.org/news/random-number-generator/
#Random
@Syntax_fa
🔥9👍2
مینی دوره آموزش پیشرفته جنگو
دسته بندی لاگ ها:
https://youtu.be/_VBUiM6xQzI?si=fLZPNG_4c4FiG7et
پیاده سازی logger قسمت یک:
https://youtu.be/XXYYqHq3xIU?si=Ivt4pVf8y7fn5NWJ
پیاده سازی logger قسمت دو:
https://youtu.be/WvaQbjMWB3w?si=8WEV2LPMDKhvOJAH
#Django
@Syntax_fa
دسته بندی لاگ ها:
https://youtu.be/_VBUiM6xQzI?si=fLZPNG_4c4FiG7et
پیاده سازی logger قسمت یک:
https://youtu.be/XXYYqHq3xIU?si=Ivt4pVf8y7fn5NWJ
پیاده سازی logger قسمت دو:
https://youtu.be/WvaQbjMWB3w?si=8WEV2LPMDKhvOJAH
#Django
@Syntax_fa
🔥7❤1👍1
مهارت در اس کیو ال: کلیدی برای تبدیل شدن به توسعهدهنده بک اند حرفهای
لینک ویدیو:
https://youtu.be/XD7v-idjORo?si=RzQJuIvm8JF1A2Fr
#SQL
@Syntax_fa
لینک ویدیو:
https://youtu.be/XD7v-idjORo?si=RzQJuIvm8JF1A2Fr
#SQL
@Syntax_fa
YouTube
مهارت در اس کیو ال: کلیدی برای تبدیل شدن به توسعهدهنده بک اند حرفهای
در این ویدیو، به اهمیت داشتن دانش SQL برای توسعهدهندگان بک اند میپردازیم. ما به شما نشان میدهیم که چرا مهارت در SQL برای مدیریت پایگاه دادهها و توسعه بک اند ضروری است و چگونه فقدان این مهارت میتواند شما را از یک برنامهنویس بک اند موفق جدا کند. از مبانی…
👍6👀1
Syntax | سینتکس
مهارت در اس کیو ال: کلیدی برای تبدیل شدن به توسعهدهنده بک اند حرفهای لینک ویدیو: https://youtu.be/XD7v-idjORo?si=RzQJuIvm8JF1A2Fr #SQL @Syntax_fa
یکی از کامل ترین دوره ها برای یادگیری SQL و PostgreSql دوره sql and postgresql the complete guide هستش.
توی git.ir قرارش دادن:
https://git.ir/udemy-sql-and-postgresql-the-complete-developer-s-guide/
#SQL #PostgreSQL
@Syntax_fa
توی git.ir قرارش دادن:
https://git.ir/udemy-sql-and-postgresql-the-complete-developer-s-guide/
#SQL #PostgreSQL
@Syntax_fa
❤6👍2
مینی دوره آموزش پیشرفته جنگو
اضافه کردن middleware برای لاگ زدن request and response ها(قسمت آخر):
https://youtu.be/SJZv2J2DigI
#Django
@Syntax_fa
اضافه کردن middleware برای لاگ زدن request and response ها(قسمت آخر):
https://youtu.be/SJZv2J2DigI
#Django
@Syntax_fa
🔥8👍3
Media is too big
VIEW IN TELEGRAM
🔥19😱4❤2👍1👎1🥰1🏆1💔1🤨1
Syntax | سینتکس
مینی دوره آموزش پیشرفته جنگو اضافه کردن middleware برای لاگ زدن request and response ها(قسمت آخر): https://youtu.be/SJZv2J2DigI #Django @Syntax_fa
تو این پروژه Rabbitmq و سلری رو برای استفاده اضافش کردم. همچنین لاگ ها رو از طریق سلری و ربیت میزنیم توی seq
اگه بدردتون میخوره یه نگاه به نحوه اضافه کردن سرویس rabbitmq به docker-compose و کانفیگ هاش بکنید.
https://github.com/alireza-fa/django-advanced-course
اگه بدردتون میخوره یه نگاه به نحوه اضافه کردن سرویس rabbitmq به docker-compose و کانفیگ هاش بکنید.
https://github.com/alireza-fa/django-advanced-course
👍9🔥1
برنامه InstaBot
اینستا بات ایده یکی از اعضای کانال هستش که بنظرم ایده بدی نیست. پس متن معرفی امیرحسین رو قرار میدم هر کی دوست داشت می تونه باهاش همکاری کنه. حداقل تبدیل به یه رزومه خوب میشه.
آیدی امیرحسین جهت ارتباط:
@Awmirsn
توضیح برنامه instabot:
یک برنامه اینستاگرام که دارای بخش های آنفالویاب ، مدیریت اکانت و مدیریت دایرکت هست . که البته در این نسخه از برنامه pre-release هست، فقط قابلیت انفالو یابش موجوده ... که اونم کارکردش رو توی ویدیو مشاهده میکنین.
بک اند برنامه بر پایتون با استفاده از کتابخانه instaloader نوشته شده.
فرانت اند برنامه هم با customTkinter نوشته شده.
جفتشم خودم نوشتم.
خلاصه ایده اصلی برنامه مدیریت دایرکت، اکانت و ... هستش.
لینک گیت هاب:
https://gitlab.com/Cyrus2500/instabot-app
این فقط یه نسخه pre-release هست ، برنامه باگ و اشکالات خیلی زیادی داره و میتونه کدش خیلی بهتر بشه
دوستان برنامه نویس خواستن میتونن تو طراحی اصلی برنامه مشارکت داشته باشن، ایده خفنیه!
تمام کلاس های داخل برنامه و توابع دارای docstring هستن و میتونین براحتی نحوه کار کلاس هارو با سن گوگل ترنسلیت بدونین.
درضمن بگم که هدف اصلی برنامه اکانت های بیزنسی هست
اونایی که دایرکت و وضعیت اکانتشون شلوغه
البته اکانت های معمولی هم میتونن استفاده کنن
اگه کار برنامه خیلی بگیر باشه ، رو تبلیغ و ... کار کنیم
قابلیت دایرکت و مدیریت حرفهای اکانت رو میتونیم اشتراکی کنیم
درکل ایده خوبیه
بجز قابلیت بیزنس چت خود اینستاگرام که خیلی حرفهای نیست ، من برنامهای مثل این جایی ندیدم واقعا
اینستا بات ایده یکی از اعضای کانال هستش که بنظرم ایده بدی نیست. پس متن معرفی امیرحسین رو قرار میدم هر کی دوست داشت می تونه باهاش همکاری کنه. حداقل تبدیل به یه رزومه خوب میشه.
آیدی امیرحسین جهت ارتباط:
@Awmirsn
توضیح برنامه instabot:
یک برنامه اینستاگرام که دارای بخش های آنفالویاب ، مدیریت اکانت و مدیریت دایرکت هست . که البته در این نسخه از برنامه pre-release هست، فقط قابلیت انفالو یابش موجوده ... که اونم کارکردش رو توی ویدیو مشاهده میکنین.
بک اند برنامه بر پایتون با استفاده از کتابخانه instaloader نوشته شده.
فرانت اند برنامه هم با customTkinter نوشته شده.
جفتشم خودم نوشتم.
خلاصه ایده اصلی برنامه مدیریت دایرکت، اکانت و ... هستش.
لینک گیت هاب:
https://gitlab.com/Cyrus2500/instabot-app
این فقط یه نسخه pre-release هست ، برنامه باگ و اشکالات خیلی زیادی داره و میتونه کدش خیلی بهتر بشه
دوستان برنامه نویس خواستن میتونن تو طراحی اصلی برنامه مشارکت داشته باشن، ایده خفنیه!
تمام کلاس های داخل برنامه و توابع دارای docstring هستن و میتونین براحتی نحوه کار کلاس هارو با سن گوگل ترنسلیت بدونین.
درضمن بگم که هدف اصلی برنامه اکانت های بیزنسی هست
اونایی که دایرکت و وضعیت اکانتشون شلوغه
البته اکانت های معمولی هم میتونن استفاده کنن
اگه کار برنامه خیلی بگیر باشه ، رو تبلیغ و ... کار کنیم
قابلیت دایرکت و مدیریت حرفهای اکانت رو میتونیم اشتراکی کنیم
درکل ایده خوبیه
بجز قابلیت بیزنس چت خود اینستاگرام که خیلی حرفهای نیست ، من برنامهای مثل این جایی ندیدم واقعا
🔥13👍3
وب سایت slideshare.net
توی این وب سایت درباره هر چیزی می تونید ارائه پیدا کنید.
برای مثال درباره grpc سرچ کنید کلی ارائه میاره مثلا یکیش اینه:
https://www.slideshare.net/GuoJing8/http2-and-grpc?from_search=2
البته رایگان نمیتونید دانلود کنید اما توی وب سایتش میشه بطور رایگان خوند.
#Presentation
@Syntax_fa
توی این وب سایت درباره هر چیزی می تونید ارائه پیدا کنید.
برای مثال درباره grpc سرچ کنید کلی ارائه میاره مثلا یکیش اینه:
https://www.slideshare.net/GuoJing8/http2-and-grpc?from_search=2
البته رایگان نمیتونید دانلود کنید اما توی وب سایتش میشه بطور رایگان خوند.
#Presentation
@Syntax_fa
SlideShare
HTTP2 and gRPC
HTTP2 and gRPC - Download as a PDF or view online for free
👍5
برم تو مسابقات شرکت کنم تا یه رزومه ای شه
سطح مسابقات:
میانگین حتی بیشتر از ماکسیمم هستش.
احتمالا از پایتون بومی سازی شده برای میانگین گرفتن استفاده کردن
#Fun
@Syntax_fa
سطح مسابقات:
میانگین حتی بیشتر از ماکسیمم هستش.
احتمالا از پایتون بومی سازی شده برای میانگین گرفتن استفاده کردن
#Fun
@Syntax_fa
🤣18
آخرین خواسته مرحوم قبل مرگش این بود که تاریخچه سرچ های مرورگرش پاک بشه.
نمونه ای از سرچاش:
- اگه من دوبار ویندوز ۳۲ بیت نصب کنم، ۶۴ بیت میشه؟
- چجوری میتونم اینترنتو توی یه درایور بریزم تا بتونم از محل کار ببرمش خونه؟
- چرا میگن از دکمه خاموش روشن کردن لپتاپ. فقط واسه روشن کردن لپتاپ استفاده کنیم؟
- چرا برنامه نویسا سینگل هستن؟
- چجوری میتونم اکانت فیبسوک دوست دختر سابقمو با html هک کنم؟
- این دکمه any key کدوم دکمه کیبورده؟
#Fun
@Syntax_fa
نمونه ای از سرچاش:
- اگه من دوبار ویندوز ۳۲ بیت نصب کنم، ۶۴ بیت میشه؟
- چجوری میتونم اینترنتو توی یه درایور بریزم تا بتونم از محل کار ببرمش خونه؟
- چرا میگن از دکمه خاموش روشن کردن لپتاپ. فقط واسه روشن کردن لپتاپ استفاده کنیم؟
- چرا برنامه نویسا سینگل هستن؟
- چجوری میتونم اکانت فیبسوک دوست دختر سابقمو با html هک کنم؟
- این دکمه any key کدوم دکمه کیبورده؟
#Fun
@Syntax_fa
🤣25