ما یک git flow داریم، که شاید اسمشو نشنیده باشین ولی حتما احتمال زیاد همینو رعایت میکنید. تو عکس توضیح داده. تو پروژه واقعی main میشه پروداکشن، و جای release branches میشه staging و develop هم که میشه نسخه dev که معمولا خیلی استیبل نیست.
معمولا وقتی هاتفیکس انجام میدین رو پروداکشن، رو برنچ staging و dev باید rebase کنید.
حالا سوال دارم ازتون، فکر کنید هات فیکس انجام دادید، ولیبخاطر اون هاتفیکس برنچ develop کانفلیکت خورد موقع ریبیس که حل کردین. ولی شما ۱۰۰ تا برنچ فیچر دیگه دارین از develop، که حالا همشون دقیقا همون کانفلیکت رو خوردن. بنظرتون راهکارش چیه؟
@PyBackendHub
معمولا وقتی هاتفیکس انجام میدین رو پروداکشن، رو برنچ staging و dev باید rebase کنید.
حالا سوال دارم ازتون، فکر کنید هات فیکس انجام دادید، ولیبخاطر اون هاتفیکس برنچ develop کانفلیکت خورد موقع ریبیس که حل کردین. ولی شما ۱۰۰ تا برنچ فیچر دیگه دارین از develop، که حالا همشون دقیقا همون کانفلیکت رو خوردن. بنظرتون راهکارش چیه؟
@PyBackendHub
👍8😱6
Python BackendHub
ما یک git flow داریم، که شاید اسمشو نشنیده باشین ولی حتما احتمال زیاد همینو رعایت میکنید. تو عکس توضیح داده. تو پروژه واقعی main میشه پروداکشن، و جای release branches میشه staging و develop هم که میشه نسخه dev که معمولا خیلی استیبل نیست. معمولا وقتی هاتفیکس…
سید تو کامنت اشاره کرد, چند تا راه حل داره.
یک راه حلی که من قبلا استفاده میکردم و خیلی بهینه نیست اینه که شما برنچ فیچرت رو ریست کنی رو آخرین کامیتی که رو برنچ پروداکشنم هست. و بهت هاتفیکس رو cherry pick کنی و همه کامیت های بعدیشم هم چری پیک کنید (میتونید یک رنجی از کامیت هارو چری پیک کنید نیازی نیست دونه دونه انجام بدید). و بعد کامیت هایی که زده بودید هم چری پیک کنید.برای هر برنچ ۵-۱۰ دقیقه طول میکشه و خیلی بهینه نیست.
راه حل خیلی منطقی تر استفاده از git rerere هست. این قابلیت رو میده که اگه کانفلیکت مشابهی رو یک بار حل کردین دیگه دفعات بعدی هم حل شه. این اسم مخفف Reuse Recorded Resolution هست, که خیلی معنی قشنگی داره. جوری که حلش میکنی اینه که شما وقتی یک کانفلیکت رو حل میکنی گیت راهکار شما رو ذخیره میکنه و یادش میمونه و دفعه بعدی که بخواین دقیقا همون کانفلیکت رو حل کنید git براتون حل میکنه.
یک یوزکیسش دیگش اینه که شما رو یک برنچی زمان زیادی کار کردی و الان اون برنچ خیلی کانفلیکت خورده. اصلا نیازی نیست کانفلیکت هارو حل کنید چون احتمالا قبلا حل کردیشون.
لینک یک مقاله که کامل توضیحش داده
لینک خود داکیومنتش
@PyBackendHub
یک راه حلی که من قبلا استفاده میکردم و خیلی بهینه نیست اینه که شما برنچ فیچرت رو ریست کنی رو آخرین کامیتی که رو برنچ پروداکشنم هست. و بهت هاتفیکس رو cherry pick کنی و همه کامیت های بعدیشم هم چری پیک کنید (میتونید یک رنجی از کامیت هارو چری پیک کنید نیازی نیست دونه دونه انجام بدید). و بعد کامیت هایی که زده بودید هم چری پیک کنید.برای هر برنچ ۵-۱۰ دقیقه طول میکشه و خیلی بهینه نیست.
راه حل خیلی منطقی تر استفاده از git rerere هست. این قابلیت رو میده که اگه کانفلیکت مشابهی رو یک بار حل کردین دیگه دفعات بعدی هم حل شه. این اسم مخفف Reuse Recorded Resolution هست, که خیلی معنی قشنگی داره. جوری که حلش میکنی اینه که شما وقتی یک کانفلیکت رو حل میکنی گیت راهکار شما رو ذخیره میکنه و یادش میمونه و دفعه بعدی که بخواین دقیقا همون کانفلیکت رو حل کنید git براتون حل میکنه.
یک یوزکیسش دیگش اینه که شما رو یک برنچی زمان زیادی کار کردی و الان اون برنچ خیلی کانفلیکت خورده. اصلا نیازی نیست کانفلیکت هارو حل کنید چون احتمالا قبلا حل کردیشون.
لینک یک مقاله که کامل توضیحش داده
لینک خود داکیومنتش
@PyBackendHub
Medium
Fix conflicts only once with git rerere
Fixing conflicts is chore enough not to do the same ones over and over again. See how rerere makes Git remember your conflict fixes!
👍13❤2
Forwarded from BenDev
درود دوستان
مصاحبه سطح جونیور با آقا بهداد عزیز
سری جدید ماک اینترویو رو داریم شروع میکنیم و لطفا در این فرآیند هرگونه نظر مثبت و منفی دارین برام بنویسین که توی مصاحبه های بعد تغییر بدیم
@BenDevelop
https://www.youtube.com/watch?v=DJ6lHSp7gUo
مصاحبه سطح جونیور با آقا بهداد عزیز
سری جدید ماک اینترویو رو داریم شروع میکنیم و لطفا در این فرآیند هرگونه نظر مثبت و منفی دارین برام بنویسین که توی مصاحبه های بعد تغییر بدیم
@BenDevelop
https://www.youtube.com/watch?v=DJ6lHSp7gUo
YouTube
Mock Interview - مصاحبه فنی جونیور با بهداد به همراه تحلیل و بررسی
مصاحبه فنی جونیور با بهداد
Mock interview Junior
+ تحلیل و بررسی
▬ محتوای ویدیو ▬▬▬▬▬▬▬▬▬▬
ما تو این ویدیو قصد داریم که با دوست عزیزمون بهداد مصاحبه کنیم
و با هم اشتباهاتش رو دربیاریم و ازش درس بگیریم
▬ بخش های ویدیو ▬▬▬▬▬▬▬▬▬▬
0:00 مقدمه
0:40…
Mock interview Junior
+ تحلیل و بررسی
▬ محتوای ویدیو ▬▬▬▬▬▬▬▬▬▬
ما تو این ویدیو قصد داریم که با دوست عزیزمون بهداد مصاحبه کنیم
و با هم اشتباهاتش رو دربیاریم و ازش درس بگیریم
▬ بخش های ویدیو ▬▬▬▬▬▬▬▬▬▬
0:00 مقدمه
0:40…
👍4
BenDev
درود دوستان مصاحبه سطح جونیور با آقا بهداد عزیز سری جدید ماک اینترویو رو داریم شروع میکنیم و لطفا در این فرآیند هرگونه نظر مثبت و منفی دارین برام بنویسین که توی مصاحبه های بعد تغییر بدیم @BenDevelop https://www.youtube.com/watch?v=DJ6lHSp7gUo
یک پلی لیست عالی از امیربهادر 👌
دیدن ماک یکی از بهترین روش های یادگیریه.
مصاحبه انجام دادن مثل رزومه نوشتن یک اسکیله. لزوما کسی که دانش تکنیکال خوبی داره خوب مصاحبه نمیکنه. بخش خیلی زیادی از مصاحبه اسکیل communication هست که خیلی مهمه. لزوما کسی که بره تو یک مصاحبه ۳ تا سوال الگوریتمی حل کنه استخدام نمیشه و FAANG و شرکت های بزرگ تر برای اینکه فرصت چک کردن assignment ندارن و هزینه زیادی براشون میبره و لایو هم نیست رو به پرسیدن سوال های الگوریتمی آوردن, که البته هدفشون استخدام یک leet coder نیست(ولی سولوشن بهتری براشون وجود نداره یا هنوز پیدا نشده که بتونن یک سوالی رو طرح کنند و طرف بتونه با کد زدن حلش کنه و اسکیل communication اش هم نشون بده و عمق دانشش هم نشون بده)
و البته سوالای system design ای که میپرسن هم دوباره یک مکانیزمه که leet coder ای استخدام نکنن که communication خوبی هم داره.
من میخواستم خیلی وقت پیش یک repo بنویسم برای مصاحبه دادن (مثل رزومه نویسی)
ولی بعدش فهمیدم که اونقدر مصاحبه objective نیست و تا کسی مصاحبه ماک خوب نبینه چند تا مصاحبه نده قلقش دستش نمیاد. ولی نوشتن resume خیلی آبجکتیو هست که یک ریپو دارم در خصوص تکنیک های نوشتن رزومه.
یک نکته که اخیرا کشف کردم برای اپلای, اگه سطح زبانتون خوبه حتما درج کنید (مثلا اگه c1 هستین بنویسید که c1 هستین) چون واقعا خیلیا (حتی اروپایی و خارجی ها) خیلی خوب حرف نمیزنن. البته دروغ ننویسید چون قطعا باعث ریجکتتون میشه اگه بنویسید c1 بلدید ولی تو مصاحبه اول نتونید در حد c1 حرف بزنید.
@PyBackendHub
دیدن ماک یکی از بهترین روش های یادگیریه.
مصاحبه انجام دادن مثل رزومه نوشتن یک اسکیله. لزوما کسی که دانش تکنیکال خوبی داره خوب مصاحبه نمیکنه. بخش خیلی زیادی از مصاحبه اسکیل communication هست که خیلی مهمه. لزوما کسی که بره تو یک مصاحبه ۳ تا سوال الگوریتمی حل کنه استخدام نمیشه و FAANG و شرکت های بزرگ تر برای اینکه فرصت چک کردن assignment ندارن و هزینه زیادی براشون میبره و لایو هم نیست رو به پرسیدن سوال های الگوریتمی آوردن, که البته هدفشون استخدام یک leet coder نیست(ولی سولوشن بهتری براشون وجود نداره یا هنوز پیدا نشده که بتونن یک سوالی رو طرح کنند و طرف بتونه با کد زدن حلش کنه و اسکیل communication اش هم نشون بده و عمق دانشش هم نشون بده)
و البته سوالای system design ای که میپرسن هم دوباره یک مکانیزمه که leet coder ای استخدام نکنن که communication خوبی هم داره.
من میخواستم خیلی وقت پیش یک repo بنویسم برای مصاحبه دادن (مثل رزومه نویسی)
ولی بعدش فهمیدم که اونقدر مصاحبه objective نیست و تا کسی مصاحبه ماک خوب نبینه چند تا مصاحبه نده قلقش دستش نمیاد. ولی نوشتن resume خیلی آبجکتیو هست که یک ریپو دارم در خصوص تکنیک های نوشتن رزومه.
یک نکته که اخیرا کشف کردم برای اپلای, اگه سطح زبانتون خوبه حتما درج کنید (مثلا اگه c1 هستین بنویسید که c1 هستین) چون واقعا خیلیا (حتی اروپایی و خارجی ها) خیلی خوب حرف نمیزنن. البته دروغ ننویسید چون قطعا باعث ریجکتتون میشه اگه بنویسید c1 بلدید ولی تو مصاحبه اول نتونید در حد c1 حرف بزنید.
@PyBackendHub
GitHub
GitHub - ManiMozaffar/awesome-resumes: Create resumes and CV with awesome-resumes. Practical tips, guidelines, guide, examples…
Create resumes and CV with awesome-resumes. Practical tips, guidelines, guide, examples and documentation for all IT fields - ManiMozaffar/awesome-resumes
👍12❤2
چقدر یک architecture میتونه پیچیده باشه؟
Sentry: YES
احساس میکنم این پیچیدگی از قصده که نخوای خودت maintain کنی اینو 😂 چون هزینه maintain کردنش به صورت self host از هزینه اینکه از نسخه کلادش استفاده کنی بیشتره :))
هنوز متوجه نمیشم چرا هم memcached هست هم ردیس. 😁
@PyBackendHub
Sentry: YES
احساس میکنم این پیچیدگی از قصده که نخوای خودت maintain کنی اینو 😂 چون هزینه maintain کردنش به صورت self host از هزینه اینکه از نسخه کلادش استفاده کنی بیشتره :))
هنوز متوجه نمیشم چرا هم memcached هست هم ردیس. 😁
@PyBackendHub
😁9🤣7👍4🤔2👎1
اگه ری اکت کار میکنید یک سری بزنید به این پروژه:
https://www.locatorjs.com/
کارش اینه که شما رو component ای که تو صفحه مرورگرت میبینی کلیک میکنی و میبرتت تو کد دقیقا قسمت مربوط بهش.😅👌
@PyBackendHub
https://www.locatorjs.com/
کارش اینه که شما رو component ای که تو صفحه مرورگرت میبینی کلیک میکنی و میبرتت تو کد دقیقا قسمت مربوط بهش.😅👌
@PyBackendHub
Locatorjs
LocatorJS - click on any component to go to code.
Click on any component and go from your app to component's code.
👍6👎1
یک پارادیم که خیلی قشنگه بدونید راجبش CoC هست.
Convention over configuration
این پارادیم core خیلی از فریم ورک هایی هست که شما استفاده میکنی. و خیلی خوبه که خودت هم استفاده کنی.
حالا این پارادیم چیه؟
این پارادیم خیلی سادست. میگه تعداد تصمیم هایی که یک برنامه نویس قراره بگیره وقتی داره از یک component شما استفاده میکنه باید تو کمترین حالت ممکن باشه. یعنی چی؟
یعنی من دارم لایبری pydantic مینویسم. دیدین احتمالا که یک Field داره که شما توضیح میدی تو Field یک سری متا دیتا میدی راجب اون فیلد تو اون دیتا کلس. این فیلد کلی پارامتر میگیره. ولی همه این پارامتر ها آپشناله. و این دقیقا CoC هست. یعنی به شما این flexibility خیلی زیاد رو میده که رفتار یک component رو هرچقدر میخواین تغییر بدید, در عین حال کلی مقدار دیفالت میذاره براتون که لازم نباشه خیلی فکر کنید و تصمیم های زیادی بگیرین.
این اصل رو شما هرجایی میتونید استفاده کنید. چه تو backend چه فرانت چه devops چه هر جای دیگه ای.
@PyBackendHub
Convention over configuration
این پارادیم core خیلی از فریم ورک هایی هست که شما استفاده میکنی. و خیلی خوبه که خودت هم استفاده کنی.
حالا این پارادیم چیه؟
این پارادیم خیلی سادست. میگه تعداد تصمیم هایی که یک برنامه نویس قراره بگیره وقتی داره از یک component شما استفاده میکنه باید تو کمترین حالت ممکن باشه. یعنی چی؟
یعنی من دارم لایبری pydantic مینویسم. دیدین احتمالا که یک Field داره که شما توضیح میدی تو Field یک سری متا دیتا میدی راجب اون فیلد تو اون دیتا کلس. این فیلد کلی پارامتر میگیره. ولی همه این پارامتر ها آپشناله. و این دقیقا CoC هست. یعنی به شما این flexibility خیلی زیاد رو میده که رفتار یک component رو هرچقدر میخواین تغییر بدید, در عین حال کلی مقدار دیفالت میذاره براتون که لازم نباشه خیلی فکر کنید و تصمیم های زیادی بگیرین.
این اصل رو شما هرجایی میتونید استفاده کنید. چه تو backend چه فرانت چه devops چه هر جای دیگه ای.
@PyBackendHub
👍35
یک مشکلی همیشه تو تستا وجود داره وقتی دارین از container استفاده میکنید
اینم اونه که container پورت میگیره. تستون به یک سری hostname و پورت دپندنسی داره و اینا خیلی راحت میتونن باهم conflict بخورن.
و خیلیمشکلات دیگه
و خیلیوقتا ماک یا استفاده از SQLite پاسخگو نیاز نیست مثلا ماگریشن دارین یا functionality خاصی از دیتابیس استفاده میکنید یا … و تستاتون flaky میشه
اکثر این مشکلات رو testcontainer حلشون کرده.
https://testcontainers.com/
@PyBackendHub
اینم اونه که container پورت میگیره. تستون به یک سری hostname و پورت دپندنسی داره و اینا خیلی راحت میتونن باهم conflict بخورن.
و خیلیمشکلات دیگه
و خیلیوقتا ماک یا استفاده از SQLite پاسخگو نیاز نیست مثلا ماگریشن دارین یا functionality خاصی از دیتابیس استفاده میکنید یا … و تستاتون flaky میشه
اکثر این مشکلات رو testcontainer حلشون کرده.
https://testcontainers.com/
@PyBackendHub
Testcontainers
Testcontainers is an opensource library for providing lightweight, throwaway instances of common databases, Selenium web browsers, or anything else that can run in a Docker container.
👍5❤2
داشتم docker compose مینوشتم که یک مشکلی داشتم (رو مخم بود مشکل نبود واقعا:)) ) و اونم این بود که وقتی دارم YAML مینوسیم خیلی خودمو دارم تکرار میکنم. مثلا endpoint های opentelemtry ام رو باید به همه service هام بدم.
بنابراین اینطوری میشه:
و خوب قانع نشدم. گشتم ببینم راه حلی برای این موضوع هست. که بله هست. و اونم استفاده از Anchor هست.
خیلی بهتر شد نه؟ مقاله زیر کامل توضیح داده که چیه و چطور کار میکنه. توصیه میکنم یک سری بزنید چون معمولا yaml زیاد مینویسیم.
https://medium.com/@kinghuang/docker-compose-anchors-aliases-extensions-a1e4105d70bd
@PyBackendHub
بنابراین اینطوری میشه:
services:
foo_service:
environment:
trace_endpoint: baz_url
log_endpoint: baz2_url
metric_endpoint: baz3_url
# some other env....
bar_service:
environment:
trace_endpoint: baz_url
log_endpoint: baz2_url
metric_endpoint: baz3_url
# some other env...
و خوب قانع نشدم. گشتم ببینم راه حلی برای این موضوع هست. که بله هست. و اونم استفاده از Anchor هست.
x-otel-endpoints: &default-otel-endpoints
trace_endpoint: baz_url
log_endpoint: baz2_url
metric_endpoint: baz3_url
services:
foo_service:
environment:
<<: *default-otel-endpoints
# some other env
baz_service:
environment:
<<: *default-otel-endpoints
# some other env
خیلی بهتر شد نه؟ مقاله زیر کامل توضیح داده که چیه و چطور کار میکنه. توصیه میکنم یک سری بزنید چون معمولا yaml زیاد مینویسیم.
https://medium.com/@kinghuang/docker-compose-anchors-aliases-extensions-a1e4105d70bd
@PyBackendHub
Medium
Don’t Repeat Yourself with Anchors, Aliases and Extensions in Docker Compose Files
Take advantage of YAML and Docker Compose features to reduce repetition.
👍31
یک چیزی که من خیلی زیاد میبینم مخصوصا تو community خودمون اینه که اکثر مواقع سوال ها بدون context پرسیده میشن. و این context خیلی میتونه تو جواب سوال تاثیر داشته باشه. بذارین مثال بزنم:
سلام من میخوام پایتون یاد بگیرم. میشه بهم ۵ تا کتاب معرفی کنید؟
اوکی تخصصتون چیه؟بک اند کار میکنید؟ ML؟ دوآپسین و دنبال یک زبون اسکریپتی هستین؟ دیتا اینجینر هستین؟ از پایتون چه یوزکیسی دارین؟! چقدر الان بلدین؟ چیا بلدین؟ این رو جواب سوال تاثیر میذاره. ممکنه جواب رو ۱۸۰ درجه بچرخونه. مثلا یک مثال دیگه.
سلام من از playwright یا سلنیوم استفاده میکنم. میخوام یک element رو سلکت کنم. بنظرتون از چه سلکتوری استفاده کنم؟css selector یا xpath یا .. ؟
اگه QA باشین, من میگم css selector بهتره. با پراپرتی test-id تو html که اصلا برای همین کار خلق شده. چرا؟ چون خودتون HTML رو کنترل میکنید و به فرانت میتونید بگین تغییر بده.
ولی اگه دارین اسکرپ میکنید یک سایتی رو, اون موقع xpath selector بهتره. چون احتمال تغییر یک element صفحه html ای که خودتون کنترل میکنید با xpath خیلی کمتره تا با سلکتور. مثلا اگه فرانت از Material UI استفاده میکنه اصلا استفاده از سلکتور خیلی سخت تر میشه. ولی شما با xpath میتونید query های خیلی پیشرفته و پیچیده تری بنویسید. مثلا رو دکمه ای که داخل متنش "login" هست کلیک کن! این query همیشه جواب میده تا زمانی که design ux صفحه کلا تغییر کنه.
پس همیشه بنظرم وقتی سوال میپرسین کامل context بدید. اشکال نداره سوالتون ۴-۵ خط طولانی تر شه ولی جواب درست تری دریافت خواهید کرد.
@PyBackendHub
سلام من میخوام پایتون یاد بگیرم. میشه بهم ۵ تا کتاب معرفی کنید؟
اوکی تخصصتون چیه؟بک اند کار میکنید؟ ML؟ دوآپسین و دنبال یک زبون اسکریپتی هستین؟ دیتا اینجینر هستین؟ از پایتون چه یوزکیسی دارین؟! چقدر الان بلدین؟ چیا بلدین؟ این رو جواب سوال تاثیر میذاره. ممکنه جواب رو ۱۸۰ درجه بچرخونه. مثلا یک مثال دیگه.
سلام من از playwright یا سلنیوم استفاده میکنم. میخوام یک element رو سلکت کنم. بنظرتون از چه سلکتوری استفاده کنم؟css selector یا xpath یا .. ؟
اگه QA باشین, من میگم css selector بهتره. با پراپرتی test-id تو html که اصلا برای همین کار خلق شده. چرا؟ چون خودتون HTML رو کنترل میکنید و به فرانت میتونید بگین تغییر بده.
ولی اگه دارین اسکرپ میکنید یک سایتی رو, اون موقع xpath selector بهتره. چون احتمال تغییر یک element صفحه html ای که خودتون کنترل میکنید با xpath خیلی کمتره تا با سلکتور. مثلا اگه فرانت از Material UI استفاده میکنه اصلا استفاده از سلکتور خیلی سخت تر میشه. ولی شما با xpath میتونید query های خیلی پیشرفته و پیچیده تری بنویسید. مثلا رو دکمه ای که داخل متنش "login" هست کلیک کن! این query همیشه جواب میده تا زمانی که design ux صفحه کلا تغییر کنه.
پس همیشه بنظرم وقتی سوال میپرسین کامل context بدید. اشکال نداره سوالتون ۴-۵ خط طولانی تر شه ولی جواب درست تری دریافت خواهید کرد.
@PyBackendHub
👍39
#واقعی دیدم chatgpt داون شده. رفتم پیج استتوسش. نوشته رفرش کنید درست میشه. 😂
- کار نمیکنه این چرا؟
+رفرش کن درست میشه
@PyBackendHub
- کار نمیکنه این چرا؟
+رفرش کن درست میشه
@PyBackendHub
🤣17🥰1🌚1👾1
این بدترین طرز فکریه که یک نفر میتونه داشته باشه، اینکه یک سری الاف (علاف؟) تو گیتهاب مجانی دارن کد میزنن. جدا از اینکه اون سری افراد چه درآمدی دارن که مهم نیست، اصلا طرز فکر اشتباهه.
سوال من اینه که شما مگه از یک ابزار اوپن سورس استفاده نمیکنی؟ کمترین contribution ای که میتونی داشته باشی اینه که اگه مشکلی میبینی تو اون ابزار، یک ایشو براش بذاری. این دیگه کمترین حالته.
همین مشکلم ممکنه خودت حل کنی. میتونی با شرکت هماهنگ کنی و همونو PR بدی بشی contributer.
و در نهایت این پروموشنی هست برای خودتون. من همین چند وقت با اینکه اصلا تمایلی نداشتم شرکتمو عوض کنم، ولی ۲ شرکت پروژه aioclock من رو دیده بودن خوششون اومد، و لطف کردن منو به مصاحبه دعوت کردن.(منظورم recruiter نیست)
خلاصه کسی که پروفایل گیتهابش مثل برف سفیده، بنظرم میتونه رد فلگ باشه!
@PyBackendHub
سوال من اینه که شما مگه از یک ابزار اوپن سورس استفاده نمیکنی؟ کمترین contribution ای که میتونی داشته باشی اینه که اگه مشکلی میبینی تو اون ابزار، یک ایشو براش بذاری. این دیگه کمترین حالته.
همین مشکلم ممکنه خودت حل کنی. میتونی با شرکت هماهنگ کنی و همونو PR بدی بشی contributer.
و در نهایت این پروموشنی هست برای خودتون. من همین چند وقت با اینکه اصلا تمایلی نداشتم شرکتمو عوض کنم، ولی ۲ شرکت پروژه aioclock من رو دیده بودن خوششون اومد، و لطف کردن منو به مصاحبه دعوت کردن.(منظورم recruiter نیست)
خلاصه کسی که پروفایل گیتهابش مثل برف سفیده، بنظرم میتونه رد فلگ باشه!
@PyBackendHub
👍55👎11
Python BackendHub
این بدترین طرز فکریه که یک نفر میتونه داشته باشه، اینکه یک سری الاف (علاف؟) تو گیتهاب مجانی دارن کد میزنن. جدا از اینکه اون سری افراد چه درآمدی دارن که مهم نیست، اصلا طرز فکر اشتباهه. سوال من اینه که شما مگه از یک ابزار اوپن سورس استفاده نمیکنی؟ کمترین contribution…
یک کامنتی گذاشتن که ظاهرا سو بداشت شده بود از حرفه من،
من نگفتم کسی که فعالیت گیتهاب نداره حتما رد فلگه. گفتم میتونه رد فلگ باشه. قطعا به عوامل دیگه هم بستگی داره.
و فعال بودن گیتهاب به این منظور نیست که پروفایل شما سبزه سبز باشه. ممکنه شما سالی ۵ تا ایشو بزنید و هیچ فعالیت دیگه ای نداشته باشین، ولی همون ۵ تا ایشو رو تو ابزار هایی که استفاده کردین ازش زدید و خیلی قشنگ مشکل رو توضیح دادید. این خیلی اسکیلارو میتونه نشون بده به کسی که داره رزومتون رو میبینه. این بنظره من بیشتر ارزش داره تا اینکه صرفا پروفایلتون سبز باشه. هدف رنگی کردن پروفایل نیست
@PyBackendHub
من نگفتم کسی که فعالیت گیتهاب نداره حتما رد فلگه. گفتم میتونه رد فلگ باشه. قطعا به عوامل دیگه هم بستگی داره.
و فعال بودن گیتهاب به این منظور نیست که پروفایل شما سبزه سبز باشه. ممکنه شما سالی ۵ تا ایشو بزنید و هیچ فعالیت دیگه ای نداشته باشین، ولی همون ۵ تا ایشو رو تو ابزار هایی که استفاده کردین ازش زدید و خیلی قشنگ مشکل رو توضیح دادید. این خیلی اسکیلارو میتونه نشون بده به کسی که داره رزومتون رو میبینه. این بنظره من بیشتر ارزش داره تا اینکه صرفا پروفایلتون سبز باشه. هدف رنگی کردن پروفایل نیست
@PyBackendHub
❤15👍8👎3
نسخه جدید aioclock هم منتشر شد 🔥
تغییرات این نسخه:
- اضافه شدن پشتیبانی برای تسک های sync . هر فانکشن sync توسط aioclock تو تردپول با anyio ران میشه. ولی این رو خوده فانکشنی که دکوریت کردین تاثیر نمیذاره و تبدیل به کوروتین نمیشه و همونطور که استفاده کردین میتونید انجام بدید.
- بهتر شدن داکیومنت. همراه با پشتیبانی از چند نسخه
داکیومنت
گیتهاب
ممنون میشم استار بدید یا contribute کنید.
@PyBackendHub
تغییرات این نسخه:
- اضافه شدن پشتیبانی برای تسک های sync . هر فانکشن sync توسط aioclock تو تردپول با anyio ران میشه. ولی این رو خوده فانکشنی که دکوریت کردین تاثیر نمیذاره و تبدیل به کوروتین نمیشه و همونطور که استفاده کردین میتونید انجام بدید.
- بهتر شدن داکیومنت. همراه با پشتیبانی از چند نسخه
داکیومنت
گیتهاب
ممنون میشم استار بدید یا contribute کنید.
@PyBackendHub
🔥19❤3
نسخه بعدی aioclock منتشر شد 👀
تغییرات این نسخه:
اضافه شدن تریگر Cron - با سینتکس cron میتونید راحت تریگر بنویسید.
اضافه شدن OrTrigger - میتونید تریگری بنویسید که شامل تریگر های دیگه میشه و هرکدوم زودتر نوبتشون شد اجرا میشن.
داکیومنت
گیتهاب
ممنون میشم استار بدید یا contribute کنید.
@PyBackendHub
تغییرات این نسخه:
اضافه شدن تریگر Cron - با سینتکس cron میتونید راحت تریگر بنویسید.
اضافه شدن OrTrigger - میتونید تریگری بنویسید که شامل تریگر های دیگه میشه و هرکدوم زودتر نوبتشون شد اجرا میشن.
داکیومنت
گیتهاب
ممنون میشم استار بدید یا contribute کنید.
@PyBackendHub
👍12❤4
Forwarded from Sadra Codes
اگه از FastAPI استفاده میکنید و سعی دارید MVP بیارید بالا (درحدی که منابع زیادی مورد نیاز نباشه) پلتفورمهای زیر Free Trial دارن و بدون پرداخت میتونید سرویس بکاندتون رو روشون بالا بیارید. داکیومنت و بلاگ هم در دسترس هست کافیه سرچ کنید.
1️⃣ - https://render.com/
2️⃣ - https://www.cyclic.sh/
3️⃣ - https://fly.io/
4️⃣ - https://leapcell.io/
5️⃣ - https://vercel.com/
1️⃣ - https://render.com/
2️⃣ - https://www.cyclic.sh/
3️⃣ - https://fly.io/
4️⃣ - https://leapcell.io/
5️⃣ - https://vercel.com/
Render
Cloud Application Platform | Render
On Render, you can build, deploy, and scale your apps with unparalleled ease – from your first user to your billionth.
👍17❤1
کسایی از chatgpt یک سوال میپرسن، یا یک کدی از استک اورفلو کپی پیست میکنن، توضیه میکنم بهشون حتما این مقاله زیر رو بخونید.
https://archive.ph/jRvwx
خلاصه بخوام بگم، کدشون رو داشتن از تایپ اسکریپت میبردن پایتون. مدل های دیتابیس رو دادن chatgpt از پریسما تبدیلش کنه به sqlalchemy. این وسط chatgpt برای یکی از مدل ها برای id مدل، به جای اینکه از دیفالت فکتوری استفاده کنه، از دیفالت استفاده میکرد. و اینطوری بود که اون مدل هروقت instance ای ازش ساخته میشد آیدی تکراری میشد. و دیتابیس ارور میداد. و این باگ باعث ضرر ۱۰ هزار دلاری به این شرکت شد. صرفا برای اینکه یکینمیدونست دیتاکلس توپایتون چطور کار میکنه و به جای خوندن داک از chatgpt پرسید 🙂
@PyBackendHub
https://archive.ph/jRvwx
خلاصه بخوام بگم، کدشون رو داشتن از تایپ اسکریپت میبردن پایتون. مدل های دیتابیس رو دادن chatgpt از پریسما تبدیلش کنه به sqlalchemy. این وسط chatgpt برای یکی از مدل ها برای id مدل، به جای اینکه از دیفالت فکتوری استفاده کنه، از دیفالت استفاده میکرد. و اینطوری بود که اون مدل هروقت instance ای ازش ساخته میشد آیدی تکراری میشد. و دیتابیس ارور میداد. و این باگ باعث ضرر ۱۰ هزار دلاری به این شرکت شد. صرفا برای اینکه یکینمیدونست دیتاکلس توپایتون چطور کار میکنه و به جای خوندن داک از chatgpt پرسید 🙂
@PyBackendHub
archive.ph
How a single ChatGPT mistake cost us $10,000+ | Asim Shrestha
archived 9 Jun 2024 22:00:26 UTC
👍15👎3🤣3