Python Hints – Telegram
Python Hints
8.97K subscribers
186 photos
11 videos
10 files
152 links
Python tips and tricks
The Good, Bad and the Ugly

توی این کانال فقط قرار هست در مورد core python صحبت کنیم.

این کانال یک بلاگ شخصی هست و پیرامون نظرات و چیزهایی که توی بیش از ۱۰ سال کد زدن یاد گرفتم (فقط برای کمک به دوستان تازه‌کار)

Admin: @Abbasi_ai
Download Telegram
#خارج_از_بحث

این پست راجب git هست و استخدام؛ می‌خواستم توی رندرنج بنوسیم ولی چون مدیرایی که می‌شناسم بیشتر توی این کانال هستند گفتم اینجا بذارم.
مدیرعامل یک شرکتی باهام تماس گرفت (از طریق یک واسط) مشکلش این بود :
ما یک نیروی Senior استخدام کردیم؛ چون توی شرایط بدی بودیم خیلی هم سریع پروسه استخدام رو پیش بردیم اما الان به یک سری مشکلات خوردیم:
۱- نیروی سنیور پرفورمنس خیلی پایینی داره؛ درحالی که وقتی رزومه‌ای که برامون فرستاد رو بررسی کردیم یک چندتا پروژه روی گیت‌هاب داشت که بسیار شبیه کارهایی بود که ما داریم می‌کنیم (منظورش این بود مطالب باید براش تکراری باشه).
۲- نیروهای دیگه شرکت که بیشتر سطح متوسط و مقدماتی هستند همه از نیروی سنیور (لید تیم هم هست به نوعی) ناراضی هستند و حتی سواد فنی‌اش رو هم قبول ندارند.
درنهایت وقتی هم که به خودش می‌گم؛ می‌گه نیروها دانش کمی دارند؛ حرفای منو متوجه نمی‌شوند و همین باعث شده پرفورمنس خودمم بیاد پایین چون همش باید دنبال یک راهکاری برای توضیح دادن به اینا باشم.

قرارشد من بعنوان مشاور یا کسی که قراره CTO تیم بشه با نیروها صحبت کنم؛ مشکل رو پیدا کنم اگر راه حل داشت ارائه بدم اگر باید نیروها اخراج می‌شدند و نیروی جدید استخدام می‌شد بگم. جز مدیرعامل شرکت کسی این موضوع رو نمی‌دونست.

یک مقدار کدها رو خوندم بعد با نیروی مثلا سنیور قرار شد چندتا جلسه بذاریم (بحث این بود که ایشون توی جایگاه خودش بمونه و من وارد بشم چون ۳ تا تیم با موضوعات دیگه قرار هست وارد بشه)
همون جلسه اول من بهش مشکوک شدم؛ باور کنید یا نه آدم ناشی و اصطلاحات و لغت حفظ کرده از آدم کار بلد و توی کار تست کرده توی ۱۰-۲۰ دقیقه صحبت فنی به راحتی تفکیک میشه مخصوصا اینجا که یک پروژه واقعی درجریان هست.
با این حال من ۲ تا جلسه دیگه هم با ایشون شرکت کردم.

درنهایت متوجه شدم که کلا دلیل استخدام ایشون پروژه‌های github بوده؛ دوتا شک داشتم خرید ساعت کاری و سفارش به شخص که با اکانت ایشون کامیت بزنه (خودم یک زمانی برای پچه‌های دکتری و ... خارج از ایران اینکار رو می‌کردم. قبلا دربارش گفتم ولی برای کسانی اینکار رو می‌کردم که باسواد بودند و با شرکت‌های خوبی کار می‌کردند و مشکل این بود زمان کافی برای کلاس رفتن و حل تمرین کلاس نداشتند منم واسه یادگیری پول می‌گرفتم.)
شک دومم که بعد از بررسی یک سری پروژه‌های گیت‌هاب بیشتر شد؛ این بود که پروژه‌های آدمای دیگه رو گرفته و لاگ رو تغییر داده.


همین هم بود؛ خلاصه اینکه:
فکر نکنید لاگ git تا ابد ثابت هست؛ همه کاری میشه باهاش کرد.
تغییر ساعت و جزئیات commit؛ تغییر اطلاعات
تغییر اینکه کی commit زده
commit message, branch, merge info, ...

من این موارد رو نشون دادم و اشتباه اون آدم رو هم توی git-log پیدا کردم (یکجا دولوپر اصلی توی یکی از اطلاعات commit خیلی قدیمی یک ایمیل گذاشته بود و ...)
خلاصه که این موضوع رفته برای شکایت یا توافق؛ ولی حواستون باشه git, ... به تنهایی ارزشی نداره دانش شخص و سوادش برای کاری که شما ازش می‌خواید خیلی خیلی مهم تر هست.

یاد داستان اون شخص افتادم که توی گوگل بود؛ به زور کردنش مدیر یک بخش فنی؛ بنده خدا زبونش می‌گرفت نمی‌تونست بگه توی گوگل آبدارچی بوده! چون زودی می‌پریدن تو حرفش 😂
👍578
شرکت Meta در ادامه پروژه‌های OpenSource بالاخره پروژه Pyrefly رو توی نسخه beta منتشر کرد
vscode, pycharm, neovim, ...
مواردی هستند که Extension براشون منتشر شده.

این پروژه یک Language Server, Type checker هست روی پایتون.
چرا Meta اینکار رو کرده ؟
خودشون اعلام کردند مشکل از کدبیس بزرگ Instagram شروع شده تا جایی که انقدر این کد بزرگ بوده که navigate, code complete و ... یا زمان زیادی می‌برده یا بخوبی انجام نمی‌شده برای همین Pyrefly رو توسعه دادند که اولین مشتریش هم تیم Instagram هست و بصورت هفتگی هم آپدیت خواهد شد.
جالبترین نکته اینکه؛ این پروژه هم با Rust نوشته شده و به همین دلیل هم هست که سرعت خیلی بالایی داره.

مهمترین بخش آپدیت Beta بنظرم پشتیبانی از Pydantic, Django هست؛ بخصوص برای Django که کلی کانفیگ نیاز بود توی ابزارهای جایگزین.

درنهایت:
شخصا روی تنظیمات؛ neovim بعد از استیبل شدن اضافه خواهم کرد (اگر خوب پیش بره) و درحال حاضر روی vscode فقط تستش می‌کنم.

Pyrefly Github
👍272
RandRng
Message
توی این کانال دارم از تجربیاتم روی Home Lab ایجاد کردن می‌نویسم؛ البته من هدفم راه‌اندازی سرویس بکاپ عکس و سرویس فیلم و ... نیست. هدف اصلیم Distributed Programming بوده و هست ولی کنارش دارم کارهای دیگه هم می‌کنم
مثلا تست کانفیگ‌های مختلف برای بکند؛ kafka, rabbitmq, ....

اگر دوست داشتید می‌تونید اونجا این مطالب رو به مرور زمان دنبال کنید ولی قبلش Info اون کانال رو بخونید.
23👍7
RandRng
Message
این پست خارج از بحث کانال هست ولی چون این اواخر خیلی بهم پیام داده شده
ترجیح دادم بصورت عمومی توی کانال اعلام کنم!

که حداقل خودتون حواستون رو جمع کنید!
39👍12👏3
آقای مهندس عباسی،
در گذشت والده ی محترمه اتون رو تسلیت عرض میکنیم 🖤

دوستان ایشون در حال حاضر قادر به پاسخگویی پیام های شما در پیوی اشون نیستند

موقتا اگر سوالی هست بنده در خدمت دوستان هستم

@majid_aghamohamad
276❤‍🔥2🔥2👏2
RandRng
Message
نمی‌دونم چرا ولی از هفته قبل تعداد پیام‌های یادگیری بکند برام خیلی خیلی زیاد شده.

تا قبل از این همگی هوش مصنوعی بود.

توقع دارم بعد از این مرحله Rust باشه و System Programming (خدا کنه خودم به اندازه کافی تجربه کنم تا اون موقع)

حتماً پیام قبل و بعد این roadmap رو توی اون کانال بخونید.
شرایط رو درک کنید و context توی ذهنتون باشه و بعد شروع به دنبال کردن این roadmap کنید.

پینوشت:
مواردی مثل SSO, Event driven, ... هستند که یک سنیور باید بلد باشه اما ازونجا که مفاهیم نقشه‌راه بالا باعث میشه هرکسی هر زمان که لازم داشت بتونه به راحتی اون‌ها رو یاد بگیره دیگه اینجا گفته نشده


زمانبندی برای کسی که روزی ۴ ساعت بتونه وقت بذاره توقع دارم توی ۶ ماه این موضوعات رو تموم کنه!

حداکثر ۲ ساعت مطالعه،
حداقل ۲ ساعت توسعه کد.
در طول هفته (شنبه تا ۵ شنبه)
جمعه هم ۱ ساعت، برای code review (بخش‌هایی که قبلتر کد زدید)
42👍9
خیلی درده، وقتی هیچی واسه از دست دادن نداری.
247👍8
ی جمله‌ی معروفی هست:
«در جنگ‌ها، این سربازان‌اند که کشته می‌شوند، نه رهبران.»


در اعتراض به دزدی، اختلاس، ناکارآمدی و فساد و ... هم

دزد و مختلس و مسئولِ ناکارآمد در آرامش‌اند،
اما
این معترض و محافظ‌اند که روبه‌روی هم وایساده و همدیگر را می‌کشند.
معترض می‌دونه برای چی اعتراض می‌کند.
اما آقای محافظ…
تو هم می‌دانی از چی داری دفاع می‌کنی؟
128👍32
#Quick

لطفاً autoflush=False رو از داخل کدهای sqlalchemy بردارید.

مشکل ویدئوهای آموزش اینه‌ها؛ طرف نمی‌دونه برای چی هست چون زیاد دیده می‌ذاره بدون توضیح.
شماهم بدون پرسیدن استفاده می‌کنید
بعد می‌ریم توی پروداکشن باگ می‌خوریم

چون کلی اطلاعات درمورد flush رو ندارید.

autoflush=True

اگر مشکل پرفورمنس خوردید که ۹۹.۹۹۹٪ شما و پروژه‌هاتون نخواهد خورد.
اونوقت سرچ که بکنید با دلیل می‌دونید تحت چه شرایطی باید autoflush=False باشه.
👍239
Python Hints
#Quick لطفاً autoflush=False رو از داخل کدهای sqlalchemy بردارید. مشکل ویدئوهای آموزش اینه‌ها؛ طرف نمی‌دونه برای چی هست چون زیاد دیده می‌ذاره بدون توضیح. شماهم بدون پرسیدن استفاده می‌کنید بعد می‌ریم توی پروداکشن باگ می‌خوریم چون کلی اطلاعات درمورد flush…
چون پرسیدید با
autocommit
چیکار کنیم؛ تا جایی که یادم هست کلا
autocommit=True
از sqlalchemy 2.x حذف شده یا باید
with session.begin():
pass

استفاده بشه یا
session.commit()

اگر روی نسخه قدیمی‌تر هستید این روFalse نگهدارید:
autocommit=False


ولی باید بخونید؛ ببینید چرا این تنظیمات رو لازم دارید.
👍106
کانال randrng انقدر ریپورت شد که بسته شد 😂

چرا ؟!؟

چون بورس تهران و بانک کشاورزی شمارو به فراخوان و اعتراض دعوت کردند.

درحال پیگیری با تلگرام هستم.

پینوشت:
مشکل mass report بوده مثل اینکه.
درحال پیگیری پروسه هستم، چون هیچکدوم از قوانین تلگرام رو نقض نکردم!
اگر برگشت؛ درجریان خواهید بود.


آقا به من چه که اکانت‌های

بانک کشاورزی
معاملات بورس تهران


روی لینکدین فراخوان تجمع میدند ؟
من فقط دیدم اکانت رسمی هست گذاشتم، ببینم شما هم دیدید ؟
152👍13
ممکنه این کانال @pyhints و کانال @pytens و همچنین @pyrust هم ریپورت بشه.

چون با mass report طرف هستیم.
کانال‌ها هم که عمومی هست و برای ریپورت کردن نیازی به عضو شدن نیست.

برنامه‌ای برای جایگزین کردن کانال‌ها بصورت عمومی ندارم؛ اگر فکر می‌کنند با ریپورت کردن کانال‌های من ۴۷ سال دزدی و اختلاس و بی‌کفایتی و ... حل می‌شه
و
مشکلات از بین میره؛ حتماً اینکار رو بکنند.

شاید تلگرام باید یک راهکاری هم می‌ذاشت که کاربرهای کانال هم بتونند نظر یا حمایت شون رو اعلام کنند، بخصوص به وقت mass report با این همه گفتم زودتر اعلام کپینوش


پی‌نوشت‌:
اگر این اتفاق افتاد برای دوستان نزدیک لینک خصوصی خواهم فرستاد.
مثل روزهای اول @pytens و البته خصوصی خواهد بود.
137👍11
تلگرام میگه کانال حذف نشده و فقط موقت از دسترس خارج شده

اما باید پروسه بررسی محتوا بگذره تا پاسخ نهایی دریافت بشه.
108👍24