خبر خوش 🔥
استاد سعید شهریوری عزیز بزرگواری کرده و موافقت کرد با ما میت برگزار کنه تا ما بتونیم از تجربیات و سوادش بهره ببریم.
لینکدین استاد شهریوری:
https://www.linkedin.com/in/saeed-shahrivari-joghan-01358741
بچه ها استاد شهریوری یدونست. منکه خیلی لذت میبرم از نحوه بیان و توضیح دادنش👌
توی یوتیوب میتونید بعضی از آموزش هاشو ببینید:
پلی لیست ساختمان داده
https://youtube.com/playlist?list=PL7TO4klQB2X7HdJ49S-19vQxfP4gR2oi7&si=q1D6-3-Nh2xipSbh
پلی لیست هوش مصنوعی:
https://youtube.com/playlist?list=PL7TO4klQB2X6u1mpr5HFv-hJiOhOrkpTi&si=wOovzKz0hqK0ZigO
تو کامنت این پست بگید دوست دارید درباره چه موضوعی صحبت شه.
بنظرم بهتره میت به این صورت برگزار شه که اکثر تایم درباره یک مبحث صحبت کنیم و قسمت پایانی چند تا از سوالات پاسخ داده بشه
#meet
@Syntax_fa
استاد سعید شهریوری عزیز بزرگواری کرده و موافقت کرد با ما میت برگزار کنه تا ما بتونیم از تجربیات و سوادش بهره ببریم.
لینکدین استاد شهریوری:
https://www.linkedin.com/in/saeed-shahrivari-joghan-01358741
بچه ها استاد شهریوری یدونست. منکه خیلی لذت میبرم از نحوه بیان و توضیح دادنش👌
توی یوتیوب میتونید بعضی از آموزش هاشو ببینید:
پلی لیست ساختمان داده
https://youtube.com/playlist?list=PL7TO4klQB2X7HdJ49S-19vQxfP4gR2oi7&si=q1D6-3-Nh2xipSbh
پلی لیست هوش مصنوعی:
https://youtube.com/playlist?list=PL7TO4klQB2X6u1mpr5HFv-hJiOhOrkpTi&si=wOovzKz0hqK0ZigO
تو کامنت این پست بگید دوست دارید درباره چه موضوعی صحبت شه.
بنظرم بهتره میت به این صورت برگزار شه که اکثر تایم درباره یک مبحث صحبت کنیم و قسمت پایانی چند تا از سوالات پاسخ داده بشه
#meet
@Syntax_fa
🔥10👍1😁1
با توجه به سوالاتتون، یه سری نکات درباره payload بگم
Access token
تو قسمت payload اطلاعاتی که از کاربر تو قسمت پروفایلش نشون میدیم رو قرارش میدیم
رول های کاربر رو توی یک آرایه قرارش میدیم. برای مثال این کاربر فقط رول پیشفرض رو داره پس اگه اندپوینتی پرمیشن ادمین داشته باشه نمیتونه درسترسی داشته باشه.(چک کردن پرمیشن هارو از طریق middleware انجامش میدیم)
Refresh token
تو قسمت payload مقداری که بتونیم به کاربر دسترسی داشته باشیم رو ذخیره می کنیم. برای مثال UserId
بعد با استفاده از Userid سمت دیتابیس درخواست می زنیم و user رو میگیریم. بعدش یه access token جدید میسازیم.(با توجه به شرایط احراز هویت پروژمون ممکنه در کنار access token یه refresh token جدیدم بسازیم)
نکته مهم اینه access token رو مدت زمانشو کم بذارید.
داخل payload رفرش توکن آنچنان نیاز نیست چیزی جز userId و expireTime قرار بدید.
در نهایت اگه رمزنگاری کنید دیگه کسی جز خودتون نمیتونه اطلاعات توکن رو ببینه.
#JWT
@Syntax_fa
Access token
تو قسمت payload اطلاعاتی که از کاربر تو قسمت پروفایلش نشون میدیم رو قرارش میدیم
رول های کاربر رو توی یک آرایه قرارش میدیم. برای مثال این کاربر فقط رول پیشفرض رو داره پس اگه اندپوینتی پرمیشن ادمین داشته باشه نمیتونه درسترسی داشته باشه.(چک کردن پرمیشن هارو از طریق middleware انجامش میدیم)
Refresh token
تو قسمت payload مقداری که بتونیم به کاربر دسترسی داشته باشیم رو ذخیره می کنیم. برای مثال UserId
بعد با استفاده از Userid سمت دیتابیس درخواست می زنیم و user رو میگیریم. بعدش یه access token جدید میسازیم.(با توجه به شرایط احراز هویت پروژمون ممکنه در کنار access token یه refresh token جدیدم بسازیم)
نکته مهم اینه access token رو مدت زمانشو کم بذارید.
داخل payload رفرش توکن آنچنان نیاز نیست چیزی جز userId و expireTime قرار بدید.
در نهایت اگه رمزنگاری کنید دیگه کسی جز خودتون نمیتونه اطلاعات توکن رو ببینه.
#JWT
@Syntax_fa
👍8
تو وب سایت Leetcode چجوری شروع به حل مسئله کنیم؟
این بخش leetcode یکی اومده ۷۵ تا مسئله رو معرفی کرده که بیسیک الگوریتم رو پوشش میده هدفش هم اینه توی مصاحبه شوکه نشی.
میتونی از این هفتادو پنج تا مسئله شروع کنی:
https://leetcode.com/discuss/general-discussion/460599/blind-75-leetcode-questions
[Amir]
#Leetcode #algorithms
@Syntax_fa
این بخش leetcode یکی اومده ۷۵ تا مسئله رو معرفی کرده که بیسیک الگوریتم رو پوشش میده هدفش هم اینه توی مصاحبه شوکه نشی.
میتونی از این هفتادو پنج تا مسئله شروع کنی:
https://leetcode.com/discuss/general-discussion/460599/blind-75-leetcode-questions
[Amir]
#Leetcode #algorithms
@Syntax_fa
LeetCode
Blind 75 LeetCode Questions - Discuss - LeetCode
Hi folks,
I found a list of Blind 75 Leetcode problems. Sharing it as I found it very useful.
Connect with me: https://linktr.ee/tech.krishnadey
Happy
I found a list of Blind 75 Leetcode problems. Sharing it as I found it very useful.
Connect with me: https://linktr.ee/tech.krishnadey
Happy
🔥11👍1
توضیح کوتاه درباره برخی از انواع تست نویسی
Unit testing
کلمه Unit به معنی واحد و تک و تنها هستش.
ما برای نوشتن تست برای یک بخش واحد از unit test استفاده میکنیم. برای مثال ما یک فانکشن داریم که کارش محاسبه مالیات بر اساس مقدار درآمد هستش. برای نوشتن تست برای این فانکشن واحد از unit test استفاده میکنیم.
Integration testing
بعضی وقتا خروجی مدنظر ما با کار کردن چند بخش واحد با هم دیگه بدست میاد.
برای مثال سبد خرید رو در نظر بگیرید. باید اول از همه چک کنیم ببینیم توی انبار موجود هستش یا نه بعدش موجودی حساب کاربر رو چک کنیم و خیلی کار های دیگه.
تو همچین شرایطی ما میایم از integration test استفاده میکنیم.
Load testing
برای اینکه مطمئن بشیم سیستم ما در حالت نرمال میتونه جوابگو ریکوئست ها باشه از load test استفاده میکنیم.
Stress testing
توی load testing سیستممون رو توی شرایط نرمال تست میکنیم. اما همیشه شرایط نرمال نیست و بعضی وقتا ممکنه سیستم ما زیر فشار بیشتری باشه.
برای تست کردن اینکه سیستم ما در شرایط سنگین و استرسی چجوری عمل میکنه از Stress test استفاده میکنیم.
مطلعه بیشتر تو این لینک
#Test
@Syntax_fa
Unit testing
کلمه Unit به معنی واحد و تک و تنها هستش.
ما برای نوشتن تست برای یک بخش واحد از unit test استفاده میکنیم. برای مثال ما یک فانکشن داریم که کارش محاسبه مالیات بر اساس مقدار درآمد هستش. برای نوشتن تست برای این فانکشن واحد از unit test استفاده میکنیم.
Integration testing
بعضی وقتا خروجی مدنظر ما با کار کردن چند بخش واحد با هم دیگه بدست میاد.
برای مثال سبد خرید رو در نظر بگیرید. باید اول از همه چک کنیم ببینیم توی انبار موجود هستش یا نه بعدش موجودی حساب کاربر رو چک کنیم و خیلی کار های دیگه.
تو همچین شرایطی ما میایم از integration test استفاده میکنیم.
Load testing
برای اینکه مطمئن بشیم سیستم ما در حالت نرمال میتونه جوابگو ریکوئست ها باشه از load test استفاده میکنیم.
Stress testing
توی load testing سیستممون رو توی شرایط نرمال تست میکنیم. اما همیشه شرایط نرمال نیست و بعضی وقتا ممکنه سیستم ما زیر فشار بیشتری باشه.
برای تست کردن اینکه سیستم ما در شرایط سنگین و استرسی چجوری عمل میکنه از Stress test استفاده میکنیم.
مطلعه بیشتر تو این لینک
#Test
@Syntax_fa
👍8
سوال هایی که سطح دانش شما رو مشخص می کنه!
یکی از ساده ترین روش ها برای محک زدن دانشتون، سوال پیچ کردن خودتون هستش.
این کار در دراز مدت باعث میشه سطح دانش شما نسبت به قبل خیلی بیشتر بشه.
خب بیاید چند نوع از این سوالا رو بررسی کنیم.
چیه؟
سوال سطحی که از یک جونیور توقع میره باهاش زیاد سر و کله بزنه این نوع سوال ها هستش.
برای مثال:
فریم ورک چیه؟
داکر چیه؟
رشته چیه؟
فرق بین همروندی و موازی سازی چیه؟
این نوع سوالات شمارو با مفاهیم برنامه نویسی بصورت سطحی آشنا میکنه
اما یه سطح بالاتر سوال هایی هست که درباره چیستی اون ابزار و مفهومه
برای مثال:
چرا از داکر استفاده میکنیم؟
چرا از لاگر ها استفاده میکنیم؟
چرا از میدلور استفاده میکنیم؟
چرا همروندی نیازه؟
در نهایت سوال هایی که پاسخ دادن بهشون، به شما درک عمیقی میدن، سوال هایی هستش که درباره چگونگی کار کردن اون ابزار پرسیده میشه.
برای مثال:
کانتینر چجوری کار میکنه؟
چجوری یک تایپ دیتا از نوع رشته توی حافظه ذخیره میشه؟
فرق بین hypervisor و روش container چی هستش؟
همروندی چجوری باعث پرفورمنس بهتر تو شرایطی که IO داریم میشه؟
پ.ن:
همیشه از خودتون به سبک های مختلف سوال بپرسید و سعی کنید بهترین پاسخ رو براش پیدا کنید.
#Note
@Syntax_fa
یکی از ساده ترین روش ها برای محک زدن دانشتون، سوال پیچ کردن خودتون هستش.
این کار در دراز مدت باعث میشه سطح دانش شما نسبت به قبل خیلی بیشتر بشه.
خب بیاید چند نوع از این سوالا رو بررسی کنیم.
چیه؟
سوال سطحی که از یک جونیور توقع میره باهاش زیاد سر و کله بزنه این نوع سوال ها هستش.
برای مثال:
فریم ورک چیه؟
داکر چیه؟
رشته چیه؟
فرق بین همروندی و موازی سازی چیه؟
این نوع سوالات شمارو با مفاهیم برنامه نویسی بصورت سطحی آشنا میکنه
اما یه سطح بالاتر سوال هایی هست که درباره چیستی اون ابزار و مفهومه
برای مثال:
چرا از داکر استفاده میکنیم؟
چرا از لاگر ها استفاده میکنیم؟
چرا از میدلور استفاده میکنیم؟
چرا همروندی نیازه؟
در نهایت سوال هایی که پاسخ دادن بهشون، به شما درک عمیقی میدن، سوال هایی هستش که درباره چگونگی کار کردن اون ابزار پرسیده میشه.
برای مثال:
کانتینر چجوری کار میکنه؟
چجوری یک تایپ دیتا از نوع رشته توی حافظه ذخیره میشه؟
فرق بین hypervisor و روش container چی هستش؟
همروندی چجوری باعث پرفورمنس بهتر تو شرایطی که IO داریم میشه؟
پ.ن:
همیشه از خودتون به سبک های مختلف سوال بپرسید و سعی کنید بهترین پاسخ رو براش پیدا کنید.
#Note
@Syntax_fa
👍23❤4🔥1
ساختار پیشنهادی کامیونیتی گولنگ برای پروژه ها
https://github.com/golang-standards/project-layout
یکی از اشتباهات خیلیا اینه طبق تجربیات قبلیشون با فلان زبان و ابزار، میان تو یه زبان دیگه به همون روش قبل پیادش می کنن. تو golang standard project layout به همین اشاره کرده که بعضیا از دنیا جاوا میان و طبق یکی از پترن های پر استفادشون تو گولنگم میخوان به همون شکل ساختار پروژشون رو بسازن، ولی خب این تو جامعه گولنگ پیشنهاد نمیشه.
#Project_layout
@Syntax_fa
https://github.com/golang-standards/project-layout
یکی از اشتباهات خیلیا اینه طبق تجربیات قبلیشون با فلان زبان و ابزار، میان تو یه زبان دیگه به همون روش قبل پیادش می کنن. تو golang standard project layout به همین اشاره کرده که بعضیا از دنیا جاوا میان و طبق یکی از پترن های پر استفادشون تو گولنگم میخوان به همون شکل ساختار پروژشون رو بسازن، ولی خب این تو جامعه گولنگ پیشنهاد نمیشه.
#Project_layout
@Syntax_fa
GitHub
GitHub - golang-standards/project-layout: Standard Go Project Layout
Standard Go Project Layout. Contribute to golang-standards/project-layout development by creating an account on GitHub.
👍7❤1
اگر این روزها PDF مقاله(انگلیسی) میخونید، از مرورگر Microsoft Edge استفاده کنید، چرا؟ در ادامه به ۴ مورد اشاره میکنم:
۱- میتونید قسمتهای مختلف متن رو با چندین رنگ هایلایت کنید ولی حتما بعدش Ctrl+S رو بزنید که ذخیره بشه.
۲- برای متنها میتونید کامنت بزارید.
۳- مترجم هم داره، هرقسمت از متن رو انتخاب کنید، براتون به هر زبانی ترجمه میکنه.
۴- و درنهایت یک فیچر جذاب، امکان استفاده از هوشمصنوعی Copilot در کنار مقاله. به این صورت که به مقاله دسترسی داره، میتونید هر قسمتی که متوجه نشدید رو ازش بپرسید و بگید براتون بیشتر توضیح بده یا....
امیدوارم براتون مفید باشه.
[amir motaheri]
#Note
@Syntax_fa
۱- میتونید قسمتهای مختلف متن رو با چندین رنگ هایلایت کنید ولی حتما بعدش Ctrl+S رو بزنید که ذخیره بشه.
۲- برای متنها میتونید کامنت بزارید.
۳- مترجم هم داره، هرقسمت از متن رو انتخاب کنید، براتون به هر زبانی ترجمه میکنه.
۴- و درنهایت یک فیچر جذاب، امکان استفاده از هوشمصنوعی Copilot در کنار مقاله. به این صورت که به مقاله دسترسی داره، میتونید هر قسمتی که متوجه نشدید رو ازش بپرسید و بگید براتون بیشتر توضیح بده یا....
امیدوارم براتون مفید باشه.
[amir motaheri]
#Note
@Syntax_fa
👍15
سیزده وب سایت پر بازدید دنیا
سرچ انجین duckduckgo رشد خوبی رو داشته
یچیز باحال تر اینکه از بین این 13 تا 8 تاش فیلتره یا اینکه هم فیلتره و هم تحریمیم از اونطرف
#Fun
@Syntax_fa
سرچ انجین duckduckgo رشد خوبی رو داشته
یچیز باحال تر اینکه از بین این 13 تا 8 تاش فیلتره یا اینکه هم فیلتره و هم تحریمیم از اونطرف
#Fun
@Syntax_fa
👍10
#نکات_قرارداد
۱) قرارداد حتماً باید نوشته بشه، اصلا روی حرف و ... هیچ چیزی قبول نکنید
۲) متن قرارداد رو حتماً بطور کامل بخونید، شما موظف نیستید همون لحظه که قرار داد بهتون داده میشه تا ۵ دقیقه بعد امضا بزنید.
(شخصاً یک نسخه از قرارداد و ضمیمههاش رو میخوام که زودتر برام ارسال بشه و ۱-۲ روز مهلت خوندن به خودم میدم)
۳) بدون قرارداد کتبی هیچ کجا کار نکنید، مگر اینکه مبلغ رو قبل از شروع کار براتون واریز کنند
همه دوستان میدونند، شخصاً ممکنه با یک جا هم به توافق برسم.
اما اگر طرف قبل از قرارداد تسک بفرسته، دیگه باهاش همکاری نمیکنم، چون ۲ حالت بیشتر نداره
۳-۱ ) یا با هدف کلاهبرداری و از زیر موارد توافق شده فرار کردن قرارداد کتبی به شما تحویل نمیده
۳-۲ ) یا اینکه یک پروژه ۱ ساله گرفته، خواسته با نیروی ۵ میلیونی کار رو در بیاره و حالا توی ماههای آخر هست و شدیداً نیاز به خروجی داره پس از ۱ روز هم نمیگذره که خب اینجا هم باید فرار کنید.
۴- یک نسخه از قرارداد رو همیشه تحویل بگیرید و پیش خودتون نگهدارید
۵- به تاریخهایی که بیش از مدت قرارداد هست توجه کنید؛ توی ایران متن قرارداد هارو خیلی از شرکتها به وکیلها میسپارند و ازونجایی که ۹۹٪ وکیلها برای قراردادهای کامیپوتری و فنی آماده نیستن متون مزخرف زیاد دیده میشه
برای مثال ۳ سال قبل، یک شرکت ایرانی - آلمانی برای من قراردادی رو از دفتر ایران فرستاد، توی متن قرارداد نسخه فارسی نوشته شده بود که تا ۵ سال بعد از خروج از شرکت حق مشارکت با هیچ استارتاپ یا شرکت نرمافزار پزشکی رو ندارم.
همین خطا هست، مصاحبه من با دفتر آلمان بود و چون قرارداد رو امضا نکردم پیگیر شدند
براشون توضیح دادم موضوع رو و ...
اما مسئله این هست، هیچ شرکتی حق نوشتن این موضوع رو نداره.
شما حق استفاده از تجربیاتت رو داری و این یعنی بعد از کار توی هر شرکتی میتونی به یک شرکت با بیزینس مشابه بری و اونجا شروع به فعالیت کنی (دستمزد، برخورد یا هرچیزی)
اما طبق NDA شما حق انتقال دانش در مورد فیچرها، جزئیات عملکرد داخلی و ... که بعد از تحقیقات فراوان شرکت قبلی بهش رسیده و تجربه شخصی شما نیست رو به شرکت جدید ندارید.
حتی اگر این موضوع توی متن قرارداد شما نباشه، و اینکار رو بکنید شرکت میتونه از شما شکایت کنه و ۹۹.۹٪ موارد هم رأی دادگاه برای شرکت هست.
۶- هر چیزی که از شرکت تحویل میگیرید و یا به شرکت تحویل میدید
بخصوص تحت عنوان ضمانت نامه، باید حتماً توی ضمیمهای از قرارداد باشه و حتماً مهر و امضا مسئول شرکت رو هم داشته باشه.
مهمتر از اون باید اعلام بشه چه زمان و تحت چه شرایطی این ضمانت میتونه به اجرا گذاشته بشه و چه زمان و تحت چه شرایطی این ضمانت باید پس داده بشه.
در نهایت حتماً، حتماً، حتماً از قرارداد و ضمیمههای اون باید همیشه ۲ نسخه کاملاً رسمی (مهر، سربرگ، امضا، و ....) وجود داشته باشه
نسخهای دست شما و نسخهی دیگری برای شرکت.
اگر مورد دیگری در آینده یادم افتاد، حتماً به این پیام اضافه میکنم.
پای هینت
https://news.1rj.ru/str/pyHints
۱) قرارداد حتماً باید نوشته بشه، اصلا روی حرف و ... هیچ چیزی قبول نکنید
۲) متن قرارداد رو حتماً بطور کامل بخونید، شما موظف نیستید همون لحظه که قرار داد بهتون داده میشه تا ۵ دقیقه بعد امضا بزنید.
(شخصاً یک نسخه از قرارداد و ضمیمههاش رو میخوام که زودتر برام ارسال بشه و ۱-۲ روز مهلت خوندن به خودم میدم)
۳) بدون قرارداد کتبی هیچ کجا کار نکنید، مگر اینکه مبلغ رو قبل از شروع کار براتون واریز کنند
همه دوستان میدونند، شخصاً ممکنه با یک جا هم به توافق برسم.
اما اگر طرف قبل از قرارداد تسک بفرسته، دیگه باهاش همکاری نمیکنم، چون ۲ حالت بیشتر نداره
۳-۱ ) یا با هدف کلاهبرداری و از زیر موارد توافق شده فرار کردن قرارداد کتبی به شما تحویل نمیده
۳-۲ ) یا اینکه یک پروژه ۱ ساله گرفته، خواسته با نیروی ۵ میلیونی کار رو در بیاره و حالا توی ماههای آخر هست و شدیداً نیاز به خروجی داره پس از ۱ روز هم نمیگذره که خب اینجا هم باید فرار کنید.
۴- یک نسخه از قرارداد رو همیشه تحویل بگیرید و پیش خودتون نگهدارید
۵- به تاریخهایی که بیش از مدت قرارداد هست توجه کنید؛ توی ایران متن قرارداد هارو خیلی از شرکتها به وکیلها میسپارند و ازونجایی که ۹۹٪ وکیلها برای قراردادهای کامیپوتری و فنی آماده نیستن متون مزخرف زیاد دیده میشه
برای مثال ۳ سال قبل، یک شرکت ایرانی - آلمانی برای من قراردادی رو از دفتر ایران فرستاد، توی متن قرارداد نسخه فارسی نوشته شده بود که تا ۵ سال بعد از خروج از شرکت حق مشارکت با هیچ استارتاپ یا شرکت نرمافزار پزشکی رو ندارم.
همین خطا هست، مصاحبه من با دفتر آلمان بود و چون قرارداد رو امضا نکردم پیگیر شدند
براشون توضیح دادم موضوع رو و ...
اما مسئله این هست، هیچ شرکتی حق نوشتن این موضوع رو نداره.
شما حق استفاده از تجربیاتت رو داری و این یعنی بعد از کار توی هر شرکتی میتونی به یک شرکت با بیزینس مشابه بری و اونجا شروع به فعالیت کنی (دستمزد، برخورد یا هرچیزی)
اما طبق NDA شما حق انتقال دانش در مورد فیچرها، جزئیات عملکرد داخلی و ... که بعد از تحقیقات فراوان شرکت قبلی بهش رسیده و تجربه شخصی شما نیست رو به شرکت جدید ندارید.
حتی اگر این موضوع توی متن قرارداد شما نباشه، و اینکار رو بکنید شرکت میتونه از شما شکایت کنه و ۹۹.۹٪ موارد هم رأی دادگاه برای شرکت هست.
۶- هر چیزی که از شرکت تحویل میگیرید و یا به شرکت تحویل میدید
بخصوص تحت عنوان ضمانت نامه، باید حتماً توی ضمیمهای از قرارداد باشه و حتماً مهر و امضا مسئول شرکت رو هم داشته باشه.
مهمتر از اون باید اعلام بشه چه زمان و تحت چه شرایطی این ضمانت میتونه به اجرا گذاشته بشه و چه زمان و تحت چه شرایطی این ضمانت باید پس داده بشه.
در نهایت حتماً، حتماً، حتماً از قرارداد و ضمیمههای اون باید همیشه ۲ نسخه کاملاً رسمی (مهر، سربرگ، امضا، و ....) وجود داشته باشه
نسخهای دست شما و نسخهی دیگری برای شرکت.
اگر مورد دیگری در آینده یادم افتاد، حتماً به این پیام اضافه میکنم.
پای هینت
https://news.1rj.ru/str/pyHints
❤15👍5🔥2
چه تفاوتی بین mutable datatype با immutable datatype هست؟
دیتاتایپ های mutable میتونن ادیت بشن و در زمان ران تایم تغییر کنن مثل لیست و دیکشنری.
ولی دیتاتایپ های Immutable نمیتونن ادیت بشن و موقع ران تایم برنامه نمیتونن تغییر کنن. مثل String و تاپل
#python_interview
@Syntax_fa
دیتاتایپ های mutable میتونن ادیت بشن و در زمان ران تایم تغییر کنن مثل لیست و دیکشنری.
ولی دیتاتایپ های Immutable نمیتونن ادیت بشن و موقع ران تایم برنامه نمیتونن تغییر کنن. مثل String و تاپل
#python_interview
@Syntax_fa
👍6
Forwarded from Syntax | سینتکس (Alireza-fa)
bytes buffer and string builder
یکی از انواع داده ای که در اکثر زبانهای برنامه نویسی وجود دارد و در استفاده از آن باید دقت داشته باشیم نوع string است.
قطعه کد زیر را در نظر بگیرید:
زمانی که نیاز داریم تا مقدار یک رشته را تغییر دهیم نوشتن به این روش اشتباه میباشد. دلیل آن در این نهفته است که هر دفعه که شما این رشته را تغییر میدهید فارغ از متغیر پیشین یک فضای جدید در حافظه برای آن رزرو میشود. بنابراین این قطعه کد memory efficient نیست.
در بسیاری از زبانها برای چنین مسایلی از string builder استفاده میشود. در گو هم string builder را داریم و هم bytes.Buffer.
این ساختارها از byte slice در پشت صحنه استفاده میکنند و تغییرات را روی آرایه داخلی اعمال میکنند. در نتیجه نیاز به رزرو فضاهای زیاد ندارند و memory efficientتر خواهند بود.
strings.Builder :
bytes.Buffer :
حالا تابع indent را در نظر بگیرید این تابع قرار است تغییرات زیادی را در خطوط مختلف یک رشته (byte array json) اعمال نماید. پس مناسب است از بافر استفاده شود و به همین خاطر تابع مورد نظر یک bytes.Buffer دریافت میکند و خروجی را در آن قرار میدهد.
تفاوت bytes.Buffer و strings.Builder در این است که bytes.Buffer عمومیتر میباشد ولی strings.Builder برای رشته استفاده میشود.
برای تمرین هر کدوم از بچهها که میتونه یک بنچمارک بنویسه و در یک حلقه بزرگ مقدار موجود در یک رشته رو تغییر بده و همین کار رو یکبار با استفاده از bytes Buffer و strings Builder هم انجام بده و نتیجه مصرف memory رو با ما به اشتراک بذاره
#string
@Syntax_fa
یکی از انواع داده ای که در اکثر زبانهای برنامه نویسی وجود دارد و در استفاده از آن باید دقت داشته باشیم نوع string است.
قطعه کد زیر را در نظر بگیرید:
var query string = "select "
query += "name, family "
query += "from "
query += "users "
query += "where 1 = 1 "
query += "and name = `ali` "
db.Execute(query)
زمانی که نیاز داریم تا مقدار یک رشته را تغییر دهیم نوشتن به این روش اشتباه میباشد. دلیل آن در این نهفته است که هر دفعه که شما این رشته را تغییر میدهید فارغ از متغیر پیشین یک فضای جدید در حافظه برای آن رزرو میشود. بنابراین این قطعه کد memory efficient نیست.
در بسیاری از زبانها برای چنین مسایلی از string builder استفاده میشود. در گو هم string builder را داریم و هم bytes.Buffer.
این ساختارها از byte slice در پشت صحنه استفاده میکنند و تغییرات را روی آرایه داخلی اعمال میکنند. در نتیجه نیاز به رزرو فضاهای زیاد ندارند و memory efficientتر خواهند بود.
strings.Builder :
var sbQuery strings.Builder
sbQuery.WriteString("select ")
sbQuery.WriteString("name, family ")
sbQuery.WriteString("from ")
sbQuery.WriteString("users ")
sbQuery.WriteString("where 1 = 1 ")
sbQuery.WriteString("and name = `ali` ")
db.Execute(query)
bytes.Buffer :
var btQuery bytes.Buffer = bytes.Buffer{}
btQuery.WriteString("select ")
btQuery.WriteString("name, family ")
btQuery.WriteString("from ")
btQuery.WriteString("users ")
btQuery.WriteString("where 1 = 1 ")
btQuery.WriteString("and name = `ali` ")
db.Execute(query)حالا تابع indent را در نظر بگیرید این تابع قرار است تغییرات زیادی را در خطوط مختلف یک رشته (byte array json) اعمال نماید. پس مناسب است از بافر استفاده شود و به همین خاطر تابع مورد نظر یک bytes.Buffer دریافت میکند و خروجی را در آن قرار میدهد.
تفاوت bytes.Buffer و strings.Builder در این است که bytes.Buffer عمومیتر میباشد ولی strings.Builder برای رشته استفاده میشود.
برای تمرین هر کدوم از بچهها که میتونه یک بنچمارک بنویسه و در یک حلقه بزرگ مقدار موجود در یک رشته رو تغییر بده و همین کار رو یکبار با استفاده از bytes Buffer و strings Builder هم انجام بده و نتیجه مصرف memory رو با ما به اشتراک بذاره
#string
@Syntax_fa
👍5
Syntax | سینتکس
bytes buffer and string builder یکی از انواع داده ای که در اکثر زبانهای برنامه نویسی وجود دارد و در استفاده از آن باید دقت داشته باشیم نوع string است. قطعه کد زیر را در نظر بگیرید: var query string = "select " query += "name, family " query…
یه پست قدیمی کانال درباره string برای درک بهتر اینکه تو پس زمینه چه اتفاقی میوفته
👍2
آرگومان های یک فانکشن توی پایتون بصورت ولیو پاس داده میشه یا بصورت رفرنس؟
همه چی توی پایتون آبجکت هستش و همه ی value ها بصورت رفرنس توی آبجکت نگه داشته میشن.
پس آرگومان ها بصورت رفرنس پاس داده میشن و اگه mutable datatype باشه میشه تغییری در مقدار پاس داده شده بوجود آورد و اما اگه immutable datatype باشه نمیشه.
#Python_interview
@Syntax_fa
همه چی توی پایتون آبجکت هستش و همه ی value ها بصورت رفرنس توی آبجکت نگه داشته میشن.
پس آرگومان ها بصورت رفرنس پاس داده میشن و اگه mutable datatype باشه میشه تغییری در مقدار پاس داده شده بوجود آورد و اما اگه immutable datatype باشه نمیشه.
#Python_interview
@Syntax_fa
👍7
پنجاه تا سوال تاپ مصاحبه پایتون
وب سایت geeksforgeeks
https://www.geeksforgeeks.org/python-interview-questions/
#Python_interview
@Syntax_fa
وب سایت geeksforgeeks
https://www.geeksforgeeks.org/python-interview-questions/
#Python_interview
@Syntax_fa
GeeksforGeeks
Top 50+ Python Interview Questions and Answers (2025) - GeeksforGeeks
Your All-in-One Learning Portal: GeeksforGeeks is a comprehensive educational platform that empowers learners across domains-spanning computer science and programming, school education, upskilling, commerce, software tools, competitive exams, and more.
🔥3❤1
This media is not supported in your browser
VIEW IN TELEGRAM
چارلی چاپلین در پایان فیلم "دیکتاتور بزرگ"
🔘صحنهای که او از نقش کمدی خودش بیرون میآید و بدون واسطه و خارج از نقش با تماشاگر صحبت میکند
بیش از ابزار، به انسانیت نیاز داریم
@Syntax_fa
🔘صحنهای که او از نقش کمدی خودش بیرون میآید و بدون واسطه و خارج از نقش با تماشاگر صحبت میکند
بیش از ابزار، به انسانیت نیاز داریم
@Syntax_fa
❤10❤🔥1👍1
من تو خواب هامم فقیرم
دیشب خواب دیدم رفتیم روی دامین localhost.com دارم NGINX کانفیگ میکنم😂😂😂😂
لینوکسی
#Fun
@Syntax_fa
دیشب خواب دیدم رفتیم روی دامین localhost.com دارم NGINX کانفیگ میکنم😂😂😂😂
لینوکسی
#Fun
@Syntax_fa
🤣22👍1