Syntax | سینتکس
Kanalga Telegram’da o‘tish
Focus: Web Lan: Python & Go Website: https://syntaxfa.ir Quick connect: https://quick-connect.syntaxfa.ir Github: https://github.com/syntaxfa Group: https://t.me/Syntax_fa_group
Ko'proq ko'rsatish2 996
Obunachilar
+724 soatlar
+217 kunlar
+4030 kunlar
Postlar arxiv
2 996
سوال هایی که سطح دانش شما رو مشخص می کنه!
یکی از ساده ترین روش ها برای محک زدن دانشتون، سوال پیچ کردن خودتون هستش.
این کار در دراز مدت باعث میشه سطح دانش شما نسبت به قبل خیلی بیشتر بشه.
خب بیاید چند نوع از این سوالا رو بررسی کنیم.
چیه؟
سوال سطحی که از یک جونیور توقع میره باهاش زیاد سر و کله بزنه این نوع سوال ها هستش.
برای مثال:
فریم ورک چیه؟
داکر چیه؟
رشته چیه؟
فرق بین همروندی و موازی سازی چیه؟
این نوع سوالات شمارو با مفاهیم برنامه نویسی بصورت سطحی آشنا میکنه
اما یه سطح بالاتر سوال هایی هست که درباره چیستی اون ابزار و مفهومه
برای مثال:
چرا از داکر استفاده میکنیم؟
چرا از لاگر ها استفاده میکنیم؟
چرا از میدلور استفاده میکنیم؟
چرا همروندی نیازه؟
در نهایت سوال هایی که پاسخ دادن بهشون، به شما درک عمیقی میدن، سوال هایی هستش که درباره چگونگی کار کردن اون ابزار پرسیده میشه.
برای مثال:
کانتینر چجوری کار میکنه؟
چجوری یک تایپ دیتا از نوع رشته توی حافظه ذخیره میشه؟
فرق بین hypervisor و روش container چی هستش؟
همروندی چجوری باعث پرفورمنس بهتر تو شرایطی که IO داریم میشه؟
پ.ن:
همیشه از خودتون به سبک های مختلف سوال بپرسید و سعی کنید بهترین پاسخ رو براش پیدا کنید.
#Note
@Syntax_fa
2 996
تو یه تست ساده، چهار تا مفهوم زیر رو داریم:
Arrange
چیز هایی که برای نوشتن تست نیازه ست کنیم. برای مثال متغیر ها و آبجکت هایی که نیازه بسازیم تو قسمت arrange انجامش میدیم.
Act
خروجی ای که ما انتظار داریم و خروجی مدنظر و درست ما هستش رو Act میگیم.
Assert
تو این قسمت خروجی مدنظر ما با خروجی واقعی مقایسه میشه و اگه درست باشه pass میشه و اگه درست نباشه Failed میشه و تست ما شکست میخوره
Test Coverage
اینکه تست ما چند درصد از حالت های مختلف رو پوشش داده رو بهش test coverage میگیم. مثلا اگه از 100 حالت 50 حالت رو تست کرده باشیم میشه 50 درصد که یعنی تست ما زیاد خوب و مطمئن نیست
#Test
@Syntax_fa
2 996
توضیح کوتاه درباره برخی از انواع تست نویسی
Unit testing
کلمه Unit به معنی واحد و تک و تنها هستش.
ما برای نوشتن تست برای یک بخش واحد از unit test استفاده میکنیم. برای مثال ما یک فانکشن داریم که کارش محاسبه مالیات بر اساس مقدار درآمد هستش. برای نوشتن تست برای این فانکشن واحد از unit test استفاده میکنیم.
Integration testing
بعضی وقتا خروجی مدنظر ما با کار کردن چند بخش واحد با هم دیگه بدست میاد.
برای مثال سبد خرید رو در نظر بگیرید. باید اول از همه چک کنیم ببینیم توی انبار موجود هستش یا نه بعدش موجودی حساب کاربر رو چک کنیم و خیلی کار های دیگه.
تو همچین شرایطی ما میایم از integration test استفاده میکنیم.
Load testing
برای اینکه مطمئن بشیم سیستم ما در حالت نرمال میتونه جوابگو ریکوئست ها باشه از load test استفاده میکنیم.
Stress testing
توی load testing سیستممون رو توی شرایط نرمال تست میکنیم. اما همیشه شرایط نرمال نیست و بعضی وقتا ممکنه سیستم ما زیر بار بیشتری باشه.
برای تست کردن اینکه سیستم ما در شرایط سنگین و استرسی چجوری عمل میکنه از Stress test استفاده میکنیم.
مطلعه بیشتر تو این لینک
#Test
@Syntax_fa
2 996
تو وب سایت Leetcode چجوری شروع به حل مسئله کنیم؟
این بخش leetcode اسمش ۷۵ هستش. یعنی ۷۵ تا مسئله ای که بیسیک الگوریتم رو پوشش میده هدفش هم اینه توی مصاحبه شوکه نشی.
میتونی از این هفتادو پنج تا مسئله شروع کنی: https://leetcode.com/discuss/general-discussion/460599/blind-75-leetcode-questions
[Amir]
#Leetcode #algorithms
@Syntax_fa
2 996
با توجه به سوالاتتون، یه سری نکات درباره payload بگم
Access token
تو قسمت payload اطلاعاتی که از کاربر تو قسمت پروفایلش نشون میدیم رو قرارش میدیم
رول های کاربر رو توی یک آرایه قرارش میدیم. برای مثال این کاربر فقط رول پیشفرض رو داره پس اگه اندپوینتی پرمیشن ادمین داشته باشه نمیتونه درسترسی داشته باشه.(چک کردن پرمیشن هارو از طریق middleware انجامش میدیم)
Refresh token
تو قسمت payload مقداری که بتونیم به کاربر دسترسی داشته باشیم رو ذخیره می کنیم. برای مثال UserId
بعد با استفاده از Userid سمت دیتابیس درخواست می زنیم و user رو میگیریم. بعدش یه access token جدید میسازیم.(با توجه به شرایط احراز هویت پروژمون ممکنه در کنار access token یه refresh token جدیدم بسازیم)
نکته مهم اینه access token رو مدت زمانشو کم بذارید.
داخل payload رفرش توکن نیاز نیست چیزی جز userId و expireTime قرار بدید.
در نهایت اگه رمزنگاری کنید دیگه کسی جز خودتون نمیتونه اطلاعات توکن رو ببینه.
#JWT
@Syntax_fa
2 996
خبر خوش 🔥
استاد سعید شهریوری عزیز بزرگواری کرده و موافقت کرد با ما میت برگزار کنه تا ما بتونیم از تجربیات و سوادش بهره ببریم.
لینکدین استاد شهریوری:
https://www.linkedin.com/in/saeed-shahrivari-joghan-01358741
بچه ها استاد شهریوری یدونست. منکه خیلی لذت میبرم از نحوه بیان و توضیح دادنش👌
توی یوتیوب میتونید بعضی از آموزش هاشو ببینید:
پلی لیست ساختمان داده
https://youtube.com/playlist?list=PL7TO4klQB2X7HdJ49S-19vQxfP4gR2oi7&si=q1D6-3-Nh2xipSbh
پلی لیست هوش مصنوعی:
https://youtube.com/playlist?list=PL7TO4klQB2X6u1mpr5HFv-hJiOhOrkpTi&si=wOovzKz0hqK0ZigO
تو کامنت این پست بگید دوست دارید درباره چه موضوعی صحبت شه.
بنظرم بهتره میت به این صورت برگزار شه که اکثر تایم درباره یک مبحث صحبت کنیم و قسمت پایانی چند تا از سوالات پاسخ داده بشه
#meet
@Syntax_fa
2 996
مقایسه سرعت زبون های برنامه نویسی #بک_اند ⚡️ کدوم زبون انتخاب کنیم؟
چرا APIها کند میشن؟ باتل نک یعنی چی؟ چی میتونه کمک کنه پرفورمنس سرویسمون بهتر شه؟ نقش OS Thread ها چیه؟ کانکارنسی یعنی چی؟ فرق Async با Thread چیه؟ پرفورمنس Development Server با Gunicorn در Django چه فرقی داره؟چرا توی Golang مثل Javascript از Async/Await استفاده نمیکنیم؟و کلی سوال دیگه که کمکمون میکنن معنی پرفورمنس و بهبود پرفورمنس رو توی سرویس های بکاند متوجه بشیم و با این اصطلاح ها که روزمره استفاده میشن با بنچ مارک و عدد بهتر آشنا شیم. https://youtu.be/TvWF1d1jLtY
2 996
اقا اومدم یه اپ معرفی کنم مخصوص اونایی که مثه بنز میخوابن " مثل خودم 😐
این اپی که عکسشو براتون گزاشتم توش تایم رو مثال ست میکنید ۹ صبح
بعد ۹ صبح که زنگ میخوره گوشیتون تا وقتی که داخل اپ یه سری کپچاهارو حل نکنید زنگ قطع نمیشه !
و اینطوری بزور بیدارتون میکنه
لینک دانلود از گوگل پلی 👇
https://play.google.com/store/apps/details?id=com.urbandroid.sleep
Writer " @ownervin "
Channel @Syntax_fa
2 996
داره آروم جون میده، نسلی که مرگُ فهمیده،
نمیدونم چرا اما آزادی بوی خون میده!
Syntax
2 996
یه وب سایت باحال برای تست کردن سرعت و دقت تایپ کردنتون.
https://monkeytype.com/
#Fun
@Syntax_fa
2 996
اپلیکیشن Real-Time بدون وب سوکت با Long Polling - از تلگرام یاد بگیریم
وقتی از اپلیکیشن Real-Time صحبت میکنیم اولین چیزی که همه به ذهنشون میاد #وب_سوکت هستش و منطقا میتونه انتخاب خوبی باشه اما #long_polling هم تکنیک خوبی هستش که اکثر نیازهای معمول ما رو برطرف میکنه، تا اونجایی که تلگرام برای پیادهسازی APIهای ربات هاش از این تکنیک استفاده کرده.
به شکل خلاصه، کانکشن HTTPرو باز نگه میداریم تا وقتی که notification جدیدی یا update جدیدی برای کاربرمون داشته باشیم، بدین شکل با استفاده از HTTP/1 هم میتونیم قابلیت Real-time بودن رو برای اپلیکیشنمون پیاده سازی کنیم.
توی این ویدیو با هم اول روش های مرسوم رو با هم مرور میکنیم و می بینیم چطور long-polling بخش زیادی از مشکلات Short-polling رو رفع میکنه و در نهایت با هم با کمک ردیس در Go اون رو پیاده سازی میکنیم.
https://youtu.be/Qmh7M6qx3H8?si=KoyorEX1J1Q8-b3C
#Go #Long_polling
@Syntax_fa
2 996
امشب یه میت خوب قراره تو کانال easymicroservices قراره برگزار بشه و درباره این موضوعات صحبت بشه:
1. میکروسرویس و مونولیت و ماژولار و میکروکامپوننتها چی هستند؟
2. انتخاب بین میکروسرویس یا مونولیت؟
3. چطوری یک پروژهی بزرگ مونولیت رو ببریم به سمت میکروسرویس؟
4.چطوری میکروسرویس رو ببریم سمت مونولیت؟
5. چالشهایی که توی هرکدوم میخوریم؟
6.کارهایی که توی Easy microservices انجام دادیم؟
7.چطوری یک معمار بشیم؟ چطوری نرم افزارهای بزرگ رو معماری کنیم؟
8. چقدر و چطوری درگیر دیتابیسها بشیم؟
9. از چت جی پی تی استفاده کنیم؟ نکنیم؟ چطوری؟
10. مهارت های نرم و سافت اسکیل هامون رو چطوری تقویت کنیم؟ مهارت های ارتباطی.
لینک کانال:
https://t.me/easymicroservices
(ارزشش از کلی میت و پادکستی که کانالای چند کایی برگزار میکنن بیشتره)
#meet
@Syntax_fa
2 996
اقا اومدیم تست نویسیو تو جنگو شروع کنیم رسیدیم به داکیومنت خوندن و اینا
و خب یجایی ب این برخوردیم که خب الان من یه تست برای مدلم میخوام بنویسم با TestCase
و خب یه آبجکت به مدل بخوام اضافه کنم تو تستم به کار ببرم یکم مشکله ! حالا مشکلش کجاست؟
شما فکر کن مدل من ۵۰ تا فیلد داره من باید بیام این ۵۰ تارو خودم مقدار دهی کنم 😐 خب چیکار کنم؟
یه کتابخونه هست به اسم " model bakery" که براتون اینکارو انجام میده!
دستور نصب 👇
pip install model-bakery
____
from model_bakery import bakery
from .models import Todo
todo = bakery.make(Todo)
خب الان بهش گفتیم مدلمون Todo هست و میاد خودش مقدار دهیش میکنه و یک ابجکت برامون میسازه !
میتونیم به مقادیر هم دسترسی پیدا کنیم مثال اگر فیلد name داخل مدل ما باشه
todo.name
میتونیم اینطوری بهش دسترسی پیدا کنیم!
خب این گذشت حالا بعضی وقتا هست ما میخوایم یک فیلدی رو خودمون مقدار دهی کنیم و بقیه فیلد هارو رو بزاریم خودش مقدار دهی کنه ! چطوریه؟
from model_bakery import bakery
from .models import Todo
todo = bakery.make(Todo, name="Benyamin")
اینطوری فیلد دلخواه رو خودمون مقدار دهی کردیم و مابقیش رو خودش مقدار میده! #تمام
اینم بگم منوقتی با این کتابخونه اشنا شدم و خب یکمی داخل تست نویسی داخل جنگو جلو که رفتم یه سری هم به مونگارد زدم و دوره اون رو شروع کردم و داخل دوره تست نویسی مونگارد هم دیدم این رو توضیح داده :)
#تست_نویسی
#تست_نویسی_در_جنگو
#جنگو
🫶 نویسنده : @ownervin
@Syntax_fa2 996
سلام BitSnake هستم کوچک همتون
اسکریپتی که نوشتم از یک API برای دریافت پراکسی ها (Http, Socks4, Socks5) استفاده می کنه و پس از دریافت شروع به بررسی پراکسی ها با آدرس www.google.com میکنه.
بعد از بررسی پراکسی ها در دو فایل Proxy.txt و ProxyCheck.txt پراکسی ها رو ذخیره می کنه.
پراکسی های دریافت شده مستقیم از API در فایل Proxy.txt و پراکسی های علامت گذاری شده در فایل ProxyCheck.txt ذخیره می شن.
لینک پروژه:
https://github.com/bitsnakee/Proxy-rec
ایدی من جهت ارتباط:
@bit_snake
#proxy
@Syntax_fa
Endi mavjud! Telegram Tadqiqoti 2025 — yilning asosiy insaytlari 
