تو این پست میخوام ثبات داده رو بهتون توضیح بدم که به ۲ نوع وجود داره:
بذارین مثال بخوام بزنم که تفاوتشو متوجه شین. مثال خیلی راحت میزنم distributed system هم نباشه. فکر کنید دو تا سیستم دارین که یکی به اون یکی وابسته هست. مثلا یک api ساختین برای جمع آوری دیتا وضعیت آب و هوای همه کشور و شهر های دنیا. و هر پایگاه آب و هوایی هم سیستم خودشو داره و با api ای که شما ساختین حرف میزنه و براتون اطلاعات میفرسته.
دو تا راه حل دارین:
۱. تو هر دقیقه براتون دما اون شهرو بفرستن که میشه strong consistency
۲. هر یک ساعت یک بار تک تک دمای یک ساعت گذشته رو براتون ارسال کنند که میشه eventually consistent. و بعد شما همرو با هم insert کنی تو دیتابیس.
خب تفاوتش چی شد؟ یک حالتش سریع دیتا اومد به اپلیکیشنتون. پس به صورت live هست کاملا. حالت دوم دیتا سریع نیومده ولی میدونید که میاد. و میدونید وقتی که دیتا اومد دیتا کل یک ساعتو داره و دیگه چیزیو جا ننداختین..
اگه یکم بهش فکر کنید و جدول هم ببینید متوجه میشین pros و cons هر روش چیه و به جاش با آگاهی راجب ثبات داده تو اپلیکیشنتون با قاطعیت باید تصمیم بگیرین.
@ManiFoldsPython
بذارین مثال بخوام بزنم که تفاوتشو متوجه شین. مثال خیلی راحت میزنم distributed system هم نباشه. فکر کنید دو تا سیستم دارین که یکی به اون یکی وابسته هست. مثلا یک api ساختین برای جمع آوری دیتا وضعیت آب و هوای همه کشور و شهر های دنیا. و هر پایگاه آب و هوایی هم سیستم خودشو داره و با api ای که شما ساختین حرف میزنه و براتون اطلاعات میفرسته.
دو تا راه حل دارین:
۱. تو هر دقیقه براتون دما اون شهرو بفرستن که میشه strong consistency
۲. هر یک ساعت یک بار تک تک دمای یک ساعت گذشته رو براتون ارسال کنند که میشه eventually consistent. و بعد شما همرو با هم insert کنی تو دیتابیس.
خب تفاوتش چی شد؟ یک حالتش سریع دیتا اومد به اپلیکیشنتون. پس به صورت live هست کاملا. حالت دوم دیتا سریع نیومده ولی میدونید که میاد. و میدونید وقتی که دیتا اومد دیتا کل یک ساعتو داره و دیگه چیزیو جا ننداختین..
اگه یکم بهش فکر کنید و جدول هم ببینید متوجه میشین pros و cons هر روش چیه و به جاش با آگاهی راجب ثبات داده تو اپلیکیشنتون با قاطعیت باید تصمیم بگیرین.
@ManiFoldsPython
👍23
Python BackendHub
تو این پست میخوام ثبات داده رو بهتون توضیح بدم که به ۲ نوع وجود داره: بذارین مثال بخوام بزنم که تفاوتشو متوجه شین. مثال خیلی راحت میزنم distributed system هم نباشه. فکر کنید دو تا سیستم دارین که یکی به اون یکی وابسته هست. مثلا یک api ساختین برای جمع آوری…
خیلیا این مفهوم رو با pull based و push based اشتباه میگیرن... شما میتونید اپی داشته باشین که eventual consistency داشته باشه چه بخواد pull based باشه چه push based.
سیستم های مانیتورینگ معمولا eventual consistency هستن چون هزینه نگه داریشون اینطوری کمتره و latencyشون خیلی مهم نیست و availabilityشون خیلی مهم تره.
سیستم های تراکنشی و بانکی حتما باید actual consistency باشن چرا که خیلی مهمه دیتا درست نمایش داده شه حتی اگه منجر به این شه که بیشتر داون شه سیستم.
@ManiFoldsPython
سیستم های مانیتورینگ معمولا eventual consistency هستن چون هزینه نگه داریشون اینطوری کمتره و latencyشون خیلی مهم نیست و availabilityشون خیلی مهم تره.
سیستم های تراکنشی و بانکی حتما باید actual consistency باشن چرا که خیلی مهمه دیتا درست نمایش داده شه حتی اگه منجر به این شه که بیشتر داون شه سیستم.
@ManiFoldsPython
👍17
Python BackendHub
تو این پست میخوام ثبات داده رو بهتون توضیح بدم که به ۲ نوع وجود داره: بذارین مثال بخوام بزنم که تفاوتشو متوجه شین. مثال خیلی راحت میزنم distributed system هم نباشه. فکر کنید دو تا سیستم دارین که یکی به اون یکی وابسته هست. مثلا یک api ساختین برای جمع آوری…
این مطالب سیستم دیزاین در صورتی که خیلی مهمن ولی جالبه برام اصلا طرفدار نداره (engage نمیگیره). حالا کافیه یک کتاب معرفی کنم ۳۰۰ تا share و لایک میخوره کسیم نمیخونش 😂 به زودی هم فعالیت یوتیوب از سر گرفته میشه😁 بگذریم... بریم سره اصل مطلب.
اینا رو برای چی گفتم؟بحث وب هوک بود. که چرا بانکا وب هوک نمیدن تو ایران و چرا خوبه که به جای اینکه با api بیایم integrate کنیم با وب هوک کنیم. حالا اصلا وب هوک چیه؟
A webhook in web development is a method of augmenting or altering the behavior of a web page or web application with custom callbacks. These callbacks may be maintained, modified, and managed by third-party users and developers who may not necessarily be affiliated with the originating website or application
خب یعنی چی؟
یعنی همون مثال قبلی, اگه میخواین داده های شهر های مختلف رو بگیرین از پایگاه هاشون, وب هوکشون رو integrate میکنید. url میدین و بهتون درخواست میزنن میگن الان دما تغییر کرد. بعد شما یک درخواست دوباره میزنی و دیتا مورد نظر رو میگیری. اصصطلاحا callback هستند که دیگه لازم نباشه تند تند درخواست بزنیم و ببینیم ایا تغییر کرده یا نه.
خب حالا میریم سراغ سوال بعدی :) تو پست بعدی...
@ManiFoldsPython
اینا رو برای چی گفتم؟بحث وب هوک بود. که چرا بانکا وب هوک نمیدن تو ایران و چرا خوبه که به جای اینکه با api بیایم integrate کنیم با وب هوک کنیم. حالا اصلا وب هوک چیه؟
A webhook in web development is a method of augmenting or altering the behavior of a web page or web application with custom callbacks. These callbacks may be maintained, modified, and managed by third-party users and developers who may not necessarily be affiliated with the originating website or application
خب یعنی چی؟
یعنی همون مثال قبلی, اگه میخواین داده های شهر های مختلف رو بگیرین از پایگاه هاشون, وب هوکشون رو integrate میکنید. url میدین و بهتون درخواست میزنن میگن الان دما تغییر کرد. بعد شما یک درخواست دوباره میزنی و دیتا مورد نظر رو میگیری. اصصطلاحا callback هستند که دیگه لازم نباشه تند تند درخواست بزنیم و ببینیم ایا تغییر کرده یا نه.
خب حالا میریم سراغ سوال بعدی :) تو پست بعدی...
@ManiFoldsPython
👍15
بنظر شما یک وب هوک رندوم اطلاعات رو چطور آپدیت میکنه
Anonymous Quiz
18%
Strong consistency
31%
Eventual consistency
14%
Inconsistent
37%
به خوده وب هوک ربط داره
👍6😢4
Python BackendHub
بنظر شما یک وب هوک رندوم اطلاعات رو چطور آپدیت میکنه
خب برگردیم جواب quiz
اگه بخوایم Theory به قضیه نگاه کنیم همونی میشه که من گذاشتم
ولی اگه بخوایم عملی به قضیه نگاه کنیم inconsistent میشه جوابش!
سیستم های وب هوک در واقعیت eventually inconsistent هستند. یعنی شما اگه آپ تایم و خطا پذیری رو درنظر بگیرین امکان داره که مسیجی باشه که دریافت نشه (حالا به دلیل داون بودن شما یا اون سرویس). پس چرا استفاده ازش خوبه و چه محدودیت هایی داره؟
ببینید وقتی دیتا سورس از کنترلتون خارجه وب هوک میتونه بهترین گزینه integrate باشه. یعنی مثال مثالی که زدم برای آپدیت وضعیت هوا اگه به جای اینکه شما تند تند درخواست بدی به API و وضعیت رو بگیرین با وب هوک مطلع بشین کی درخواست بزنید بهتره. ولی بازم Strong consistence نیست معمولا. چرا؟ چون معمولا اینطوری کار میکنه که تلگرام مثلا یک پیام میفرستید شما به دوستتون, همون لحظه پیام رو تو دیتابیس ایجاد میکنه. بعد تو لایه پایین تر با بروکرش جاب های دیگه رو هم انجام میده مثل ارسال نوتیفیکشن به گوشی دوستتون یا هندل وب هوک اگه پیامی دریافت شده. پس ذخیره شدن پیام تو دیتابیس و مطلع شدن شما از اون پیام همیشه تاخیری وجود داره. ولی این تاخیر معمولا کمه (اگه مشکل backlog نباشه و ترافیک خیلی بالا نباشه تو سرور تلگرام) در صورتی که شما اگه درخواست بزنید تند تند بازم eventual consistent هست ولی خیلی eventual تره و با تاخیر بیشتریه نسبت به وب هوک.
ولی وب هوک چون eventually inconsistent هست پس همیشه باید یک periodic job بذارین که پیام هایی که دریافت نشدن تو وب هوک رو به صورت periodic چک کنید و ببینید ایا چیزی miss شده یا نه؟ مثلا این periodic job میتونه روزانه باشه یا ساعتی یا هفتگی بسته به نیاز شما. اینکه چقدر یک وب هوک eventually inconsistent هست هم خیلی مهمه. شما باید یک تست کنید قبل اینکه یک webhook رو کاملا integrate کنید. چطوری تست کنید؟مثلا ۱۰۰۰ تا پیام بدید به دوستتون و ببینید ایا ۱۰۰۰ تا درخواست گرفتین رو وب هوک یا نه؟
همیشه گفتم تو دپندسی خیلی دقت کنید. یک اشتباه رایج اینه که میرن کلی با وب هوک یک اپ integrate میکنن بعد میفهمنن خیلی inconsistent هست و لگ زیادی داره و درواقع اگه تند تند درخواست زده شه بهتره.
@ManiFoldsPython
اگه بخوایم Theory به قضیه نگاه کنیم همونی میشه که من گذاشتم
ولی اگه بخوایم عملی به قضیه نگاه کنیم inconsistent میشه جوابش!
سیستم های وب هوک در واقعیت eventually inconsistent هستند. یعنی شما اگه آپ تایم و خطا پذیری رو درنظر بگیرین امکان داره که مسیجی باشه که دریافت نشه (حالا به دلیل داون بودن شما یا اون سرویس). پس چرا استفاده ازش خوبه و چه محدودیت هایی داره؟
ببینید وقتی دیتا سورس از کنترلتون خارجه وب هوک میتونه بهترین گزینه integrate باشه. یعنی مثال مثالی که زدم برای آپدیت وضعیت هوا اگه به جای اینکه شما تند تند درخواست بدی به API و وضعیت رو بگیرین با وب هوک مطلع بشین کی درخواست بزنید بهتره. ولی بازم Strong consistence نیست معمولا. چرا؟ چون معمولا اینطوری کار میکنه که تلگرام مثلا یک پیام میفرستید شما به دوستتون, همون لحظه پیام رو تو دیتابیس ایجاد میکنه. بعد تو لایه پایین تر با بروکرش جاب های دیگه رو هم انجام میده مثل ارسال نوتیفیکشن به گوشی دوستتون یا هندل وب هوک اگه پیامی دریافت شده. پس ذخیره شدن پیام تو دیتابیس و مطلع شدن شما از اون پیام همیشه تاخیری وجود داره. ولی این تاخیر معمولا کمه (اگه مشکل backlog نباشه و ترافیک خیلی بالا نباشه تو سرور تلگرام) در صورتی که شما اگه درخواست بزنید تند تند بازم eventual consistent هست ولی خیلی eventual تره و با تاخیر بیشتریه نسبت به وب هوک.
ولی وب هوک چون eventually inconsistent هست پس همیشه باید یک periodic job بذارین که پیام هایی که دریافت نشدن تو وب هوک رو به صورت periodic چک کنید و ببینید ایا چیزی miss شده یا نه؟ مثلا این periodic job میتونه روزانه باشه یا ساعتی یا هفتگی بسته به نیاز شما. اینکه چقدر یک وب هوک eventually inconsistent هست هم خیلی مهمه. شما باید یک تست کنید قبل اینکه یک webhook رو کاملا integrate کنید. چطوری تست کنید؟مثلا ۱۰۰۰ تا پیام بدید به دوستتون و ببینید ایا ۱۰۰۰ تا درخواست گرفتین رو وب هوک یا نه؟
همیشه گفتم تو دپندسی خیلی دقت کنید. یک اشتباه رایج اینه که میرن کلی با وب هوک یک اپ integrate میکنن بعد میفهمنن خیلی inconsistent هست و لگ زیادی داره و درواقع اگه تند تند درخواست زده شه بهتره.
@ManiFoldsPython
👍10🔥1
سیستم دیزاین به عنوان بک اند دولوپر برای شما مهمه.
بحث های چند پست اخر کاربردش میشه مثلا وقتی دارین ربات تلگرام مینویسین یا درگاه بانکی دارین اتصال میکنید یا با third party application دارین integration انجام میدین. حتما یکی از این کارا رو انجام دادین اگه حداقل ۱ ساله که کار میکنید .... 🙂
@ManiFoldsPython
بحث های چند پست اخر کاربردش میشه مثلا وقتی دارین ربات تلگرام مینویسین یا درگاه بانکی دارین اتصال میکنید یا با third party application دارین integration انجام میدین. حتما یکی از این کارا رو انجام دادین اگه حداقل ۱ ساله که کار میکنید .... 🙂
@ManiFoldsPython
👍17
دو کتاب خوب برای سیستم دیزاین:
Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems - Kleppmann, Martin
System Design Interview – An insider's guide
بالایی خوندم. پایینی رو هم به زودی سفارش میدم و میخونم 😁 تعریفشو خیلی شنیدم.
@ManiFoldsPython
Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems - Kleppmann, Martin
System Design Interview – An insider's guide
بالایی خوندم. پایینی رو هم به زودی سفارش میدم و میخونم 😁 تعریفشو خیلی شنیدم.
@ManiFoldsPython
👍16❤5
Forwarded from shahriaarrr
خب این سری یه نفر تونست مهمون ایندفعه رو حدس بزنه :)
مهمون بعدی کیبوردکست کسی نیست جز مانی مظفر عزیز🔥🔥
مانی مهندس نرم افزار در Noah lab هست و تمرکزش روی بک اند و فریمورک FastAPI میباشد.🚀🚀
توی این اپیزود قراره با مانی در دنیای FastAPI غرق بشیم و اطلاعات بیشتری ازش بدست بیاریم ببینیم این فریمورک که هنوز وارد ورژن 1.0 خودش نشده چطور در این مدت کلی طرفدار پیدا کرده و مزیت و عیبش نسبت به دیگر رقیبانش چیه🔥
پس اگه تو هم علاقه به حوزه بک اند و خصوصا این فریمورک علاقه داری یا دوست داری بیشتر باهاش آشنا بشی این اپیزود مال خودته👌👌
پس شما هم اگه سوالی دارید از مانی عزیز درباره خودشون و موضوع پادکست میتونید تا فردا همین ساعت توی باکس استوری اینستاگرام ازش بپرسید❤️
اگر هم به اینستاگرام دسترسی ندارید میتونید از طریق این لینک بصورت ناشناس توی تلگرام سوالتون رو بپرسید((حتما قید کنید که سوال رو از احسان دارید میپرسید))
-------
@shahriaarrr12
@manifoldspython
مهمون بعدی کیبوردکست کسی نیست جز مانی مظفر عزیز🔥🔥
مانی مهندس نرم افزار در Noah lab هست و تمرکزش روی بک اند و فریمورک FastAPI میباشد.🚀🚀
توی این اپیزود قراره با مانی در دنیای FastAPI غرق بشیم و اطلاعات بیشتری ازش بدست بیاریم ببینیم این فریمورک که هنوز وارد ورژن 1.0 خودش نشده چطور در این مدت کلی طرفدار پیدا کرده و مزیت و عیبش نسبت به دیگر رقیبانش چیه🔥
پس اگه تو هم علاقه به حوزه بک اند و خصوصا این فریمورک علاقه داری یا دوست داری بیشتر باهاش آشنا بشی این اپیزود مال خودته👌👌
پس شما هم اگه سوالی دارید از مانی عزیز درباره خودشون و موضوع پادکست میتونید تا فردا همین ساعت توی باکس استوری اینستاگرام ازش بپرسید❤️
اگر هم به اینستاگرام دسترسی ندارید میتونید از طریق این لینک بصورت ناشناس توی تلگرام سوالتون رو بپرسید((حتما قید کنید که سوال رو از احسان دارید میپرسید))
-------
@shahriaarrr12
@manifoldspython
😍6👍4
آف تاپیک
واقعا آهنگ قشنگیه
https://www.youtube.com/watch?v=UboPPTZLFas
آهنگ بیکلامه.. برای تمرکز خیلی خوبه به شرطی که داستان پشتشو ندونید :))
@ManiFoldsPython
واقعا آهنگ قشنگیه
https://www.youtube.com/watch?v=UboPPTZLFas
آهنگ بیکلامه.. برای تمرکز خیلی خوبه به شرطی که داستان پشتشو ندونید :))
@ManiFoldsPython
YouTube
NEXT TO YOU -by KEN ARAI ::(Parasyte:The Maxim / Kiseijuu: Sei no Kakuritsu) OST
Enjoy the videos and music you love, upload original content, and share it all with friends, family, and the world on YouTube.
👍2👎1
https://www.youtube.com/watch?v=yD2JaAnMMo0
این ویدیو prime خیلی خوب بود :)) حتما توصیه میکنم که ببینید
اتفاقا امروز برام سوال شده بود چطور گوگل میتونه ۱۰ درصد شرکتو یک دفعه اخراج کنه و بلایی سرش نیاد؟ بعد دیدن این ویدیو جوابشو فهمیدم
@ManiFoldsPython
این ویدیو prime خیلی خوب بود :)) حتما توصیه میکنم که ببینید
اتفاقا امروز برام سوال شده بود چطور گوگل میتونه ۱۰ درصد شرکتو یک دفعه اخراج کنه و بلایی سرش نیاد؟ بعد دیدن این ویدیو جوابشو فهمیدم
@ManiFoldsPython
YouTube
$400,000 a Year and 10 Hours A Week At GOOGLE
Recorded live on twitch, GET IN
https://twitch.tv/ThePrimeagen
MY MAIN YT CHANNEL: Has well edited engineering videos
https://youtube.com/ThePrimeagen
Discord
https://discord.gg/ThePrimeagen
Have something for me to read or react to?: https://www.r…
https://twitch.tv/ThePrimeagen
MY MAIN YT CHANNEL: Has well edited engineering videos
https://youtube.com/ThePrimeagen
Discord
https://discord.gg/ThePrimeagen
Have something for me to read or react to?: https://www.r…
👍5
Python BackendHub
اسنپ فود داره افتخار میکنه دیتایی که نداشته تو دیتابیسش هک نشده 😂 @ManiFoldsPython
بعضیا میگن هک داخلی بوده بعضیا میگن زیرساخت رو زدن و ... . خلاصه من خبر معتبری ندیدم ولی
چند وقت پیش این ویدیو رو معرفی کرده بودم و گفته بودم ببینید...
https://youtu.be/LxUAnZY_08o?si=iD2nvFhyJwmEJ6Do
هنوزم همینو میگم... امنیت فقط باگ بانتی و هانت نیست... دنیای امنیت باید قابل درک باشه برای چه کسی که فرانت کاره چه کسی که بک کار میکنه چه کسی که نتورک کار میکنه.. طبیعتا سطح عمقشون باید نسبت به خودشون باشه ولی اینکه بدونن boundary چیه خیلی مهمه! شما تو هر اپی و هر دیتابیسی تا زمانی که e2e واقعی نیست میتونی ادعا کنی بالاخره یک نفر هست کل دیتا رو داره.. پس بالاخره یک راه هک اجتماعی چیزی وجود داره... ولی بحث اینجاست که اون boundary و مرز رو شما کجا میکشی؟ آیا اصلا مطلع هستی همچین چیزی وجود داره؟
توصیه میکنم حتما این ویدیو رو ببینید تا دیدتون نسبت به امنیت تغییر کنه...
@ManiFoldsPython
چند وقت پیش این ویدیو رو معرفی کرده بودم و گفته بودم ببینید...
https://youtu.be/LxUAnZY_08o?si=iD2nvFhyJwmEJ6Do
هنوزم همینو میگم... امنیت فقط باگ بانتی و هانت نیست... دنیای امنیت باید قابل درک باشه برای چه کسی که فرانت کاره چه کسی که بک کار میکنه چه کسی که نتورک کار میکنه.. طبیعتا سطح عمقشون باید نسبت به خودشون باشه ولی اینکه بدونن boundary چیه خیلی مهمه! شما تو هر اپی و هر دیتابیسی تا زمانی که e2e واقعی نیست میتونی ادعا کنی بالاخره یک نفر هست کل دیتا رو داره.. پس بالاخره یک راه هک اجتماعی چیزی وجود داره... ولی بحث اینجاست که اون boundary و مرز رو شما کجا میکشی؟ آیا اصلا مطلع هستی همچین چیزی وجود داره؟
توصیه میکنم حتما این ویدیو رو ببینید تا دیدتون نسبت به امنیت تغییر کنه...
@ManiFoldsPython
YouTube
Reinventing Web Security
Follow me down the rabbit hole into the wonderful world of IT security.
Buy my terrible font (ad): https://shop.liveoverflow.com
Learn hacking (ad): https://hextree.io
Related Videos:
https://www.youtube.com/watch?v=866olNIzbrk
https://www.youtube.com/…
Buy my terrible font (ad): https://shop.liveoverflow.com
Learn hacking (ad): https://hextree.io
Related Videos:
https://www.youtube.com/watch?v=866olNIzbrk
https://www.youtube.com/…
👍10
پس از وقفه ای, در پنجمین قسمت از ویدیو دیزاین پترن...
تو این قسمت راجب دیزاین پترن Abstract Factory صحبت کردم و مثال با کد زدم, گفتم کجا و چقدر میتونه استفاده شه و کاربردش چیه و مزایا و معایب استفاده ازش چیه؟ یک دیزاین پترنی که میتونه اینترفیس خیلی جذاب به ما بده ولی پیچیدگی کد مارو زیاد کنه!
https://www.youtube.com/watch?v=_XiEQ6ns-js
لینک گیتهاب دوره دیزاین پترن; جزوه و مثال های دوره همه اینجا ذخیره خواهند شد.
https://github.com/ManiMozaffar/design-101
@ManiFoldsPython
تو این قسمت راجب دیزاین پترن Abstract Factory صحبت کردم و مثال با کد زدم, گفتم کجا و چقدر میتونه استفاده شه و کاربردش چیه و مزایا و معایب استفاده ازش چیه؟ یک دیزاین پترنی که میتونه اینترفیس خیلی جذاب به ما بده ولی پیچیدگی کد مارو زیاد کنه!
https://www.youtube.com/watch?v=_XiEQ6ns-js
لینک گیتهاب دوره دیزاین پترن; جزوه و مثال های دوره همه اینجا ذخیره خواهند شد.
https://github.com/ManiMozaffar/design-101
@ManiFoldsPython
YouTube
Abstract Factory ابسترکت فکتوری
تو این ویدیو پرداختم به دومین دیزاین پترنی که قراره تو دوره کاور کنم, متود ابسکرتکت فکتوری. دیزاین پترنی با یک لایه abstraction بیشتر نسبت به متود فکتوری که کمی پیچیدش میکنه.
👨💻Source Code:
https://github.com/ManiMozaffar/design-101/tree/main/02-Creator…
👨💻Source Code:
https://github.com/ManiMozaffar/design-101/tree/main/02-Creator…
❤11👍9
امروز به یک باگ خوردم.. شاید عجیب ترین باگ زندگیم بود. از بیرون بنظر میومد لیست پایتون و ساخت آبجکت تو پایتون کار نمیکنه :)))
کلاسا اینقدر بی معنی نبودن:)) ولی خب امیدوارم مثالو درک کنید, و داشتم به python کم کم شک میکردم :))
فکر کنید یک لیستی از ابجکت ساخته بودم داخلش کلی تایپ مختلف داشتم و بعد خط بعدی که pointer رو میذاشتم میدیدم همشون یک تایپ شدن!! و یک آبجکت 🤣
* خروجی کد رو تو شل ببینید و اونی که هایلایت کردم. لیست یک ادمین داشت تو کد ولی تو خروجی همه لیست آبجکت ادمین شدن!
@ManiFoldsPython
کلاسا اینقدر بی معنی نبودن:)) ولی خب امیدوارم مثالو درک کنید, و داشتم به python کم کم شک میکردم :))
فکر کنید یک لیستی از ابجکت ساخته بودم داخلش کلی تایپ مختلف داشتم و بعد خط بعدی که pointer رو میذاشتم میدیدم همشون یک تایپ شدن!! و یک آبجکت 🤣
* خروجی کد رو تو شل ببینید و اونی که هایلایت کردم. لیست یک ادمین داشت تو کد ولی تو خروجی همه لیست آبجکت ادمین شدن!
@ManiFoldsPython
👍5
Python BackendHub
امروز به یک باگ خوردم.. شاید عجیب ترین باگ زندگیم بود. از بیرون بنظر میومد لیست پایتون و ساخت آبجکت تو پایتون کار نمیکنه :))) کلاسا اینقدر بی معنی نبودن:)) ولی خب امیدوارم مثالو درک کنید, و داشتم به python کم کم شک میکردم :)) فکر کنید یک لیستی از ابجکت ساخته…
دلیلش defensive programming هست که با try except احتمالا pydantic داره سعی میکنه schema رو بسازه...
و خب چون ابجکت ادمین ورودی نداره پس همیشه ساخته میشه بدون اینکه نیاز به kwargs داشته باشه و هیچوقت به اکسپشن نمیخوره با هر نوع ورودی ای.
پس یک وقتا بهتره آبجکتو parse کنیم و این جمله همیشه صد در صد درست نیست:
ask for forgiveness than permission
یک وقتا بهتره parse کنیم و permission بگیریم. چون ممکنه اصلا خطا نگیریم در صورتی که خروجی که میخواستیم رو نداد برناممون!
@ManiFoldsPython
و خب چون ابجکت ادمین ورودی نداره پس همیشه ساخته میشه بدون اینکه نیاز به kwargs داشته باشه و هیچوقت به اکسپشن نمیخوره با هر نوع ورودی ای.
پس یک وقتا بهتره آبجکتو parse کنیم و این جمله همیشه صد در صد درست نیست:
ask for forgiveness than permission
یک وقتا بهتره parse کنیم و permission بگیریم. چون ممکنه اصلا خطا نگیریم در صورتی که خروجی که میخواستیم رو نداد برناممون!
@ManiFoldsPython
👏6🤯4👍1
من چند وقت پیش یک آگهی ریموت تو شرکتی که تو برلین دارم توش کار میکنم گذاشتم.. چند نفر تماس گرفتن. وقتی صحبت از حقوق شد هیچ اطلاعی نداشتن که invoice چیه و چطوری میتونن قانونی کار کنند.
اگه میخواین ریموت کار کنید باید یک سری مراحلی رو طی کنید تا واجد شرایط باشین. اولین قدمش داشتن یک حساب بانکی و شماره مالیاته که بتونید یک شرکت یک جای دیگه دنیا رو به صورت قانونی invoice کنید!
این مقاله خیلی قشنگ توضیح داده دست نویسنده اش درد نکنه 🙂
@ManiFoldsPython
اگه میخواین ریموت کار کنید باید یک سری مراحلی رو طی کنید تا واجد شرایط باشین. اولین قدمش داشتن یک حساب بانکی و شماره مالیاته که بتونید یک شرکت یک جای دیگه دنیا رو به صورت قانونی invoice کنید!
این مقاله خیلی قشنگ توضیح داده دست نویسنده اش درد نکنه 🙂
@ManiFoldsPython
ویرگول
چطور به عنوان یه ایرانی با ۳۰۰ یورو تو اروپا شرکت ثبت کنیم؟
اگر شما برنامه نویس هستید و تو ایران (یا هرجای دیگه دنیا) زندگی میکنید ممکنه دنبال شغل ریموت از بقیه دنیا یا حتی ایدهای جهانی دارید ولی از…
👍26❤1
من خیلی وقتا میشنوم که بازار اروپا خرابه و فلان... درستم هست ولی بازم خیلی شغل زیاده یعنی ادم متخصص من نمیبینم بیکار باشه. اکثر کسایی که میبینم کار پیدا نمیتونن کنن چند دلیل داره;
اولین دلیل آنبوردینگ سختیه که میتونن داشته باشن
۱. انگلیسی خیلی خوب حرف نمیزنن معمولا
۲. با ابزار ها و استک ها آشنایی ندارن مثل AWS یا مخصوصا devops ها که کلا همه چیشون فرق میکنه با ایران
۳. ویزا نیاز دارن که خودشم ۲-۳ ماه طول میکشه اوکی شه
چیکار کنیم؟سعی کنید این معایب رو تا جایی که میشه برطرف کنید,
۱. انگلیسیتونو قوی تر کنید. کتاب بخونید مقاله بخونید. مثلا من سره کار یکی از همکارام با وجود اینکه native نیست ولی دایره لغت خیلی خوبی داره و حتی از اون native ها هم بهتر حرف میزنه
۲. کورس آنلاین و کتاب بخونید که باهاشون آشنا شین. برین ترکیه یا کشور های همسایه امتحان بدین مدرک هاشو بگیرین. مثل مدارک aws یا gitlab یا hashicorp
۳. حضور فیزیکی اگه داشته باشین
۴. سعی کنید حتی بتونید ریموت قانونی کار کنید (طبق پست بالا) تو مدتی که نمیتونید حضوری باشین. اینم میتونه آپشن خیلی خوبی باشه که شرکت بگه خوب من حالا که قراره اینو بگیرم و چدن ماه دیگه بهم اضافه شه حداقل تو این چند ماهم دورادور کار کنه و بتونه با شرکت و پروداکت آشنا شه و کاملا آنبورد شه.
دومین دلیلشم نداشتن زرومه استاندارد و خوبه که راجبش ویدیو record کردم و ریپو گیتهاب دارم اگه ندیدین توصیه میکنم دوره اش رو از کانال یوتیوبم ببینید, تو بیو کانال هست.
و اخرین فاکتور هم نداشتن مهارت کافیه. مهارت هایی مثل تست نویسی, مثل کد خوب نوشتن, مثل مصاحبه خوب دادن و غیره.
البته اینا به این معنی نیست که نمیتونید از ایران مهاجرت کنید. صرفا این پست واسه این بود که یکم از تجربیاتمو به اشتراک بذارم که بتونید راحت تر مهاجرت کنید.
@ManiFoldsPython
اولین دلیل آنبوردینگ سختیه که میتونن داشته باشن
۱. انگلیسی خیلی خوب حرف نمیزنن معمولا
۲. با ابزار ها و استک ها آشنایی ندارن مثل AWS یا مخصوصا devops ها که کلا همه چیشون فرق میکنه با ایران
۳. ویزا نیاز دارن که خودشم ۲-۳ ماه طول میکشه اوکی شه
چیکار کنیم؟سعی کنید این معایب رو تا جایی که میشه برطرف کنید,
۱. انگلیسیتونو قوی تر کنید. کتاب بخونید مقاله بخونید. مثلا من سره کار یکی از همکارام با وجود اینکه native نیست ولی دایره لغت خیلی خوبی داره و حتی از اون native ها هم بهتر حرف میزنه
۲. کورس آنلاین و کتاب بخونید که باهاشون آشنا شین. برین ترکیه یا کشور های همسایه امتحان بدین مدرک هاشو بگیرین. مثل مدارک aws یا gitlab یا hashicorp
۳. حضور فیزیکی اگه داشته باشین
۴. سعی کنید حتی بتونید ریموت قانونی کار کنید (طبق پست بالا) تو مدتی که نمیتونید حضوری باشین. اینم میتونه آپشن خیلی خوبی باشه که شرکت بگه خوب من حالا که قراره اینو بگیرم و چدن ماه دیگه بهم اضافه شه حداقل تو این چند ماهم دورادور کار کنه و بتونه با شرکت و پروداکت آشنا شه و کاملا آنبورد شه.
دومین دلیلشم نداشتن زرومه استاندارد و خوبه که راجبش ویدیو record کردم و ریپو گیتهاب دارم اگه ندیدین توصیه میکنم دوره اش رو از کانال یوتیوبم ببینید, تو بیو کانال هست.
و اخرین فاکتور هم نداشتن مهارت کافیه. مهارت هایی مثل تست نویسی, مثل کد خوب نوشتن, مثل مصاحبه خوب دادن و غیره.
البته اینا به این معنی نیست که نمیتونید از ایران مهاجرت کنید. صرفا این پست واسه این بود که یکم از تجربیاتمو به اشتراک بذارم که بتونید راحت تر مهاجرت کنید.
@ManiFoldsPython
👍39👌2
تا بحث داغه یک نکته هم اضافه کنم نحوه اپلای کردن خیلی خیلی مهمه.
راز خودمو بهتون میگم 😁که ربات لینکدینمم اینطوری کار میکرد.
تو قسمت سرچ جاب لینکدین بدین. شما یک فیلتر برای خودت میسازی. لوکیشن و نوع جاب و تایتل هرچی میخواین بذارین.
۱. سعی کنید تایتل خیلی جنرال ننویسید. مثلا نگین پایتون. بذارین فلسک. جنگو. فست. تا پایتون. اینطوری سرچتون نزدیک تره به واقعیت.
۲. بر اساس most recent سورت کنید. تو فیلترتون بذارین یک روز اخیرو نشون بده.
۳. حالا تو get parameters لینک سرچتون ببینید(رو خوده مرورگر هست). یک parameter هست به اسم f_TPR=r86400. خب این یعنی چی؟یعنی ۱ روز اخیر اخیر. یعنی 60*60*24*7. خب پس اینو میتونید کمتر کنید. مثلا میتونید بذارین رو r3600. اگه بذارین رو r3600 کل آگهی هایی که یک ساعت گذشته گذاشته شدن رو بهتون نشون میده.
سعی کنید رو لوکیشن هم فقط یک شهر رو نذارین. کشور بذارین بهتره. حالا نفر اول اپلای کنید به همون آگهیا و اسنایپشون کنید 😁
@ManiFoldsPython
راز خودمو بهتون میگم 😁که ربات لینکدینمم اینطوری کار میکرد.
تو قسمت سرچ جاب لینکدین بدین. شما یک فیلتر برای خودت میسازی. لوکیشن و نوع جاب و تایتل هرچی میخواین بذارین.
۱. سعی کنید تایتل خیلی جنرال ننویسید. مثلا نگین پایتون. بذارین فلسک. جنگو. فست. تا پایتون. اینطوری سرچتون نزدیک تره به واقعیت.
۲. بر اساس most recent سورت کنید. تو فیلترتون بذارین یک روز اخیرو نشون بده.
۳. حالا تو get parameters لینک سرچتون ببینید(رو خوده مرورگر هست). یک parameter هست به اسم f_TPR=r86400. خب این یعنی چی؟یعنی ۱ روز اخیر اخیر. یعنی 60*60*24*7. خب پس اینو میتونید کمتر کنید. مثلا میتونید بذارین رو r3600. اگه بذارین رو r3600 کل آگهی هایی که یک ساعت گذشته گذاشته شدن رو بهتون نشون میده.
سعی کنید رو لوکیشن هم فقط یک شهر رو نذارین. کشور بذارین بهتره. حالا نفر اول اپلای کنید به همون آگهیا و اسنایپشون کنید 😁
@ManiFoldsPython
👍32🔥9❤1
کورس کانتنت رو به این شکل تغغیر دادم که زودتر برم به جلسه ۱۰ و ۱۱ چون خیلی مهمن...
جلسه ۷ ریکورد شد. سعی میکنم هفته ای دو ویدیو ریکورد کنم از این به بعد. یکی قطعا یک شنبه. یکیم طی هفته.
@ManiFoldsPython
جلسه ۷ ریکورد شد. سعی میکنم هفته ای دو ویدیو ریکورد کنم از این به بعد. یکی قطعا یک شنبه. یکیم طی هفته.
@ManiFoldsPython
❤18👍7🙏1