CodeCrafters
767 subscribers
91 photos
50 videos
42 files
170 links
Download Telegram
Forwarded from Pythonic Dev (  Sadegh)
📢 Understanding the Callstack in Programming! 📚

Welcome, fellow developers, to another insightful post on our Telegram channel! Today, we dive into an important concept in programming - the "Callstack." 🔄

💡 What is a Callstack?
A callstack, also known as an execution stack, is a fundamental concept in computer science that helps us understand how programs execute and keep track of function calls. When a function is called, its execution context is added to the top of the callstack, and when that function completes, it is removed from the stack. Essentially, the callstack keeps track of where we are in the execution of a program.

🧮 How does the Callstack work?
Imagine you have a Python program that calls multiple functions. Each time a function is called, its execution context is added to the callstack. This includes variables, parameters, and the return address of the calling function. When the called function completes, its execution context is removed from the stack, and the program continues from where it left off in the calling function.

🔍 Why is the Callstack important?
Understanding the callstack is crucial for debugging, as it helps us trace the flow of our program, identify the order in which functions are executed, and identify any potential issues such as infinite recursion or stack overflow. By examining the callstack, we can gain valuable insight into how our program behaves and find the root cause of any unexpected behavior or errors.

📝 Key points about the Callstack:
1️⃣ The callstack follows the Last-In-First-Out (LIFO) principle, meaning the most recently called function is at the top of the stack.
2️⃣ Recursion occurs when a function calls itself, adding multiple instances of the same function to the callstack.
3️⃣ If the callstack becomes too large, it can result in a stack overflow, causing the program to terminate unexpectedly.

🔧 How can we use the Callstack to our advantage?
1️⃣ By examining the callstack during debugging, we can better understand the sequence of function calls and potentially identify any missed or incorrect function invocations.
2️⃣ Understanding the callstack can help us optimize our code by avoiding unnecessary function calls or reducing recursion depth.
3️⃣ The callstack can be a useful tool for identifying and fixing memory-related issues in our programs.

Remember, as you delve deeper into your programming journey, always pay attention to the callstack. It holds the key to understanding the intricacies of function calls and program execution!

🌟 Stay curious, keep learning, and keep coding! Feel free to share your thoughts or ask any questions in the comments below. Happy coding, everyone! 🐍💻

#CallStack
#Python
@Pythonic_Dev
👍1
👍1
در بخشی از متینگ هفته گذشته در خصوص
Identity server, oidc client
صحبت شد

سرویس یا بهتره بگیم سیستم هویت سنجی مرکزی کاربران ،در پروژه‌های بزرگ با معماری میکروسرویس بسیار کارامد است

https://virgool.io/@mohsen-farokhi/%D9%85%D9%81%D8%A7%D9%87%DB%8C%D9%85-oauth-%D9%88-openid-connect-%D8%A8%D8%AE%D8%B4-%D8%A7%D9%88%D9%84-xj75qxmohr65

در لینک بالا با ساختار این سیستم آشنا میشویم که در چهار بخش میباشد.


https://pyoidc.readthedocs.io/en/latest/

در لینک بالا یک داکیومنت پایتونی رو میتونیم بخونیم



@code_crafters
3
Load Balancing Algorithms


@code_crafters
👍3
Forwarded from Python BackendHub
The software mindset
قیمت این کورس از ۲۳۰ دلار شروع میشه تا ۷۰۰ دلار که Arjan میفروشه. حالا به هر طریقی دانلود کردیم (با تشکر از سایه بابت معرفی اون طریق 😁)
گذاشتم تو کانال زیر. داره اپلود میشه کامل نشده.

https://t.iss.one/+wHLS0yl7y_M4Yzdk

این کورس رو حتمااااا ببینید (البته اگه با غیر قانونی دیدنش مشکل ندارین)
مباحثش به شدت مهمه! تو عکس تایتل هاشو گذاشتم.
خودمم دیروز دانلودش کردم که ببینم.

@ManiFoldsPython
🔥3
از این هفته قرار بر این هست که موضوعات مرتبط با کوبرنتیز رو براتون در قالب پست توضیح بدم.

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

https://kubernetes.io/docs/concepts/overview/

#k8s
@code_crafters
👍6
CodeCrafters
از این هفته قرار بر این هست که موضوعات مرتبط با کوبرنتیز رو براتون در قالب پست توضیح بدم. برای قدم اول شما میتونید لینک زیر رو نگاهی بندازید تا متوجه شید که کوبرنتیز چی هست و قبل از اون چه شرایطی بوده تا در پست های آینده به بررسی بیشتر کوبرنتیز بپردازیم.…
با تشکر از دوست عزیزمون بابت شروع این مبحث در کانال ،که قرار هست هفته‌ای با یک الی دو پست در این مورد تا حدود مبتدی و اشنایی با کوبر پیش ببره


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



منتها برای درک بیشتر مباحث و کاربرد آن در زیر یک لینک با عنوان سلام دواپس از جناب مهندس سعید بستان دوست براتون میزارم ،دیدن اون خالی از لطف نیست و جواب سوالات زیادی رو بهتون خواهد داد که در دنیای توسعه و استقرار نرم افزار براتون پیش خواهد آمد


https://www.aparat.com/v/rNdW3


@code_crafters
👍1🔥1
با تشکر از تمامی دوستانی که در متینگ امشب مارو همراهی کردن ،متینگ امشب چیزی در حدود چهار ساعت طول کشید

طبق وعده‌ی هفته قبل پیش رفتیم:
۱-نیم ساعت در خصوص امنیت صحبت کردیم
Speak about SSTI Attack

۲-مهمانان ما تشریف اوردن راجب استارتاپشون حرف زدن از خودشون گفتن و حوزه کاریشون و چالش‌هایی که داشتن

۳-در خصوص ساختار یک پروژه بزرگ حرف زدیم و بخشی از کدهارو دیدیم


در متینگ امشب در خصوص مسائل زیر بصورت جسته گریخته صحبت شد:
۱-نقش مدیر cto
۲-توزیع تسک
۳-بیگ دیتا و پلتفرم و ابزارهای مناسب
۴-معماری مونولوتیک
۴-معماری چند لایه
۵-معماری میکروسرویس و توضیح اجمالی آن
۶-استفاده از دپندنسی‌ها ،کتابخونه‌ها و کاستومایز کردن و توسعه شخصی آن مناسب برنامه و چالش‌های موجود در هنگام ارتقا ورژن
۷-توزیع درخواست‌ها در وب سرور
۸-پیگیری و تحلیل رفتار کاربران بصورت دستی و ماشینی
۹-تفکر و تفاوت عملکرد sql ,nosql
۱۰-هیبرید کش
۱۱-مدیریت صحیح داده‌های ورودی، ذخیره،حذف و چند رویکرد متفاوت در این حیطه
۱۲-انتقال داده‌های دیتابیس بین dbms های مختلف


در متینگ هفته بعد قرار بر این شد که موارد زیر رو بررسی کنیم:
۱-یک موضوع امنیتی دیگر در حدود نیم ساعت
۲-بررسی یکی از پروژه‌های ناموفق و دلایل ان و بررسی محتوای کد آن
۳-صحبت بیشتر در خصوص بیگ دیتا و ابزارهای مختلف
۴-بررسی اجمالی سه متینگ قبلی و ادامه موضوع اصلی که بررسی ساختار پروژه‌های بزرگ سازمانی می باشد


#meeting

@code_crafters
5👍1
https://www.researchgate.net


گاهی اوقات حس ناکافی بودن میاد سراغمون و دلمون میخواد راجب اون موضوع مدنظرمون بیشتر و عمیقتر بخونیم و یاد بگیریم

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


لینک بالا رو داشته باشید که حس ناکافی بودنتون رو حداقل سرکوب کنه


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


@code_crafters
👍2
This media is not supported in your browser
VIEW IN TELEGRAM
«تفکر مراقبتی»


همان طور که
یک قطعه موسیقی، انعکاس تفکر در اصوات است،

یک داستان انعکاس تفکر در زبان است

و یک نقاشی انعکاس تفکر در نقش هاست و هیچ نقاشی نمی تواند در نقاشی اش تفکر را منعکس سازد مگر این که قادر به تحسین رنگ ها باشد و برای آن ها ارج قائل باشد…

«تفکر مراقبتی» نیز انعکاس در ارزش ها می باشد.

بنابراین برای اندیشیدن در باب ارزش ها، فرد
می بایست قادر به شناخت و تحسین آن چه که ارزش محسوب
می گردد، باشد!


چه قدر تفکر مراقبتی داریم؟


@code_crafters
#free
😁4👍3
Forwarded from ZenMaxe (BiGGyWiLi)
🔆 آمدن Api های اکسل برای پایتون!

🔺بالاخره مایکروسافت، پایتون رو بصورت رسمی درون اکسل اضافه کرد ، برای اینکه بتوانید از این فیچر استفاده کنید باید نسخه ی بتا اکسل ورژن 16.0.16818.2000 رو بگیرید.

🔺بزودی این فیچر بصورت رسمی اضافه میشود.

🌐 Github Link

@ZenMaxe
👍6🔥3
Fat Models or business logic

مدل های جنگو دیتابیس هستند، که اونهارو تبدیل به انتخاب بدی برای اراعه رابط لایه سرویس به لایه ذخیره سازی (persistence layer) میکنه. مدل های جنگو ذاتا در پنهان کردن، کپسوله کردن و محافظت کردن از جزییات پیاده سازی در برابر مصرف کننده که اهمیت نمیده یا اجازه دسترسی بهش رو نداره، ناتوان هست.

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

بیزینس لاجیک شما به لایه سرویس یا لایه عملیاتی تعلق داره. لایه سرویس یک رابط ثابت رو به تمام بخش های اپلیکیشن اراعه میده. لایه سرویس شما متد های معقول و قابل درکی رو برای انسان داره مثل " “register user یا “associate device with user”. این متد ها دربردارنده بیزینس لاجیک شما هستند که معمولا نیاز هست تا قبل به وجود امدن مدل دیتابیس اعمال بشوند یا تعدادی بیزینس لاجیک رو پس از بازیابی مدل های موجود اعمال بکنند. لایه سرویس شما اون جزییات زیاد و درهم‌برهم و غیر ضروری وضعیت دیتابیس رو پنهان میکنه. مصرف کننده ها نباید به جزییات اهمیت بدهند، نباید به انها وابسته باشند( تا بتونیم اونهارو تغییر بدیم بدون اینکه رابط به مشکل بخوره) و همچنین احتمالا نباید به انها دسترسی مستقیم برای ویرایش هر چه میخواهند بدهیم.

.اگر این کار رو انجام ندید و بجاش از مدل های چاق استفاده کنید اتفاقات زیر خواهد افتاد :

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

2- از نوشتن کد تکراری خسته میشید و متد های مختلف به مدل اضافه میکنید.این همان مدل چاق است! شاید برای یکی دو متد راحت که وظیفه محاسبه یک چیز ساده رو به عهده دارند مناسب باشد اما مشکل شروع شد. به محض اینکه شروع به دسترسی دامنه ها و پیاده سازی یک چیزی شبیه به ثبت دستگاه برای کاربر در مدل یوزر یا مدل دستگاه کنید، انگار شما یک لایه سرویس را به شیوه ای مضخرف دوباره اختراع کردید که در نهایت مدل شمارو به 4000 خط کد میرساند.

3- هر گوشه از اپلیکیشن شما در حال اپدیت کردن دیتابیس خواهد بود، از طریق مدل به هر گونه که بخواهد. هر بخش اپلیکیشن به ان تکیه خواهند کرد و تمام فیچر ها بر ان اساس ساخته خواهند شد. حالا فرض کنید میخواهید یک فیلد دیتابیس رو تغییری بدید یا یک رویکرد جدید پیاده سازی بکنید، 20 بخش مختلف برنامه شما با این فرض ساخته شده‌اند که هر به‌روزرسانی دلخواه پایگاه داده که توسط مدل مجاز است، معتبر و صحیح است.

@code_crafters
1👍1👎1