uz
Feedback
Python Hints

Python Hints

Kanalga Telegram’da o‘tish

Python tips and tricks The Good, Bad and the Ugly توی این کانال فقط قرار هست در مورد core python صحبت کنیم. این کانال یک بلاگ شخصی هست و پیرامون نظرات و چیزهایی که توی بیش از ۱۰ سال کد زدن یاد گرفتم (فقط برای کمک به دوستان تازه‌کار) Admin: @Abbasi_ai

Ko'proq ko'rsatish
9 624
Obunachilar
+124 soatlar
+357 kunlar
+21330 kunlar
Postlar arxiv
#موقت دوتا پست قبلتر؛ حدود 250 بار share داشته. خواهش می‌کنم از این بخش به بعد پست اصلی رو بخونید. فقط برای یادآوری می‌گم 🌹

#reminder DRF security checklist

به این موارد چندتا مورد امنیتی هم اضافه کنید. دانستن بعضی چیزها وقتی خودتون رو web developer معرفی می‌کنید اجباری هست؛ اونقدر واضح و اجباری که هیچکس از شما راجبش شاید سوال هم نکنه؛ ولی توی کار وقتی ببینند رعایت نمی‌کنید و خرابکاری جدی به بار میارید، از کار کنار گذاشته می‌شید. چندتا مورد خیلی ساده‌اش : ۱- قبل از هر release باید پکیج‌های اصلی رو بررسی کنید، حتماً باید چک کنید که مشکل امنیتی نداشته باشه، خیلی‌ها توی دنیای python از مکانیزم‌های version lock, pip freeze, ... استفاده می‌کنند. این کار درست نیست (قبلاً هم صحبت کردم راجبش بجای = از ~= استفاده کنید) شما حداقل باید patch هارو بصورت خودکار بگیرید. اگر ورژن کتابخانه‌ها رو روی یک ورژن خاص می‌گذارید؛ حداقل باید ابزاری برای بررسی باگ‌های مهم و ورژن کتابخانه‌ها داشته باشید؛ که حتماً توی پایپ لاین این موضوع رو بررسی کنه. ۲- حداقل هر چند وقت یکبار یک نگاهی به داکیومنت اون کتابخانه بندازید، ببینید هنوز maintain می‌شه یا deprecate شده ؟ ۳- صرف اینکه؛ JWT و SHA-256 استفاده می‌کنید اپلیکیشن شما امن نیست. من خیلی دیدم، که توی jwt متأسفانه بعضی‌ها اطلاعات کاربر رو می‌گذارند که خب خیلی اشتباه هست. یا مثلاً فارغ از اینکه پروژه برای چه کاری هست و چقدر باید امن باشه یا ... همیشه برای password hash از الگوریتم خاصی استفاده می‌کنند مثلا sha2-256 ۴- حداقل آشنایی با SQL-Injection, XSS, ... رو باید داشته باشید و موارد دیگر، البته که خیلی از این موارد رو Django برای شما انجام داده و مطمئن می‌شه وجود نداشته باشه و خیلی های دیگه هم باید توسط برنامه نویس رعایت بشه. بعضی‌ها حتی باید توی Test نویسی چک بشه وگرنه پروژه که بزرگ بشه احتمالش زیاد هست باعث نفوذ به سیستم و ... بشه. یادم باشه بعداً یک checklist مخصوص DRF برای این موضوع آپلود کنم؛ تمام موارد رو حداقل در حد آشنایی بدونید و مطمئن بشید پروژه‌ امن هست. مشکل امنیتی بسیار زیاد توی پروژه‌های دوستان می‌بینم و بهتون اطمینان خاطر میدم که به هیچ‌وجه من ادعایی روی سواد امنیتی و ... ندارم و این موارد بایدهای Software Engineering هست.

گفتم سال جدیدی یک لیستی از چیزهایی که یک Django Developer باید بلد باشه رو بهتون بدم؛ این موارد حداقل چیزهایی هست که به محض ورود به هر پروژه استاندارد Django باید بلد باشید. نکته مهم : من ۹۹.۹٪ وقتا فقط Django Rest Framework استفاده می‌کنم پس توی متن هرجا گفتم Django منظورم همون DRF هست. ۱- یک سری چیزها هست که شما باید بلد باشی ربطی به جنگو هم نداره؛ اگر میخوای پیشرفت کنی باید بتونی با اینا کار کنی: Linux, PostgreSQL, Docker & Docker Compose, Redis, Nginx, Celery & Celery beat بعضی وقتا RabbitMQ, Kafka هم نیازمندی هست؛ بسته به سطح شما به مرور زمان توی موارد بالا حرفه‌ای تر می‌شید. لینوکس رو خیلی‌ها کنار میذارند که خیلی اشتباه هست؛ ببین کل استک شما قراره بره روی docker, k8s, podman یا ... وقتی یک اتفاقی توی سیستم میوفته و لاگ سرور بهت داده می‌شه هم container شما لینوکس هست هم ۹۹.۹٪ سرور شما؛ اگر نتونی اون مشکل رو بازسازی کنی چطوری میخوای تست بگیری و متوجه‌اش بشی ؟ درحد LPIC1 هم کفایت می‌کنه (اگر خواستید مدرک بگیرید؛ پیشنهاد می‌کنم حتما برای آزمون‌های redhat بخونید) اگر تاحالا با Linux کار نکردید؛ پیشنهاد نصب و ... بهتون نمیدم؛ از wsl برای تمرین کردن آنچه که لازم هست استفاده کنید و محیط گرافیکی رو بندازید دور؛ شما روی سرور محیط گرافیکی ندارد (درست تمرین کنید). باقی موارد رو ولی کم کم یادبگیرید؛ کمی یادگیری - بعد تمرین یا استفاده توی پروژه - به چالش و مشکل خوردن - دوباره یادگیری (ادامه یادگیری) و اینکار رو تکرار کنید. یادبگیرید هر کدوم از موارد بالا چه زمانی استفاده می‌شه و برای چه کاری این موضوع خیلی مهم هست؛ کی باید استفاده کنید و کی نباید استفاده کنید. اما برای خود Django حداقل چیزهایی که باید همزمان با Django بلد باشید؛ نشده جونیور (حتی بدون سابقه کاری) بیاد پیشم و این موارد رو بلد باشه (به فرض اینکه پایتون رو اصولی یاد گرفته) و توی مصاحبه رد بشه؛ اصلا تا حالا نداشتم واقعا می‌گم : pytest (basics), djagno-silk, drf-spectacular, faker, factory-boy, djangorestframework-simplejwt, django-axes, django-storage استاندارد لاگ نویسی هم که درموردش قبلا یک صحبتی داشتیم اون حداقلش هست و بهترش اینه که به ابزارهای موجود وصل بشه. یک سری چیزا هم توی خود Django هست؛ مثل throttling, middleware, ... که مفاهیمی هست که روی بکند داریم و فارغ از فریمورک باید بلد باشید برای همین صحبتی راجب این موارد ندارم. واسه همه این‌ها توی سطوح مختلف کلی ویدئو یوتیوب هست و برای مواردی هم که نیست مطمئنم به زودی درست خواهند کرد دوستان؛ ولی نکته مهمتر اینه که یادبگیرید داکیومنت هم بخونید و خودتون رو آپدیت نگه دارید. پینوشت: شخصا برنامه‌ای برای ساخت آموزش روی این مباحث یا پروژه‌ها ندارم.

AnimatedSticker.tgs0.25 KB

Repost from RandRng
نوروز مبارک 🌹🎊🎉🎉🎊🎉🌹 امیدوارم سال جدید از سالی که لحظات آخرش هست، بهتر باشه. پر از خبرای شادی بخش برای ایران و ایرانیان. سایه آخوند از وطن دور

آتیش شادی جشن ایرانی‌ها شب گذشته خیلی‌ها رو سوزوند. لذت می‌برم مردمم رو شاد می‌بینم ♥️

Repost from RandRng
زردی من از تو / سرخی تو از من #ai_generated
زردی من از تو / سرخی تو از من #ai_generated

#موقت بتا ۳ آندروید ۱۶ قابلیت اجرای Gnome, Kde هم داره فقط باید نصبش کنید. بعضی از کاربرها Gimp, Vscode رو هم نصب کردند.

با وجود کتاب high performance python واقعا گزینه Performance optimization رو برای قشنگی گذاشته بودم، ولی چون بیشترین رای رو آ
با وجود کتاب high performance python واقعا گزینه Performance optimization رو برای قشنگی گذاشته بودم، ولی چون بیشترین رای رو آورد با این منابع شروع می‌کنم. نکات مهم! بخش زیادی از optimization روی پایتون نیازمند درک خوبی از concurrency, parallelism,async,... هست اگر با این موضوعات آشنایی ندارید سعی کنید یاد بگیرید و درک کنیدشون

چون زیاد سوال شد : روی اسم کانال بزنید و بخش Posts شامل تمام کتاب‌های معرفی شده هست استوری بودند.
چون زیاد سوال شد : روی اسم کانال بزنید و بخش Posts شامل تمام کتاب‌های معرفی شده هست استوری بودند.

ترجیح می‌دید کتاب راجب کدوم موضوع باشه ؟ البته راجب هر ۳ مورد قبلاً کتاب معرفی شده، گزینه‌ای رو انتخاب کنید که با خوندن کتاب قبلیش خیلی درک درستی از موضوع پیدا نکردید
Anonymous voting

#موقت چندتا کتاب دیگه رو توی این تعطیلات شروع می‌کنم. البته ازین تعطیلات برای Rust خوندن بیشتر استفاده خواهم کرد، ولی چندتا کتاب دیدم که بنظر خوب میاد برای پایتون اگر مناسب بود حتماً بعد از تعطیلات راجب اونها هم خواهم نوشت.

امروز وقتی وارد لینکدین شدم کلی پست راجب پیشنهاد خوندن کتاب fluent python دیدم. خیلی خوشحالم که این کتاب داره دیده می‌شه؛ یک زمانی بود آدما زبان برنامه‌نویسی رو درست نمی‌شناختند ولی بخاطر جوی که راه افتاده بود Clean coder, clean code , .... داشتند می‌خوندند، بعد طرف توی سورس کد پایتونش داشت با استانداردهای جاوا و سی‌شارپ و ... کد میزد؛ تمیز بود ولی پایتون نبود. https://t.me/pyHints/s/3

بنظرم این آپدیت بیش از حد مهم بود که باید اینجا هم راجبش صحبت می‌شد. اگر سامسونگ یا وان‌پلاس دارید زودتر اگر نه؛ منتظر آندروید ۱۶ باشید.

Repost from RandRng
و تمام؛ یک سری از دیوایس‌های گوگل پیکسل آپدیتی رو دریافت کردن که native terminal داره Debian linux هم هست. فعلا فقط shell رو
و تمام؛ یک سری از دیوایس‌های گوگل پیکسل آپدیتی رو دریافت کردن که native terminal داره Debian linux هم هست. فعلا فقط shell رو داره ولی درآینده ( آندروید ۱۶ قابلیتی برای اجرای GUI Apps هم اضافه خواهد شد) همزمان گوگل داره روی اتصال و کنترل مانیتور هم انجام میده. با توجه به قدرت Snapdragon X Elite , ... اتفاقا خیلی هم گزینه‌ي خوبی هست؛ این یعنی مشکلات اجرای داکر منم حل خواهد شد (بله من روی تبلت پایتون و بیشتر Rust کد میزنم که قبلتر صحبت کردیم)

پست به اشتباه اینجا گذاشته شد. هدف @pytens بود 🤦😬

نتایج Gemma3 روی LMSys رو دیدید ؟ از نظر تعداد پارامتر و با توجه به اینکه مدل Reasoning نیست بنظر خیره کننده میاد. یک مقدار ز
نتایج Gemma3 روی LMSys رو دیدید ؟ از نظر تعداد پارامتر و با توجه به اینکه مدل Reasoning نیست بنظر خیره کننده میاد. یک مقدار زیادی طول خواهد کشید تا شخصاً تست کنم ولی حتماً اینکار رو خواهم کرد. بخصوص اگر بر اساس این مدل Reasoning مدل‌های مختلف هم توسعه داده بشه پ.ن : این مدل بیش از ۱۴۰ زبان رو پشتیبانی می‌کنه.

#مصاحبه همه‌ی ما تا وقتی تجربه کسب نکنیم، از مصاحبه برای خودمون یک دیو می‌سازیم. برای من اینطوری نیست و برای افراد نزدیک بهم هم اینطور نیست، چندروز قبل یک مصاحبه با شرکتی در سوییس داشتم و تا ۱۰ دقیقه قبل از مصاحبه فنی داشتم سیستمم رو تعمیر میکردم. چطوری به این آرامش رسیدم: اوایل شروع کارم مصاحبه هم برای من بسیار سخت بود، بخصوص اینکه من برای Machine Learning دنبال کار بودم؛ پیشنهاداتی از تیم‌های بزرگ به سختی می‌گرفتم ولی رد می‌شدم؛ Facebook توی همون مرحله اول رد شدم، Amazon رو مدتی بعد توی مرحله دوم ولی نهایتاً وارد یکی از پروژه‌های Netflix شدم و فاصله همه‌ی این مصاحبه‌ها با هم تقریباً ۳ ماه بود. کاری که خودم کردم، فرمول و نسخه‌ای بود که برای همه می‌پیچم؛ بین دوستان هم اسمش شده ۱۰۰ تا مصاحبه. به این صورت هست : ۱- زمینه مدنظر خودت رو انتخاب می‌کنی، یعنی اگر گفتی بکند و مصاحبه هوش مصنوعی گرفتی اون مصاحبه هوش جزو ۱۰۰ تا مصاحبه بکند حساب نمی‌شه. ۲- شروع می‌کنی رزومه فرستادن (شرکتش نباید برات مهم باشه؛ دستمزد و قرارداد و لوکیشن وقتی مهم هست که بخوای بری ولی برای تمرین مصاحبه هر شرکتی خوب هست 😉) همینجا ۲ حالت پیش میاد؛یا رزومه شما بیش از ۷۰٪ مواقع به مصاحبه ختم می‌شه یا عددی کمتر ازین هست. اگر بیش از ۷۰٪ بود، از شماره ۳ به بعد رو بخونید اما اگر کمتر از ۷۰٪ هست، همینجا ادامه بدید؛ حالا که کمتر از ۷۰٪ جاهایی که رزومه فرستادید به مصاحبه دعوت می‌شید؛ باز هم دوحالت خواهد داشت : ۱- یا رزومه خوبی ننوشتید، که باید روزمه رو آپدیت و استاندارد کنید (چندتا لایو گذاشتم، جوابم داد به بچه‌ها ولی ضبط شده ندارم) ۲- یا رزومه‌ و کارهای شما سطح درستی از شما رو نمیده؛ یعنی با توجه به رزومه جونیور برداشت می‌شه ولی برای سطح بالاتر درخواست دادید. که توی پست‌های دیشب گفتم بچه‌ها چطور از Grok3 برای این موضوع استفاده کردند. ۳- فرض کنیم شما به مصاحبه دعوت می‌شید، ولی با درصد خیلی پایینی موفق به قبول در مصاحبه می‌شید (همینجا بگم، هیچکس ۱۰۰٪ مصاحبه‌هاش رو قبول نمی‌شه، مصاحبه فقط بحث فنی نیست؛ خیلی وقتا تکنولوژی خاص مدنظر هست، نوع برخورد و نوع کد زدن و استانداردها و ...) اینجا شما باید ۱۰۰ تا مصاحبه شرکت کنید؛ قبل از اینکه نا امید بشید یا تغییر فیلد کاری بدید یا بخواید کار دیگه بکنید؛ با این تفاوت که. همیشه توی مصاحبه‌ها قلم و کاغذ با خودتون باید داشته باشید. سوالات اصلی مصاحبه رو بنویسید، یا اینکه مصاحبه رو ضبط کنید؛ چه سوالاتی که بنظر خودتون درست جواب دادید چه سوالاتی که غلط جواب دادید یا بلد نبودید. بعد از مصاحبه، دنبال جواب درست سوالات می‌گردید (به لطف Grok, Gemini, ... این کار به مراتب راحت‌تر شده) یا اون مطلب رو بلد بودید و کاملاً درست جواب دادید، یا توش ضعف داشتید و بلد نبودید. قبل از اینکه به مصاحبه بعدی برسید، باید مواردی که بلد نبودید یا دست و پا شکسته جواب دادید رو انقدر بخونید که تسلط پیدا کنید روش. با درصد بالایی مطمئنم اگر اینکار رو انجام بدید، بعد از ۱۵ تا مصاحبه استاندارد، دیگه سوال مهمی توی زمینه کاری که روزمه می‌دادید وجود نخواهد داشت که نشنیده باشید یا نتونید جواب بدید. ———— این فرمولم برای کسانی که توی مسیر یادگیری هستند و هدفشون کار پیدا کردن هست؛ راجب هر سر فصلی که می‌خونید، به یکی از ابزارهای هوش مصنوعی (پیشنهادم Grok3 هست) مراجعه کنید و ازش بخواید راجب فقط اون سر فصل از شما مصاحبه بگیره. چندتا سوال بهتون میده جواب‌هاش رو می‌نویسید، امتیاز بهتون میده و در نهایت جواب درست رو هم از خودش می‌گیرید. اینطوری وقتی شروع می‌کنید برای کار اول درخواست دادن؛ آمادگی نسبتاً خوبی هم برای مصاحبه‌ خواهید داشت. حواستون باشه؛ کسایی که دنبال کار اول هستند انقدر کم مصاحبه می‌گیرند که هر دونه‌اش خودش یک الماس هست؛ راحت از دستشون ندید. راستی: اگر ۱۰۰ تا مصاحبه رو شرکت کردید و همرو از نظر فنی رد شدید؛ متأسفم، شما بهتره زمینه کاری خودتون رو عوض کنید. پ.ن: من بدون مصاحبه فنی هم وارد هیچ شرکتی نمی‌شم مگر اینکه مدیرانی که باهاش کار می‌کنم رو بشناسم. چون اینطوری هم اونها از استانداردها و سواد من باخبر می‌شوند هم من با استانداردهای اون‌ها آشنا میشم و متوجه سواد تیم خواهم شد. خیلی وقتا خودم کسی هستم که درخواست مصاحبه فنی میده.

#موقت داستان ۱۰۰ مصاحبه رو توی لایو‌ها یا ویدیو‌های یوتیوب گفتم ولی چون سوال زیاد شده، مجدداً اینجا هم می‌نویسم