Telegram Group Search
Forwarded from یادگیری ماشین با چاشنی صنعت (Abolfazl 🤘)
ساختمان داده و الگوریتم به دردمون نمیخوره. چرا بخونیم این مطالب قدیمی رو؟

این رو شاید از خیلیا شنیده باشین. اکثرا کسایین که صرفا از ابزار آماده استفاده میکنن و کد میزنن تا یه چیزی آماده شه.
واقعیت بخواین، بیشتر کسایی که تو حوزه IT فعالیت میکنن همینو میگن. آخه کجا نیازه که یه مهندس هوش مصنوعی الگوریتم و ریاضیات بدونه؟ کجا نیازه که یه BI developer، ساختمان داده و تحلیل الگوریتم بدونه؟(شوخیه صرفا)

مشکل جایی شروع میشه که بسیاری از کسب و کارها نیازمند یک اپراتور هستن تا یک مهندس نرم افزار.
الان خیلی از پوزیشن هایی که من میبینم اپراتور میخوان. البته پوزیشن های اکادمیک طبیعتا مهندس میخوان به جای اپراتور.

خلاصه که اگر میخواین واقعا پیشرفت کنین تو کارتون، یه سری چیزایی که بیسیک هستن رو باید بدونین. فرق نمیکنه تو حیطه BI کار میکنید یا AI یا توسعه نرم افزار.

خب میریم برای این که بگیم چیزای بیسیک چیا هستن؟

شماره اول، زبان C: فرق نمیکنه که چه زبانی رو دوست دارین. ابتدا باید الفبای کامپیوتر و برنامه نویسی رو با زبانی مثل C تمرین کنین و مفاهیم رو یاد بگیرین. بعد از این که مفاهیم ابتدایی رو با C یاد گرفتین میتونین سراغ هر زبانی دیگه برین.

شماره دوم، اصول شی گرایی: شی گرایی یک سری اصوله و با توجه بر دنیای واقعی چیده شده. سعی کنید اصول شی گرایی رو اول درک کنید و بعد با یک زبانی که شی گرایی رو گسترده استفاده میکنه شروع به تمرین کنید ( مثلا جاوا یا C++). ممکنه در آینده عمده کار شما با یک زبان غیر شی گرا باشه اما یادگیری شی گرایی برای هر مهندس نرم افزاری واجبه.

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

شماره چهارم، الگوریتم: در حقیقت مکمل ساختمان داده محسوب میشه و بعد از ساختمان داده، مهمترین درس برای هر مهندس نرم افزاره. مباحث ساختمان داده و الگوریتم به اندازه ای مهم هستن که قابل بیان نیستن. فقط باید در کالبد شکافی یک ابزار ( مثلا یک پایگاه داده )کارتون بهشون بخوره که متوجه بشین چقدر دیدتون رو افزایش میدن نسبت به انتخاب ابزار یا تکنولوژی.

شماره پنجم، دیتابیس و SQL: طبیعتا به عنوان یک مهندس نرم افزار، یکی از چالش های شما میتونه ذخیره و بازیابی اطلاعات باشه. خصوصا اگر تو زمینه های هوش مصنوعی یا حوزه های مرتبط با داده کار میکنید امکان نداره که دیتابیس نیازتون نشه. گذشته از اون باید با روش های مختلف طراحی پایگاه داده و بهینه سازی کوئری ها نیز اشنا باشید.


مهمترین اصول بیسیک این موارد هستن. موارد دیگه ای هم مثل طراحی کامپایلر یا مهندسی نرم افزار هستن که در قدم های بعدی اهمیت پیدا میکنن و بسته به حیطه کاری نیازتون بهشون میفته.
Audio
گفتگو با علی بیگدلی
@BlackFox01
Backend Developer ( AI, IOT, Python, Django, FastAPI )
سر کلاس تجارت الکترونیک و امنیت شبکه
هنرستان شهید دبیریان، محله نازی آباد تهران

سوالهایی که از مهندس بیگدلی پرسیدم:
-به نظر شما هنرستان خوبه یا دبیرستان؟
-چه شرکت هایی کار کردید و چه سمتی داشتید؟
-توی حوزه کار خودتون بزرگترین دستاورد یا خفن ترین کاری که کردید چی بوده؟
-آیا مدرسه، دانشگاه میتونه به برنامه نویس خوب شدن کمک کنه؟
-اگر نسخه ۱۸ ساله خودشون رو ملاقات میکردن چه توصیه هایی بهشون میکردن و بهش چیا میگفتن
-اگه تو این دوره هم سن ما بودن چه شاخه ای رو برای ادامه تحصیل در دانشگاه انتخاب میکردن که بازار کار خوبی هم داشته باشه
-پایتون آینده ش چطوره
-کارش چطوره
-هوش مصنوعی داستانش چیه
-چقدر هوش مصنوعی بلد باشیم کافیه
-توی دانشگاه به این رشته چیا یاد میدن
-میشه بدون دانشگاه رفتن هوش مصنوعی یاد گرفت؟
-چه ابزار یا تکنولوژی هایی لازمه فارغ از زبان برنامه نویسی بلد باشیم
-اینترنت اشیا چیه؟
-رشته تحصیلی دبیرستان تجربی هست به نظر شما اگه کامپیوتر بودید پیشرفت بهتری داشتید؟

لینک ویدئو:
در حال آپلود در تلگرام، آپارات و یوتیوب
Media is too big
VIEW IN TELEGRAM
گفتگو با علی بیگدلی
@BlackFox01
Backend Developer ( AI, IOT, Python, Django, FastAPI )
سر کلاس تجارت الکترونیک و امنیت شبکه
هنرستان شهید دبیریان، محله نازی آباد تهران

سوالهایی که از مهندس بیگدلی پرسیدم:
-به نظر شما هنرستان خوبه یا دبیرستان؟
-چه شرکت هایی کار کردید و چه سمتی داشتید؟
-توی حوزه کار خودتون بزرگترین دستاورد یا خفن ترین کاری که کردید چی بوده؟
-آیا مدرسه، دانشگاه میتونه به برنامه نویس خوب شدن کمک کنه؟
-اگر نسخه ۱۸ ساله خودشون رو ملاقات میکردن چه توصیه هایی بهشون میکردن و بهش چیا میگفتن
-پایتون آینده ش چطوره
-چقدر هوش مصنوعی بلد باشیم کافیه
-توی دانشگاه به این رشته چیا یاد میدن
-میشه بدون دانشگاه رفتن هوش مصنوعی یاد گرفت؟
-چه ابزار یا تکنولوژی هایی لازمه فارغ از زبان برنامه نویسی بلد باشیم
-اینترنت اشیا چیه؟
-رشته تحصیلی دبیرستان تجربی هست به نظر شما اگه کامپیوتر بودید پیشرفت بهتری داشتید؟
و...

لینک آپارات:
https://www.aparat.com/v/fvfn9f9
لینک یوتیوب:
https://youtu.be/6Sc6E-H1hI4
لینک ویس:
https://www.tg-me.com/telegram/com.djangolearn_ir/995
Forwarded from Python Hints
این از بحث گروه هست :
خلاصه سوال این بود که؛ چطور ورژن پایتون رو انتخاب کنیم (ی صحبت هم این بود که ۴ تا ورژن قبل از آخرین نسخه برای اینکه پایدارتر هست) :

۱- اولین مورد End of Life هست؛ ۴ نسخه قبل از آخرین Stable Release اطلا و ابدا منطقی نیست و کاملا هم اشتباه هست:
Branch  Schedule  End of life
3.13 PEP 719 2029-10
3.12 PEP 693 2028-10
3.11 PEP 664 2027-10
3.10 PEP 619 2026-10

حتی در حال حاضر 3.9 حدود ۸ ماه دیگه و 3.8 حدود ۴ ماه دیگه پشتیبانی ازشون تموم میشه یعنی اگر باگ - مورد امنیتی یا چیزی بخوره خودتونید و خودتون.
اگر زمان توسعه یک پروژه رو ۶ ماه درنظر بگیریم حتی 3.10 هم دیگه ریسک هست (درحال حاضر پروژه‌هام از ۳ ماه قبل روی 3.12 استارت خوردن)

۲- توی مورد قبلی هم گفتم حواستون به Stable Release باشه؛ اگر یک نسخه‌ای روی بخش Stable منتشر شده باید آماده باشید بهش مهاجرت کنید؛ البته چون پشتیبانی توی پایتون ۴-۵ ساله هست؛ می‌تونید کمی صبر کنید ۱ سال و بعد مهاجرت کنید روی نسخه جدید (اینم بخاطر پکیج‌ها می‌گم)

۳- مهمترین نکته؛ پکیج‌هایی هستند که استفاده می‌کنید؛ هرکدوم یک compatibility list دارند مثلا برای Django 4.2.19 محدودیت روی ورژن بالاتر نذاشته :
Requires: Python >=3.8

ولی بعضی پکیج‌ها هستند که دارند برای مثال اگر اینطور باشه یعنی پایتون 3.13 پشتیبانی نمی‌شه هنوز.
Requires: Python 3.8, 3.9, 3.10, 3.11, 3.12


یا خود Django 5.1.6:
Requires: Python >=3.10


۴- به تیم هم بستگی داره؛ اینکه بتونه از تغییراتی که توی ورژن‌های جدیدتر اومده استفاده کنه و باهاشون آشنا باشه.

این موارد حداقل چیزهایی هست که قبل از انتخاب ورژن پایتون پروژه باید درنظر بگیرید.
Forwarded from Python Hints
از بحث گروه :
سورس کد رو چطوری بخونیم ؟

سورس کد خوندن باید از نقطه شروع باشه؛ پروژه‌ای که میخواید سورس کدش رو بخونید باید مطمئن بشید استانداردها رو رعایت کرده حداقل توی شروع پیشنهاد می‌کنم به تعداد fork, star, ... پروژه نگاه کنید و قبل از خوندنش هم بهتره کمی با استانداردها آشنا باشید.

همیشه سورس کد خوندن رو از پروژه‌ای استفاده کنید که توی زمینه کاری خودتون یا توی مباحث مورد علاقه خودتون هست.

مثلا برای Django چندتا مورد داریم؛ Baserow جزو مواردی هست که خوب نوشته شده و یک بیزینس فعال هم هست که open source هم کردند.

برای خوندن هم دو حالت داره :
۱- دنبال یک مدل استانداردسازی برای یک چیز خاص هستید و فقط همون بحث رو میخونید.
مثلا من اگر بخوام ببینم چطوری swagger این پروژه نوشته شده اول وارد requirements اش می‌شم و میگردم ببینم از کدوم پکیج استفاده کرده بعد میرم روی Endpointها یا .... ببینم این موارد رو با چه استانداردی نوشته و کجاها گذاشته.

۲- هدف خاصی ندارم جز یادگیری استاندارد‌ها؛ در اینصورت یک نقطه شروع رو برای خودم پیدا می‌کنم و از اون بعنوان سر نخ استفاده می‌کنم.
شخصا Integration test ها اولین چیزی هست که میرم سراغش؛ اگر نبود logic هر بخش رو از داکیومنت می‌خونم و بخش بخش میرم توی سورس کدها و ...

توی هر دو مورد مهم اینه که قبل از خوندن سورس کد با پکیج‌های اصلی آشنا باشید و بلدشون باشید؛ پکیج جدید هم که می‌بینید که بلدش نیستید؛ اول یک ویدئو گوتاه و سریع از آموزشش ببینید و بعد توی سورس کد به خوندن ادامه بدید.
Forwarded from Arsham's Tech Mastery (Arsham)
تست ستون پروژست!
و همونطور که خونه هایی هم هستن که قدیمی و کاه گلی اند و ستون ندارن، و یه بارون بزنه هم سقفشون میریزه، یا نمیشه به راحتی یا کلا بهشون طبقه اضافه کرد، پروژه هایی هم هستن که تست (ستون) ندارن،‌ و یه فیچر جدید بخوای اضافه کنی تمام فیچر های قبلی میترکه!

زیاد میشنوم که میگن تست به دیباگ کردن کد کمک میکنه، اما این ممکنه یکم گمراه کننده باشه.

این نکته کلیدی فراموش نشه که در خیلی از مدل های تست از جمله unit و integration، ما برای سناریو هایی تست مینویسیم، که سناریو اش رو میدونیم!
در این مدل تست ها، اگه باگی رو با تست دستی نتونیم پیدا کنیم، تست اتومات هیچ کمکی به ما نمیکنه.
پس در واقع با تست اتومات داریم استحکام چیزی که داریم رو تضمین میکنیم.

ولی خب، تو یه سری مدل تست ها مثل e2e و load test هم مجددا سناریو رو میدونیم، با اینحال ممکنه قسمتی از فلو (flow)، مطابق انتظار پیش نره، لود تست که کلا داستان خاص خودشو داره،
ولی تو e2e هم مجددا اگه ایراد پیش‌بینی نشده ای پیدا بشه، احتمالا در نقاط اتصال هست، و e2e هم تو پیدا کردن باگ لاجیکی غیرمنتظره، کمکی به ما نمیکنه.

<--×-->

دلیل مقاومت بعضی تیم ها و بهونه هایی مثل کمبود وقت برای نوشتن تست، شاید به خاطر ناملموس بودن ارزش افزوده تست ها باشه. با اینحال، تضمین کیفیت و صحت کد های قبلی، موضوع مهم و با ارزشیه، که با نوشتن تست اتومات بدست میاد.

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

<--×-->

راجع به دست و پا گیر بودن تست تو فاز های اولیه توسعه، عده ای معتقدن که اگه نیازمندی بیزنس شفاف نباشه، ما هم خود‌ کد و هم تست هاشو باید مدام تغییر بدیم، ولی سوال اصلی اینجاست که چرا نیازمندی بیزنس انقدر باید متغیر (و گنگ) باشه که ورودی و خروجی سیستم بارها، به کل تغییر کنه؟

غیر منطقی به نظر میاد،
اما منم بارها شاهدش بودم!
ولی مسئله اینجا تست نیست،
باید به خیلی قبل ترش نگاه کنیم،
همون جایی که نیازمندی بیزنس داره مشخص میشه.

<--×-->

از خوبی های جانبی تست هم میشه به "مثال بودن" اش اشاره کرد. با فرض دنیای ایده آل، خوندن تست های یه پروژه خیلی ساده تر از خوندن کد خود پروژست، و از رو تست هاش میشه به سادگی فهمید که چیکار میکنه و ورودی و خروجی مورد انتظار سیستم چی هست.
البته خب تو دنیای واقعی و غیر ایده آل، ممکنه یه دولوپر تازه کار مدعی سینیوریتی همین تست هارو فراپیچیده (over complex) کنه.

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

<--×-->

ولی خب در کل نظر شما راجع به تست چیه؟
مزایا؟ معایب؟ پیشنهاد؟ انتقاد؟ به من، به پست، به کانال و... 🙂🙌🏼
Audio
گفتگو با مهندس محمد طاهری
برنامه نویس ارشد فرانت
ایشون سابقه کار برای ایرانسل رو دارن و در حال حاضر در داتین مشغول به کار هستن

سوالاتی که از ایشون پرسیدم:
-دبیرستان بودید یا هنرستان؟ چه رشته ای؟
-چه شرکت هایی کار کردید و چه سمتی داشتید؟
-برای برنامه نویس فرانت شدن چه چیزایی باید بلد باشیم؟
-آیا جاوا اسکریپت رو باید بلد باشیم؟
-آیا باید گرافیک و فتوشاپ و... هم بلد باشیم؟
-میشه بگید ux چیه؟ و آیا اونم کار برنامه نویس فرانته؟
-توی فرانت چه چیزی رو قوی بشیم بهتره؟
-درباره ری اکت و انگولار و... یکم توضیح میدید؟
-کار فرانت سخته یا بکند؟ کدوم پول بیشتری توشه؟
-بوت استرپ خوبه یه تیلویند؟ -اصلا اینارو لازمه یاد بگیریم؟
-آیا جی کوئری دیگه منسوخ شده؟
-چرا بکند کارها سی اس اس بلد نیستن؟
-آیا درسته که کتابخانه های js مثل ری اکت و... توی سئو مشکل دارن؟
-نود جی س برای بکند خوبه؟
--اگر نسخه ۱۸ ساله خودتون رو ملاقات میکردن چه توصیه هایی بهشون میکردن و بهش چیا میگفتید؟
و...

لینک ویدئو در تلگرام:
https://www.tg-me.com/telegram/com.djangolearn_ir/1002
لینک آپارات:
https://aparat.com/v/xhe50w6

لینک یوتیوب:
https://youtu.be/sHYPov3yRlg
Media is too big
VIEW IN TELEGRAM
گفتگو با مهندس محمد طاهری
برنامه نویس ارشد فرانت
ایشون سابقه کار برای ایرانسل رو دارن و در حال حاضر در داتین مشغول به کار هستن

سوالاتی که از ایشون پرسیدم:
-دبیرستان بودید یا هنرستان؟ چه رشته ای؟
-چه شرکت هایی کار کردید و چه سمتی داشتید؟
-برای برنامه نویس فرانت شدن چه چیزایی باید بلد باشیم؟
-آیا جاوا اسکریپت رو باید بلد باشیم؟
-آیا باید گرافیک و فتوشاپ و... هم بلد باشیم؟
-میشه بگید ux چیه؟ و آیا اونم کار برنامه نویس فرانته؟
-توی فرانت چه چیزی رو قوی بشیم بهتره؟
-درباره ری اکت و انگولار و... یکم توضیح میدید؟
-کار فرانت سخته یا بکند؟ کدوم پول بیشتری توشه؟
-بوت استرپ خوبه یه تیلویند؟ -اصلا اینارو لازمه یاد بگیریم؟
-آیا جی کوئری دیگه منسوخ شده؟
-فرق یه برنامه نویس خوب و بد چیه؟
-چرا بکند کارها سی اس اس بلد نیستن؟
آیا درسته که کتابخانه های js مثل ری اکت و... توی سئو مشکل دارن؟
-نود جی س برای بکند خوبه؟
--اگر نسخه ۱۸ ساله خودتون رو ملاقات میکردن چه توصیه هایی بهشون میکردن و بهش چیا میگفتن

لینک آپارت:
https://aparat.com/v/xhe50w6
لینک یوتیوب:
https://youtu.be/sHYPov3yRlg
لینک mp3:
https://www.tg-me.com/telegram/com.djangolearn_ir/1001
Forwarded from ITShield
Media is too big
VIEW IN TELEGRAM
مواظب باشین وگرنه این بلا سر شما هم خواهد آمد یا قبلا اومده و خبر ندارین
نخواستم از همه قابلیت ها استفاده کنم تا باعث وحشت یا ... نشه و فقط اطلاع رسانی بشه
Forwarded from ITShield
نصیحتی برادرانه از یک علاقه مند به امنیت به عموم‌مردم :
اگر مجهز به دانش سایبری نیستین انجام کارهای زیر در تلگرام برای شما حیاتی هست و در صورت انجام ندادن دارین با جون خودتون بازی میکنین
۱- برای اکانت تلگرامتون نام‌کاربری نزارین
۲- هر از چند گاهی اکانتتون رو حذف کنین و دوباره اکانت تلگرام‌بسازین تا آیدی شما تغییر کنه
۳- به کسی که نمیشناسین پیام ندین و جواب پیامش رو هم ندین
۴- توی هر گروه و کانالی پیام نزارین مگر پیام ضروری حتی گروه ها یا کانالهای خصوصی یه نفره خودتون با خودتون
۵- از نشر اطلاعات خصوصی در تلگرام و یا آرشیو کردن بپرهیزین

دلیلش رو شاید هیچ وقت نتونم بهتون توضیح بدم تا زمانی که قصه پابلیک بشه
اما سربسته از من بپذیرین که تلگرام برای اطلاعات و ... شما جای امنی نیست

از تجربه این برادر کوچک طلبه خودتون استفاده کنین قبل از اینکه گذر زمان براتون تجربه درست کنه(و مورد استفاده یا سوءاستفاده قرار بگیرین)

هکرها فقط نام‌کاربری یا یک پیام از شما لازم دارن تا .....

این هیچ ربطی به مهندسی اجتماعی و گوشی شما و سازمانهای خاص و رمز دو مرحله ای و ..... نداره
خانه از پای بست ویران است

اطلاع رسانی عمومی
Forwarded from Python BackendHub
یکی از مشکلاتی که اکثر برنامه نویسا دارن تو مدیریت دپندسیه! حالا لایبری جدید یا external service که قراره ازش استفاده کنن.

مشکل چیه؟‌برنامه نویس میاد یک توتوریال از اون دپندسی جدید میبینه با خودش میگه ایول چه باحاله و تصمیم میگیره اضافش کنه! و این بد ترین کاریه که میتونید بکنید. قراره وابسته بشین به چیزی. فکر کنید این وابستگی از جنس عاطفیه. همینقدر باید باهاش حساس برخورد کنید :))

خب چیکار کنیم؟
اولین کاری که میکنید اینه که توتوریالشو میریزین دور. میرین داکیومنتشو خوب میخونید. متوجه میشین limitation هاش چیه. متوجه میشین سیستمش چطور کار میکنه. یک داکیومنت مختصر شده ازش میسازین و cons pro هاشو در میارین. مثلا یعنی چی؟

فکر کنید مثلا دارین یک external system اضافه میکنید. مثلا یک CRM. خب اول باید چک کنید چه limitation هایی داره؟‌ایا api داره؟‌ایا web hook داره؟ ایا share state به وجود میاد؟ هزینش چقدره؟ alternative هاش چیه؟ چطور اصلا کار میکنه؟ اصلا خوب کار میکنه؟!
بعد تو درجه دوم میرین گوگل میکنید و مقاله هایی پیدا میکنید که نقاط ضعفشو بیشتر گفته. ممکنه همه نقاط ضعفش تو داکیومنتش نباشه و یکم پنهان باشه. میبینید بقیه چه چالش هایی داشتن موقع کار کردن باهاش.
در نهایت بین آپشن ها یک لیست pro cons میسازین و تصمیم گیری نهایی رو میکنید.


اگه این کارو نکنیم چه اتفاقی میفته؟
بذارین مثال بگم. مثلا شما ندیدین این api limit احمقانه ای داره. بعد کلی روش کد میزنید. یک روزی سایز بیزنستون بزرگ تر میشه و حالا هرچی کد رو زدین باید undo کنید.


همیشه تو انتخاب دپندسی هاتون خیلی فکر کنید! من بعضا دیدم بچه ها میگن <کارفرما اینطوری گفته> یا <مدیر تیم با این بیشتر حال کرده>‌. اینا دلایل منطقی اصلا نیستن برای انتخاب یک دپندسی.

@ManiFoldsPython
sarabi.pdf
626.4 KB
بهینه‌سازی کوئری‌ها و مشکل N+1
از لینکدین Mohsen Sarabi

یکی از مشکلات رایج در کوئری‌ها، N+1 Query Problem است. این مشکل زمانی رخ می‌دهد که ابتدا یک کوئری برای دریافت لیست اصلی داده‌ها اجرا می‌شود و سپس برای هر آیتم در این لیست، یک کوئری جداگانه برای دریافت داده‌های مرتبط ارسال می‌شود. نتیجه این قضیه، فرستادن تعداد زیادی درخواست غیرضروری به پایگاه داده است که موجب افزایش زمان پردازش و کاهش عملکرد برنامه ما می شود!
راه‌حل؟ استفاده از select_related
این متد با استفاده از JOIN در سطح دیتابیس، تمام داده‌های مرتبط را در یک کوئری واحد واکشی می‌کند، که باعث بهینه‌سازی عملکرد و کاهش تعداد درخواست‌ها می‌شود.
📌 اگر رابطه ManyToMany باشد، prefetch_related گزینه مناسبی است.
آیا تا به حال با این مشکل برخورد کرده‌اید؟ چگونه آن را حل کردید؟ خوشحال میشم تجربیاتتون را به اشتراک بذارید.
https://www.cursor.com/en


اینو تست کنید.
حتی شاید ارزشش رو داشته باشه که اکانتش هم بخرید.

کل پروژه رو اوپن کن بهش بده.
علاوه بر کد، فایل هارو هم خودش میسازه و...
Forwarded from محمد خشنوا / برنامه نویسی (SeYeD Mohammad Khoshnava)
Media is too big
VIEW IN TELEGRAM
این انیمیشن، یک پکیج کامل آموزش پایتونه 😂😂

@SEYED_BAX | @MohamadKhoshnava
Please open Telegram to view this post
VIEW IN TELEGRAM
یک مبحثی که خیلی وقت‌ها آدم‌های رو داخل #جنگو گیج میکنه موضوع Aggregation هستش. برای مثال کوئری پایین:


>>> from django.db.models import Avg, Max, Min
>>> Book.objects.aggregate(Avg("price"), Max("price"), Min("price"))
# {'price__avg': 34.35, 'price__max': Decimal('81.20'), 'price__min': Decimal('12.99')}

خب این کوئری مشخصه چه کاری داره انجام میده، همه میتونن بفهمنش مخصوصا وقتی خروجی کوئری رو میبینن، اما اگر ازشون بپرسید خب Aggregation چی هستش هیچ ایده ای ندارن! و این ماجرا از ضعف در دانش SQL سر چشمه میگیره. چون خیلی از آدم‌هایی که دارن #django کار میکنن مستقیم سراغ جنگو اومدن و نرفتن چیزهای دیگه رو مطالعه کنن و یاد بگیرن.

اسم Aggregation داخل ORM جنگو مستقیما از SQL میاد. در SQL یک سری فانکشن وجود داره که بهشون Aggregation functions میگن و کارشون خلاصه سازی اطلاعات:
MIN() - returns the smallest value within the selected column
MAX() - returns the largest value within the selected column
COUNT() - returns the number of rows in a set
SUM() - returns the total sum of a numerical column
AVG() - returns the average value of a numerical column

و خب شما میتونید داخل کوئری‌های SQL ازشون استفاده کنید و دیتا خروجی رو خلاصه سازی کنید و یا یک آمار ازش دربیارید. مثلا میانگین قیمت کتاب‌های تو سال اخیر و ...
یک کوئری مثال برای Aggregation میتونه این باشه:

SELECT AVG(Price) as price_avg FROM Books WHERE puddate='2023-01-01';


خب از اونجایی که ORM جنگو در نهایت قرار کار همین SQL نوشتن برای شما انجام بده و کوئری‌ شمارو به SQL تبدیل کنه شما دقیقا همین کوئری میتونید داخل جنگو به این صورت بنویسید:


>>> from django.db.models import Avg
>>> from datetime import datetime
>>> Books.objects.filter(pubdate=datetime(2023, 1, 1)).aggregate(price_avg=Avg("price"))

میتونید لیست فانکشن‌های Aggregation خود SQL داخل این لینک ببینید و ساپورت جنگو هم میتونید داخل این لینک ببینید.

در نهایت از دانش SQL غافل نباشید و حتما یادش بیگیرید. هرچی بیشتر SQL بدونید زندگی راحت‌تری خواهید داشت.

@TorhamDevCH
Forwarded from Django Expert (Majid A.M)
اگر پروداکت روی جنگو ۴.۲ دارید پاشید برید آپدیتش کنید

از اتاق فرمان اشاره کردند باگ امنیتی داشته :)

™️ @DjangoIR
〰️〰️〰️〰️〰️〰️
© @DjangoEx
bigdeli_2.pdf
1003.3 KB
تست نرم افزار چیه و شامل چیا میشه؟

از لینکدین علی بیگدلی

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

اگر بخوایم کلی دسته بندی کنیم:
- تست عملکرد (Functional Testing)
- تست غیر عملکرد (Non-Functional Testing)
- تست نگهداری و بازرسی (Maintenance Testing)

بر اساس نحوه اجرا اگر دسته بندی بشن:
- تست دستی (Manual Testing)
- تست خودکار (Automation Testing)

و بر اساس تکنیک تست:
- تست جعبه سیاه (Black-box Testing)
- تست جعبه سفید (White-box Testing)
- تست جعبه خاکستری (Gray-box Testing)

موارد بسیار زیادی هستش که نیازمند یادگیری میشن مثل اینکه بهترین روش ها چیه و به اصطلاح best practice ها چی می تونن باشن. اما در کل شما طی یک پروژه نیازمند تست نرم افزار، ساختار و کیفیت اون خواهید بود و حتی بر اساس امنیت و میزان باری که تحمل می کنه و یا اینکه زیر Stress test چه واکنش هایی میده هم باید سرویس رو مورد آزمایش قرار بدید.
و...
از کانال @siliciumir

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

https://app-generator.dev/tools/django-generator/
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
2025/05/13 00:21:24
Back to Top
HTML Embed Code: