Layered Design Architecture
دیزاین لایه ای، به شکلی از دیزاین میگن که سیستمی که توسعه میدید به چندین لایه تقسیم میشه که هر کدوم یک وظیفه دارن. هر لایه یک عمل خاص رو انجام میده و این لایهها در کنار هم کل سیستم رو کامل میکنن بیایید یک مثال بزنیم. فرض کنید که قرار بکاند یک وبلاگ رو توسعه بدیم. اگر بخواییم اون رو با این دیزاین و mindset پیش ببریم باید عملکردهای سیستممون رو جدا کنیم. این جدا سازی میتونه به این شکل باشه.
۱. دیتابیس ( پایین ترین لایه که وضیفه آپدیت و حذف و ... در دیتابیس داره)
۲. اوپریشنها ( این لایه وضیفه ساخت پست جدید، بررسی محتوا پست و هرچیزی که مربوط به خود منطق وبلاگ میشه )
۳. روترها ( که همون مسیرهای api های سیستم میشن)
اگه بخواییم به شکل فایل در بیاریم schema اش تقریبا همچین چیزی میشه :
مطالعه بیشتر
@TorhamDevCH
دیزاین لایه ای، به شکلی از دیزاین میگن که سیستمی که توسعه میدید به چندین لایه تقسیم میشه که هر کدوم یک وظیفه دارن. هر لایه یک عمل خاص رو انجام میده و این لایهها در کنار هم کل سیستم رو کامل میکنن بیایید یک مثال بزنیم. فرض کنید که قرار بکاند یک وبلاگ رو توسعه بدیم. اگر بخواییم اون رو با این دیزاین و mindset پیش ببریم باید عملکردهای سیستممون رو جدا کنیم. این جدا سازی میتونه به این شکل باشه.
۱. دیتابیس ( پایین ترین لایه که وضیفه آپدیت و حذف و ... در دیتابیس داره)
۲. اوپریشنها ( این لایه وضیفه ساخت پست جدید، بررسی محتوا پست و هرچیزی که مربوط به خود منطق وبلاگ میشه )
۳. روترها ( که همون مسیرهای api های سیستم میشن)
اگه بخواییم به شکل فایل در بیاریم schema اش تقریبا همچین چیزی میشه :
├── db
│ ├── engine.py
│ └── models.py
├── main.py
├── oprations
│ ├── authors.py
│ └── posts.py
└── routers
├── authors.py
└── posts.py
از فواید این دیزاین به flexibility و maintainability و scalability اشاره کرده.مطالعه بیشتر
@TorhamDevCH
⚡2👍1🔥1😨1
با استفاده از werkzeug میتونید یک برنامه بنویسید که با wsgi حرف بزنه و باهاش کار کنه :) ( مثل gunicorn و ..)
از کارهایی که میشه باهاش انجام داد :
Request & Response handling
URL routing
Middleware
HTTP utilities
Exception handling
منبع
@TorhamDevCH
از کارهایی که میشه باهاش انجام داد :
Request & Response handling
URL routing
Middleware
HTTP utilities
Exception handling
منبع
@TorhamDevCH
👍2
10 تا از انواع ساختار دیتا ( Data Structure ) که در طول روز بهشون بر میخوریم با مثالها دنیا واقعیشون 😶🌫.
اون R-tree نمیدونم چیه🫥
@TorhamDevCH
@TorhamDevCH
👍4
تا بحث sqli یا همون sql injection داغه بین بچهها، باید بگم که sql injection صرفا با سینتکس SQL کار داره و ربطی به ابزاری که استفاده میکنید نداره. مهم نیست از چه فریمورکی استفاده میکنید اگر داری raw sql میزنید باید مراقب این باگ باشید، این باگ با سواستفاده از سینتکس SQL میاد یک دستور داخل دستوری که شما زدید تزریق یا همون inject میکنه که باعث میشه اون دستور کار دیگه ای رو انجام بده. گاهی حتی با ایجاد ارور و خوندن اطلاعاتی که در ارور برگشته حمله اتفاق میوفته. یک مثال ساده sqli :
فرض کنید از کاربر username اش رو میگیرم و اون رو داخل متغییری به همین اسم قرار میدیم. حالا یک کوئری با این یوزرنیم میسازیم که ببینیم یوزری با این یوزرنیم داخل دیتابیس وجود داره یا نه.
توقع ما اینکه کاربر یوزرنیم اش رو وارد کنه و مثلا همچین کوئری ساخته بشه:
کوئری به این شکل میشه.
خب اینشکلی همیشه این کوئری True میشه و حمله اتفاق میوفته.
در نتیجه کل این باگ رو میشه با محدود کردن و فیلتر کردن ورودی کاربر و نوشتن یک کوئری درست هندل کرد.
این تنها مثال این باگ نیست و باهاش میشه خیلی کارها کرد، برای مثال خارج کردن اطلاعات از دیتابیس و ....
اگه به این موضوعات علاقه دارید میتونید برید سراغ وبسایت portswigger که سازنده Burp Suite هستند.
تو این مقالهاشون درباره sqli توضیح دادن. همچنین یک دوره آموزشی رایگان امنیت هم دارن.
@TorhamDevCH
فرض کنید از کاربر username اش رو میگیرم و اون رو داخل متغییری به همین اسم قرار میدیم. حالا یک کوئری با این یوزرنیم میسازیم که ببینیم یوزری با این یوزرنیم داخل دیتابیس وجود داره یا نه.
"SELECT * FROM Users WHERE username = " + username
خوب این کوئری میگه آیا یوزری با این یوزرنیم وجود دارد یا نه؟توقع ما اینکه کاربر یوزرنیم اش رو وارد کنه و مثلا همچین کوئری ساخته بشه:
"SELECT * FROM Users WHERE username = torhamdev"
خوب حالا چی میشه اگر کاربر ورودی دیگه ای بده؟ مثلا ورودی بده torhamdev OR 1=1 ؟کوئری به این شکل میشه.
"SELECT * FROM Users WHERE username = torhamdev OR 1=1"
حالا چه اتفاقی افتاد؟ کوئری تبدیل شد. اگر یوزری با این یوزرنیم وجود داشت یا عدد یک برابر با یک بود. :)خب اینشکلی همیشه این کوئری True میشه و حمله اتفاق میوفته.
در نتیجه کل این باگ رو میشه با محدود کردن و فیلتر کردن ورودی کاربر و نوشتن یک کوئری درست هندل کرد.
این تنها مثال این باگ نیست و باهاش میشه خیلی کارها کرد، برای مثال خارج کردن اطلاعات از دیتابیس و ....
اگه به این موضوعات علاقه دارید میتونید برید سراغ وبسایت portswigger که سازنده Burp Suite هستند.
تو این مقالهاشون درباره sqli توضیح دادن. همچنین یک دوره آموزشی رایگان امنیت هم دارن.
@TorhamDevCH
👍5
۳ ساعتی هست درگیر یک pull گرفتن ساده داکر ام. چیزی ک مردم یک کشور منطقی در کمتر از ۱ دقیقه انجام میدن :). و تازه الان که pull گرفتن تموم شد نوبت نصب یکسری کتابخونه پایتونی شد که اونا هم دارن time out میشن. :^). که این هم مردم یک کشور منطقی کمتر ۱ دقیقه انجام میدن.
💔25👎3👀2
http://programming-motherfucker.com/become.html
دوستان اگر دنبال منابع و کتابهای رایگان درباره برنامهنویسی میگردید اینجا یک لیست خوب ازش هست 😄🗿
@TorhamDevCH
دوستان اگر دنبال منابع و کتابهای رایگان درباره برنامهنویسی میگردید اینجا یک لیست خوب ازش هست 😄🗿
@TorhamDevCH
❤2👍1
با یکی از بچهها حرف میزدم گفت چیکار میکنی برای جلو رفتن داخل بکاند و برنامه نویسی؟ راستش من سعی میکنم همیشه یک رودمپ داشته باشم که باهاش پیش برم. این رودمپی که الان باهاش پیش میرم. خیلی از چیزاش رو تموم کردم. به نظرم میتونه از جونیور به میدلول باشه این رودمپ. توضیحاتش رو پیام بعد مینویسم
FASTAPI:
FastAPI with SQLAlchemy writing first blog (4h)
FastAPI document
GIT:
Git Course (6h)
Python Deep Dive:
Object Oriented Programming (OOP) (36.5)
Python 3: Deep Dive (Part 1 - Functional) (42h)
Python 3: Deep Dive (Part 2 - Iteration, Generators) (37h)
Python 3: Deep Dive (Part 3 - Hash Maps) (38h)
DATABASE AND SQL:
SQL mosh
udemy sql and postgresql the complete developer s guide
REDIS:
Redis Crash Course (27m)
Redis with python (2h)
API DEVELOPMENT:
Python API Development - Comprehensive Course for Beginners by Sanjeev Thiyagarajan (18h)
BACKEND:
Backend fundamental Hussein Nasser
The Ultimate Docker Course Mosh (5h)
BOOKS & ARTICLES:
OrderedDict vs. dict in Python
Grokking Algorithms
The Clean Coder A Code of Conduct
Python clean code
Python testing with pytest
Fluent python
Domain-Driven Design
Building microservices
Django 4 By Example
The Art of Readable Code: Simple and Practical Techniques for Writing Better Code
FUN TO READ :
Automate the Boring Stuff With Python
How To Think Like a Computer Scientist
LATER :
AWS
TDD
FASTAPI:
FastAPI with SQLAlchemy writing first blog (4h)
FastAPI document
GIT:
Git Course (6h)
Python Deep Dive:
Object Oriented Programming (OOP) (36.5)
Python 3: Deep Dive (Part 1 - Functional) (42h)
Python 3: Deep Dive (Part 2 - Iteration, Generators) (37h)
Python 3: Deep Dive (Part 3 - Hash Maps) (38h)
DATABASE AND SQL:
SQL mosh
udemy sql and postgresql the complete developer s guide
REDIS:
Redis Crash Course (27m)
Redis with python (2h)
API DEVELOPMENT:
Python API Development - Comprehensive Course for Beginners by Sanjeev Thiyagarajan (18h)
BACKEND:
Backend fundamental Hussein Nasser
The Ultimate Docker Course Mosh (5h)
BOOKS & ARTICLES:
OrderedDict vs. dict in Python
Grokking Algorithms
The Clean Coder A Code of Conduct
Python clean code
Python testing with pytest
Fluent python
Domain-Driven Design
Building microservices
Django 4 By Example
The Art of Readable Code: Simple and Practical Techniques for Writing Better Code
FUN TO READ :
Automate the Boring Stuff With Python
How To Think Like a Computer Scientist
LATER :
AWS
TDD
❤9👍1
TorhamDev | تورهام 😳
با یکی از بچهها حرف میزدم گفت چیکار میکنی برای جلو رفتن داخل بکاند و برنامه نویسی؟ راستش من سعی میکنم همیشه یک رودمپ داشته باشم که باهاش پیش برم. این رودمپی که الان باهاش پیش میرم. خیلی از چیزاش رو تموم کردم. به نظرم میتونه از جونیور به میدلول باشه این…
نکته اول که این رود مپ نشستم کل دوره و کتابهاش دوره کنم ببینم کدوم خوبه اون رو ببینم. از رودمپهایی که بقیه ساخته بودن یک میکس مناسب خودم ساختم.
حالا چطور باهاش پیش بریم؟
برای من این رود مپ به ۲ قسمت تقسیم شده. اول ویدیوها، دوم کتابها. به این شکل پیش میرم که همزمان دارم یک دوره از بخش ویدیوها رو پیش میرم و یک کتاب از بخش کتابها، این طوری خیلی حوصلهام سر نمیره سر یک تاپیک موندن و فقط ویدیو دیدن. در نتیجه اگه خواستید پیش برید میتویند شروع کنید از ویدیو دیدن و همزمان کتاب خوندن.
مثلا صبح ویدیو رو میبینید، شب یا بعدظهر کتاب رو میخونید.
حالا چطور باهاش پیش بریم؟
برای من این رود مپ به ۲ قسمت تقسیم شده. اول ویدیوها، دوم کتابها. به این شکل پیش میرم که همزمان دارم یک دوره از بخش ویدیوها رو پیش میرم و یک کتاب از بخش کتابها، این طوری خیلی حوصلهام سر نمیره سر یک تاپیک موندن و فقط ویدیو دیدن. در نتیجه اگه خواستید پیش برید میتویند شروع کنید از ویدیو دیدن و همزمان کتاب خوندن.
مثلا صبح ویدیو رو میبینید، شب یا بعدظهر کتاب رو میخونید.
❤🔥4👍1
اون روزی که سامسونگ گلگسی 2014 بابام رو برداشتم باهاش html کد زدم هیچکس فکرشو نمیکرد به اینجا برسم :). روز برنامهنویس مبارک. براتون اینترنتی آزاد و موفقیتای نامحدود رو آرزو میکنم❤️
❤36
اگه میخواستید رو سرور داکر نصب کنید راحت با این ریپو نصب کنید :)
https://github.com/docker/docker-install
https://github.com/docker/docker-install
GitHub
GitHub - docker/docker-install: Docker installation noscript
Docker installation noscript. Contribute to docker/docker-install development by creating an account on GitHub.
😴3
TorhamDev | تورهام 😳
ادیتور عروسی هم شدیم دیگه :). برای سفارش ادیت به دایرکت مراجعه کنید.
بچهها بچهها تو آگهیش زده همکاری با شرکت بین المللی 😄
🗿5🤣3
https://youtu.be/eMsCKR3nd-Q
امروز دیدم این ویدیو به شکل عجیبی دوباره داره بازدید میگیره :)
اگه ندیدش از دستش ندید. داخلش میفهمیم که reverse proxy و load balancer چی هستن و نمونه واقعیش رو با Flask، Nginx و Docker پیاده میکنیم 🤝
@TorhamDevCH
امروز دیدم این ویدیو به شکل عجیبی دوباره داره بازدید میگیره :)
اگه ندیدش از دستش ندید. داخلش میفهمیم که reverse proxy و load balancer چی هستن و نمونه واقعیش رو با Flask، Nginx و Docker پیاده میکنیم 🤝
@TorhamDevCH
YouTube
Reverse Proxy Vs. Load Balancer | پیاده سازی با Nginx
تو این ویدیو میفهمیم reverse proxy و load balancer چی هستن و کجا به درد میخورن. بعدش با nginx و flask یکدونه ازشون میسازیم :)
کانال تلگرام : https://news.1rj.ru/str/TorhamDevCH
00:00 : intro
00:37 : What is the reverse proxy?
02:46 : What is the load balancer?
04:45…
کانال تلگرام : https://news.1rj.ru/str/TorhamDevCH
00:00 : intro
00:37 : What is the reverse proxy?
02:46 : What is the load balancer?
04:45…
❤6
معرفی کتاب :
Seven Databases in Seven Weeks: A Guide to Modern Databases and the NoSQL Movement
خیلی نمیخام کل کتاب رو براتون تعریف کنم. ولی این کتاب میاد ۷ تا دیتابیس مختلف Relational و non-relational بررسی میکنه و تا مفاهیم اولیه/مقدماتی پیش میره :). یک کتاب برای یادگرفتن هفتها دیتابیس مختلف. آخرین آپدیت کتاب برای ۲۰۱۸ است ولی خب کتاب خوبیه :)
Seven Databases in Seven Weeks: A Guide to Modern Databases and the NoSQL Movement
خیلی نمیخام کل کتاب رو براتون تعریف کنم. ولی این کتاب میاد ۷ تا دیتابیس مختلف Relational و non-relational بررسی میکنه و تا مفاهیم اولیه/مقدماتی پیش میره :). یک کتاب برای یادگرفتن هفتها دیتابیس مختلف. آخرین آپدیت کتاب برای ۲۰۱۸ است ولی خب کتاب خوبیه :)
👍2❤1
ثبت احوال به رحمت خدا رفت ....
طبق چیزایی که طرف گفت و فرستاده. کل دیتاها رو داره
طبق چیزایی که طرف گفت و فرستاده. کل دیتاها رو داره
👍2