یکی از مشکلاتی که اکثر برنامه نویسا دارن تو مدیریت دپندسیه! حالا لایبری جدید یا external service که قراره ازش استفاده کنن.
مشکل چیه؟برنامه نویس میاد یک توتوریال از اون دپندسی جدید میبینه با خودش میگه ایول چه باحاله و تصمیم میگیره اضافش کنه! و این بد ترین کاریه که میتونید بکنید. قراره وابسته بشین به چیزی. فکر کنید این وابستگی از جنس عاطفیه. همینقدر باید باهاش حساس برخورد کنید :))
خب چیکار کنیم؟
اولین کاری که میکنید اینه که توتوریالشو میریزین دور. میرین داکیومنتشو خوب میخونید. متوجه میشین limitation هاش چیه. متوجه میشین سیستمش چطور کار میکنه. یک داکیومنت مختصر شده ازش میسازین و cons pro هاشو در میارین. مثلا یعنی چی؟
فکر کنید مثلا دارین یک external system اضافه میکنید. مثلا یک CRM. خب اول باید چک کنید چه limitation هایی داره؟ایا api داره؟ایا web hook داره؟ ایا share state به وجود میاد؟ هزینش چقدره؟ alternative هاش چیه؟ چطور اصلا کار میکنه؟ اصلا خوب کار میکنه؟!
بعد تو درجه دوم میرین گوگل میکنید و مقاله هایی پیدا میکنید که نقاط ضعفشو بیشتر گفته. ممکنه همه نقاط ضعفش تو داکیومنتش نباشه و یکم پنهان باشه. میبینید بقیه چه چالش هایی داشتن موقع کار کردن باهاش.
در نهایت بین آپشن ها یک لیست pro cons میسازین و تصمیم گیری نهایی رو میکنید.
اگه این کارو نکنیم چه اتفاقی میفته؟
بذارین مثال بگم. مثلا شما ندیدین این api limit احمقانه ای داره. بعد کلی روش کد میزنید. یک روزی سایز بیزنستون بزرگ تر میشه و حالا هرچی کد رو زدین باید undo کنید.
همیشه تو انتخاب دپندسی هاتون خیلی فکر کنید! من بعضا دیدم بچه ها میگن <کارفرما اینطوری گفته> یا <مدیر تیم با این بیشتر حال کرده>. اینا دلایل منطقی اصلا نیستن برای انتخاب یک دپندسی.
@ManiFoldsPython
مشکل چیه؟برنامه نویس میاد یک توتوریال از اون دپندسی جدید میبینه با خودش میگه ایول چه باحاله و تصمیم میگیره اضافش کنه! و این بد ترین کاریه که میتونید بکنید. قراره وابسته بشین به چیزی. فکر کنید این وابستگی از جنس عاطفیه. همینقدر باید باهاش حساس برخورد کنید :))
خب چیکار کنیم؟
اولین کاری که میکنید اینه که توتوریالشو میریزین دور. میرین داکیومنتشو خوب میخونید. متوجه میشین limitation هاش چیه. متوجه میشین سیستمش چطور کار میکنه. یک داکیومنت مختصر شده ازش میسازین و cons pro هاشو در میارین. مثلا یعنی چی؟
فکر کنید مثلا دارین یک external system اضافه میکنید. مثلا یک CRM. خب اول باید چک کنید چه limitation هایی داره؟ایا api داره؟ایا web hook داره؟ ایا share state به وجود میاد؟ هزینش چقدره؟ alternative هاش چیه؟ چطور اصلا کار میکنه؟ اصلا خوب کار میکنه؟!
بعد تو درجه دوم میرین گوگل میکنید و مقاله هایی پیدا میکنید که نقاط ضعفشو بیشتر گفته. ممکنه همه نقاط ضعفش تو داکیومنتش نباشه و یکم پنهان باشه. میبینید بقیه چه چالش هایی داشتن موقع کار کردن باهاش.
در نهایت بین آپشن ها یک لیست pro cons میسازین و تصمیم گیری نهایی رو میکنید.
اگه این کارو نکنیم چه اتفاقی میفته؟
بذارین مثال بگم. مثلا شما ندیدین این api limit احمقانه ای داره. بعد کلی روش کد میزنید. یک روزی سایز بیزنستون بزرگ تر میشه و حالا هرچی کد رو زدین باید undo کنید.
همیشه تو انتخاب دپندسی هاتون خیلی فکر کنید! من بعضا دیدم بچه ها میگن <کارفرما اینطوری گفته> یا <مدیر تیم با این بیشتر حال کرده>. اینا دلایل منطقی اصلا نیستن برای انتخاب یک دپندسی.
@ManiFoldsPython
👍12❤3🔥2
داشتم یکم تو گیتهاب میچرخیدم که خوردم به این:
https://github.com/novuhq/novu
Novu provides a unified API that makes it simple to send notifications through multiple channels, including In-App, Push, Email, SMS, and Chat. With Novu, you can create custom workflows and define conditions for each channel, ensuring that your notifications are delivered in the most effective way possible.
از بیرون بنظر میاد خیلی باحال باشه. عجب چیز تمیزیه. یک abstraction هم گذاشته برای کار با provider های مختلف مثل firebase و ... .با این فایربیس فرانت کارا چه کارایی که نمیتونن کنند 😁
@ManiFoldsPython
https://github.com/novuhq/novu
Novu provides a unified API that makes it simple to send notifications through multiple channels, including In-App, Push, Email, SMS, and Chat. With Novu, you can create custom workflows and define conditions for each channel, ensuring that your notifications are delivered in the most effective way possible.
از بیرون بنظر میاد خیلی باحال باشه. عجب چیز تمیزیه. یک abstraction هم گذاشته برای کار با provider های مختلف مثل firebase و ... .با این فایربیس فرانت کارا چه کارایی که نمیتونن کنند 😁
@ManiFoldsPython
GitHub
GitHub - novuhq/novu: The open-source notification Inbox infrastructure. E-mail, SMS, Push and Slack Integrations.
The open-source notification Inbox infrastructure. E-mail, SMS, Push and Slack Integrations. - novuhq/novu
👍7🔥3
یک سوال نسبتا ساده در بحث Typing پایتون, به شما این فانکشن رو دادن که بر اساس یک کاندیشن n تا آیتم اول رو میگیره. چیزی شبیه first_true لایبری more itertools ولی با این تفاوت که به جای first, در واقع n تای اول رو میخوایم.
کاری به پرفومنس فانکشن ندارم ولی بنظرتون این فانکشن چطوری میتونه signature اش بازنویسی شه که بهترین تایپینگ ممکن رو داشته باشه؟ )قطعا signature اش همین الان کلی ایراد داره)
@ManiFoldsPython
کاری به پرفومنس فانکشن ندارم ولی بنظرتون این فانکشن چطوری میتونه signature اش بازنویسی شه که بهترین تایپینگ ممکن رو داشته باشه؟ )قطعا signature اش همین الان کلی ایراد داره)
def get_first_x(x, seq: Sequence, condition: Callable):
result = []
for obj in iterables:
if condition(obj) and len(result) < x:
result.append(x)
return result
@ManiFoldsPython
🤔4👍3
سید تو کامنت جوابشو فرستاد (خیلی سریع)
نکته سوال چیه؟
اولا استفاده به جا از TypeVar. که درواقع باعث شد بتونیم موقع نوشتن کاندیشن بگیم اقا قراره این چیزی که توش iterate میکنیم رو بدیم به کاندیشن نه بیشتر. و بهمون باید bool value برگردونه.
نکته دوم: استفاده از Iterable به جای sequence . چرا ؟چون ما صرفا iterate کردیم. همیشه تو ورودی تاپینگتون سعی کنید خیلی felixable باشین. همیشه سعی کنید چیزیو تو تایپینگتون بذارین به عنوان ورودی که بیشتر range اینپوت ممکنه رو اعمال کنه تا reusablity اون فانکشنتون به شدت زیاد شه
نکته سوم:برگردوندن لیست. میتونست تو return signature بذاره Iterable یا Sequence ولی درواقع لیسته. همیشه موقع خروجی دادن تایپینگتون به شدت دقیق باشین وگرنه کدتون خیلی باگ خواهد داشت.
نتیجش میشه اینکه ادیتورتون بهتون inline error میده و تایپینگ میده موقع استفاده از این تابع.
@ManiFoldsPython
T = TypeVar('T')
def get_first_x(x: int, iterable: Iterable[T], condition: Callable[[T], bool]) -> list[T]:
نکته سوال چیه؟
اولا استفاده به جا از TypeVar. که درواقع باعث شد بتونیم موقع نوشتن کاندیشن بگیم اقا قراره این چیزی که توش iterate میکنیم رو بدیم به کاندیشن نه بیشتر. و بهمون باید bool value برگردونه.
نکته دوم: استفاده از Iterable به جای sequence . چرا ؟چون ما صرفا iterate کردیم. همیشه تو ورودی تاپینگتون سعی کنید خیلی felixable باشین. همیشه سعی کنید چیزیو تو تایپینگتون بذارین به عنوان ورودی که بیشتر range اینپوت ممکنه رو اعمال کنه تا reusablity اون فانکشنتون به شدت زیاد شه
نکته سوم:برگردوندن لیست. میتونست تو return signature بذاره Iterable یا Sequence ولی درواقع لیسته. همیشه موقع خروجی دادن تایپینگتون به شدت دقیق باشین وگرنه کدتون خیلی باگ خواهد داشت.
نتیجش میشه اینکه ادیتورتون بهتون inline error میده و تایپینگ میده موقع استفاده از این تابع.
@ManiFoldsPython
👍11🤯1
Forwarded from DevTwitter | توییت برنامه نویسی
اسلک یه هفته تیم شو تعطیل کرده که برن یاد بگیرن و با مهارت بشن
زیبا نیست؟
https://www.hrgrapevine.com/content/article/2023-10-24-slack-announces-radical-week-long-shutdown-due-to-an-internal-skills-crisis
@DevTwitter | <Mahdi/>
زیبا نیست؟
https://www.hrgrapevine.com/content/article/2023-10-24-slack-announces-radical-week-long-shutdown-due-to-an-internal-skills-crisis
@DevTwitter | <Mahdi/>
👍18👎2
Forwarded from CodeNaline | کدنالین
با مارک هماهنگ شد برای ۲ هفته دیگه :). اما چون تو این دو هفته بیکار نباشیم قراره یک اپیزود مشترک با مانی و بابی کلاود درباره مسیر رشد بکاند دولوپر داشته باشیم یک شنبه :). سوالاتتون در این مورد داخل کامنت ها همین پست لطفا بگید ❤️.
🤩11❤6👍6
sam altman
به openai برگشت
بعد از اینکه از ماکروسافت پیشنهاد داشت و تقریبا داشت میرفت ماکروسافت
حالا توییت یکی زیر توییت sam 😂😂
خدایی microsoft teams خیلی سمه. مخصوصا زنگش به جای آژیر خطر میتونن استفاده کنن ازش
@ManiFoldsPython
به openai برگشت
بعد از اینکه از ماکروسافت پیشنهاد داشت و تقریبا داشت میرفت ماکروسافت
حالا توییت یکی زیر توییت sam 😂😂
خدایی microsoft teams خیلی سمه. مخصوصا زنگش به جای آژیر خطر میتونن استفاده کنن ازش
@ManiFoldsPython
😁7
Python BackendHub
sam altman به openai برگشت بعد از اینکه از ماکروسافت پیشنهاد داشت و تقریبا داشت میرفت ماکروسافت حالا توییت یکی زیر توییت sam 😂😂 خدایی microsoft teams خیلی سمه. مخصوصا زنگش به جای آژیر خطر میتونن استفاده کنن ازش @ManiFoldsPython
OpenAI Of Thrones
حالا نکته جالب تر اینجاست که این آدم برگشته و هیات مدیره که اخراجش کرده بودن رو عوض کرده کلا از نو کوبیده ساخته :))
همه اینا به لطف محبوبیت sam بود. حتما شنیدین وقتی که اخراجش کردن بیش از نصف کارمند های OpenAI تصمیم به استفا گرفتن در صورتی که Sam برنگرده
پ.ن: تاثیر محبوبیت و مدیریت خوب 👌
@ManiFoldsPython
حالا نکته جالب تر اینجاست که این آدم برگشته و هیات مدیره که اخراجش کرده بودن رو عوض کرده کلا از نو کوبیده ساخته :))
همه اینا به لطف محبوبیت sam بود. حتما شنیدین وقتی که اخراجش کردن بیش از نصف کارمند های OpenAI تصمیم به استفا گرفتن در صورتی که Sam برنگرده
پ.ن: تاثیر محبوبیت و مدیریت خوب 👌
@ManiFoldsPython
😁25❤6👍5
Forwarded from Django Expert (Boby Cloud)
✅ در ویدیو جدید بابی در نقش یک آتش نشان فداکار به سراغ مبحث تست نویسی در مهندسی نرم افزار میره و راجع به Smoke Test (تست دود) صحبت میکنه. همچنین یک نمونه Smoke Test با استفاده از سلنیوم در پایتون روی وبسایت LeetCode پیاده سازی میکنیم.
🔥 تست دود نوعی تست نرم افزار هست که پس از انجام تغییرات در نرم افزار انجام میشود تا اطمینان حاصل شود که ویژگی های اصلی نرم افزار به درستی عمل میکنند.
🖥 مشاهده در یوتوب
👉 Link: https://youtu.be/Mog3OaiSidE?si=Sgyo6udH4wQHWZNg
〰️〰️〰️〰️〰️〰️
@DjangoEx | @BobyDotCloud
🔥 تست دود نوعی تست نرم افزار هست که پس از انجام تغییرات در نرم افزار انجام میشود تا اطمینان حاصل شود که ویژگی های اصلی نرم افزار به درستی عمل میکنند.
🖥 مشاهده در یوتوب
👉 Link: https://youtu.be/Mog3OaiSidE?si=Sgyo6udH4wQHWZNg
〰️〰️〰️〰️〰️〰️
@DjangoEx | @BobyDotCloud
❤3👍3
پارت یک:
سال پیش دسامبر بود که تصمیم گرفتم طی یک برنامه فشرده از self employed در بیام و مهاجرت کنم. اولش برنامم مهاجرت تحصیلی بود ولی وقتی متوجه شدم مهاجرت کاری راحت تر و با مزایا بیشتریه ترجیح دادم کاری مهاجرت کنم. من دیپلم دارم و ۴ ترم تو دانشگاه تکنیکال استانبول درس خوندم و ولش کردم. من که مسیر مهاجرت رو شروع کردم راجب مسیر مهاجرت به آلمان بدون مدرک به صورت متخصص IT مطلب زیادی نبود برای همین خواستم تجربمو با شما به اشتراک بذارم
به این ویزا میگن 19c2. یعنی طبق بند 19ام سکشن c2 نیرویی که ۳ سال تجربه کار داره طی ۵ سال گذشته میتونه مدرک تحصیلی نده. من از ترکیه داشتم اپلای میکردم.
https://www.make-it-in-germany.com/en/visa-residence/types/other/it-specialists
اطلاعات کاملش اینجاست
چک لیست مدارک سفارت:
https://teheran.diplo.de/ir-fa/-/2465570
اولین چیزی که شما نیاز دارین یک قرارداده که حداقل €52,560 در سال باشه (به صورت ناخالص). شرکت های زیادی ویزا اسپانسر میکنن. لزومی نداره برین تو یک شرکت بزرگ. هر شرکتی که کارش IT باشه میتونه درخواست بده شرایط خاصی نداشت وقتی من تحقیق کردم. راجب بک گراند شرکت خوده وزارت کار آلمان یک تحقیقی میکنه طبیعتا ولی اینو میگم چون دیدم بعضی ایرانیا خیلی مانور میدادن رو یک سری شرکت خاص در صورتی که نیاز نبود.
دومین چیزی که شما نیاز دارین یک کارفرما صبوره :). این پروسه زمانبره. من تو این تایم خودم ریموت با شرکت کار میکردم. ولی خب از ایران طبیعتا سخت تره. تایم بندی رو بهتون میگم.
تاریخ گرفتن قرارداد: Aug 8, 2023
تاریخی که زنگ زدم برای گرفتن وقت از سفارت: Aug 17, 2023
تاریخ اپلای برای گرفتن پیش تاییده اداره کار: Sept 13, 2023
تاریخ صدور پیش تاییده :Sept 27, 2023
تاریخی که وقت مصاحبه دادن بهم:Nov 15, 2023
تاریخی که ویزام صادر شد: Nov 23, 2023
پیش تاییده من ۲ هفته ای اومد. مصاحبه ام هم یک هفته بعد ویزاش اومد و جوابش اومد. پس میشه گفت کل تایمش ۳ هفته طول میکشه. ولی تا بهم وقت ویزا رو بدن چند ماه طول کشید . تازه من وقتو گرفتم فهمیدم پیش تاییده یعنی چی :))
حالا پیش تاییدیه چیه؟ ببینید ۲ مدل پیش تاییدیه داریم:
یکیش پیش تاییدیه معمولیه که من گرفتم -> کارفرماتون قرارداد رو باید برای اداره کارت به همراه رزومه و عکس پاسپورتتون و declaration of employment رو برای اداره کار بفرسته رو سایتش. درجا بهش رسید میدن به صورت انلاین. بعد ایمیل میزنن بهش جوابشو میگن.
پیش تاییده فست ترک هست. درسته اسمش فسته ولی از پیش تاییدی که من گرفتم بیشتر طول میکشه :)). اینجا هم اداره کار اوکی میده بهتون هم اداره مهاجرت. روندشو اطلاع ندارم چه شکلیه. هزینه اولیه هم داره. فکر کنم ۴۰۰-۵۰۰ یورو باشه.
آیا پیش تاییده اجباریه؟
ببینید تو لیست مدارک سایت سفارت ترکیه نبود. من شنیده بودم اجباریه ولی روز مصاحبه اولش ازم پرسید پیش تاییدیه داری؟ انگار که آپشنال بود. ولی خب خیلیی nice to have هست اگه آپشنالم باشه حتما توصیه میکنم بگیرین!
برای مصاحبه چطور حاضر شم؟
ازتون یک سری سوال میپرسه. فکر کنید مصاحبه behavioral با یک شرکت دارین. دقیقا همون تیپ سوالاتو میپرسن.
لگالایز چیه؟ ZAB چیه؟
ببینید کسایی که تایپ ویزاشون فرق میکنه شاید مجبور باشن مدارک تحصیلیشون رو لگالایز کنند. لگالایز مدارک مثل آپوستیل میمونه, یعنی ترجمه مدرک شما توسط چند تا نهاد تو ایران تایید میشه و بعد توسط سفارت اون کشورم تایید میشه. اگه اینکارو کردین حتما ۵ تا کپی برابر اصل بگیرین چون به دردتون میخوره تو مسیر.
آیا باید مدارکمون لگالایز شه؟
اگه با ویزا متخصص IT میرین نه نیازی نداره
آیا باید زبان آلمانی بلد باشیم؟
ببینید این قسمتی از پیش نیازه خوده ویزا IT Specialist هست. اما اگه شرکتتون انگلیسیه دیگه نیازی ندارین. من تافل بردم ولی شنیدم از کارفرماتون هم میتونید یک نامه بگیرین که بگه شما انگلیسی بلدین. آفیسر هم با من انگلیسی حرف زد. (فارسیم بلد بود :)) اولش فارسی حرف زد)
چطور باید سابقه کاریمو ثابت کنم؟ بیمه میخوان؟
کیس من خیلیی خاص بود. من یک جورایی self employed بودم. یعنی شرکت رسمی ثبت نداشتم. با چند جا که باهاشون کار میکردم نامه گرفتم (خارج از ایران) همشون تایید دادن که مثلا من مهارت دارم و فقط سفارت به همون نامه ها بسنده کرد. پس یک رفرنس لتر داشته باشین کارتونو راه مینداخته هرچقدرم کیستون خاص باشه.
دانش ITمو چطور ثابت کنم به سفارت؟
سفارت اینو ازتون میخواد.کاری که من کردم این بود که کورس های انلاینی که گذروندم رو ۵ تاشو پرینت کردم. ۲ تاش coursera بود یکی udemy یکی acloudguru یکی real python.
@ManiFoldsPython
سال پیش دسامبر بود که تصمیم گرفتم طی یک برنامه فشرده از self employed در بیام و مهاجرت کنم. اولش برنامم مهاجرت تحصیلی بود ولی وقتی متوجه شدم مهاجرت کاری راحت تر و با مزایا بیشتریه ترجیح دادم کاری مهاجرت کنم. من دیپلم دارم و ۴ ترم تو دانشگاه تکنیکال استانبول درس خوندم و ولش کردم. من که مسیر مهاجرت رو شروع کردم راجب مسیر مهاجرت به آلمان بدون مدرک به صورت متخصص IT مطلب زیادی نبود برای همین خواستم تجربمو با شما به اشتراک بذارم
به این ویزا میگن 19c2. یعنی طبق بند 19ام سکشن c2 نیرویی که ۳ سال تجربه کار داره طی ۵ سال گذشته میتونه مدرک تحصیلی نده. من از ترکیه داشتم اپلای میکردم.
https://www.make-it-in-germany.com/en/visa-residence/types/other/it-specialists
اطلاعات کاملش اینجاست
چک لیست مدارک سفارت:
https://teheran.diplo.de/ir-fa/-/2465570
اولین چیزی که شما نیاز دارین یک قرارداده که حداقل €52,560 در سال باشه (به صورت ناخالص). شرکت های زیادی ویزا اسپانسر میکنن. لزومی نداره برین تو یک شرکت بزرگ. هر شرکتی که کارش IT باشه میتونه درخواست بده شرایط خاصی نداشت وقتی من تحقیق کردم. راجب بک گراند شرکت خوده وزارت کار آلمان یک تحقیقی میکنه طبیعتا ولی اینو میگم چون دیدم بعضی ایرانیا خیلی مانور میدادن رو یک سری شرکت خاص در صورتی که نیاز نبود.
دومین چیزی که شما نیاز دارین یک کارفرما صبوره :). این پروسه زمانبره. من تو این تایم خودم ریموت با شرکت کار میکردم. ولی خب از ایران طبیعتا سخت تره. تایم بندی رو بهتون میگم.
تاریخ گرفتن قرارداد: Aug 8, 2023
تاریخی که زنگ زدم برای گرفتن وقت از سفارت: Aug 17, 2023
تاریخ اپلای برای گرفتن پیش تاییده اداره کار: Sept 13, 2023
تاریخ صدور پیش تاییده :Sept 27, 2023
تاریخی که وقت مصاحبه دادن بهم:Nov 15, 2023
تاریخی که ویزام صادر شد: Nov 23, 2023
پیش تاییده من ۲ هفته ای اومد. مصاحبه ام هم یک هفته بعد ویزاش اومد و جوابش اومد. پس میشه گفت کل تایمش ۳ هفته طول میکشه. ولی تا بهم وقت ویزا رو بدن چند ماه طول کشید . تازه من وقتو گرفتم فهمیدم پیش تاییده یعنی چی :))
حالا پیش تاییدیه چیه؟ ببینید ۲ مدل پیش تاییدیه داریم:
یکیش پیش تاییدیه معمولیه که من گرفتم -> کارفرماتون قرارداد رو باید برای اداره کارت به همراه رزومه و عکس پاسپورتتون و declaration of employment رو برای اداره کار بفرسته رو سایتش. درجا بهش رسید میدن به صورت انلاین. بعد ایمیل میزنن بهش جوابشو میگن.
پیش تاییده فست ترک هست. درسته اسمش فسته ولی از پیش تاییدی که من گرفتم بیشتر طول میکشه :)). اینجا هم اداره کار اوکی میده بهتون هم اداره مهاجرت. روندشو اطلاع ندارم چه شکلیه. هزینه اولیه هم داره. فکر کنم ۴۰۰-۵۰۰ یورو باشه.
آیا پیش تاییده اجباریه؟
ببینید تو لیست مدارک سایت سفارت ترکیه نبود. من شنیده بودم اجباریه ولی روز مصاحبه اولش ازم پرسید پیش تاییدیه داری؟ انگار که آپشنال بود. ولی خب خیلیی nice to have هست اگه آپشنالم باشه حتما توصیه میکنم بگیرین!
برای مصاحبه چطور حاضر شم؟
ازتون یک سری سوال میپرسه. فکر کنید مصاحبه behavioral با یک شرکت دارین. دقیقا همون تیپ سوالاتو میپرسن.
لگالایز چیه؟ ZAB چیه؟
ببینید کسایی که تایپ ویزاشون فرق میکنه شاید مجبور باشن مدارک تحصیلیشون رو لگالایز کنند. لگالایز مدارک مثل آپوستیل میمونه, یعنی ترجمه مدرک شما توسط چند تا نهاد تو ایران تایید میشه و بعد توسط سفارت اون کشورم تایید میشه. اگه اینکارو کردین حتما ۵ تا کپی برابر اصل بگیرین چون به دردتون میخوره تو مسیر.
آیا باید مدارکمون لگالایز شه؟
اگه با ویزا متخصص IT میرین نه نیازی نداره
آیا باید زبان آلمانی بلد باشیم؟
ببینید این قسمتی از پیش نیازه خوده ویزا IT Specialist هست. اما اگه شرکتتون انگلیسیه دیگه نیازی ندارین. من تافل بردم ولی شنیدم از کارفرماتون هم میتونید یک نامه بگیرین که بگه شما انگلیسی بلدین. آفیسر هم با من انگلیسی حرف زد. (فارسیم بلد بود :)) اولش فارسی حرف زد)
چطور باید سابقه کاریمو ثابت کنم؟ بیمه میخوان؟
کیس من خیلیی خاص بود. من یک جورایی self employed بودم. یعنی شرکت رسمی ثبت نداشتم. با چند جا که باهاشون کار میکردم نامه گرفتم (خارج از ایران) همشون تایید دادن که مثلا من مهارت دارم و فقط سفارت به همون نامه ها بسنده کرد. پس یک رفرنس لتر داشته باشین کارتونو راه مینداخته هرچقدرم کیستون خاص باشه.
دانش ITمو چطور ثابت کنم به سفارت؟
سفارت اینو ازتون میخواد.کاری که من کردم این بود که کورس های انلاینی که گذروندم رو ۵ تاشو پرینت کردم. ۲ تاش coursera بود یکی udemy یکی acloudguru یکی real python.
@ManiFoldsPython
Make-It-In-Germany
Visa options for IT professionals
Are you an IT specialist? The Federal Government's website explains what you need to consider when applying for a visa to work as an IT specialist.
❤19👍1🔥1
پارت دو:
توصیه ای داری؟
آره, خیلی پروسه ویزا گرفتن راحت تر از چیزی که فکرشو میکنید.من اولش یک غول ترسناک ازش ساخته بودم. همینطور کار پیدا کردنم همینه. یکم پشتکار به خرج بدین راحت از پسش برمیاین. روزه سفارتم مدارکو به همون ترتیبی که تو سایت نوشتن مرتب کنید پیش تاییده رو روی همه مدارکتون بذارین. منگنه نکنید گیره بزنید به هم که راحت باز شه.
محدودیت این ویزا نسبت به بقیه چی بود؟
اقا خلاصش اینه که شما اگه اینو ۱ ماه پیش میگرفتین خیلی فرق میکرد. مثلا بلوکارت نمیتونستین بگیرید و خیلی مزایا نداشتین. منتهی طبق قانون جدید سایت شما میتونید با همین ویزا برین بلوکارت هم بگیرین.
https://www.make-it-in-germany.com/en/visa-residence/skilled-immigration-act
بلوکارت چیه؟
The EU Blue Card (Section 18g of the Residence Act [AufenthG] ) is a special residence noscript for foreign academics and people with comparable qualifications who want to take up qualified employment in Germany. To find out if you need a visa to enter Germany, see the “Do I need a visa?” section
تبدیل به پاسپورت میشه؟
بعد ۲۱ ماه اگه مدرک آلمانی b1 بگیرین میتونید درخواست اقامت دائم کنید
https://service.berlin.de/dienstleistung/326556/en/
کامل تر اینجا نوشته. اقامت دائم هم بعد مدتی فکر کنم پاسپورت میشه دیگه راجبش خیلی تحقیق نکردم. هدف من به شخصه اقامت دائم هست در درجه اول.
یک نکته جالب بگم, یک ایرانی دیدم اونجا فرانت کار بود با اینکه تحصیل داشت ولی داشت برای تایپ ویزایی اقدام میکرد که من میکردم.
سوالی اگه داشتین یا راهنمایی میخواستین کامنت کنید حتما پاسخ میدم.
@ManiFoldsPython
توصیه ای داری؟
آره, خیلی پروسه ویزا گرفتن راحت تر از چیزی که فکرشو میکنید.من اولش یک غول ترسناک ازش ساخته بودم. همینطور کار پیدا کردنم همینه. یکم پشتکار به خرج بدین راحت از پسش برمیاین. روزه سفارتم مدارکو به همون ترتیبی که تو سایت نوشتن مرتب کنید پیش تاییده رو روی همه مدارکتون بذارین. منگنه نکنید گیره بزنید به هم که راحت باز شه.
محدودیت این ویزا نسبت به بقیه چی بود؟
اقا خلاصش اینه که شما اگه اینو ۱ ماه پیش میگرفتین خیلی فرق میکرد. مثلا بلوکارت نمیتونستین بگیرید و خیلی مزایا نداشتین. منتهی طبق قانون جدید سایت شما میتونید با همین ویزا برین بلوکارت هم بگیرین.
https://www.make-it-in-germany.com/en/visa-residence/skilled-immigration-act
بلوکارت چیه؟
The EU Blue Card (Section 18g of the Residence Act [AufenthG] ) is a special residence noscript for foreign academics and people with comparable qualifications who want to take up qualified employment in Germany. To find out if you need a visa to enter Germany, see the “Do I need a visa?” section
تبدیل به پاسپورت میشه؟
بعد ۲۱ ماه اگه مدرک آلمانی b1 بگیرین میتونید درخواست اقامت دائم کنید
https://service.berlin.de/dienstleistung/326556/en/
کامل تر اینجا نوشته. اقامت دائم هم بعد مدتی فکر کنم پاسپورت میشه دیگه راجبش خیلی تحقیق نکردم. هدف من به شخصه اقامت دائم هست در درجه اول.
یک نکته جالب بگم, یک ایرانی دیدم اونجا فرانت کار بود با اینکه تحصیل داشت ولی داشت برای تایپ ویزایی اقدام میکرد که من میکردم.
سوالی اگه داشتین یا راهنمایی میخواستین کامنت کنید حتما پاسخ میدم.
@ManiFoldsPython
Make-It-In-Germany
The Skilled Immigration Act
The new Skilled Immigration Act is on its way: the official portal of the Federal Government provides information on the expanded regulations for employment in Germany and the migration of skilled workers from third countries to Germany
❤21👍6🙏1
دوره pydantic قشنگ میشه کلی تولز نوشت و اکوسیستمشو قوی تر کرد
مثلا:
- csv parser with type annotation & validation
- HTML validator with type annotation
- Custom type هایی که به درد بخورن
ایده خودتون چیه؟
احتمالا ۲۰۲۴ شه برم سراغش 😁
@ManiFoldsPython
مثلا:
- csv parser with type annotation & validation
- HTML validator with type annotation
- Custom type هایی که به درد بخورن
ایده خودتون چیه؟
احتمالا ۲۰۲۴ شه برم سراغش 😁
@ManiFoldsPython
👍17
یک سوال پایتونی برای type annotation درجه متوسط یا شاید حتی سخت
ما یک تابع داریم
میخوایم براش type annotation بنویسیم
خب همونطور که میبینید
این تابع return type اش بر اساس ورودی مشخص میشه
اگه ورودی json باشه استرینگی میده که جیسونه
اگه dict باشه dict میده
و اگه دیتامون pydantic نباشه متود strاشو صدا میزنه و اونو میده.
آیا میتونید برای این تابع type annotation بنویسید؟ تو بهترین حالت؟
@ManiFoldsPython
ما یک تابع داریم
and not
def get_data(self, output: Literal["json", "dict"] | None = None) -> str | dict:
if output == "json" and isinstance(self._data, BaseModel):
return self._data.json(indent=4)
elif output == "dict" and isinstance(self._data, BaseModel):
return self._data.dict()
elif output is None
isinstance(self._data, BaseModel):str(
return
self._data)
else:
raise AttributeError(f"The data object of type {type(self._data)} does not support the '{output}' operation.")
میخوایم براش type annotation بنویسیم
خب همونطور که میبینید
این تابع return type اش بر اساس ورودی مشخص میشه
اگه ورودی json باشه استرینگی میده که جیسونه
اگه dict باشه dict میده
و اگه دیتامون pydantic نباشه متود strاشو صدا میزنه و اونو میده.
آیا میتونید برای این تابع type annotation بنویسید؟ تو بهترین حالت؟
@ManiFoldsPython
👍4
Python BackendHub
یک سوال پایتونی برای type annotation درجه متوسط یا شاید حتی سخت ما یک تابع داریم def get_data(self, output: Literal["json", "dict"] | None = None) -> str | dict: if output == "json" and isinstance(self._data, BaseModel): return …
همونطور که تو کامنتا اشاره کردن استفاده از overload هست که به شدت کمک کننده هست 👌
یک مقاله راجب این:
https://adamj.eu/tech/2021/05/29/python-type-hints-how-to-use-overload/
یک نکته: برای اینکه کار خیلی تمیز تر در بیاد شما میتونید خوده کلس هم جنریک کنید طبق self._data
@ManiFoldsPython
یک مقاله راجب این:
https://adamj.eu/tech/2021/05/29/python-type-hints-how-to-use-overload/
یک نکته: برای اینکه کار خیلی تمیز تر در بیاد شما میتونید خوده کلس هم جنریک کنید طبق self._data
@ManiFoldsPython
adamj.eu
Python type hints: how to use @overload - Adam Johnson
Sometimes the types of several variables are related, such as “if x is type A, y is type B, else y is type C”. Basic type hints cannot describe such relationships, making type checking cumbersome or inaccurate. We can instead use @typing.overload to represent…
👍3
Python BackendHub
همونطور که تو کامنتا اشاره کردن استفاده از overload هست که به شدت کمک کننده هست 👌 یک مقاله راجب این: https://adamj.eu/tech/2021/05/29/python-type-hints-how-to-use-overload/ یک نکته: برای اینکه کار خیلی تمیز تر در بیاد شما میتونید خوده کلس هم جنریک کنید طبق…
این مقاله که دیروز معرفی کردم یادتونه؟
یک سر رفتم تو سایتش
چقدر مطالب خوب داره راجب پایتون
و مخصوصا تایپینگ 👌
برای چیزای مربوط به تایپینگ:
https://adamj.eu/tech/tag/mypy/
برای پایتون به صورت کلی:
https://adamj.eu/tech/tag/python/
یک سر بزنید حتما 👌
@ManiFoldsPython
یک سر رفتم تو سایتش
چقدر مطالب خوب داره راجب پایتون
و مخصوصا تایپینگ 👌
برای چیزای مربوط به تایپینگ:
https://adamj.eu/tech/tag/mypy/
برای پایتون به صورت کلی:
https://adamj.eu/tech/tag/python/
یک سر بزنید حتما 👌
@ManiFoldsPython
👍6🙏1
Python BackendHub
دوره pydantic قشنگ میشه کلی تولز نوشت و اکوسیستمشو قوی تر کرد مثلا: - csv parser with type annotation & validation - HTML validator with type annotation - Custom type هایی که به درد بخورن ایده خودتون چیه؟ احتمالا ۲۰۲۴ شه برم سراغش 😁 @ManiFoldsPython
این ایده pydantic رو یادتونه؟
فعلا یک چیز سرپایی نوشتم که csv رو بخونه و یکم کاستوم تایپ اضافه کردم تا بعدا که سرم خلوت تر شد بهش برسم
https://github.com/ManiMozaffar/PydKit
اگه دوست داشتین contribute کنید یا استار بدین
@ManiFoldsPython
فعلا یک چیز سرپایی نوشتم که csv رو بخونه و یکم کاستوم تایپ اضافه کردم تا بعدا که سرم خلوت تر شد بهش برسم
https://github.com/ManiMozaffar/PydKit
اگه دوست داشتین contribute کنید یا استار بدین
@ManiFoldsPython
GitHub
GitHub - ManiMozaffar/PydKit: A kit to enjoy pydantic, even more!
A kit to enjoy pydantic, even more! Contribute to ManiMozaffar/PydKit development by creating an account on GitHub.
👏8
تاحالا شده بخواین سایتی رو کراول کنید ولی زیر پوشش cloudflare باشه؟
یک لایبری دیگه زدم که اینو دور میزنه 😁 و میتونید cloudflare رو راحت کراول کنید.
کاملا in-place هست با لایبری httpx
البته حالت under attack mode اگه فعال شه رو سایت به راحتی نمیشه دورش زد دیگه.
https://github.com/ManiMozaffar/cfcrawler
اگه دوست داشتین contribute کنید یا استار بدین
@ManiFoldsPython
یک لایبری دیگه زدم که اینو دور میزنه 😁 و میتونید cloudflare رو راحت کراول کنید.
کاملا in-place هست با لایبری httpx
البته حالت under attack mode اگه فعال شه رو سایت به راحتی نمیشه دورش زد دیگه.
https://github.com/ManiMozaffar/cfcrawler
اگه دوست داشتین contribute کنید یا استار بدین
@ManiFoldsPython
GitHub
GitHub - ManiMozaffar/cfcrawler: Cloudflare scraper and cralwer written in Async, In-place library for HTTPX. Crawl website that…
Cloudflare scraper and cralwer written in Async, In-place library for HTTPX. Crawl website that has cloudflare enabled, easier than ever! - ManiMozaffar/cfcrawler
🔥19👏5❤1👍1
یک بخشی از تستای همین لایبری:
معمولا تستامو نمیدم ai بنویسه.
دلیلش هم اینه که بهترین کسی که تست مینویسه همون کسیه که کد رو زده. کاره لایبری من تو همین ۳ خط خلاصه میشه و مهم ترین تستمم همینه. حالا ai میرفت ۲۰ تا تست الکی مینوشت که ۱۹ تاش به درد نمیخورد واقعا و maintain کد رو سخت تر میکرد و انعطاف پذیری رو کمتر میکرد.
پ.ن:arg تایپ مرورگر optional هست.
@ManiFoldsPython
معمولا تستامو نمیدم ai بنویسه.
دلیلش هم اینه که بهترین کسی که تست مینویسه همون کسیه که کد رو زده. کاره لایبری من تو همین ۳ خط خلاصه میشه و مهم ترین تستمم همینه. حالا ai میرفت ۲۰ تا تست الکی مینوشت که ۱۹ تاش به درد نمیخورد واقعا و maintain کد رو سخت تر میکرد و انعطاف پذیری رو کمتر میکرد.
پ.ن:arg تایپ مرورگر optional هست.
@ManiFoldsPython
👍13👏1
pydantic چیست؟
به ساده ترین زبون ممکن:
یک دیتاکلسی هست که هم parse میکنه هم validate
مثلا:
چیکار کرد؟
یک شماره که استرینگ بود رو کرد عدد. تو مدلی که تعریف کردی براش.
حالا میتونی ولیدتور براش بنویسی
که اگه num کمتر از ۰ بود error بده(فقط عدد مثبت قبول باشه)
یا میتونی مثلا باهاش enum بسازی.
به قول مهدی:
ابزاریه که بهت اطمینان میده دیتایی که میاد و میره، *دقیقا* چیزیه که میخوای
یکی از بهترین استفاده هایی که میتونید از pydantic کنید تو message broker هست که به عنوان serializer ازش کار بکشین. چون بهتون یک json میده و دقیقا گارانتی میده بهتون که آبجکتو دوباره از رو همون json بسازه.
من تو یکی از بک هام, کلی export import داشتم با csv
با پکیجی که پریروز نوشتم, حالا یک سیستم csv import/export نوشتم که با سلری کار میکنه
یعنی شما میگی من export صورت حسابمو میخوام
از یک کلس جنریک که نوشتم ارث بری میکنید
خواستین مستقیم میفرستین براش
خواستین ذخیره میکنید جایی و اونو براش notification میکنید. دیگه لاجیکش با خودتونه.
۳ تا متودشو اورراید میکنید (لاجیک import و export و تبدیل آبجکت دیتابیس جنگویی به pydantic)
And then call it a day 😎
کدشو به زودی به اشتراک میذارم 🔥🤝 ولی قبلش دوست دارم دعوتتون کنم به اینکه اینو خودتون بنویسید. اگه دوست داشتین بنویسید و تو کامنت بفرستین (به صورت عکس یا markdown کد پایتون تلگرام یا گیت هاب فرقی نمیکنه)
@ManiFoldsPython
به ساده ترین زبون ممکن:
یک دیتاکلسی هست که هم parse میکنه هم validate
مثلا:
class MyModel(BaseModel):
num: int
data = MyModel(num="2")
assert isintance(data.num, int)
چیکار کرد؟
یک شماره که استرینگ بود رو کرد عدد. تو مدلی که تعریف کردی براش.
حالا میتونی ولیدتور براش بنویسی
که اگه num کمتر از ۰ بود error بده(فقط عدد مثبت قبول باشه)
یا میتونی مثلا باهاش enum بسازی.
به قول مهدی:
ابزاریه که بهت اطمینان میده دیتایی که میاد و میره، *دقیقا* چیزیه که میخوای
یکی از بهترین استفاده هایی که میتونید از pydantic کنید تو message broker هست که به عنوان serializer ازش کار بکشین. چون بهتون یک json میده و دقیقا گارانتی میده بهتون که آبجکتو دوباره از رو همون json بسازه.
من تو یکی از بک هام, کلی export import داشتم با csv
با پکیجی که پریروز نوشتم, حالا یک سیستم csv import/export نوشتم که با سلری کار میکنه
یعنی شما میگی من export صورت حسابمو میخوام
از یک کلس جنریک که نوشتم ارث بری میکنید
خواستین مستقیم میفرستین براش
خواستین ذخیره میکنید جایی و اونو براش notification میکنید. دیگه لاجیکش با خودتونه.
۳ تا متودشو اورراید میکنید (لاجیک import و export و تبدیل آبجکت دیتابیس جنگویی به pydantic)
And then call it a day 😎
کدشو به زودی به اشتراک میذارم 🔥🤝 ولی قبلش دوست دارم دعوتتون کنم به اینکه اینو خودتون بنویسید. اگه دوست داشتین بنویسید و تو کامنت بفرستین (به صورت عکس یا markdown کد پایتون تلگرام یا گیت هاب فرقی نمیکنه)
@ManiFoldsPython
❤15👍3🔥2