TorhamDev | تورهام 😳 – Telegram
TorhamDev | تورهام 😳
2.84K subscribers
421 photos
49 videos
21 files
591 links
code, linux and anything related.

• YouTube
youtube.com/@techwithtori

• CodeNaline Podcast
@CodeNaline

• Group
@GothamProgrammers

• Github
github.com/TorhamDev

• Email
torhamdev@gmail.com
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
خب الان دیگه رسما گیم‌مون آمادست فقط یکم تغییر در رنگ لازم داره و دشمن ها ک رندوم بیان رو صفحه 🔪
@TorhamDevCH
😁2👍1👎1
Doomsday Pt.2
Eminem
داغ داغ
#music
❤‍🔥1
بزارید میخام یکم دانش بکوبم تو صورتتون. تایپ کنم
🗿8👎1🍾1
خب یک بحثی بود که برنامه شما (فرض میگیریم بک‌اند ما) باید طوری باشه که به چیزی وابسته نباشه و اگه بخای بتونی راحت تغییرش بدی(کل بک اند نه ها، بخش ها اون بک اند) .

خب تا یک حد زیادی درسته، مثلا شما نباید همینطوری دیمی یک کتابخونه نصب کنید که کل بک‌اند و سورس بهش وابسته بشه، بعد یک سال بفهمید آخرین آپدیت کتابخونه برای ۲۰۰۳ عه :)

خب پس مورد اول میشه کتابخونه‌ها که باید مراقبشون باشیم و تا جای ممکن خودمون وابسته بهش نکنیم.

یک سری نکات اینشکلی هست که تو کلیت پروژه باید رعایت بشه. موارد بعدی میره تو لایه دیزاین پروژه، برای مثال دیزاین شما بهتره تیکه تیکه و لایه لایه باشه. مثلا حداقل ایده‌آل خورد کردن پروژه برای من ۳ لایه است.

۱. لایه دیتابیس
۲. لایه عملیات(بیزینس لاجیک)
۳. روتینگ

از لایه ۳ به ۱ میرم

لایه روتینگ وضیفش مسیر یابی، یعنی چی؟ یعنی آقا یک درخواست http که اومد این لایه درگیر میشه و تصمیم میگیره درخواست به کجا بره، و این درخواست رو میگیره تصمیم رو میگیره و به بخش خاصی از لایه ۲ یا همون عملیات میفرسته. مثلا درخواست "ساخت آبجکت" میاد و به بخش ساخت تو لایه عملیت میره
from db import database

@router.post("create/")
def create():
result = Opration.create(database)
return result
حالا لایه عملیات برای بیشتر یا همه کارهاش نیاز به دیتابیس داره. و دیتابیس به عنوان یک ورودی میگیره.

یعنی چی؟ یعنی هر وقت که دیتابیس عوض کنیم لایه عملیات و لایه روتر براشون مهم نیست اصلا :)، صرفا یک ایمپورته.
ولی خب باید api که دیتابیس در اختیار لایه دیگه میده تغییر نکنه و حتی اگه تغییر هم کنه لازم نیست کل سورس بترکونید همون جاهایی که از دیتابیس استفاده کرید تغییر میدید. تغییر کم میشه خلاصه :)

کل basic وظیفه فریمورک‌ها روتینگ، یعنی درخواست http میگیره آبجکت میکنه بهتون میرسونه دیگه و جوابشو تحویل کاربر میده :)

برای همون اگه فریمورک منطقی داشته باشید که بیشتر از این‌ها خودش قاطی کار نکرده باشه خیلی راحت باید بتونید تعویضش کنید.

اینا نظرات و تجربه‌ها من بود :)
@TorhamDevCH
😱139😐236👏3👍2👎2🤔1
Forwarded from torhamdev donate
بابا زحمت نکشید ❤️
بچه ها من خیلی وقته لینک دونیت برداشتم، دلیلش هم اینه که به نظرم کار خاصی نمیکنم دیگه که دونیت بشم. اگه یک درصد فکر میکنید که مدیونید یا میخوایید دونیت کنید همون به یک نیازمند تو شهر بدید، یا باهاش بستنی بخرید بخورید :)
18👍1
This media is not supported in your browser
VIEW IN TELEGRAM
دقیقا ۳ سال و ۶ ماه پیش، داستان از اینجا شروع شد...
😁8❤‍🔥1
MAMA
NF
نکته: مادر NF معتاد بود و کلا کودکی خوبی نداشت و فکر کنم مادرش رو مواد اوردز کرد
#music
👍5
خب، یک چیز جالب که فهمیدم(قبلش نمیدونستم 🗿) رو این آقاعه که چشماش بسته است گفت.

بزارید از این ماجرا شروع کنم، تا حالا برای شما پیش اومده که بخوایید یک tuple رو این شکلی بنویسید ولی کار نکنه؟
a = (1)
اتفاقی که میوفته اینه ک a مساوی با integer یک میشه نه tupleای که داخلش یک هست.

و این اتفاق برای این میوفته که پایتون tuple هارو با ویرگول(،) میشناسه نه با پرانتز (این تیکه رو نمیدونستم)
در نتیجه پرانتز صرفا برای شفاف سازی حضور tuple هستش :)
و خوب دلیلش هم اینه که بعد با پرانتز میتونید اولويت هایی مثل opration ها ریاضی ضرب و تقسیم و .. با پرانتز مدریت کنید.

در نتیجه کد زیر هم درست کار میکنه.
a = 1,
print(a)
و این یک tuple میده. نکته خفن تر ماجرا داخل unpacking کرد عه :)) که اون یک ماجرا جداست اگه این پست ۲۰ تا ریکشن 😱 بگیره اون هم مینویسم 😂

@TorhamDevCH
😱34👍6🍾2👎1🌚1👻1😨1
TorhamDev | تورهام 😳
خب، یک چیز جالب که فهمیدم(قبلش نمیدونستم 🗿) رو این آقاعه که چشماش بسته است گفت. بزارید از این ماجرا شروع کنم، تا حالا برای شما پیش اومده که بخوایید یک tuple رو این شکلی بنویسید ولی کار نکنه؟ a = (1) اتفاقی که میوفته اینه ک a مساوی با integer یک میشه نه tupleای…
در پایتون شما هر iterator ‌ای رو میتونید Unpack کنید. اما iterator چیه؟ و Unpacking یعنی چی؟

ساده بخام بگم هر آبجکتی که بشه رو حرکت کرد و دیتا گرفت iterator عه مثل لیست، دیکشنری، تاپل و ...
بهتر بخام بگم هر آبجکتی که متد iter و اگه اشتباه نکنم next رو داره.

خب حالا unpacking کردن چیه؟ آن‌پک کردن یجورایی Map کردن محصوب میشه مثال زیر رو ببینید:
a, b, c = 1, 2, 3
خب از پست قبلی میدونیم که پایتون با ویرگول(،) میاد tuple میسازه پس سمت راستِ مساو، یک tuple. حالا پایتون میاد این tuple رو آن‌پک میکنه و به متغییر‌ها اون ورودی Map میکنه. دونه دونه و به ترتیب در نتیجه a میشه 1 و b میشه 2 و c میشه 3

حالا که اینو میدونید بزاید نظر شمارو به چیز دیگه ای جلب کنم :)
مثال پایین رو ببینید:
def test(*args):
print(args)

test(1, 2, 3)
خروجی این کد چی میشه؟ اگه این کد اجرا کنیم خروجی مثل زیر باید بگیریم
(1, 2, 3)
که آرهههه یک tuple عه :)))))
نکته باحال و هیجان انگیز اینه که پایتون در اصل ورودی های فانشکن unpack میکنه و map میکنه به ورودی ها فانشکن :))) و یکی از دلایلی که نمیتونید بعد یک ورودی a=3 داخل فانشکن ورودی عادی بدون مقدار پاس بدید. چون دیگه نمیتونه unpack و map کنه :)

اگه چیز بیشتری در این باره میدونید تو کامنتها بگید🤝

این پست اگه 20 تا 🤯 بگیره پست بعدی میزارم😂(باج گیری)


@TorhamDevCH
🤯31😁5👍1🌚1
اندکی توصیه دیسکوردی
@TorhamDevCH
2👍1
من ne بودم ولی تو eq میخواستی 😔💔
😁1😢1
WHY
NF
از NF هم بخام یک موزیک بردارم.

خط به خط حق

I could be workin' for 24 hours a day and think I never did enough

#music
❤‍🔥3
مبانی برنامه نویسی رو شدم ۱۳.۵
🤣26🗿3🔥1
خب اینطوری که بوش میاد. ترم یکو باید از اول بخونم
😈8🤣2🙏1
Forwarded from جادی | Jadi
آی بی ام این امکان رو برای عموم فراهم کرده که با سیستم
IBM i
کار کنن. اگر دوست دارین توی این سایت اکانت باز کنین و درک وسیع‌تری از سیستم عامل ها پیدا کنین؛ به هرحال کار کردن روی پاور سیستم و امکان نوشتن سی و فرترن روش جالبه (:

https://pub400.com/
🔥2👎1