Python BackendHub – Telegram
Python BackendHub
7.5K subscribers
314 photos
46 videos
11 files
432 links
Learning python & Backend Engineering, with Mani!

Youtube: https://www.youtube.com/@GitOverHere
Github: https://github.com/ManiMozaffar
Linkedin: https://www.linkedin.com/in/manimozaffar

تبلیغات نداریم

Admin: @Mani_nikou
Download Telegram
ریپو رزومم:
https://news.1rj.ru/str/manifoldspython/137

توضیح کورس why, how and where in FastAPI:
https://news.1rj.ru/str/manifoldspython/240

@ManiFoldsPython
زبان رویایی dream berd همین الان ریلیز داد. ‌:)))
https://github.com/TodePond/DreamBerd/releases/tag/v.release.notes

اتک خوردیم :))
@ManiFoldsPython
😁10
Forwarded from Python BackendHub
مواردی که به نظر من یک بک اند کار برای کار تو شرکت های مدرن خارجی و گرفتن جاب آفر داخلشون باید بلد باشه, طبق تجربه این چند وقتم داخل مصاحبه ها و جاب هایی که دیدم:

1. آشنایی با گیت
2. تست نویسی
3. آشنایی با github action برای نوشتن فایل work flow yaml
4. درک عمیق تر از پایتون (خوندن کتابی مثل fluent python یا python cook book)
تسلط به پترن دیزاین ها
5. آشنایی با paradigms های مختلف برنامه نویسی
6. الگوریتم
7. تسلط روی SQL
8. آشنایی با MySQL یا PostgreSQL.
9. آشنایی با داکر و داکر کامپوز
10. آشنایی با مفاهیم Event driven architecture, SOA, microservice و Monolithic
11. تسلط رو یک فریم ورک microservice friendly مثل FastAPI یا Flask
12. آشنایی با یک فریم ورک Monolithic مثل جنگو میتونه مزیت خوبی باشه.
13. آشنایی با یک سرویس کلاد (AWS/Azure/GCP) در حد نیاز بک اند. معمولا certificate های مشخصی دارن که میتونید راجبشون تحقیق کنید و تو اون مسیری که مربوط به بک اند دولوپر میشه برین.
14. آشنایی با دیتابیس های کلاد مثل amazon rds
15. آشنایی با serverless و نمونش داخل کلاد مثل AWS Lambda
16. آشنایی با k8s در حد نوشتن فایل yaml سرویستون
17. آشنایی با یک ابزار IAC مثل terraform
(از بین ترافورم یا k8s و داکر, معمولا رو یکیش تمرکز میکنن شرکتا. و تو اغلب آگهی ها هم دیدم وزن بیشتر سمت داکر و k8s بوده تا ترافورم)


@ManiFoldsPython
👍183
Python BackendHub
مواردی که به نظر من یک بک اند کار برای کار تو شرکت های مدرن خارجی و گرفتن جاب آفر داخلشون باید بلد باشه, طبق تجربه این چند وقتم داخل مصاحبه ها و جاب هایی که دیدم: 1. آشنایی با گیت 2. تست نویسی 3. آشنایی با github action برای نوشتن فایل work flow yaml 4.…
یک رفرنسی میدم از دوره های مختلف. میتونه کتاب یا ویدیو باشه. دقت کنید لطفا که دیدن و خوندن اینا کافی نیست و باید تمرین کنید.

ریسورس هایی که بولد شده یعنی خودم خوندم یا دارم میخونم و پیشنهاد میدم شخصا. اونایی که بولد نشده رو صرفا گوگل کردم.


1. The Git & Github Bootcamp

2. UI Testing with playwright
2. Pytest

3. Github action

4. fluent python / realpython / python tricks / DeepDive Into Python

5. سورسی ندارم

6. Grokking Algorithms: An Illustrated Guide for Programmers and Other Curious People

6. leetcode

7 & 8. SQL and PostgreSQL: The Complete Developer's Guide

9. Docker & Kubernetes: The Practical Guide [2023 Edition]

10. "SOA Design Patterns" by Thomas Erl
10. "Building Microservices" by Sam Newman
10. Building Event-Driven Microservices: Leveraging Organizational Data at Scale
10. Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems 1st Edition

11. doc fastapi

12. Two scopes of django
12. doc django
12. Django for APIs: Build web APIs with Python & Django


13. cloudguru SAA
13. AWS developer - associate
13-14-15-16. AWS developer roadmap

17. Terraform - Getting Started


@ManiFoldsPython
12👍5👎1🥰1
این کتاب هام مربوط به رودمپ نمیشن ولی بنظرم بخونید خیلی خوبن.همشون رو کامل خوندم یا درحال خوندم.

HTPP The definitive guide
implementing domain driven design- vaughen vernon
deep dive into design patterns - alexander shvets

Clean Code: A Handbook of Agile Software Craftsmanship - Martin
Clean code in Python - Mariano Anaya

@Manifoldspython
👍41
لینک گروهو میذارم با محوریت فقط پایتون و کلین کد و clean architecture

https://news.1rj.ru/str/PythonFellow

احساس میکنم جای همچین گروهی شاید تو کامینیتی پایتون کارا خالیه.


پ.ن:‌عکس گروه meme هست :))
@ManifoldsPython
👍11
Python BackendHub
اولین ویدیو یوتیوبم رو به زودی میخوام منتشر کنم، به چه عنوانی باشه؟
با توجه به رای اکثریت کورس رو ضبط میکنم به زودی. اصلا انتظار نداشتم ۴۷ درصد مشتاق این دوره باشن 😁

اولین کورس هم کاملا فارسی خواهد بود. کورس های بعدی متناسب با محتوایی که قراره ارائه بدم زبانش انتخاب خواهد شد.
@ManifoldsPython
👍25👏3
دیروز یک توییت دیدم که x-panel آسیب‌پذیری امنیتی داره، رفتیم روش و نتیجه‌ای که رسیدم: «سریعا فقط پاکش کنین». باگ‌های خیلی خطرناکی داره مثلا: رو سرور میشه دستور با سطح دسترسی Root اجرا کرد، کل User Pass کاربرا افشا میشه که در ادامه توضیح میدم
youtu.be/yeVeJgCPc0s

آسیب‌پذیری از کجا شروع میشه؟ اینکه کلا سیستم Authenticationاش خرابه، توی این قسمت می‌تونین ببینین:
https://github.com/Alirezad07/X-Panel-SSH-User-Management/blob/bbb30fd0ceb77443015d3ccc02a3b8ea22a4331b/Web%20Panel/app/Models/Settings_Model.php

تصویر1:
در صورتی که سشن درست نباشه کاربر Redirect میشه به Login، خب کی میفهمه Redirect چیه؟ باریکلا مرورگر پس اگه cURL بزنیم وارد پنل می‌شیم

تصویر2:
اینجا کلی Functionality وجود داره که اکثرا آسیب‌پذیرن. مثلا توی این تصویر برای کیل کردن یه یوزر میاد ورودیو از ادمین می‌گیره و توی تابع shell_exec میذاره (ما هم که ادمین شدیم) پس اینجا RCE می‌خوره (اما از نوع Blind)

تصویر 3:
توی این تصویر خروجی رو نداریم کافیه OOB بزنیم به سرور خودمون. همچنین میشه Interactive Shell گرفت، کافیه یه اسکریپت ساده بنویسیم که اینکارو بکنه (توی فیلم انجام دادم) و بعدش ما شل داریم. خب داشته باشیم؟ اینجا می‌تونیم Root بشیم!!! چطوری؟

تصویر 4, 5, 6:
‏با نصب این پنل کاربر www-data میره توی Sudoers و دستور passwd هم برای اینکاربر مجاز میشه، پس کافیه بزنیم sudo passwd و پسورد root رو عوض کنیم، بعدش هم با su روت بشیم یا به سرور SSH بزنیم

خیلی از سرورا با یه اسکریپت Automate خوردن و به زامبی تبدیل شدن، کلی اطلاعات هم افشا شده و در کل خواستم بگم هر چیزیو بدون اینکه تست امنیتی بشه روی سرورتون نریزید.

@DevTwitter | <یاشو/>
👍5
‏به عنوان کسی که تو سه تا کشور هم به عنوان مصاحبه‌کننده هم مصاحبه‌شونده تجربه‌های زیادی داره، اجازه بدید چندتاشون رو باهاتون به اشتراک بذارم شاید به کارتون بیاد:

1. قسمت معرفی خودتون رو خیلی جدی بگیرید. نه خیلی کوتاه و مختصر، نه روده‌درازی. یه بخش مهمی از تصمیم اونجا گرفته میشه

‏2. تو قسمت غیرتخصصی مصاحبه، 50% اهمیت داره که جواب درست بدید و 50% اینکه چطور جواب می‌دید. یعنی در واقع گاهی لزوماً جواب درست وجود نداره، فقط مهمه شما چطور جوابتون رو ارائه می‌دید.

3. لبخند، خوشرویی، نشون ندادن استرس، آشنایی نسبی با کار شرکت و آماده بودن بسیار اهمیت داره.

4. تو مصاحبه به زبان دوم، به جز شغل‌هایی که فن بیان و روان بودن (مثلا معلمی) توش اهمیت داره "عالی" بودن زبان اونقدر اهمیت نداره پس به خودتون استرس ندید.

5. وقتی می‌گن یه مثال از اشتباهات گذشته بزن، نه مثالی بزنید که توش رسماً گند زده باشید، نه بگید "من هیچ وقت اشتباه نمی‌کنم"


سوربا

@cappuccino_plus
👍14👌5
Is it worth the effort to design software well?

بخونید از مارتین بزرگ
بزرگوار سال ۲۰۰۷ واقعا کجا ها سیر میکرده 🙂

DesignStaminaHypothesis:

https://martinfowler.com/bliki/DesignStaminaHypothesis.html


@ManiFoldsPython
👍8
فرهنگ issue مطرح کردن تو کامینیتی که متاسفانه خیلیامون رعایت نمیکنیم:

۱. لطفا لاجیکتون رو از کدتون جدا کنید. کسی علاقه نداره لاجیک پشت کدتون رو بخونه که سر در بیاره کدتون چیکار میکنه.
۲. اگه کدتون پیچیدست سعی کنید خیلی ساده و بدون پیچیدگی یک کدی بنویسید که همون مشکل رو reproduce کنه.
۳. تست بنویسید که fail شه. بنویسید از چه نسخه پایتونی استفاده میکنید و از چه نسخه ای لایبری استفاده میکنید. مثلا کدتون اگه با پایندانتیک ۲ داره ران میشه باید ذکر کنید این موضوع رو.
۴. اسکرین شات با ‍سایت هایی مشابه ray.so بنویسید


ایشو هایی که اینطوری مطرح میشن خیلی راحت تر برطرف میشن و همه روش وقت میذارن :)
@ManiFoldsPython
👍21💯3
من یک لوکال استوریج منیجر داشتم رو کرومم که اتفاقا خیلی دانلود داشت.
ولی امروز گوگل بهم پیام داد که این امن نیست و دیدم disable شده

این بنظر میاد replacement خوبی باشه.

https://chrome.google.com/webstore/detail/swoosh-cookie-and-local-s/giompennnhheakjcnobejbnjgbbkmdnd

کوکی و همه چیم داره یک جا میتونید استفاده کنید. از UI اش خیلی خوشم اومد
@ManiFoldsPython
Python BackendHub
پروژه های خفنی که pydantic رو ساپورت میکنن: Rocketry: Modern scheduling library for Python RedisOM: Object mapping, and more polyfactory: Simple and powerful factories for mock data generation Beane: Modern Async ODM for MongoDB Litestar: Light, Flexible…
چند نکته که چرا راکتری لایبری خوبیه:
۱. اولا کاندیشن کاستوم میتونید بنویسید. که اگه این شد آنگاه این تسک ران شه. این خیلی خوبه برای پیاده سازی معماری EDD. 👍کلا به درد microservice میخوره

۲. ران کردن async و ‍sync و multiprocessing توش خیلی راحت تر از چیزیه که فکر میکنید. تو decorator تابعتون میتونید بهش بدید.

۳. موقع ران تایم میتونید تسک جدید رجیستر کنید!‌ یا ساعت تسک رو عوض کنید. مثلا یک دیتابیس داشته باشین که ساعت تسکا رو توش ست کنید و تغییر بدید. میتونید براش یک UI هم طراحی کنید. لیست تسکایی که ران هستند رو بگیرین. state هر تسک رو ببینید. ببینید اخرین بار کی ران شده کی تموم شده و اکسپشن داشته یا نه.

۴. میتونید با uvicorn بالا بیارینش. با فست همزمان رو یک شل ران شن. و توی خود فست هم میتونید ازش استفاده کنید مستقیما. به جای سلری خیلی sync تره با فست.

۵. لاگر initiate کردن توش خیلی قشنگه. کلا نصف کدایی که زده مربوط به همین log انداختنه و نمیدونم چرا اینقدر عاشق لاگه :))

۶. به شدت تست های زیادی داره و سنگین. کاوریجش ۹۷ درصده و من باگی ندیدم ازش تو این مدتی که استفاده کردم.


چند نکته منفی این لایبری:
۱. به شدت حجم کد زیادی داره و نمیدونم چرا. چیزی که با ۱۰ خط میشد انجام داد ۱۰۰ خط کد نوشته.

۲. پاینداتیک نسخه ۱ رو فقط ساپورت میکنه. با این حجم کدی که داره من حالا حالا ها نمیبینم که بخواد پایدانتیک ۲ رو ساپورت کنه. اگه پروژتون پایدانتیکه ۲ هست تو گیت هاب من یک ریپو هست که backward compalbity اینو اوکی کرده که با ۲ هم ران شه. اگرچه وقتی نسخه ۲ رو نصب میکنید راکتری همچنان داره از نسخه یک استفاده میکنه داخل اینترنالش. میخواستم کلا ببرمش رو ۲ که دیدم ۱۵۰ تا تست fail داد بیخیال شدم. :)) البته رو پرفومنس اصلا تاثیر نمیذاره چون خیلی کار زیادی با pydantic انجام نمیده.


@ManifoldsPython
👍7