Python BackendHub
نمونش هم تو تایپ اسکریپت اینطوری میشه: @PyBackendHub
ممنون میشم دلیل دیس لایک هم بنویسید, ممکنه تایپ اسکریپت یک چیزی built in داشته باشه برای اینکار ولی من پیدا نکردم. البته اینم بگم این مثال اصلا منطقی نیست. چون مثال کوچیکه.
فکر کنید تو دنیای واقعی ORM دارین. یا API. اون موقع تو ورودی دیتا به اپلیکیشنتون این تایپ رو میدین. اون موقع منطقیه. یعنی اون تیکه as UserId رو نمینویسین جایی.
فکر کنید تو دنیای واقعی ORM دارین. یا API. اون موقع تو ورودی دیتا به اپلیکیشنتون این تایپ رو میدین. اون موقع منطقیه. یعنی اون تیکه as UserId رو نمینویسین جایی.
👎7❤5👍1
یک tip آخر دیگه در مورد ارتباط typing با maintainability
استفاده درست از تایپ never باعث میشه شما همیشه سیسمتون خیلی راحت extendable باشه.
مثالش اینجا تو سورس کد واقعیه. من یک enum دارم برای PaymentType. و نیاز دارم که بتونم query کنم payment هایی که خودکار هستن رو.
اگه من این مقدار رو هارد کد میکردم فردا اگه یک مدل payment جدید اضافه میکردم اون موقع یادم میرفت اینجا اضافه کنم تو query آورده نمیشد.
ولی الان اون assert never منو وادار میکنه اگه تایپ جدیدی اضافه کردم و سیستم رو بزرگ تر کردم حالا بیام اینجا هندلش کنم که آيا payment خودکار هست یا نه. پس هرجایی تو سیستمم دپندسی خاصی دارم سعی میکنم یک جوری کد بنویسم که وقتی سیستم رو بزرگ تر میکنم مجبور شم هندلش کنم. کمی باعث میشه بیشتر کد بزنم و بیشتر وقت بذارم ولی از طرفی اصلا رو دیباگ اون کد وقت نمیذارم و پروداکتم خیلی stable تره.
تو تایپ اسکریپت و بعضی زبونای دیگه این ایده رو میشه بدون runtime cost اجرا کرد. تو پایتون ولی یک وقتا (مثل اینجا)یک کوچولو ران تایم کاست داره.
@PyBackendHub
استفاده درست از تایپ never باعث میشه شما همیشه سیسمتون خیلی راحت extendable باشه.
مثالش اینجا تو سورس کد واقعیه. من یک enum دارم برای PaymentType. و نیاز دارم که بتونم query کنم payment هایی که خودکار هستن رو.
اگه من این مقدار رو هارد کد میکردم فردا اگه یک مدل payment جدید اضافه میکردم اون موقع یادم میرفت اینجا اضافه کنم تو query آورده نمیشد.
ولی الان اون assert never منو وادار میکنه اگه تایپ جدیدی اضافه کردم و سیستم رو بزرگ تر کردم حالا بیام اینجا هندلش کنم که آيا payment خودکار هست یا نه. پس هرجایی تو سیستمم دپندسی خاصی دارم سعی میکنم یک جوری کد بنویسم که وقتی سیستم رو بزرگ تر میکنم مجبور شم هندلش کنم. کمی باعث میشه بیشتر کد بزنم و بیشتر وقت بذارم ولی از طرفی اصلا رو دیباگ اون کد وقت نمیذارم و پروداکتم خیلی stable تره.
تو تایپ اسکریپت و بعضی زبونای دیگه این ایده رو میشه بدون runtime cost اجرا کرد. تو پایتون ولی یک وقتا (مثل اینجا)یک کوچولو ران تایم کاست داره.
@PyBackendHub
👍17👏1
چیزی که من متعجب شدم اکثرا میگن این <خیلی پیچیدست>. ولی حقیقتا اصلا پیچیده نیست. کامیونیتی پایتون خیلی گارد زیادی نسبت به تایپینگ داره که تو دراز مدت قطعا ضربه میخورین چون پایتون الان هر نسخه ریلیز میده ۸۰ درصدش تایپینگ improvement هست و شما اگه الان typing بلد نباشین عملا از خیلی از لایبری های جدید نمیتونید استفاده کنید.
تو این مثال حتی یک خط نشده. و شما اینکار رو برای آیدی ها انجام میدی. تو یک سرویس پرحجم که شما ۲۰۰ تیبل داری نهایتا میشه ۲۰۰ خط NewType. و باعث میشه signature همه کد های شما قابل خوانا باشه.
این tip به درد شما میخوره اگه کد میزنی. لزوما به بک اند هیچ ربطی نداره. الان شما یک تابع بنویسید که یک سریآیدی موزیک و آیدی یوزر بگیره و بعد بگه برای هر موزیک هر یوزر پیش بینی کنه از صفر تا صد چقدر ممکنه دوست داشته باشه
این ۳ مثال رو ببینید, مثال اول تایپینگ خوبی داره. مثال دوم تایپینگ داره ولی به درد بخور نیست خیلی. و مثال سوم تایپینگ نداره.
من میتونم بدونه اینکه کدو ببینم از فانکشن اولی استفاده کنم. فانکشن دومی معلوم نیست چی به چی لینک شده. پس باید حواسم باشه موقع استفاده ازش. و بعدا ریفکتورش هم کردم باید ۱۰۰درصد حواسم باشه signature اش تغییر نکنه. و فانکشن سوم که کلا فاجعست. اصلا maintainable نیست. قضاوت رو میذارم با خودتون.
@PyBackendHub
تو این مثال حتی یک خط نشده. و شما اینکار رو برای آیدی ها انجام میدی. تو یک سرویس پرحجم که شما ۲۰۰ تیبل داری نهایتا میشه ۲۰۰ خط NewType. و باعث میشه signature همه کد های شما قابل خوانا باشه.
این tip به درد شما میخوره اگه کد میزنی. لزوما به بک اند هیچ ربطی نداره. الان شما یک تابع بنویسید که یک سریآیدی موزیک و آیدی یوزر بگیره و بعد بگه برای هر موزیک هر یوزر پیش بینی کنه از صفر تا صد چقدر ممکنه دوست داشته باشه
این ۳ مثال رو ببینید, مثال اول تایپینگ خوبی داره. مثال دوم تایپینگ داره ولی به درد بخور نیست خیلی. و مثال سوم تایپینگ نداره.
# WITH GOOD TYPING
Percentage: TypeAlias = int # from 0 to 100.
def calculate_music_populatiry(person_ids: list[PersonId], music_ids: list[MusicId]) -> dict[PersonId, list[tuple[MusicId, Percentage]]
# WITH BAD TYPING
def calculate_music_populatiry(person_ids: list[UUID], music_ids: list[UUID]) -> dict[UUID, list[tuple[UUID, int]]
# WITHOUT TYPING
def calculate_music_populatiry(person_ids, music_ids)
من میتونم بدونه اینکه کدو ببینم از فانکشن اولی استفاده کنم. فانکشن دومی معلوم نیست چی به چی لینک شده. پس باید حواسم باشه موقع استفاده ازش. و بعدا ریفکتورش هم کردم باید ۱۰۰درصد حواسم باشه signature اش تغییر نکنه. و فانکشن سوم که کلا فاجعست. اصلا maintainable نیست. قضاوت رو میذارم با خودتون.
@PyBackendHub
👍34👎9🤡2💋1🤪1
This media is not supported in your browser
VIEW IN TELEGRAM
پروداکت AI این روزا 🤖🤡
@PyBackendHub
@PyBackendHub
😁12👍4🤣3
This media is not supported in your browser
VIEW IN TELEGRAM
اگه کلمه story point رو شنیدین، فرار کنید 😂🏃
@PyBackendHub
@PyBackendHub
👍6
Forwarded from سید فرندز / برنامه نویسی / هک و امنیت / تکنولوژی (SeYeD.Dev)
Please open Telegram to view this post
VIEW IN TELEGRAM
😁25🤯3👍1👎1👏1
سید فرندز / برنامه نویسی / هک و امنیت / تکنولوژی
وقتی فرانت کار فکرمیکنه دولوپره ✅ @SEYED_BAX
من احتمال ۹۰ درصد میدم که فرانت اند کاره سامانه سجاد از .env استفاده کرده و فکر کرده ship نمیشه سمت کلاینت.
همینجاست که دانش عمیق بهتون کمک میکنه. باید متوجه شین چه اتفاقی داره میفته و چه بلایی سره کدتون میاد.
@PyBackendHub
همینجاست که دانش عمیق بهتون کمک میکنه. باید متوجه شین چه اتفاقی داره میفته و چه بلایی سره کدتون میاد.
@PyBackendHub
👍25
شاید نظریه نامحبوب باشه، ولی من چیزا رو قبول ندارم:
۱. اینکه تو مصاحبه اول بگی آره من خیلی علاقه دارم تو شرکت شما کار کنم. اینکه به یک پروداکت علاقه داشته باشین، طبیعتا عادیه. ولی چطوری به شرکتی علاقه دارین که هنوز نوش نرفتین و هیچی نمیدونید راجبش؟
۲. من حتی گلس دور هم قبول ندارم. چون کسایی که رفتن گلس دور همه bias هستن. یا نظره خیلی منفی داشتن رفتن نظر بدن. یا شرکت هلشون داده که نظره خوب بنویسن. یعنی جامعه اماری که تو گلس دوره اصلا قابل اعتماد نیست برای نتیجه گیری
۳. اینکه از یک کارمند و غریبه داخل شرکت تو لینکدین بپرسید که شرکت چطوریه؟ احتمال اینکه دقیقا بشینه براتون تعریف کنه چه حس و حالیه تو شرکت، خیلی کمه.
چطوری بفهمیم؟ از روند مصاحبه. روند مصاحبه کالچر شرکت رو تا حد زیادی لیک میکنه. سوالایی که میتونید بپرسید، و نحوه ای که کلا جلو میره.
بازم خیلی شاید قاطع نباشه، ولی بهترین چیزیه که میتونید بگیرید.
@PyBackendHub
۱. اینکه تو مصاحبه اول بگی آره من خیلی علاقه دارم تو شرکت شما کار کنم. اینکه به یک پروداکت علاقه داشته باشین، طبیعتا عادیه. ولی چطوری به شرکتی علاقه دارین که هنوز نوش نرفتین و هیچی نمیدونید راجبش؟
۲. من حتی گلس دور هم قبول ندارم. چون کسایی که رفتن گلس دور همه bias هستن. یا نظره خیلی منفی داشتن رفتن نظر بدن. یا شرکت هلشون داده که نظره خوب بنویسن. یعنی جامعه اماری که تو گلس دوره اصلا قابل اعتماد نیست برای نتیجه گیری
۳. اینکه از یک کارمند و غریبه داخل شرکت تو لینکدین بپرسید که شرکت چطوریه؟ احتمال اینکه دقیقا بشینه براتون تعریف کنه چه حس و حالیه تو شرکت، خیلی کمه.
چطوری بفهمیم؟ از روند مصاحبه. روند مصاحبه کالچر شرکت رو تا حد زیادی لیک میکنه. سوالایی که میتونید بپرسید، و نحوه ای که کلا جلو میره.
بازم خیلی شاید قاطع نباشه، ولی بهترین چیزیه که میتونید بگیرید.
@PyBackendHub
👍46
Python BackendHub
شاید نظریه نامحبوب باشه، ولی من چیزا رو قبول ندارم: ۱. اینکه تو مصاحبه اول بگی آره من خیلی علاقه دارم تو شرکت شما کار کنم. اینکه به یک پروداکت علاقه داشته باشین، طبیعتا عادیه. ولی چطوری به شرکتی علاقه دارین که هنوز نوش نرفتین و هیچی نمیدونید راجبش؟ ۲. من…
چند نکته که اشتباه برداشت نکنید.
نکته اول من نمیگم که شما تحقیق نکنید راجب شرکتی که میرین مصاحبه میدین. من دارم دید خودمو میگم به عنوان کسی که مصاحبه میکنید چطوری میتونید یک شرکت رو کالچرش رو از بیرون قضاوت کنید. اینکه شما بری تو مصاحبه و نشون بدی تحقیق کردی و الکی یک دلیلی بیاری بگی چرا دوست داری تو اون شرکت کار کنی خیلی کمک میکنه به فرایند مصاحبه و شانس قبول شدنت. ولی من دارم راجب قضاوت کالچر صحبت میکنم نه راجب قبولی مصاحبه. همینطور که شرکت شما رو انتخاب میکنه, شما هم شرکت رو انتخاب میکنی. این پروسه interview یک چیزه دو طرفست. شرکت redflag نشون بده که با خواسته شما و مدل کاری شما یکی نیست سریع پا پس میکشید حتی اگه آفر بدن.
نکته دوم اشاره کردن ممکنه تو هیچ مرحله ای با کسی از تیم آیندتون مصاحبه نکنید. خب این خودش بزرگترین رد فلگه تو دید من. اینطوری نیست شما برین تو مصاحبه بشینید و مصاحبه گر رد فلگ های شرکت رو لیست کنه براتون. شما باید زرنگ باشین سوال خوب بپرسین و کشف کنید رد فلگ هارو اول کار. اینکه یک نفر رو دارن استخدام میکنن تو یک تیمی ولی هیچ کدوم از اعضای تیم یک بارم اون نفری که داره استخدام میشه رو نمیبینه, این موضوع برای من رد فلگه و بوی سلسله مراتب سنگین رو میده تو شرکت.
و در نهایت بحث گلس دور هم شد, ببینید جامعه آماری گلس دور نرمال نیست. اینطوری نیست گوگل میت تموم شه بگن بهتون ۱ تا ۱۰ نمره بدید. باید برین تو یک سایت ثبت نام کنید احراز هویت کنید و یک مراحلی رو طی کنید که یک review بذارین. هیچکسی اینکارو معمولا نمیکنه. مگه یا اینکه مجبورش کرده باشن. یا اینکه اینقدر عصبی شده که رفته گلس دور انتقام بگیره. جامعه آماری نرمال نیست تو گلس دور. من مصاحبه رفتم ریت شرکت بد بوده تو گلس دور ولی فرهنگش تو مصاحبه خیلی خوب بنظر میرسیده. و کاملا برعکس.
@PyBackendHub
نکته اول من نمیگم که شما تحقیق نکنید راجب شرکتی که میرین مصاحبه میدین. من دارم دید خودمو میگم به عنوان کسی که مصاحبه میکنید چطوری میتونید یک شرکت رو کالچرش رو از بیرون قضاوت کنید. اینکه شما بری تو مصاحبه و نشون بدی تحقیق کردی و الکی یک دلیلی بیاری بگی چرا دوست داری تو اون شرکت کار کنی خیلی کمک میکنه به فرایند مصاحبه و شانس قبول شدنت. ولی من دارم راجب قضاوت کالچر صحبت میکنم نه راجب قبولی مصاحبه. همینطور که شرکت شما رو انتخاب میکنه, شما هم شرکت رو انتخاب میکنی. این پروسه interview یک چیزه دو طرفست. شرکت redflag نشون بده که با خواسته شما و مدل کاری شما یکی نیست سریع پا پس میکشید حتی اگه آفر بدن.
نکته دوم اشاره کردن ممکنه تو هیچ مرحله ای با کسی از تیم آیندتون مصاحبه نکنید. خب این خودش بزرگترین رد فلگه تو دید من. اینطوری نیست شما برین تو مصاحبه بشینید و مصاحبه گر رد فلگ های شرکت رو لیست کنه براتون. شما باید زرنگ باشین سوال خوب بپرسین و کشف کنید رد فلگ هارو اول کار. اینکه یک نفر رو دارن استخدام میکنن تو یک تیمی ولی هیچ کدوم از اعضای تیم یک بارم اون نفری که داره استخدام میشه رو نمیبینه, این موضوع برای من رد فلگه و بوی سلسله مراتب سنگین رو میده تو شرکت.
و در نهایت بحث گلس دور هم شد, ببینید جامعه آماری گلس دور نرمال نیست. اینطوری نیست گوگل میت تموم شه بگن بهتون ۱ تا ۱۰ نمره بدید. باید برین تو یک سایت ثبت نام کنید احراز هویت کنید و یک مراحلی رو طی کنید که یک review بذارین. هیچکسی اینکارو معمولا نمیکنه. مگه یا اینکه مجبورش کرده باشن. یا اینکه اینقدر عصبی شده که رفته گلس دور انتقام بگیره. جامعه آماری نرمال نیست تو گلس دور. من مصاحبه رفتم ریت شرکت بد بوده تو گلس دور ولی فرهنگش تو مصاحبه خیلی خوب بنظر میرسیده. و کاملا برعکس.
@PyBackendHub
👍19🤝1
Forwarded from Arsham's Tech Mastery (Arsham)
تا حالا شده به یه مشکلی بخورید، ولی هیچ سر نخی از مشکل ندارید، بنابراین اصلا نمیدونید راجع به چی باید سرچ کنید؟ یا هر چی سرچ میکنید به نتیجه نمیرسید. (مثلا یه بار سر مموری لیک تو نود جی اس اینجوری شدم، و نمیدونستم حتی مشکلی که خوردم اسمش مموری لیک هست، مدعیان سینیوریتی هم که... باید براشون میخوندم ای به فدای چشم تو این چه نگاه کردن است!)
یا مثلا یه چیزی رو ندونید، اما ندونید چی باید سرچ کنید که یادش بگیرید؟ مثلا تو مکالمه همکارات بشنوی "p99 اش چنده؟" قبلنا که یادمه گوگل نتایج قابل قبولی برای این نمیداد، ولی ساده است، میگمش بعدا. (کلیت سوالم رو دریابید فارق از مثال)
یه حالت بدتر هم وجود داره، که مشکل خوردن، اما اصلا نمیدونن مشکل خوردن! (مثلا چندتا گوروتین اون گوشه نشستن نون و پنیرشونو میخورن به کسی هم کار ندارن (dangling goroutines))
یا میدونن مشکل خوردن اما بهش بی توجهی میکنن مثلا سرور هفته ای یه بار کرش میکنه، ری استارت میکنن و درست میشه و روز از نو روزی از نو! Availability هم که... کشک! 😂
قسمت سختش وقتیه که میخواید یه سیستم جدید دیزاین کنید،
- نمیدونید از کجا شروع کنید
- نمیدونید چه تصمیمی درست یا غلط، چون پارامتر های مقایسه اش رو نمیدونید
- یا جوانب مختلفش رو بدونید که هست اما نتونید ببینید
اگه این نشونه هارو دارید، راهکارتون پیش دستی تو مطالعه و یادگیریه.
یعنی اگه تا الان با سرچ و تو موقعیت یاد میگرفتید، از این به بعد سعی کنید یه روتینی هم از بدون موقعیت یاد گرفتن داشته باشید.
مثلا خود من الان دارم راجع به کریپتوگرافی میخونم در حالی که تو کارم یا پروژه ای بهش نیاز نداشتم، فعلا صرف علاقه است، ولی وقتی که اسکیلش رو به دست بیارم، میتونم برای موقعیت هایی که این نیازمندی رو دارن شایستگی خودمو نشون بدم.
یا تو همین موقعیتی که هستم نواقصی رو خواهم دید که قبلا نمیدیدم (مطمئنم این اتفاقا میوفته چون چندین بار تجربش کردم)
همه ما برنامه نویسا کم و بیش این دوره رو تجربه کردیم که نه بر حسب نیاز بلکه برای آینده مطالعه کنیم (قبل اولین کارمون مثلا)، اما گاهی بعد اینکه دیگه به کار میرسیم انقدر غرق کار میشیم که یادمون میره این مسیر طولانی تر از این حرفاست و کلی موقعیت برا پیشرفت هست. (بعضیا هم میدونن موقعیت هست ولی تصمیمشون بر لذت بردن و... در تایم های شخصیه، اونم مورد احترامه)
یا مثلا یه چیزی رو ندونید، اما ندونید چی باید سرچ کنید که یادش بگیرید؟ مثلا تو مکالمه همکارات بشنوی "p99 اش چنده؟" قبلنا که یادمه گوگل نتایج قابل قبولی برای این نمیداد، ولی ساده است، میگمش بعدا. (کلیت سوالم رو دریابید فارق از مثال)
یه حالت بدتر هم وجود داره، که مشکل خوردن، اما اصلا نمیدونن مشکل خوردن! (مثلا چندتا گوروتین اون گوشه نشستن نون و پنیرشونو میخورن به کسی هم کار ندارن (dangling goroutines))
یا میدونن مشکل خوردن اما بهش بی توجهی میکنن مثلا سرور هفته ای یه بار کرش میکنه، ری استارت میکنن و درست میشه و روز از نو روزی از نو! Availability هم که... کشک! 😂
قسمت سختش وقتیه که میخواید یه سیستم جدید دیزاین کنید،
- نمیدونید از کجا شروع کنید
- نمیدونید چه تصمیمی درست یا غلط، چون پارامتر های مقایسه اش رو نمیدونید
- یا جوانب مختلفش رو بدونید که هست اما نتونید ببینید
اگه این نشونه هارو دارید، راهکارتون پیش دستی تو مطالعه و یادگیریه.
یعنی اگه تا الان با سرچ و تو موقعیت یاد میگرفتید، از این به بعد سعی کنید یه روتینی هم از بدون موقعیت یاد گرفتن داشته باشید.
مثلا خود من الان دارم راجع به کریپتوگرافی میخونم در حالی که تو کارم یا پروژه ای بهش نیاز نداشتم، فعلا صرف علاقه است، ولی وقتی که اسکیلش رو به دست بیارم، میتونم برای موقعیت هایی که این نیازمندی رو دارن شایستگی خودمو نشون بدم.
یا تو همین موقعیتی که هستم نواقصی رو خواهم دید که قبلا نمیدیدم (مطمئنم این اتفاقا میوفته چون چندین بار تجربش کردم)
همه ما برنامه نویسا کم و بیش این دوره رو تجربه کردیم که نه بر حسب نیاز بلکه برای آینده مطالعه کنیم (قبل اولین کارمون مثلا)، اما گاهی بعد اینکه دیگه به کار میرسیم انقدر غرق کار میشیم که یادمون میره این مسیر طولانی تر از این حرفاست و کلی موقعیت برا پیشرفت هست. (بعضیا هم میدونن موقعیت هست ولی تصمیمشون بر لذت بردن و... در تایم های شخصیه، اونم مورد احترامه)
👍24❤4👎3👏1
Arsham's Tech Mastery
تا حالا شده به یه مشکلی بخورید، ولی هیچ سر نخی از مشکل ندارید، بنابراین اصلا نمیدونید راجع به چی باید سرچ کنید؟ یا هر چی سرچ میکنید به نتیجه نمیرسید. (مثلا یه بار سر مموری لیک تو نود جی اس اینجوری شدم، و نمیدونستم حتی مشکلی که خوردم اسمش مموری لیک هست، مدعیان…
پست فشنگیه، ولی به نظرم به مخاطب بازم دلیل زیادی نمیده. برای همین یک نکته اضافه میکنم.
دید هلیکوپتری داشتن بهتون خیلی کمک میکنه. وسعت دیدتون رو بیشتر میکنه. اگه کله عمرتون پایتون کار کردین، ممکنه python core developer شین ولی به محض اینکه تاپیک از پایتون خارج شه، دیگه خیلی حرفی برای گفتن ندارین. و رو کریرتون هم تاثیر میذاره.
دید هلیکپوتری یعنی اینکه شما وقتی یک اسکیل رو خوب یاد گرفتی، مثلا بک اند با پاینون، دیگه بسنده نکنی به بک اند و یک جایی سعی کنی شاخه به شاخه بپری. مثلا دوآپس انجام بدی، Business Intelligence انجام بدی، فرانت انجام بدی، دیتا ساینس یاد بگیری، زبون جدید با ایده های متفاوت یاد بگیری، و … لزومی نیست تو اینا دیپ شی، فقط در این حد که دو نفر رو دیدی راجب این ایتمایی که گفتم دارن حرف میزنن، حرفشون رو متوجه شی. اینکار به طرز عجیبی رو کار روزانتون هم تاثیر میذاره، حتی اگه فقط یک رول خاص داشته باشین.
برای همین من سعی میکنم این جمله <این کاره من نیست> رو نگم. طبیعتا ممکنه یک کاریو ریجکت کنم اگه از حیطه وظیفم خارج باشه و اصلا به هیچ دردم نخوره. ولی اگه اینطوری نباشه و کمی interaction داشته باشه با کارم، حتی ۱ درصد، حتی داوطلبانه انجامش میدم. چون کاری که هر روز دارم چند ساله انجام میدم، خیلی چالشش کمتره برام تا اینکار و خودم کمتر رشد میکنم.
@PyBackendHub
دید هلیکوپتری داشتن بهتون خیلی کمک میکنه. وسعت دیدتون رو بیشتر میکنه. اگه کله عمرتون پایتون کار کردین، ممکنه python core developer شین ولی به محض اینکه تاپیک از پایتون خارج شه، دیگه خیلی حرفی برای گفتن ندارین. و رو کریرتون هم تاثیر میذاره.
دید هلیکپوتری یعنی اینکه شما وقتی یک اسکیل رو خوب یاد گرفتی، مثلا بک اند با پاینون، دیگه بسنده نکنی به بک اند و یک جایی سعی کنی شاخه به شاخه بپری. مثلا دوآپس انجام بدی، Business Intelligence انجام بدی، فرانت انجام بدی، دیتا ساینس یاد بگیری، زبون جدید با ایده های متفاوت یاد بگیری، و … لزومی نیست تو اینا دیپ شی، فقط در این حد که دو نفر رو دیدی راجب این ایتمایی که گفتم دارن حرف میزنن، حرفشون رو متوجه شی. اینکار به طرز عجیبی رو کار روزانتون هم تاثیر میذاره، حتی اگه فقط یک رول خاص داشته باشین.
برای همین من سعی میکنم این جمله <این کاره من نیست> رو نگم. طبیعتا ممکنه یک کاریو ریجکت کنم اگه از حیطه وظیفم خارج باشه و اصلا به هیچ دردم نخوره. ولی اگه اینطوری نباشه و کمی interaction داشته باشه با کارم، حتی ۱ درصد، حتی داوطلبانه انجامش میدم. چون کاری که هر روز دارم چند ساله انجام میدم، خیلی چالشش کمتره برام تا اینکار و خودم کمتر رشد میکنم.
@PyBackendHub
👍27👏2❤1👎1
فردا بعد مدت ها یک ویدیو یوتیوب داریم
کرشکورس sqlalchemy
خیلیا این مدت ازم سوال زیاد میپرسیدن راجب sqla. و یک سری نکاتی هست که شاید براتون گیج کننده باشه، مثل تفاوت اجرا کوئری با scalars و execute
تو این کرش کورس یک ویدیویی قراره به سطحی برسید که خیلی راحت بتونید از sqlalchemy تو پروژه هاتون استفاده کنید. تو این کرش کورس راحت ترین شیوه استفاده از sqla رو بهتون یاد میدم.
پیش نیاز این کورس بلد بودن sql و پایتونه فقط.
@PyBackendHub
کرشکورس sqlalchemy
خیلیا این مدت ازم سوال زیاد میپرسیدن راجب sqla. و یک سری نکاتی هست که شاید براتون گیج کننده باشه، مثل تفاوت اجرا کوئری با scalars و execute
تو این کرش کورس یک ویدیویی قراره به سطحی برسید که خیلی راحت بتونید از sqlalchemy تو پروژه هاتون استفاده کنید. تو این کرش کورس راحت ترین شیوه استفاده از sqla رو بهتون یاد میدم.
پیش نیاز این کورس بلد بودن sql و پایتونه فقط.
@PyBackendHub
❤🔥42👍11❤3👏3⚡1🔥1
Python BackendHub
فردا بعد مدت ها یک ویدیو یوتیوب داریم کرشکورس sqlalchemy خیلیا این مدت ازم سوال زیاد میپرسیدن راجب sqla. و یک سری نکاتی هست که شاید براتون گیج کننده باشه، مثل تفاوت اجرا کوئری با scalars و execute تو این کرش کورس یک ویدیویی قراره به سطحی برسید که خیلی…
اطلاعات تکمیلی راجب کرش کورس بدم
اولا تو ۶ قسمت پخش میشه. قسمت ها به ترتیب:
۱. معماری و نحوه کار sqlalchemy و دانش thoery مورد نیاز برای درک sqlalchemy
۲. درک انجین داخل sqlalchemy
۳. آشنایی با تایپ های مختلف داخل لایبری و DML و تفاوت هاشون
۴. روش های ساخت تیبل و فارن کی و درک عمیق از مفهوم table داخل sqlalchemy
۵. توضیح Session و قسمت ORM داخل sqlalchemy
۶. آموزش ماگریشن نویسی با alembic
روزی یک قسمت پخش میشه. از امشب منتشر میشه. این ۶ قسمت کافیه برای شما که شروع کنی به استفاده کردن از sqlalchemy داخل پروژتون. کورس با async جلو میره و از async extension sqlalchemy استفاده میکنیم.
میتونم یک قسمت ۷ام بعدا بذارم برای پرسش پاسخ. اگه پیشنهادی داشتین حتما کامنت کنید.
@PyBackendHub
اولا تو ۶ قسمت پخش میشه. قسمت ها به ترتیب:
۱. معماری و نحوه کار sqlalchemy و دانش thoery مورد نیاز برای درک sqlalchemy
۲. درک انجین داخل sqlalchemy
۳. آشنایی با تایپ های مختلف داخل لایبری و DML و تفاوت هاشون
۴. روش های ساخت تیبل و فارن کی و درک عمیق از مفهوم table داخل sqlalchemy
۵. توضیح Session و قسمت ORM داخل sqlalchemy
۶. آموزش ماگریشن نویسی با alembic
روزی یک قسمت پخش میشه. از امشب منتشر میشه. این ۶ قسمت کافیه برای شما که شروع کنی به استفاده کردن از sqlalchemy داخل پروژتون. کورس با async جلو میره و از async extension sqlalchemy استفاده میکنیم.
میتونم یک قسمت ۷ام بعدا بذارم برای پرسش پاسخ. اگه پیشنهادی داشتین حتما کامنت کنید.
@PyBackendHub
🔥19👍9❤4
یک تکنیک بحث کردن که بنظرم ما ایرانیا خیلی توش ضعیفیم,
وقتی با کسی بحث میکنید, بحث سره دفاع از ایده خودتون نیست. بحث سره اینکه که چه ایده ای میتونه بهترین ایده باشه.
مثلا شما با ایده A دارین با کسی با ایده B بحث میکنید. اگه شما از ایده A و اون فرد از ایده B داره دفاع میکنه اونوقت اون بحث فرسایشیه. بحثی درسته که شما جوانب A و B رو بررسی کنی و بعد تصمیم بگیری کدوم بهتره, یا اینکه به یک ایده جدیدی مثل C برسید.
برنده کسی نیست که ایدش برنده میشه، برنده کسایین که تو اون بحث بودن :)
به قول دوستمون تو کامنت ها, ایده ابزاره. نه توصیف کننده شخصیت.
@PyBackendHub
وقتی با کسی بحث میکنید, بحث سره دفاع از ایده خودتون نیست. بحث سره اینکه که چه ایده ای میتونه بهترین ایده باشه.
مثلا شما با ایده A دارین با کسی با ایده B بحث میکنید. اگه شما از ایده A و اون فرد از ایده B داره دفاع میکنه اونوقت اون بحث فرسایشیه. بحثی درسته که شما جوانب A و B رو بررسی کنی و بعد تصمیم بگیری کدوم بهتره, یا اینکه به یک ایده جدیدی مثل C برسید.
برنده کسی نیست که ایدش برنده میشه، برنده کسایین که تو اون بحث بودن :)
به قول دوستمون تو کامنت ها, ایده ابزاره. نه توصیف کننده شخصیت.
@PyBackendHub
👍51👎3👏2🍌2
اولین قسمت از پلی لیست SQLAlchemy منتشر شد!
در این قسمت، به بررسی ساختار ORM میپردازیم و مفاهیم اولیه معماری و لایههای این کتابخانه را معرفی میکنیم. همچنین، به ویژگیهای مختلف کتابخانه نگاهی میاندازیم و مزایای استفاده از آن را توضیح میدهیم. در پایان، با نوشتن چند خط کد، معماری و لایهها را بهتر درک خواهیم کرد.
لینک ویدیو:
https://youtu.be/ybkq1s-rQVY
این دوره شامل ۶ قسمت هست. این دوره ۶ قسمته شما رو برای استفاده از SQLAlchemy داخل پروژه هاتون و پروداکشن آماده میکنه و به شما درک بنیادی و کافی از SQLAlchemy میده که دیگه درک این ORM براتون خیلی سخت نباشه.
@PyBackendHub
در این قسمت، به بررسی ساختار ORM میپردازیم و مفاهیم اولیه معماری و لایههای این کتابخانه را معرفی میکنیم. همچنین، به ویژگیهای مختلف کتابخانه نگاهی میاندازیم و مزایای استفاده از آن را توضیح میدهیم. در پایان، با نوشتن چند خط کد، معماری و لایهها را بهتر درک خواهیم کرد.
لینک ویدیو:
https://youtu.be/ybkq1s-rQVY
این دوره شامل ۶ قسمت هست. این دوره ۶ قسمته شما رو برای استفاده از SQLAlchemy داخل پروژه هاتون و پروداکشن آماده میکنه و به شما درک بنیادی و کافی از SQLAlchemy میده که دیگه درک این ORM براتون خیلی سخت نباشه.
@PyBackendHub
YouTube
قسمت اول دوره SQLAlchemy | مقدمه, مزایا و معماری SQLAlchemy
در این قسمت، به بررسی ساختار ORM میپردازیم و مفاهیم اولیه معماری و لایههای این کتابخانه را معرفی میکنیم. همچنین، به ویژگیهای مختلف کتابخانه نگاهی میاندازیم و مزایای استفاده از آن را توضیح میدهیم. در پایان، با نوشتن چند خط کد، معماری و لایهها را بهتر…
🔥31👍3❤2
بخاطر یک ریلیز جدید setuptools که برکینگ چنج داشته، کل ابزارا مثل uv و poetry و pdm از کار افتادن از امروز
فیکسش اینجاست موقتا
https://github.com/pypa/setuptools/issues/4519#issuecomment-2254983472
@PyBackendHub
فیکسش اینجاست موقتا
https://github.com/pypa/setuptools/issues/4519#issuecomment-2254983472
@PyBackendHub
GitHub
[BUG] Many packages are no longer installable after test command is removed · Issue #4519 · pypa/setuptools
For those landing on this issue, please see: (thank you @delfick for summarizing this) This functionality has been deprecated for 5 years, there is a separate issue for discussing if there would ha...
👍5😁2🥰1
Python BackendHub
بخاطر یک ریلیز جدید setuptools که برکینگ چنج داشته، کل ابزارا مثل uv و poetry و pdm از کار افتادن از امروز فیکسش اینجاست موقتا https://github.com/pypa/setuptools/issues/4519#issuecomment-2254983472 @PyBackendHub
داستان چی بود؟
دیشب maintainer لایبری setuptools قبل اینکه بخوابه، یک ریلیز داد که بیلد قدیمی پایتون رو کلا دیگه ساپورت نمیکرد. ۵ ساله که deprecate شده بود و الان باید از PEP 571 استفاده کنید.
خیلی پکیج ها هنوز اینو اعمال نکرده بودن، درنتیجه pip install با نسخه اخر setuptool فیل میشد واسه اون پکیجا.
تو گیتهاب هم به شدت شلوغ شد! منتینر بعد ۱۰ ساعت بلند شد دید یک ایشو ساخته شده ۱۵۰ تام کامنت خورده 😁 در نتیجه ریلیز رو yank کرد.
نکته جالب اینجاست که اون warningای که میداد رو کنسول خیلی وقتا نمایش داده نمیشد، و برای همین خیلیا ندیده بودن اصلا.
خوده maintainer هم فرض کرده بود که مشکل زیادی پیش نمیاد.
خلاصه که درس شد:
۱. قبل از خواب ریلیز ندید 😂 اخرین روز هفته هم همینطور :))
۲. فرضیات همیشه با واقعیت فرق دارن، چیزایی که فکر میکنید قطعا کار میکنن درواقع ممکنه کار نکنند (مثل depreciation message). همیشه فرضیات رو زیرسوال ببرید و دوباره چک کنید وقتی دارین یک کار مهمی انجام میدین
@PyBackendHub
دیشب maintainer لایبری setuptools قبل اینکه بخوابه، یک ریلیز داد که بیلد قدیمی پایتون رو کلا دیگه ساپورت نمیکرد. ۵ ساله که deprecate شده بود و الان باید از PEP 571 استفاده کنید.
خیلی پکیج ها هنوز اینو اعمال نکرده بودن، درنتیجه pip install با نسخه اخر setuptool فیل میشد واسه اون پکیجا.
تو گیتهاب هم به شدت شلوغ شد! منتینر بعد ۱۰ ساعت بلند شد دید یک ایشو ساخته شده ۱۵۰ تام کامنت خورده 😁 در نتیجه ریلیز رو yank کرد.
نکته جالب اینجاست که اون warningای که میداد رو کنسول خیلی وقتا نمایش داده نمیشد، و برای همین خیلیا ندیده بودن اصلا.
خوده maintainer هم فرض کرده بود که مشکل زیادی پیش نمیاد.
خلاصه که درس شد:
۱. قبل از خواب ریلیز ندید 😂 اخرین روز هفته هم همینطور :))
۲. فرضیات همیشه با واقعیت فرق دارن، چیزایی که فکر میکنید قطعا کار میکنن درواقع ممکنه کار نکنند (مثل depreciation message). همیشه فرضیات رو زیرسوال ببرید و دوباره چک کنید وقتی دارین یک کار مهمی انجام میدین
@PyBackendHub
👍35😁4
دومین قسمت از پلی لیست SQLAlchemy منتشر شد!
در این قسمت، به Engine در SQLAlchemy میپردازیم, نحوه وصل شدن به دیتابیس رو میبینیم. مفهوم Dialect رو بهتر و عمیقتر بررسی میکنیم, و کانکشن پولینگ و نحوه پیاده سازیش و کنترلش داخل SQLAlchemy رو آزمایش میکنیم.
لینک ویدیو:
https://youtu.be/84oa66tzVGE
این دوره شامل ۶ قسمت هست. این دوره ۶ قسمته شما رو برای استفاده از SQLAlchemy داخل پروژه هاتون و پروداکشن آماده میکنه و به شما درک بنیادی و کافی از SQLAlchemy میده که دیگه درک این ORM براتون خیلی سخت نباشه.
@PyBackendHub
در این قسمت، به Engine در SQLAlchemy میپردازیم, نحوه وصل شدن به دیتابیس رو میبینیم. مفهوم Dialect رو بهتر و عمیقتر بررسی میکنیم, و کانکشن پولینگ و نحوه پیاده سازیش و کنترلش داخل SQLAlchemy رو آزمایش میکنیم.
لینک ویدیو:
https://youtu.be/84oa66tzVGE
این دوره شامل ۶ قسمت هست. این دوره ۶ قسمته شما رو برای استفاده از SQLAlchemy داخل پروژه هاتون و پروداکشن آماده میکنه و به شما درک بنیادی و کافی از SQLAlchemy میده که دیگه درک این ORM براتون خیلی سخت نباشه.
@PyBackendHub
YouTube
قسمت دوم دوره SQLAlchemy | توضیح Engine, کانکشن پولینگ و Dialect
در این قسمت، به Engine در SQLAlchemy میپردازیم, نحوه وصل شدن به دیتابیس رو میبینیم. مفهوم Dialect رو بهتر و عمیقتر بررسی میکنیم, و کانکشن پولینگ و نحوه پیاده سازیش و کنترلش داخل SQLAlchemy رو آزمایش میکنیم.
Linkedin 🌍: https://www.linkedin.com/in/manimozaffar…
Linkedin 🌍: https://www.linkedin.com/in/manimozaffar…
❤19👍5👏1
Python BackendHub
دومین قسمت از پلی لیست SQLAlchemy منتشر شد! در این قسمت، به Engine در SQLAlchemy میپردازیم, نحوه وصل شدن به دیتابیس رو میبینیم. مفهوم Dialect رو بهتر و عمیقتر بررسی میکنیم, و کانکشن پولینگ و نحوه پیاده سازیش و کنترلش داخل SQLAlchemy رو آزمایش میکنیم. لینک…
منی که ۲ ساله دارم از این orm استفاده میکنم, این دوره بین همه دوره هایی که گذاشتم با اختلاف پرچالش ترین بود. چالشش در این حد بود که من هر ویدیو رو دارم ۲-۳ بار ریکورد میکنم 😅 چون واقعا درست کردن کانتنتی که ۱۰۰ درصد دقیق و درست باشه راجب sqla کاره سختیه ! توصیه میکنم حتما ببینیدش حتی اگه بلدین این لایبریو.
@PyBackendHub
@PyBackendHub
👏35❤9👍4