Media is too big
VIEW IN TELEGRAM
گفتگو با سید محمد خشنوا برنامه نویس وب دیجی کالا
این گفتگو توی هنرستان انجام شد
توی این ویدئو با سید محمد خشنوا صحبت کردیم و به چندین سوال که از قبل براش فرستاده بودیم، پاسخ داد.
بعدش سوالات دانش آموزهارو پاسخ داد. البته بخش سوالهارو به دلیل رعایت حریم خصوصی دانش آموزان اجازه نداشتم ضبط کنم.
سید محمد خشنوا برنامه نویس وب دیجی فای زیرمجموعه دیجی کالا هست.
هنرستان شهید دبیریان در منطقه 16 تهران و محله نازی آباد تهران هست.
لینک ویدئو در آپارات:
https://www.aparat.com/v/ccl5kc1
لینک ویس این گفتگو:
https://t.iss.one/djangolearn_ir/1193
لینک کانال سید محمد خشنوا:
https://t.iss.one/seyed_bax
ویس این گفتگو هم توی پست بعدی میزارم
این گفتگو توی هنرستان انجام شد
توی این ویدئو با سید محمد خشنوا صحبت کردیم و به چندین سوال که از قبل براش فرستاده بودیم، پاسخ داد.
بعدش سوالات دانش آموزهارو پاسخ داد. البته بخش سوالهارو به دلیل رعایت حریم خصوصی دانش آموزان اجازه نداشتم ضبط کنم.
سید محمد خشنوا برنامه نویس وب دیجی فای زیرمجموعه دیجی کالا هست.
هنرستان شهید دبیریان در منطقه 16 تهران و محله نازی آباد تهران هست.
لینک ویدئو در آپارات:
https://www.aparat.com/v/ccl5kc1
لینک ویس این گفتگو:
https://t.iss.one/djangolearn_ir/1193
لینک کانال سید محمد خشنوا:
https://t.iss.one/seyed_bax
ویس این گفتگو هم توی پست بعدی میزارم
🔥8❤2
جنگولرن
گفتگو با سید محمد خشنوا برنامه نویس وب دیجی کالا این گفتگو توی هنرستان انجام شد توی این ویدئو با سید محمد خشنوا صحبت کردیم و به چندین سوال که از قبل براش فرستاده بودیم، پاسخ داد. بعدش سوالات دانش آموزهارو پاسخ داد. البته بخش سوالهارو به دلیل رعایت حریم خصوصی…
Audio
ویس گفتگو با سید محمد خشنوا برنامه نویس وب دیجی کالا
لینک ویدئو:
https://t.iss.one/djangolearn_ir/1192
لینک ویدئو:
https://t.iss.one/djangolearn_ir/1192
❤4
Forwarded from Code With HSN
چرا شرکتهای بزرگ از Object Storage استفاده میکنند؟ (در 14 دقیقه)
در این ویدیو به زبون ساده توضیح میدم چرا Object Storageهایی مثل S3 و MinIO ساخته شدن و چطور شرکتهای بزرگی مثل دیجیکالا، اسنپ و آمازون ازش استفاده میکنن.
اگر تا حالا برات سوال بوده S3 دقیقا چیه یا چطور MinIO باهاش سازگاره، این ویدیو رو ببین.
00:00 مشکل چیبود ObjectStorage خلق شد
04:32 نحوه ارتباط سرویس ها روی Diagram
06:20 کاربرد AWS S3 یا MinIO بیشتر است؟
07:14 ارسال یک آبجکت به AWS S3
10:39 سازگاری MinIO با S3
13:23 معرفی SDK اختصاصی MinIO
برای مشاهده ویدیو بیاید یوتیوب 🤫
پلی لیست: Cloud & Architecture Series
مدت زمان ویدیو: 14 دقیقه
مسیر طولانی با یه قدم شروع میشه. روز خوبی داشته باشید 🫂
در این ویدیو به زبون ساده توضیح میدم چرا Object Storageهایی مثل S3 و MinIO ساخته شدن و چطور شرکتهای بزرگی مثل دیجیکالا، اسنپ و آمازون ازش استفاده میکنن.
اگر تا حالا برات سوال بوده S3 دقیقا چیه یا چطور MinIO باهاش سازگاره، این ویدیو رو ببین.
00:00 مشکل چیبود ObjectStorage خلق شد
04:32 نحوه ارتباط سرویس ها روی Diagram
06:20 کاربرد AWS S3 یا MinIO بیشتر است؟
07:14 ارسال یک آبجکت به AWS S3
10:39 سازگاری MinIO با S3
13:23 معرفی SDK اختصاصی MinIO
برای مشاهده ویدیو بیاید یوتیوب 🤫
پلی لیست: Cloud & Architecture Series
مدت زمان ویدیو: 14 دقیقه
مسیر طولانی با یه قدم شروع میشه. روز خوبی داشته باشید 🫂
❤5🔥3✍2👍2👏2🆒1
Code With HSN
چرا شرکتهای بزرگ از Object Storage استفاده میکنند؟ (در 14 دقیقه) در این ویدیو به زبون ساده توضیح میدم چرا Object Storageهایی مثل S3 و MinIO ساخته شدن و چطور شرکتهای بزرگی مثل دیجیکالا، اسنپ و آمازون ازش استفاده میکنن. اگر تا حالا برات سوال بوده S3 دقیقا…
درسته که توی بخش کوچیکی از ویدئو داره کد سی شارپ مینویسه.
اما 99 درصد ویدئو مفاهیم هست و ربطی به زبان برنامه نویسی نداره.
اینم یه پکیج پایتونی minio
https://pypi.org/project/minio-py3/
اینم خود minio
https://www.min.io/
راستی لیارا، آروان، ایران سرور و... این سرویس Object Storage ع S3 رو دارن
اگه توی پایتون در این مورد تجربه ای داری کامنت کن لطفا
مثلا ابزار جایگزین میشناسی یا...
تشکر از تو
اما 99 درصد ویدئو مفاهیم هست و ربطی به زبان برنامه نویسی نداره.
اینم یه پکیج پایتونی minio
https://pypi.org/project/minio-py3/
اینم خود minio
https://www.min.io/
راستی لیارا، آروان، ایران سرور و... این سرویس Object Storage ع S3 رو دارن
اگه توی پایتون در این مورد تجربه ای داری کامنت کن لطفا
مثلا ابزار جایگزین میشناسی یا...
تشکر از تو
👍3❤1
سوال یکی از دوستان (اگه می دونید، راهنمایی ش کنید):
سلام خسته نباشید کتاب خوب برای جنگو چی پیشنهاد میکنید که عالی باشه !؟ و ترجمه خوبی داشته باشه و همه ساختار های جنگو رو پوشش بده
سلام خسته نباشید کتاب خوب برای جنگو چی پیشنهاد میکنید که عالی باشه !؟ و ترجمه خوبی داشته باشه و همه ساختار های جنگو رو پوشش بده
Forwarded from Milad Hatami
Media is too big
VIEW IN TELEGRAM
⭕️💢کافه جنگو💢⭕️
آموزش جنگو پایتون
جلسه : سوم
موضوع این جلسه: ساختار جنگو، ساخت اولین اپ و آشنایی با urls
رشته: فنی پایه 11 کتب جدید
پایه: 11 فنی و 11 و 12 کاردانش
درس: وب
سطح: متوسط
مدرس: مهندس حاتمی
🔻🔻🔻🔻🔻🔻
#کافه_دانش
#کافه_جنگو
#جلسه_3
#سطح_متوسط_پیشرفته
#توسعه_وب
#یادگیری_مفاهیم_وب
#دبیرخانه_کشوری_رایانه
#مستقر_در_استان_زنجان
#کانال_شاد_دبیرخانه_رایانه
@Yvt_computer
#کافه_دانش
t.iss.one/Zncd_ir_Cafe
#آدرس_سایت_دبیرخانه_رایانه
ZNCD.ir
آموزش جنگو پایتون
جلسه : سوم
موضوع این جلسه: ساختار جنگو، ساخت اولین اپ و آشنایی با urls
رشته: فنی پایه 11 کتب جدید
پایه: 11 فنی و 11 و 12 کاردانش
درس: وب
سطح: متوسط
مدرس: مهندس حاتمی
🔻🔻🔻🔻🔻🔻
#کافه_دانش
#کافه_جنگو
#جلسه_3
#سطح_متوسط_پیشرفته
#توسعه_وب
#یادگیری_مفاهیم_وب
#دبیرخانه_کشوری_رایانه
#مستقر_در_استان_زنجان
#کانال_شاد_دبیرخانه_رایانه
@Yvt_computer
#کافه_دانش
t.iss.one/Zncd_ir_Cafe
#آدرس_سایت_دبیرخانه_رایانه
ZNCD.ir
👍3❤1
جنگولرن
⭕️💢کافه جنگو💢⭕️ آموزش جنگو پایتون جلسه : سوم موضوع این جلسه: ساختار جنگو، ساخت اولین اپ و آشنایی با urls رشته: فنی پایه 11 کتب جدید پایه: 11 فنی و 11 و 12 کاردانش درس: وب سطح: متوسط مدرس: مهندس حاتمی 🔻🔻🔻🔻🔻🔻 #کافه_دانش #کافه_جنگو #جلسه_3 #سطح_متوسط_پیشرفته…
ویدئو جلسه سوم - ساختار جنگو، ساخت اولین اپ و آشنایی با urls
لینک آپارت این ویدئو:
https://aparat.com/v/itu3kk2
این ویدئو رو برای همکاران آموزش و پرورش ساختم.
کلاس به صورت آنلاین بود.
بیش از 30 نفر در کلاس شرکت داشتن. و استقبال خوبی شد، خداروشکر.
اگه نکته ای یا انتقادی دارید، توی کامنت ها بنویسید لطفا
یا به @miladhzz پیام بدید
لینک آپارت این ویدئو:
https://aparat.com/v/itu3kk2
این ویدئو رو برای همکاران آموزش و پرورش ساختم.
کلاس به صورت آنلاین بود.
بیش از 30 نفر در کلاس شرکت داشتن. و استقبال خوبی شد، خداروشکر.
توی این ویدئو که برای همکاران هنرستانی برگزار شد، اولین اپلیکیشن جنگو رو ساختیم.
ابتدا با جداول جنگو در دیتابیس sqlite آشنا شدیم. بعدش رفتیم سراغ ORM جنگو و در ادامه تونستیم لیست کاربران و همچنین جزییات کاربر رو نمایش بدیم.
با مثال کاربران با urls و templates آشنا شدیم. و فهمیدیم که هر اپ میتونه اجزای مخصوص خودش رو داشته باشه.
آخر کلاس هم پرسش و پاسخ داشتیم.
توی این دوره قراره بر اساس کتاب Django 5 By Example پیش بریم. ولی مفاهیمی فراتر از کتاب رو قطعا پوشش خواهیم داد.
تمرکز این دوره بر پرسش و پاسخ خواهد بود. که بتونیم به همکاران راهنمایی بدیم.
اگه نکته ای یا انتقادی دارید، توی کامنت ها بنویسید لطفا
یا به @miladhzz پیام بدید
👏4❤1
مسیر ساخت WAF در ترب؛ نگاهی به چالشها و تجربههای بهدست آمده
مسیر طراحی و پیادهسازی WAF در ترب، سفری بود از ابزارهای آماده و متنوع تا ساخت یک سیستم اختصاصی و متناسب با نیازهای خودمان. در ابتدا با راهحلهایی مانند OPNsense و iptables تلاش کردیم تا جلوی درخواستهای مشکوک را بگیریم. این روشها ساده و سریع بودند، اما در مقیاس بالا مشکلاتی مثل کندی، دشواری در عیبیابی و محدودیت در نمایش خطا به کاربر داشتند.
در ادامه، با استفاده از Traefik سعی کردیم کنترل ترافیک را به لایهی ۷ منتقل کنیم تا بتوانیم رفتار کاربران را دقیقتر تحلیل کنیم و در صورت نیاز، با نمایش چالش (challenge) از صحت درخواستها مطمئن شویم. این روش هر چند مزیتهایی داشت، اما در برابر رشد ترافیک و حملات DDoS پایداری کافی نداشت و نگهداری از قوانینش در مقیاس بالا سخت بود.
در نهایت، با مهاجرت به Envoy و توسعهی سیستمی بر پایهی فیلتر External Processing، امکان پیادهسازی WAF برای ترب فراهم شد. در این معماری جدید، وظایف مدیریت قوانین و اعمال قوانین از هم جدا شدند (control plane و data plane)، قوانین با ساختاری ساده ولی کارآمد مدیریت میشوند، و عملکرد سیستم در تستها نشان داد که افزایش زمان پاسخگویی ناچیز و قابل قبول است.
استفاده از فرمت mmdb برای ذخیرهی قوانین IP باعث شد تا مصرف منابع به شکل چشمگیری کاهش یابد و انتقال قوانین از control plane به data plane سریعتر انجام شوند. به این ترتیب، WAF جدید توانست بدون فدا کردن سرعت یا پایداری، جایگزین مناسب و قابل توسعهای برای زیرساختهای قبلی باشد.
در مجموع، این تجربه برای تیم ما تنها ساخت یک ابزار امنیتی نبود، بلکه گامی در جهت یادگیری، بهینهسازی و ساخت زیرساختهایی بود که در برابر چالشهای آینده مقاومتر باشند.
لینک پست
مسیر طراحی و پیادهسازی WAF در ترب، سفری بود از ابزارهای آماده و متنوع تا ساخت یک سیستم اختصاصی و متناسب با نیازهای خودمان. در ابتدا با راهحلهایی مانند OPNsense و iptables تلاش کردیم تا جلوی درخواستهای مشکوک را بگیریم. این روشها ساده و سریع بودند، اما در مقیاس بالا مشکلاتی مثل کندی، دشواری در عیبیابی و محدودیت در نمایش خطا به کاربر داشتند.
در ادامه، با استفاده از Traefik سعی کردیم کنترل ترافیک را به لایهی ۷ منتقل کنیم تا بتوانیم رفتار کاربران را دقیقتر تحلیل کنیم و در صورت نیاز، با نمایش چالش (challenge) از صحت درخواستها مطمئن شویم. این روش هر چند مزیتهایی داشت، اما در برابر رشد ترافیک و حملات DDoS پایداری کافی نداشت و نگهداری از قوانینش در مقیاس بالا سخت بود.
در نهایت، با مهاجرت به Envoy و توسعهی سیستمی بر پایهی فیلتر External Processing، امکان پیادهسازی WAF برای ترب فراهم شد. در این معماری جدید، وظایف مدیریت قوانین و اعمال قوانین از هم جدا شدند (control plane و data plane)، قوانین با ساختاری ساده ولی کارآمد مدیریت میشوند، و عملکرد سیستم در تستها نشان داد که افزایش زمان پاسخگویی ناچیز و قابل قبول است.
استفاده از فرمت mmdb برای ذخیرهی قوانین IP باعث شد تا مصرف منابع به شکل چشمگیری کاهش یابد و انتقال قوانین از control plane به data plane سریعتر انجام شوند. به این ترتیب، WAF جدید توانست بدون فدا کردن سرعت یا پایداری، جایگزین مناسب و قابل توسعهای برای زیرساختهای قبلی باشد.
در مجموع، این تجربه برای تیم ما تنها ساخت یک ابزار امنیتی نبود، بلکه گامی در جهت یادگیری، بهینهسازی و ساخت زیرساختهایی بود که در برابر چالشهای آینده مقاومتر باشند.
لینک پست
ویرگول
مسیر ساخت WAF در ترب؛ نگاهی به چالشها و تجربههای بهدست آمده
مروری بر چگونگی اعمال محدودیت برای درخواستهای مشکوک در ترب
❤3✍3
Forwarded from tech-afternoon (Amin Mesbahi)
توسعهی نرمافزار رو میشه مثل ساختمون، بدون نقشه و طرح معماری ساخت! نگید نمیشه؛ چون خیلیا میسازن و شده! 😂 تیمها شروع میکنن به دیوارکشی (توسعه فرانتاند و بکاند)، ولی وقتی میرسن به اتصالات (Integration)، میبینن لولهکشی و سیمکشی (API) شبیه خونهی پتومت در اومده که از پریز برق آب میاد، لوله برق داره یا درِ پارکینگ به جای کوچه، به پذیرایی همسایه باز میشه؛ ساختمونه هم بین ساختمونهای مجاورش شبیه جوجه کلاغ وسط صد تا جوجه اردکه!
رویکرد سالهای دور (دلار هزار تومنی) این بود که API یه "محصول جانبی" برای ارتباط با سایر سیستمها محسوب میشد؛ یعنی اول بکاند نوشته میشد، بعد یه قسمتی از اون رو بهصورت API در معرض استفاده قرار میدادن. ریشههای این روش، عموما توی خاک سیستمهای دادهمحور (Data-First) رشد میکرد؛ و کمتر "مصرفکنندهمحور" (Consumer-Centric) بود.
از طرفی زیاد دیدیم که تیمها معطل هم برای آماده شدن API میمونن! یا اعصابشون سر تغییراتی که تیم مقابل روی APIهاش بعد از تفاهم اولیه داده خورد میشه! فرانت میگه "API تون درست کار نمیکنه"، بکند میگه "شما درست صداش نمیزنین"، و QA هم وسط این دعوا نرخ تعیین میکنه! یه بخش بزرگ از این سردردها از نداشتن یه زبون مشترک و قرارداد واضح بین تیمهاست.
از طرف دیگه، خیلی وقتها میبینیم که بکند کدش رو نوشته، بعد مستندات رو مینویسه، بعد معلوم میشه مصرفکننده یه چیز دیگه میخواسته! حالا برگردیم و دوباره بنویسیم؟ یا همینجوری با کثیفکاری وصلش کنیم؟ شنیدن جمله "ما بعداً مستندات رو کامل میکنیم!" چیز غریب و نادری نیست! ولی واقعیت اینه که توی تیمهای بالغ، اول API Spec رو مینویسن، بعد کد. اگر هم خیلی بالغ باشن، این Spec رو به عنوان یه قرارداد (Contract) بین تیمها در نظر میگیرن و با ابزارهای خودکار، صحت پیادهسازی و انطباق عینی با طرح و نقشهی اولیه رو کنترل میکنن.
🧭 مفهوم API-First یعنی چی؟
مفهوم API-First یعنی قبل از نوشتن کد، اول API رو طراحی کنیم (عموما توسط معمار این اتفاق میافته) یعنی بشینیم، فکر کنیم، بنویسیم که چه endpointهایی داریم، چه input/output هایی، چه status codeهایی، چه headerهایی... و همهی اینها رو توی یه فایل OpenAPI Spec یا مشابهش ثبت کنیم.
این یعنی API ما از ابتدا مستند شده، با بیزنس، با پروداکت، با تیمهای همکار میشه سناریوسازی و مرور کرد؛ تغییر داد و منطبقش کرد با نیاز واقعی؛ و بعد به کد! بعتر هم برای تغییرات، اول API Spec تغییر میکنه و بعد کد. چه اتفاق میوفته؟
- پیشبینیپذیری: همه میدونن قراره چه دادهای رد و بدل بشه.
- موازیسازی توسعه: تیمهای مختلف میتونن همزمان پیش برن؛ یکی Mock بسازه، یکی پیادهسازی واقعی.
- مستندسازی خودکار: چون API از اول با استانداردهایی مثل OpenAPI تعریف میشه، مستندات همیشه با واقعیت همراستا میمونن.
- کیفیت بالاتر: چون قبل از کدنویسی، درباره طراحی و naming و consistency فکر میکنی.
اینطوری API Spec شما اولا توی سورسکنترل نگهداری میشه، همواره نسخه تست، استیج رو به صورت live در دسترسی داریم، API Owner هر دامنه مشخصه؛ هر کی عشقش کشید به هر شکلی یه API نمینویسه، breaking changeها و کانفلیکتها قبل از تغییر در API آشکار میشن و کلی مزیت دیگه که از حوصله پست تلگرامی خارجه.
رویکرد API-First فقط یک روش نیست، یک تغییر فرهنگی در سازمان، و تغییر استراتژیک در توسعه نرمافزاره. این رویکرد، API رو از یک "افزونه" به یک "محصول اصلی" تبدیل میکنه که برای تجربه توسعهدهنده، سرعت و کیفیت نهایی خیلی حیاتیه. وقتی API-First باشیم، سیستمهای ما در برابر تغییرات مقاومتر، انعطافپذیرتر و آمادهتر برای Integration Economy خواهند بود. یکی از شرکتهایی که بر اساس رویکرد API First کار میکنه زالاندو است که اتفاقا خیلی سخاوتمندانه، یا به توصیف دقیقتر، هوشمندانه، دستورالعمل و راهنمای خودش رو سالهاست به صورت کدباز منتشر کرده و به نظر من بسیار مستند پخته و خوبیه.
پیشنهاد میکنم API رو با سادهسازیهایی که go, fastAPI, flask, .NET یه موضوع خیلی ساده نبینیم، طراحی و نگهداری بد، مصیبتهای خودش رو در بلندمدت نشون میده، موقع اینتگریشنهای بعدی نشون میده و اون وقته که متوجه میشیم ای کاش از ابتدا مشورت گرفته بودیم و صرف «کار کردن» API به خودمون نمره قبولی نمیدادیم! حتمن این روش پرهزینهتر و نیازمند زمان آمادهسازی و توسعه بیشتریه، ولی عملا سرمایهگذاری زمان رشد و اینتگریشن خواهد بود.
Zalando RESTful API and Event Guidelines
Please open Telegram to view this post
VIEW IN TELEGRAM
✍8👍4
نکتهای برای نامگذاری مقادیر بولین و وضعیتها:
برای مقادیر بولین، اسم رو به شکل سؤال بنویس تا خوندنش طبیعیتر بشه 👇
✅ به جای active بنویس is_active
✅ به جای verified بنویس is_verified
✅ به جای access بنویس has_access
✅ به جای edit بنویس can_edit یا is_editable
✅ به جای deleted بنویس is_deleted
اگه حالتها بیش از دو تا هستن (مثلاً pending / approved / rejected)،
از Enum استفاده کن تا کد خواناتر و ایمنتر بشه.
همچنین میتونی بعضی وضعیتها رو با propertyها نمایش بدی:
✍🏻@thealibigdeli_channel
برای مقادیر بولین، اسم رو به شکل سؤال بنویس تا خوندنش طبیعیتر بشه 👇
✅ به جای active بنویس is_active
✅ به جای verified بنویس is_verified
✅ به جای access بنویس has_access
✅ به جای edit بنویس can_edit یا is_editable
✅ به جای deleted بنویس is_deleted
اگه حالتها بیش از دو تا هستن (مثلاً pending / approved / rejected)،
از Enum استفاده کن تا کد خواناتر و ایمنتر بشه.
همچنین میتونی بعضی وضعیتها رو با propertyها نمایش بدی:
@property
def should_be_canceled(self):
return self.status in ["pending", "failed"]
✍🏻@thealibigdeli_channel
👍10✍1
🩷 اولین و تنها هاستینگِ تخصصی پایتونیِ کشور 🩷
میزبانی امن و پرسرعت برای پروژه های پایتونی شما (جنگو، فلسک، ربات تلگرام، ربات روبیکا و یا ....)
✔️ پشتیبانی تخصصی پایتون
✔️ ارائه ترمینال جهت نصب هر لایبراری
✔️ دیتابیس های مختلف از جمله postgreSQL, mariadb یا sqlite
✔️ پشتیبانی از تمام نسخه های پایتونی از ۲.۷ الی ۳.۱۲
✔️ بروی قوی ترین زیرساخت در ۲ لوکیشن ایران و آلمان
🔗 سفارش هاست پایتون
50% تخفیف جهت خرید هاست ماهانه:
➗ mh50 ➗
🖥 https://pythonhost.ir
میزبانی امن و پرسرعت برای پروژه های پایتونی شما (جنگو، فلسک، ربات تلگرام، ربات روبیکا و یا ....)
✔️ پشتیبانی تخصصی پایتون
✔️ ارائه ترمینال جهت نصب هر لایبراری
✔️ دیتابیس های مختلف از جمله postgreSQL, mariadb یا sqlite
✔️ پشتیبانی از تمام نسخه های پایتونی از ۲.۷ الی ۳.۱۲
✔️ بروی قوی ترین زیرساخت در ۲ لوکیشن ایران و آلمان
🔗 سفارش هاست پایتون
50% تخفیف جهت خرید هاست ماهانه:
🖥 https://pythonhost.ir
🤮1