جنگولرن
3.81K subscribers
287 photos
74 videos
31 files
556 links
آموزش Django و بستگان
Download Telegram
جنگولرن
از Linkedin آقای arash hosseini #مهندسی_سیستم لینک در نظرات پست مهندسی سیستم بخش ششم: پذیرش سیستم : میزان موفقیت هر سیستم دست ساخته بشر و ماموریتش در شاخص های پذیرش ذیل نهفته است : · آیا بازار برای پذیرش سیستم جدید آمادگی دارد ؟ یک نیاز عملیاتی…
از Linkedin آقای arash hosseini #مهندسی_سیستم
لینک در نظرات پست
مهندسی سیستم بخش هفتم :
ادامه پذیرش سیستم : امکان پذیری و مقرون به صرفه بودن سیستم : اگر برآورد زمانی توسعه یک سیستم، محصول یا خدمت درست باشد، چالش بعدی امکان پذیری توسعه بر اساس مشخصه های تعیین شده و تکنولوژی های موجود در برنامه زمانی تعیین شده و بودجه چرخه حیات در یک سطح ریسک معقول برای کاربر یا برای مالک خواهد بود. امکان پذیری نهایتا بر روی چهار سوال متمرکز می گردد : · کاربر چه چیزی می خواهد ؟ · نیاز کاربر چیست ؟ · کاربر از عهده چه چیزی بر می آید ؟ · برای چه چیزی کاربر حاضر است هزینه پرداخت نماید ؟ به عنوان یک مهندس سیستم، شانس با شما همراه خواهد بود اگر به شما برای پشتیبانی فنی از تیم توسعه کسب وکار جهت توسعه یک سیستم جدید یا بکارگیری یک محصول جدید نیاز داشته باشند در غیر اینصورت شما از یک مهندس سیستم دیگر پشتیبانی خواهید نمود. از نقطه نگاه فنی، تیم مهندسی سیستم چندکاره برای تصور، غنی سازی و ارائه راه کار فنی برای اقناع سوالات بیان شده مورد نیاز است. مقرون به صرفه بودن : معیار عینی موفقیت سیستم در نهایت به مقرون به صرفه بودن آن است. از نقطه نظر سازمان، آیا سیستم کارایی و نتیجه ای که با بازگشت سرمایه تنظیم شده باشد را تولید می نماید ؟ مهندسین، با بکارگیری تمامی توان فنی خود، غالبا در ارتباط با مفهوم مقرون به صرفه بودن مشکل دارند. سعی و تمرکز آنها بشتر بر روی امکان پذیری سیستم می باشد. واقعیت این است که هزینه عملیاتی چرخه حیات سیستم و سود حاصل از انجام فعالیت توسط سیستم موتور محرک تصمیم گیری سازمان می باشد. شما می توانید بهترین سیستم، محصول یا خدمت را با کارایی برجسته، ابداع نمائید. اما اگر هزینه های عملیاتی و پشتیبانی سیستم، برای کاربر مقرون به صرفه نباشد سیستم بخصوص درمحیط های تجاری در بدو ورود کنار گذاشته خواهد شد. مقرون به صرفه بودن به عنوان یک پارامتر اندازه گیری به کمک دو موئلفه اندازه گیری می گردد : · هزینه گردش کار · هزینه کارائی کارایی سیستم : به عنوان یک فاکتور عینی ، کارایی سیستم نمایان گر واقعیت های فیزیکی خروجی و نتیجه عملکرد سیستم خواهد بود. این کارایی در دو فرم کارایی برنامه ریزی شده و واقعی خواهد بود . هنگامی که توسعه سیستم کلید می خورد. توسعه دهندگان آن وابسته به آنالیز، مدل سازی و نمونه سازی برای رسیدن به دید فنی جهت آشکارسازی چگونگی انطباق عملکرد سیستم خواهند بود . این داده های در موار ذیل استفاده می گردد : · مشخص کردن و محدود کردن دید به سیستم یا یکی از اجزای آن · مقایسه کارایی برنامه ریزی شده یا نتایج مورد نظر و واقعیت تکنیک های متفاوتی مانند نمونه سازی سریع و ارائه تکنولوژی جهت ارزیابی مدل ها و نمونه ها برای رسیدن به حدس ها و کاهش ریسک استفده می گردد. قصد بر جمع آوری مدارک عینی و تجربی "زود هنگام" برای رسیدن به سطح اطمینان مورد نظر می باشد. نتیجه دقیق ارزیابی و صحت سنجی حدسیات می باشد. کارایی سیستم نیازمند فهم مشارکت فاکتورهایی همچون قابلیت اطمینان، نگهداری و کارایی است . (این کلمات نام آشنا در معماری نرم افزار است در این مجموعه از نوشته ها شما می توانید خطوطی که به معمار جهت توسعه سیستم کمک نمایند را پیدا کنید)
Forwarded from ProgrammingSchool (Python)
قسمت ششم: محدودیت کاراکترها در یک خط

در کتابخانه‌های استاندارد پایتون تعداد کاراکترهای یک خط، 79  کاراکتر است. برای خطوطی که در آن‌ها ساختاری وجود ندارد(مانند کامنتها و ...) این محدودیت باید به 72 کاراکتر برسد.

In standard Python libraries, the number of characters in one line is 79 characters. For lines in which there is no structure (such as comments, etc.), this limit should be 72 characters.

در ویرایشگرهایی که در محیط ویندوز وجود دارند این امکان وجود دارد که چندین پنجره در کنار هم بازشوند. در این حالت اگر از عرض پیش‌فرض هر پنجره استفاده شود مشاهده و درک کد با مشکل روبه‌رو می‌شود. برای حل این مشکل بهتر است عرض پنجره، بر روی 80 تنظیم شود.

In the editors that exist in the Windows operating system, it is possible to open windows together. In this case, if the default of each window is used, it will be difficult to see and understand the codes. To solve this problem, it is better to set the width of the window to 80.

چنانچه در تیمی فعالیت می‌کنید که ترجیح می‌دهند از خطوط طولانی‌تر استفاده کنند مجاز هستید خطوط را به 99 کاراکتر افزایش بدهید مشروط به آنکه خطوط بدون ساختار از قبیل کامنتها 72 کاراکتر باشند.

If you work in a team that prefers to use longer lines, you are allowed to increase the lines to 99 characters, provided that unstructured lines such as comments are 72 characters.

برای خطوطی که طولانی هستند پیشنهاد می‌شود از اسلش، بک اسلش (ورژن‌های 3.10 به قبل) ، پرانتز، براکت و ... استفاده شود تا به چند خط شکسته شود.

For lines that are long, it is suggested to use slash, backslash (versions 3.10 and earlier), parentheses, brackets, etc. to break it into several lines.

#آموزش_پایتون
#قراردادهای_پایتون

آدرس کانال:
@Programmingschool2
سایت آموزشی:
http://programmingschool.ir
گروه پرسش و پاسخ:
https://t.me/programmingschool_group
👍5👎1
Forwarded from Fara Code | برنامه نویسی (saman)
توابع مفید پایتونی 😇
این قسمت: تابع map 💎

✖️ توضیحات:
با استفاده از تابع map شما میتونید یه تابع خاص رو، روی عناصر یک لیست (یا هر چیز قابل شمارشی) اعمال کنید. مثلا یه تابع داشته باشید که عدد رو میگیره و به توان 2 میرسونه حالا میتونید تمام اعضای یه لیست رو توان 2 کنید. ترکیب تابع map با تابع لامبدا خیلی حرفه ای میشه...


✖️ نحوه استفاده:
nums = [1,2,3,4]

res = map(lambda x:x*2,nums)
print(list(res))

اگر این کد رو بنویسید و اجرا کنید میبینید که لیست جدیدی که به وجود میاد و توی خط آخر پرینتش کردیم، توان 2 اعداد لیست nums هستش...

#نکته #آموزش

▪️🐍 @Learrning_Python 🐍▪️
👍3
جنگولرن
اگه دقت کرده باشید توی فایل settings.py در جنگو خیلی تاکید شده که مراقب SECRET_KEY باشید. به جای اینکه دلایل رو توضیح بدم، لینک کدهای جنگو که صراحتا SECRET_KEY رو استفاده کردن اینجا میگذارم. بد نمیشه یه نگاه بندازید. (لینک ها همه مربوط به ریپازیتوری اصلی…
در جنگو اگه SECRET_KEY لو بره بد میشه؟

تصویر 1.1 مقدار secret_key رو داریم (لو رفته مثلا)

تصویر 1.2 فرض که برنامه نویس مقدار SESSION_ENGINE رو روی signed_cookies گذاشته باشه.

تصویر 2 فرض می کنیم برنامه نویس دیتایی رو توی سشن ذخیره میکنه. جنگو با توجه به تنظیم 1.2 مقدار (value) ع sessionid رو تغییر میده. با signed_cookies تغییرش میده لینکش:
https://docs.djangoproject.com/en/4.2/topics/http/sessions/#using-cookie-based-sessions

تصویر 3 با کدی که نوشتم و داشتن SECRET_KEY میشه به دیتای کوکی دسترسی پیدا کرد و... (تصویر4)

به قول یکی از دوستان. لو رفتن سکرت کی خیلی خطرناکتر از این حرفاس
👍5
جنگولرن
در جنگو اگه SECRET_KEY لو بره بد میشه؟ تصویر 1.1 مقدار secret_key رو داریم (لو رفته مثلا) تصویر 1.2 فرض که برنامه نویس مقدار SESSION_ENGINE رو روی signed_cookies گذاشته باشه. تصویر 2 فرض می کنیم برنامه نویس دیتایی رو توی سشن ذخیره میکنه. جنگو با توجه…
⚠️ نکته مهم:
توی مستندات جنگو صراحتا گفته:
The session data is signed but not encrypted
پس در واقع جنگو با signed cookie از تغییر غیرمجاز محتوا مطلع میشه. محتوای کوکی ساخته شده base64 شده. و اگه decode کنید محتوا رو میبینید. (توی تصویر مشخصه)

یه جورایی مثل JWT که هر تغییری توی محتوا یا امضای JWT باعث تغییر امضا و یا اعتبارسنجی ناموفق توکن می‌شه. و سرور متوجه می‌شه که توکن تغییر کرده، پس نامعتبرش میکنه.

پس چطور سوء استفاده میکنن؟
خب وقتی secrect_key رو دارن میتونن هر تغییری خواستن اعمال کنن و کوکی signed و معتبر بسازن و... 😨
👍5
از Linkedin آقای arash hosseini #مهندسی_سیستم
لینک در نظرات پست

مهندسی سیستم بخش هشتم : ادامه پذیرش سیستم : کنترل واقعیت : تمامی موارد بیان شده خوب بنظر می رسند ، اما چگونه این موارد را در دنیای واقعی اجرا کنیم ؟ " به طور معمول سازمان ها بسته‌های تدارکات و مدل های هزینه منابع انسانی را برای رسیدن به تقریبی از اندازه هزینه سیستم، توسعه داده اند. در نتیجه خریداران سیستم درخواست یک نقطه راه حل برای یک ظرفیت مشخص را دارند. اگر چه برآورد حاصل از مدل هزینه معمولا دقیق است، همواره اتفاقات غیر منتظره در پیش رو می باشد. اگر هزینه پیشنهادی، برآورد اولیه را که بودجه بندی شده است افزایش دهد، خریدار و کاربر در مقابل یک رقابت مجدد قرار می گیرند. معمولا مذاکرات به یک قرارداد قیمت که مقرون به صرفه با کمی امکانات کمتر باشد، می رسد. چیزی که خریدار و کاربر سیستم بدنبال شنیده شدن آن هستند این جمله هست : " پیشنهادی به ما بدهید که طیف و ترکیبی از توانمندی و سطح کاربرد – کارایی سیستم/هزینه را تشریح کرده که قابل استفاده برای تدارک تعداد مشخصی از اهداف یا نیازمندی ها باشد " . در مفهوم، تمرکز این رویکرد بر مقرون به صرفه بودن است- که گفته می شود به چه میزان کارایی سیستم بر اساس یک واحد هزینه افزایش می یابد. رسمی تر اینکه هزینه به عنوان یک پارامتر مستقل به این مفهوم اضافه گردد. در نتیجه پیشنهادهای توسعه دهندگان سیستم ممکن است نیاز به گرافهای آنالیزی باشد که گزینه های کارکردی سیستم بر روی یک خط نمودار و هزینه بر روی محور دیگر ترسیم شده باشد. آیا مقرون به صرفه بودن و کارا بودن به راحتی بدست می آید ؟ خیر، در حقیقت اندازه گیری و تعیین کمیت هر دو در بسیاری از موارد بسیار دشوار است. پیاده سازی این جزئیات بسته به سازمان و برنامه آن می تواند بسیار متفاوت باشد. سازمان های نظامی متخصصینی در این زمینه برای پیروزی در عملیات های نظامی استخدام می کنند.اگر شما در برنامه ریزی برای کارایی سیستم و تمامی فاکتورهای موفقیت آن، پیروز نگردید، سازمان و اهداف ماموریت آن را در معرض ریسک قرارداده اید. ارزیابی و صحت سنجی سیستم : مفهوم پذیرش سیستم غالبا یک مفهوم انتزاعی است. و قابل ترجمه بر اساس نیاز هر فرد می باشد. مواردی که از سمت یک نفر پذیرش می شود برای کاربری دیگر غیر قابل پذیرش می باشد. بحث بر سر ابزارها، سازگاری و کارایی عملیاتی در نهایت تصمیم یک کاربر به اینکه سیستم قادر به نیازهای عملیاتی وی است را مشخص می نماید. درجه جذابیت کارکرد یک سیستم میزان درک کاربر را از اینکه سیستم درستی را تدارک دیده منتشر می کند. . ارزیابی سیستم سوال دیگری را مطرح می کند . اگر کاربران افق دیدی از آنچه را که می خواهند دارند، چگونه : · افق دید خود را چگونه به مشخصه هایی جهت تولید سیستم رویایی خود ترجمه می کنند ؟ · چگونه به این اطمینان خاطر می رسند که سیستم، محصول یا خدمت ارائه شده همان سیستم درست است ؟ · توانایی این مورد را داشته باشند تا در آینده نسخه های کپی جدیدی از سیستم خود داشته باشند ؟ اولین سوال نیاز به " مهندسی سیستم" دارد. سوال دوم نیاز به یکپارچگی در تحول "مهندسی سیستم" برای اطمینان از اینکه منبع نیازمندی ها خود را در طراحی سیستم، محصول یا خدمت ارائه شده آشکار نموده و سیستم ارائه شده بتواند جذابیت داشته باشد. سوال سوم نیاز به "مهندسی سیستم " برای تولید مستندات با کیفیت و فرآیندهای استاندارد جهت ایجاد کارگران دانش برای اطمینان از بازتولید بر اساس کارایی مشخص و ثابت دارد.
👍1
👏نذری دانشجویار به مناسب محرم
رایگان شدن بیش از 160 ساعت آموزش
لینک:
https://www.daneshjooyar.com/landing/moharram1402/
19🤮6👏2
مطلب قابل تاملی از کانال @lnxpylnxpy
اگه هنوز واسه خوندن دیتای json و تبدیلش به dict گوگل می‌کنید، ساختار دکوریتور wraps یا inner-function رو حفظ نیستید و گوگل می‌کنید، اگه می‌خواید واسه کلاستون setter و getter بنویسید ولی سرچ می‌کنید، اگه ساختار switch-case رو فراموش می‌کنید و سرچ می‌کنید، شما برنامه‌نویس هستید. :)

یه سریا جدیدا دیدم میگن اونی که نمیتونه بدون گوگل کردن یه dataclass بنویسه یا یه ساختاری رو بسازه، نباید به خودش بگه برنامه نویس. اتفاقا برنامه‌نویس اونیه که می‌دونه الان به چی احتیاج داره و باید چیو سرچ کنه و با هنر سرچ کردن هم آشناست. قطعا تویی که سرچ میکنی..

Google: exclude repr in python dataclass

اول از همه می‌دونی dataclass چیه. بعد میدونی این کانپست، یه سری از متدها اعم از init و repr رو خودش بصورت دیفالت پیاده‌سازی می‌کنه و سعی داری repr رو از پیاده‌سازی شدن exclude کنی. پس خیلی چیزا می‌دونی راجع بهش.. نه؟! قطعا تو خیلی سرتری نسبت به اون کسی که چهارتا متد حفظ کرده.

هیچ سیستمی با حفظیات توسعه پیدا نمی‌کنه و اینترنت هم تا ابد خواهد بود. (حداقل تا زمانی که ما داریم کار می‌کنیم)

اگه رفتید جایی اینترویو و حس کردید چنین تفکری اون پشت رواج داره، و سئوال‌های طرف یه حالت طعنه‌آمیزی داره، بنظرم محل رو ترک کنید. این افراد اول اینکه اصلا در زمینه Tech کار نکردن دوم اینکه مازوخیسمی‌ان. حس می‌کنن اگه کابل LAN پشت سیستمشون رو بکشن و آفلاین کد بزنن، قوی‌تر میشن.
👍12🤔1
Forwarded from ProgrammingSchool (Python)
قسمت هفتم: درست نویسی عملگرهای باینری

عملگرهای باینری، عملگرهایی هستند که دو عملوند دارند. عملگر جمع، یک عملگر باینری است. برخی از خطوط طولانی ممکن است شامل عملگرهای باینری باشند. در این موارد، دونالد کنوت پیشنهاد می‌دهد که عمل شکستن یک خط طولانی به چند خط کوتاه باید، قبل از عملگر انجام شود.

Binary operators are operators that have two operands. The addition operator is a binary operator. Some long lines may contain binary operators. In these cases, Donald Knuth suggests that breaking a long line into several short lines should be done before the operator.

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

In the past, the style form was such that a long line break was done after the operator. But the problem with this style is that the operators are scattered in different columns and it takes time to find their operands by eyes.

#آموزش_پایتون
#قراردادهای_پایتون

آدرس کانال:
@Programmingschool2
سایت آموزشی:
http://programmingschool.ir
گروه پرسش و پاسخ:
https://t.me/programmingschool_group
Forwarded from ProgrammingSchool (Python)
قسمت هفتم: مثال مربوط به درست نویسی عملگرهای باینری

شکل بالا فرم قدیمی و جدید عملگر باینری جمع را نشان می‌دهد.

The figure above shows the old and new form of the binary addition operator.

#آموزش_پایتون
#قراردادهای_پایتون

آدرس کانال:
@Programmingschool2
سایت آموزشی:
http://programmingschool.ir
گروه پرسش و پاسخ:
https://t.me/programmingschool_group
👍2
اگه تا حالا درست حسابی سمت PostgreSQL نرفتید. الان دیگه وقتشه. Hêmn توی کانال @microfrontend_ir داره شخم اش میزنه.

آموزش PostgreSQL

در اولین ویدیو و مقدمه پلی لیست آموزش PostgreSQL به بررسی تاریخچه و روند شکل گیری پستگرس پرداختیم. از پروژه مادر یعنی Ingres و سپس اضافه شدن امکانات object-relational از طریق پروژه Post-Ingres صحبت کردیم و چند اکستنشن مهم پستگرس یعنی PostGIS و Timescale صحبت کردیم.

Video: https://youtu.be/2f9RAkpQGj4


playlist: https://www.youtube.com/playlist?list=PLJ9zDGwhhsByAI0AbbJ4oUTziNsaffKnq
〰️〰️〰️〰️〰️〰️
© | @microfrontend_ir
🔥5👍2
Forwarded from Python Hints
profiling
یکی از مهمترین و جذاب‌ترین مباحث هست که یک توسعه دهنده باید باهاش آشنا باشه (توی رزومه هم خیلی مهمه اونجایی که شما می‌گید من ۲۰٪ کدهای قبلی رو اپتیمایز کردم؛ شاید تو خیلی از شرکتهای ایران کیلویی باشه ولی شرکت‌های درست و حسابی باید گزارش profiling رو ارائه بدید)

ساده ترین قدم توی پروفایلینگ استفاده از پکیج timeit هست؛ توی دیتاساینس هم یکی از BuiltIn Magic های بسیار مهم IPython هست.

کجا بدرد می‌خوره؟
وقتی شما بین استفاده از دوتا روش مشکل دارید (ولی این ۲ تا کد معمولا بین ۱-۱۰ خط هست)
۲ تا پارامتر مهم داره؛
۱- کدی هست که میخواید سرعت اجراش رو تست کنید.
۲- تعداد تکرار یا اجرای اون کد هست (مثال بالا ۱۰۰) و چون زمانی که بر میگردونه با تعداد تکرار هست مقدارش رو تقسیم بر تعداد تکرار می‌کنیم تا میانگین زمان اجرای ۱ بار اون کد بدست بیاد (بر حسب ثانیه)

نکته :هیچوقت تعداد تکرار رو ۱ نذارید تا عدد دقیق‌تری بدست بیارید.

@PyHints

خروجی کد بالا بین خط ۲۱ تا ۲۴.
👍4
مطلبی قابل تامل از لینکدین Mohammadreza Ala
لینک و تصویر کتاب در کامنت

دیگه حتی نیرو جونیور هم سخت پیدا میشه؛

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

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

مثلا طرف تو مصاحبه نمیذاره سوال تموم شه تا جواب بده، مثلا ۴ تا کلمه از ۱۰ تا کلمه به گوشش رسیده، شروع میکنه به جواب دادن.
یا هر سوالی رو که میگیم یه جوری جواب رو میبره به سمتی که خودش رو خفن تر از چیزی هست نشون بده.
و از این قیبل موارد...

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

به عنوان پیشنهاد برای تقویت سافت اسکیل، کتاب زیر رو معرفی میکنم؛ هم کتاب صوتی و ترجمه فارسی و انگیلسی رایگان اش هم همه جا هست. و امیدوارم که کسی به خاطر سافت اسکیل ضعیف پوزیشنی رو از دست نده.
3
جنگولرن
👏نذری دانشجویار به مناسب محرم رایگان شدن بیش از 160 ساعت آموزش لینک: https://www.daneshjooyar.com/landing/moharram1402/
جانگو 😤
https://www.daneshjooyar.com/django-basic-learning/

هنوزم حال ندارم ویدئوی دمو رو تغییر بدم. توی دمو همش میگم جانگو 😡 خیلی رو مخه
من این دوره رو یکبار آپدیت کردم ولی دمو رو تغییر ندادم و هنوز میگه جانگو
اما امروز دیدم که از اول محرم تا الان حدودا 650 نفر دوره رو خریدن (رایگان)
چرا؟ 🧐
😁9
what SOLID stands for:
• S: Single responsibility principle
• O: Open/closed principle
• L: Liskov's substitution principle
• I: Interface segregation principle
• D: Dependency inversion principle
Forwarded from Barnamenevisi 🔊
داشتم دو تا مقاله فارس می خوندم درباره جنگو گفتم اینجا بزارم شما هم استفاده کنید خیلی خوبه
درباره best practices جنگو هستش و نکاتی که اگر در جنگو رعایت کنید خروجی کارتون خیلی خوب و بهینه میشه


https://vrgl.ir/ebo5x

https://vrgl.ir/PxEe3


عضو کانال و گروه تلگرام ما بشید 👇

عضویت در گروه تلگرام
عضویت در کانال تلگرام
عضویت در پیج تردز
👍81
5 Performance Optimization Techniques in Django

از لینکدین Saad Jamil
لینک و فایل pdf در کامنت
پست های مرتبط در کامنت
👍3
معرفی یه پکیج ساده و کاربردی

اضافه کردن قابلیت سرچ با searchable dropdown برای ادمین جنگو

اگه جایگزینی سراغ دارید معرفی کنید

https://pypi.org/project/django-admin-searchable-dropdown/
👍7