Sadra Codes
3.54K subscribers
1.01K photos
99 videos
60 files
771 links
Sadra Yahyapour ✌️

Let's dive deeper together. :)

imsadra.me (currently down)
github.com/lnxpy
linkedin.com/in/sadra-yahyapour
x.com/lnxpylnxpy
[email protected]
Download Telegram
Forwarded from Python BackendHub
از pylint استفاده کنید برای اینکه هم گاف هایی که دادین تو کد بهتون نشون بده, مثل استفاده از mutable توی default.
و هم ایرادات کدتون رو براتون تا حدی تحلیل میکنه.
حتی میتونید گیت هاب اکشن هم براش بنویسید و ارور هایی که میخواین رو میتونید ایگنور کنید, مثلا اگه همه توابعتون doc string نداره باید ignore کنید یا داک استرینگ اضافه کنید.
pylint --disable=1,2,3,... --fail-under=9.5 project_root_folder

اینطوری تمام کد های پروژتون رو تحلیل میکنه و ارور هایی که مشخص کردین ایگنور میکنه و بهتون نمره میده. اگه کمتر از 9.5 شدین هم fail و exit code 1 میده بهتون که باعث میشه workflowتون fail بخوره و متوجه شین.
خروجیش رو تو تصویر میتونید ببینید

از flake8 هم غافل نشین ✌️
@ManiFoldsPython
👍4
CodeNaline S2E8 - Mani
torham
کدنالین اپیزود هشتم، مانی 🤩.

این اپیزود رو با مانی از ترکیه رفتیم، مانی ۱۷ سالگی مهاجرت کرده ترکیه، الان ۵ سالی هست که اونجاس، بک‌اند با پایتون کار میکنه، داخل ترکیه یک استارت آپ داره و خلاصه ادم خفنیه =)

این قسمت رو از دست ندیدا🫨

کانال مانی: @ManiFoldsPython

نسخه تصویری در یوتیوب : https://youtu.be/4yUVIAhFzS8

نسخه صوتی در کست‌باکس



🗿 @CodeNaline
🧠 @TorhamDevCH
👍4🤡1
When to MANIFEST.in
داشتم این کدبیس (پایتون) رو ریویو می‌کردم، یه مشکل اساسی توش دیدم.. ببینم شما متوجهش می‌شید یا نه..

https://github.com/mindsdb/mindsdb_python_sdk

سعی کنید بخش PR ها رو نگاه نکنید. بعنوان یه راهنمایی کوچیک، مشکلش دم‌دستیه. باگ نیست و مشکل ساختاریه.
👍4
Sadra Codes
داشتم این کدبیس (پایتون) رو ریویو می‌کردم، یه مشکل اساسی توش دیدم.. ببینم شما متوجهش می‌شید یا نه.. https://github.com/mindsdb/mindsdb_python_sdk سعی کنید بخش PR ها رو نگاه نکنید. بعنوان یه راهنمایی کوچیک، مشکلش دم‌دستیه. باگ نیست و مشکل ساختاریه.
فرض کنید یه فایل دارید به اسم config.py که توی یه پکیجه و درش یه سری CONSTANT قرار داره. (اینجا منظورم از پکیج، دایرکتوری‌ای هست که حاوی __init__.py باشه)

از main.py باید اون مقادیر رو بخونید. چیکار می‌کنید..؟!

.
|___ pkg
| |___ __init__.py
| |___ config.py
|
|___ main.py

خب راحت میشه نوشت:

from pkg.config import ...

وقتی که پایتون میخواد از جایی، چیزی رو ایمپورت کنه، اولین کاری که میکنه میاد فایل اینیتش رو ران می‌کنه. یعنی اولین اتفاقی که میوفته اینه که فایل pkg.__init__.py ران میشه. بعد میاد و ایمپورت می‌کنه.

من شخصا پیشنهادم اینه که __init__ فایل ها رو خالی نگه ‌دارید مگه اینکه بخواید ثباتی چیزی تعریف کنید که از این بابت مشکلی نداره.
👍52
Sadra Codes
داشتم این کدبیس (پایتون) رو ریویو می‌کردم، یه مشکل اساسی توش دیدم.. ببینم شما متوجهش می‌شید یا نه.. https://github.com/mindsdb/mindsdb_python_sdk سعی کنید بخش PR ها رو نگاه نکنید. بعنوان یه راهنمایی کوچیک، مشکلش دم‌دستیه. باگ نیست و مشکل ساختاریه.
حالا مشکل چی بود؟ مشکل اینه که این دوستمون اومده توی __init__ فایل، یه کلس تعریف کرده که داره ازش توی تست‌هاش استفاده می‌کنه. از اونجایی که نمیتونه دیگه به روش پایتونیک ایمپورت کنه اون CONST ها رو، اومده بود اینجوری از یه فایل یه سری مقادیر خونده بود و توی متغیر ریخته بود:

about = dict()
with open('pkg/config.py') as f:
exec(f.read(), about)

قشنگ زشت‌ترین کاری که می‌تونست انجام بده. 😁
👍7💔1
Sadra Codes
حالا مشکل چی بود؟ مشکل اینه که این دوستمون اومده توی __init__ فایل، یه کلس تعریف کرده که داره ازش توی تست‌هاش استفاده می‌کنه. از اونجایی که نمیتونه دیگه به روش پایتونیک ایمپورت کنه اون CONST ها رو، اومده بود اینجوری از یه فایل یه سری مقادیر خونده بود و توی…
حالا راه حل چیه؟ چرا باید اجزایی که واسه تست احتیاج داری، اینجوری پکیج رو نابود کنه و ساختار رو بهم بریزه؟! 🥸

از قدیم گفتن، حساب تست از پروژه جداس. راحت میتونست بجای اینکه کلس رو توی اینیت تعریف کنه، توی یه فایلی توی tests قرارش بده. (بهترش اینه که اجزایی که تست‌هات احتیاج دارن که ازشون استفاده کنن واسه ران شدن، توی یه پکیج دیگه به اسم testing قرار بدی)

more -> https://github.com/mindsdb/mindsdb_python_sdk/pull/54
👍7
درضمن، نذارید فایل‌های الکی مثل */docs یا */*testing یا */*tests توی Source Distributionتون قرار بگیرن. عملا کاربری که میخواد از فانکشن‌هاتون استفاده کنه باید فایل‌هایی رو دانلود کنه که اصلا بهشون احتیاج نداره.
👍3
Forwarded from Python BackendHub
یک productivity principle ای داریم که تو زندگی روزمره خیلی به درد میخوره :)

Eliminate, Simplify, Automate, and Delegate


Eliminate:
وظایفی که اهمیت نداره یا بی ارزش هست رو شناسایی و حذف کنی. این کار باعث میشه بیشتر تمرکزت رو بذاری رو اون چیزی که مهمه

Simplify:
وظایف رو به بخش های کوچیک تر تبدیل کن, و ساده ترشون کن تا راحت تر مدیریت بشن. هرچی وظایف ها پیچیدگی کمتری داشته باشن, انجام دادنشون هم به همون نسبت لذت بخش تره.

Automate:
اگه کاری رو بیشتر از 3 بار داری تکرار میکنی, احتمالا داری اشتباه انجامش میدی. سعی کن خودکار ترش کنی که کمتر تکرار کنی و وقتت کمتر هدر بره.

Delegate
اگه وظیفه ای داری که خارج از مهارت شما هست, و شخص دیگری میتونه بهتر از شما و موثر تر از شما انجام بده, پس وظیفه رو باید به اون بسپاری.


منم سعی میکنم تو روتین روزانم اینو رعایت کنم و تقریبا موفق بودم
@ManiFoldsPython
👍20
Sadra Codes
محمدرضا (یکی از بچه ها) یه تقویم خفن نوشته واسه دسکتاپ گنوم که میتونید ازش استفاده کنید. :) محمدرضامون: @IamRezaMousavi https://extensions.gnome.org/extension/5814/persian-calendar/
ورژن ۵ام اکستنشن تقویم فارسی دقیقا عین تقویم گنوم
* اضافه شدن قابلیت فرمت کردن نمایش تقویم در پنل و دارای قابلیت اضافه کردن متن دلخواه به آن
* اضافه شدن قابلیت تغییر مکان تقویم در پنل گنوم
* افزایش سرعت، کاهش مصرف منابع و ...
* اضافه شدن فایل pkgbuil برای کاربران آرچ لینوکس
* قابلیت تغییر اعداد به ارقام فارسی یا انگلیسی
* ساپورت کردن گنوم ۴۴
* رفع باگ‌های فراوان
* دانلود بیش از ۲۰۰ بار از سایت‌های مختلف

باتشکر از همه کسانی که دانلود و استفاده کردن
و تشکر میکنم از کسانی که استفاده میکنند و اشکالات رو در گیت‌هاب گزارش میدن

نصب از سایت گنوم:
extensions.gnome.org/extension/5814/persian-calendar/

گیت‌هاب پروژه:
github.com/iamRezaMousavi/persian-gnome-calendar-extension
👍5
دوستان اگه پروژه اوپن‌سورسی در دست توسعه دارید و فعال هست، می‌تونید همینجا کامنت کنید. شخصا خوشحال می‌شم بررسیشون کنم و با بقیه به اشتراک بذارم. ❤️🫶
11
کد کثیف باعث میشه راندمان کل تیم بیاد پایین. معمولا دلیوری ها داره توسط برنامه‌نویس ها اتفاق میوفته. اگه سرعت برنامه نویس توی توسعه کم باشه نتیجش میشه Delivery دیرهنگام. دلیوری دیر یا بدموقع هم برابره با لَنگ بودن کل تیم تا شمای دولوپر فیچر رو پوش کنی بره بالا.

حالا چی باعث میشه دولوپر سرعتش کم شه؟ کثیفی کد.

اگه دقت کرده باشی، معمولا پروژه های نرم افزاری خیلی سریع و پرشتاب شروع به توسعه میکنن. هر یکی دو هفته، یه فیچر رلیز میشه ولی رفته به رفته این گپ بین رلیزها بیشتر و بیشتر میشه. واسه یه فیکس که به ظاهر نهایتا ۲ روز فرجه احتیاجه، کدبیس به قدری ترکیده که باید ۱ ماه وقت بذاری و مطمئن شی فیکس مشکلی نداره و بعد پوش کنی.

این طرز تفکر که سریع فیچر رو رلیز کنم یا سریع کامیت بزنم فیچرو تحویل بدم باعث میشه کد کثیف شه. به قولا میگن:

The only way to go fast is to go well.

بلافاصله که کدتون کار کرد و تست هاشو نوشتید، کلینش کنید. این تمیز کردن کد رو بذارید جزوی از چک لیست CI ذهنتون. :)
👍30
Holy.. 😂
😁18🤯3👍1
کد تمیز کدیه که موقع ریویو کردنش، هی با خودت نگی X چی بود و دوباره مجبور شی چند لاین بری بالاتر و دوباره از اونجا مرورش کنی..
👍18
There is a bug in the report bug page.. it doesn't let me submit my report.
🤡8🤣6🗿3👌1
یکی از سنجه‌های بلوغ افراد، واکنش‌شون به فهمیدن اشتباهات‌شونه.

خشم معمولاً پاسخ ناخودآگاه انسان به تهدید (برای بقا) هست. و کسی که خیلی خشمگین می‌شه معمولاً ثبات و امنیت پایینی داره، مدام می‌ترسه حذف بشه، و نتیجتاً پیش‌دستانه با تمام قوا می‌جنگه که برای یک اشتباه ساده کل ذاتش زیر سؤال نره.

شرم معمولاً بازتاب محکوم‌شدن به اهمال در یک مسئولیته. و کسی که خیلی شرمنده می‌شه معمولاً مدام خودش رو مورد قضاوت و سرزنش می‌بینه و دائم نگران اینه که توی یه دادگاه (ولو و مخصوصاً تو سر خودش) متهم شناخته بشه، اونم با حکم سنگین و بدون فرصت دفاع.

اضطراب معمولاً از پیش‌بینی، انتظار، و نگرانی برای عواقب شدید اتفاقات در آینده می‌یاد. و کسی که خیلی مضطرب می‌شه، تمام تلاشش رو داره روی این می‌ذاره که خودش رو برای بدترین نتیجه، ولو تخیلی و بسیار نامحتمل، آماده کنه تا موقع وقوعش کمتر آسیب ببینه.

غم معمولاً از ترس تنهایی و انزوا میاد. و کسی که بلافاصله خیلی غمگین می‌شه معمولاً همه‌ش می‌ترسه به‌خاطر پرفکت‌نبودن مطرود شه.

راه بالغانه ولی اینه که بپذیریم «من پرفکت نیستم. من یک انسانم. من توی مسیرم هستم، دارم تلاش‌م رو می‌کنم از شکست‌ها و پیروزی‌هام یاد بگیرم، و خوشحالم که دارم رشد می‌کنم!»

[Loc0m0]
👍30
پروفایل کردن کد مبحث جالب و مهمیه. بهتون نشون میده کدوم بخش از کدبیس، ران تایم بیشتری داره و یه سیستم مانیتورینگ کدبیسه بطور خلاصه. توی پایتون از profile و cProfile استفاده میشه.

مقاله جدیدم که جدیدا توی تورینگ پابلیش شده درباره همین موضوع هست. قراره یه مقدمه از cProfile داشته باشیم در پایتون.

امیدوارم لذت ببرید. :) ❤️

https://www.turing.com/kb/python-code-with-cprofile
521🐳1
Sadra Codes
هی (Hey) رلیز شد! 😎 هی یه ابزار کامندلاینه اوپن‌سورسه که به ChatGPT ورژن‌های (3, 4, 3.5turtbo, davinci) وصل میشه. سرویس پیشنهادیش MindsDB هست که بهتون یه سرویس فری پلن استفاده از ChatGPT میده. فقط کافیه توی MindsDB یه اکانت رایگان بسازید، هی رو نصب کنید،…
پروژه Hey در Hashnode X MindsDB Hackathon دوم شد! ❤️

جایزه‌ای که به Hey تعلق گرفت: 1000$ 💵

یه توضیح کوچیک..
هی یه پکیج پایتونه که یه AI Pair Programming Friend مینیمال هست و توی CLI می‌تونه خیلی بهتون راهنمایی و Code Example بده. همچنین میتونید بهش فایل بعنوان ورودی بدید و ازش درخواست‌هایی مثل ریفکتور کردن یا Simplify کردن یا توضیح ازش بخواید.

پروژه‌ها رو طبق پارامترها و معیارهای زیر بررسی کردن:
- Product Thinking
- UI UX
- Code (Quality, Clean Code,...)
- Article Quality

آنچنان بک خفن و سنگینی نداره و اگه کدبیسش رو مرور کنید، میتونه دید خوبی نسبت به ساختار یه پکیج پایتونی بهتون بده هرچند همیشه جای بهتر شدن و پیشرفت هست. :)

لینک‌ها..
GitHub: github.com/lnxpy/hey
——————————————
PyPI: pypi.org/project/hey-mindsdb/
——————————————
Article: imsadra.me/introducing-hey-your-ai-powered-pair-programming-friend

خوشحال میشم شما هم کانتریبیوت کنید و با هم توسعش بدیم. دمتون گرم.
116🏆3👍1