Python BackendHub
ببینید ما یک آبجکت session داریم که session maker میاد. (یا session factory). که درواقع کانکشن پول این آبجکت رو میسازه و به ما میده. این Session نسبت به همه آبجکت هایی که از query میاد آگاهه. و آبجکت هارو به صورت خیلی implicit داره mutate میکنه.
من تازه فهمیدم که میشه تو sqlalchemy با انجین هم transaction باز کرد. و حتی یک سری متود هایی که Session داره رو نداره. مثل add. همه متود هایی که رفتار عجیب غریب و ORM طور اضافه میکردن به sqlalchemy
حالا کنجکاو شدم بدونم ایا انجین sqlalchemy اون رفتار های implicit سشن رو داره یا نه؟ با توجه به اینترفیسش بنظر نمیاد داشته باشه. ولی هیچی بعید نیست از sqlalchemy 😅
@PyBackendHub
حالا کنجکاو شدم بدونم ایا انجین sqlalchemy اون رفتار های implicit سشن رو داره یا نه؟ با توجه به اینترفیسش بنظر نمیاد داشته باشه. ولی هیچی بعید نیست از sqlalchemy 😅
@PyBackendHub
👍9
یک پست خیلی خوب از بنیامین تو گروه👌
یه مقاله ای دیدم
https://dev.to/stripe/common-design-patterns-at-stripe-1hb4
که نویسندش توسعه دهنده توی استرایپه
4 بخشه و نکاتی رو در مورد توسعه API میگه که به نظرم خوندنش خالی از لطف نیست. بخش مهم ترش به نظرم بخش آخره.
یه قسمتش یه حرفی رو میزنه:
Prefer enums over booleans
و میگه وقتی شما یه چیزی رو میخواید با مقدار bool بذارید مثلا:
ممکنه پس فردا نیاز به یه چیز دیگه داشته باشید و یه فیلد دیگه به API اضافه کنید:
میگه به جای این کار، بهتره بیاید از enum استفاده کنید:
که پس فردا اگه به جز canceled وضعیت دیگه ای هم داشتید، نیاز به تغییر اونطوری نباشه.
دوست دارم نظر شما رو هم در مورد این کار بدونم که این کار، کار خوبیه یا باید بیشتر روش فکر کرد..؟
با همین فرمون میگه کلی boolean رو میشه جا به جا کرد
و یا
@PyBackendHub
یه مقاله ای دیدم
https://dev.to/stripe/common-design-patterns-at-stripe-1hb4
که نویسندش توسعه دهنده توی استرایپه
4 بخشه و نکاتی رو در مورد توسعه API میگه که به نظرم خوندنش خالی از لطف نیست. بخش مهم ترش به نظرم بخش آخره.
یه قسمتش یه حرفی رو میزنه:
Prefer enums over booleans
و میگه وقتی شما یه چیزی رو میخواید با مقدار bool بذارید مثلا:
Subnoscription.canceled={true, false}ممکنه پس فردا نیاز به یه چیز دیگه داشته باشید و یه فیلد دیگه به API اضافه کنید:
Subnoscription.canceled={true, false}
Subnoscription.paused={true, false}میگه به جای این کار، بهتره بیاید از enum استفاده کنید:
Subnoscription.status={"active", "canceled"}که پس فردا اگه به جز canceled وضعیت دیگه ای هم داشتید، نیاز به تغییر اونطوری نباشه.
Subnoscription.status={"active", "canceled", "paused"}دوست دارم نظر شما رو هم در مورد این کار بدونم که این کار، کار خوبیه یا باید بیشتر روش فکر کرد..؟
با همین فرمون میگه کلی boolean رو میشه جا به جا کرد
post.published = true, false
post.status = PUBLISHED, NOT_PUBLISHED
و یا
product.in_stock = true, false
product.availability = IN_STOCK, OUT_OF_STOCK
@PyBackendHub
DEV Community
noscript
A post by Paul Asjes
👍19👌7❤1
BenDev
آنچه خواهید دید @BenDevelop
ولی ادیتور امیربهادر >>>> 😂😂👌 باید تو نتفلیکس کار کنه :))
تیراژش از تیراژ فیلم های هالیوودی جذاب تره 😂
@PyBackendHub
تیراژش از تیراژ فیلم های هالیوودی جذاب تره 😂
@PyBackendHub
😁13👍3❤1
Forwarded from BenDev
YouTube
پنل گفت و گو - کد قابل نگهداری
Maintainable Code - کد قابل نگهداری
تست
معماری نرم افزار
کد تمیز
+ testing
+ clean code
▬ محتوای ویدیو ▬▬▬▬▬▬▬▬▬▬
توی این ویدیو از مهمانان محترم دعوت کردیم که به پنل گفت و گو بیان که مباحث مربوط به کد قابل نگهداری از قبیل دیزاین پترین و کلین کد و…
تست
معماری نرم افزار
کد تمیز
+ testing
+ clean code
▬ محتوای ویدیو ▬▬▬▬▬▬▬▬▬▬
توی این ویدیو از مهمانان محترم دعوت کردیم که به پنل گفت و گو بیان که مباحث مربوط به کد قابل نگهداری از قبیل دیزاین پترین و کلین کد و…
❤9👍1
Media is too big
VIEW IN TELEGRAM
این ویدیو راجب ماکروسرویسه، و اینکه چطوری service هاتونو abstract کنید👌
توصیه میکنم حتما ببینید ، عالیه این ویدیو
@PyBackendHub
توصیه میکنم حتما ببینید ، عالیه این ویدیو
@PyBackendHub
👍9❤3🤣3🤯1
یکی از چیزایی که باعث به شدت maintainable شدن کدم شده این مقاله هست و نکاتی که توشه.
Writing python like rust
توصیه میکنم حتما بخونید اگه تا الان نخوندین. اکثر چیزایی که تو مقاله گفته تو همه زبونا قابل پیاده سازیه یعنی اصلا ربطی به پایتون و راست و ... نداره.
یکی ازچیزایی که دوست دارم NewType هست. بهتون یک تایپ جدید برمیگردونه. خوبیش اینه که signature توابعتون و دیتا استراکچر رو خیلی پرمفهوم میکنه و جلوی خطا رو میگیره.
مثالش تو عکس گذاشتم.
@PyBackendHub
Writing python like rust
توصیه میکنم حتما بخونید اگه تا الان نخوندین. اکثر چیزایی که تو مقاله گفته تو همه زبونا قابل پیاده سازیه یعنی اصلا ربطی به پایتون و راست و ... نداره.
یکی ازچیزایی که دوست دارم NewType هست. بهتون یک تایپ جدید برمیگردونه. خوبیش اینه که signature توابعتون و دیتا استراکچر رو خیلی پرمفهوم میکنه و جلوی خطا رو میگیره.
مثالش تو عکس گذاشتم.
@PyBackendHub
👍18👎9😁2❤1👌1
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