به طور ساده تر
مثلا برای یوزری که دسترسی خاصی نداره
تو پیاده سازیش میگیم as_user_ids همیشه مساویه با user_id خودش تو JWT. چون نمیتونه user دیگه ای رو میمیک کنه
اگه ادمین بود, هر یوزری خواست میتونه mimic کنه. مشکلی نداره. کلا reutrn True همه جا 🙂
ولی اگه مثلا یوزر خاصی بود (مثل حالت مجموعه گیری) که میتونست چند یوزر دیگه رو کنترل کنه, اون موقع باید تو ACL service چک کنیم که ایا این یوزر میتونه mimic کنه اون یوزر دیگه رو یا نه؟ و اگه میتونست, اونوقت کنترل رو ران کنیم. اگه نمیتونست, همونجا http exception بندازه.
مثلا برای یوزری که دسترسی خاصی نداره
تو پیاده سازیش میگیم as_user_ids همیشه مساویه با user_id خودش تو JWT. چون نمیتونه user دیگه ای رو میمیک کنه
اگه ادمین بود, هر یوزری خواست میتونه mimic کنه. مشکلی نداره. کلا reutrn True همه جا 🙂
ولی اگه مثلا یوزر خاصی بود (مثل حالت مجموعه گیری) که میتونست چند یوزر دیگه رو کنترل کنه, اون موقع باید تو ACL service چک کنیم که ایا این یوزر میتونه mimic کنه اون یوزر دیگه رو یا نه؟ و اگه میتونست, اونوقت کنترل رو ران کنیم. اگه نمیتونست, همونجا http exception بندازه.
👍5❤1
یک نکته خیلیییی مهم وقتی دارین از async orm استفاده میکنید مثل sqlalchemy async engine مثل asyncpg
اگه دارین transaction میزنید اصلا نباید connection sessionاتون رو بین coroutine ها share کنید. تا وقتی تراکنش کامل نشده. ممکنه فاجعه رخ بده. مثل Unintended commit یا رول بک نخوردن یا Data Inconsistencies یا deadlock یا از بین رفتن ایزولیشنی که تو transaction داریم یا خیلی حالت های دیگه که نمیگنجه تو این پست جا بدم!
ارور هندلینگتون کاملا باید به صورت graceful باشه که کانکشن رو تو حالت stable نگه داره و بسته نشه.
بهترین کار چیه؟ فقط واسه read بیاین از چند coroutine استفاده کنید. دیگه خیالتون راحت هیچ اتفاقی نمیفته. میتونید کل query هایی که میزنید رو همه یک جا بزنید. و مشکل N+1 اگه تو یک روتر دارید (که از query نمیاد مثلا باید رو یک ریزالتی لوپ بزنید و قبلش یک درخواست به یک جایی بزنید بعد query بنویسید برای هر ریزالت درخواست)میتونید با این روش حداقل تو لایه اپلیکیشن ریسپانس تایمو به شدت کاهش بدید (البته حواستون باشه دیتابیس رو داون نکنید :)) حواستون باشه N چقدر گندست).
@ManiFoldsPython
اگه دارین transaction میزنید اصلا نباید connection sessionاتون رو بین coroutine ها share کنید. تا وقتی تراکنش کامل نشده. ممکنه فاجعه رخ بده. مثل Unintended commit یا رول بک نخوردن یا Data Inconsistencies یا deadlock یا از بین رفتن ایزولیشنی که تو transaction داریم یا خیلی حالت های دیگه که نمیگنجه تو این پست جا بدم!
ارور هندلینگتون کاملا باید به صورت graceful باشه که کانکشن رو تو حالت stable نگه داره و بسته نشه.
بهترین کار چیه؟ فقط واسه read بیاین از چند coroutine استفاده کنید. دیگه خیالتون راحت هیچ اتفاقی نمیفته. میتونید کل query هایی که میزنید رو همه یک جا بزنید. و مشکل N+1 اگه تو یک روتر دارید (که از query نمیاد مثلا باید رو یک ریزالتی لوپ بزنید و قبلش یک درخواست به یک جایی بزنید بعد query بنویسید برای هر ریزالت درخواست)میتونید با این روش حداقل تو لایه اپلیکیشن ریسپانس تایمو به شدت کاهش بدید (البته حواستون باشه دیتابیس رو داون نکنید :)) حواستون باشه N چقدر گندست).
@ManiFoldsPython
👍9
یک کدینگ چلنج بسیار ساده و در عین حال بسیار سخت جهت تمرین 🙂
Software Requirements:
فرض کنید برنامه ای دارید برای یک مدرسه ای مینویسید. داخل مدرسه ۴ یوزر role مختلف وجود داره:
۱. مدیر(ادمین)
۲. مشاور
۳. معلم
۴. دانش آموز
یک اپ student طراحی کنید که داخل آن یک نمره grade دانش اموز مشخص باشد. و همچنین امکان CRUD برای آبجکت دانش آموز وجود داشته باشد
۱. ادمین توانایی CRUD رو تو سطح کل مدرسه داشته باشد. ادمین میتواند دانش آموز را از مدرسه اخراج کند.
۲. مشاور فقط قابلیت read ولی اطلاعات دانش اموز سطح کل مدرسه رو داشته باشد
۳. معلم قابلیت CRUD فقط تو کلاس خودش را داشته باشد. معلم نمیتواند دانش آموزی را از یک کلاس دیگه که معملش نیست اخراج کند.(دیلیت کند)
۴. دانش آموز فقط میتواند نمره خودش رو ببینید و اجازه آپدیت و خروج و یا ساخت دانش آموز دیگر یا دیدن نمره دانش آموز دیگری رو ندارد.
Technology Requirements:
زبان برنامه نویسی می بایست پایتون باشد.
برای انجام این تسک ازJWT و فست یا فلسک استفاده کنید.
به جهت ساده سازی و کاستن زمان صرف شده میتونید از ساخت تیبل SQL صرفه نظر کنید و دیتا رو داخل اپلیکیشن ذخیره کنید. توجه کنید استراکچر تیبل سازی و دیتا کلاس مطابقا می بایست رعایت شود.
تست نوشتن قدردانی می شود.(writing test is appreciated)
رعایت اصول OOP و سالید و کلین کد ارزش ارزش گذاری میشود
بیش از ۴ ساعت برای این تسک زمان نذارید.
----
خودم انجامش میدم ریپوشو بعدا میذارم اینجا. شما هم اگه دوست داشتین انجام بدید. اگه ریپو رو ریپلای کنید رو همین پیام بررسی میکنم حتما
۴ ساعت دیگه نه. کلا بهتره ۴ ساعت وقت بذارین براش بیشتر نشه. بیشترم شد اشکالی نداره ولی بهتره که خیلی وقت نذارید روش.
هر موقع وقتتون خالی بود وقت بذارید براش. ددلاین نداره استخدام که نمیکنم:))
همین پستو تو لینکدین هم گذاشتم. لینک
اگه تمایل داشتین تو لینکدین هم میتونید ریپلای کنید و بذارید که یک نتورکی بشه براتون
@ManiFoldsPython
Software Requirements:
فرض کنید برنامه ای دارید برای یک مدرسه ای مینویسید. داخل مدرسه ۴ یوزر role مختلف وجود داره:
۱. مدیر(ادمین)
۲. مشاور
۳. معلم
۴. دانش آموز
یک اپ student طراحی کنید که داخل آن یک نمره grade دانش اموز مشخص باشد. و همچنین امکان CRUD برای آبجکت دانش آموز وجود داشته باشد
۱. ادمین توانایی CRUD رو تو سطح کل مدرسه داشته باشد. ادمین میتواند دانش آموز را از مدرسه اخراج کند.
۲. مشاور فقط قابلیت read ولی اطلاعات دانش اموز سطح کل مدرسه رو داشته باشد
۳. معلم قابلیت CRUD فقط تو کلاس خودش را داشته باشد. معلم نمیتواند دانش آموزی را از یک کلاس دیگه که معملش نیست اخراج کند.(دیلیت کند)
۴. دانش آموز فقط میتواند نمره خودش رو ببینید و اجازه آپدیت و خروج و یا ساخت دانش آموز دیگر یا دیدن نمره دانش آموز دیگری رو ندارد.
Technology Requirements:
زبان برنامه نویسی می بایست پایتون باشد.
برای انجام این تسک ازJWT و فست یا فلسک استفاده کنید.
به جهت ساده سازی و کاستن زمان صرف شده میتونید از ساخت تیبل SQL صرفه نظر کنید و دیتا رو داخل اپلیکیشن ذخیره کنید. توجه کنید استراکچر تیبل سازی و دیتا کلاس مطابقا می بایست رعایت شود.
تست نوشتن قدردانی می شود.(writing test is appreciated)
رعایت اصول OOP و سالید و کلین کد ارزش ارزش گذاری میشود
بیش از ۴ ساعت برای این تسک زمان نذارید.
----
خودم انجامش میدم ریپوشو بعدا میذارم اینجا. شما هم اگه دوست داشتین انجام بدید. اگه ریپو رو ریپلای کنید رو همین پیام بررسی میکنم حتما
۴ ساعت دیگه نه. کلا بهتره ۴ ساعت وقت بذارین براش بیشتر نشه. بیشترم شد اشکالی نداره ولی بهتره که خیلی وقت نذارید روش.
هر موقع وقتتون خالی بود وقت بذارید براش. ددلاین نداره استخدام که نمیکنم:))
همین پستو تو لینکدین هم گذاشتم. لینک
اگه تمایل داشتین تو لینکدین هم میتونید ریپلای کنید و بذارید که یک نتورکی بشه براتون
@ManiFoldsPython
Linkedin
A Super Simple yet Super Tough Coding Challenge for Practice 🙂
Software… | Mani Mozaffar
Software… | Mani Mozaffar
A Super Simple yet Super Tough Coding Challenge for Practice 🙂
Software Requirements:
Imagine you're writing a program for a school. Within the school, there are 4 different user roles:
1. Admin
2. Counselor
3. Teacher
4. Student
Design a student app, where…
Software Requirements:
Imagine you're writing a program for a school. Within the school, there are 4 different user roles:
1. Admin
2. Counselor
3. Teacher
4. Student
Design a student app, where…
👍13🤩4
CodeNaline S2 E10 - Mark
torham
تو این اپیزود با مارک پشمفروش پیش رفتیم و باهم دیگه درباره اینکه چی شد که فارسی یادگرفت چی شد که به کرنل لینوکس کانتربیوت کرد و داخل کلاودفلر چیکار میکرد حرف زدیم، یک عالمه سوال باحال پرسیدیم و باهم دیگه یک بازی کردیم :). این اپیزود از دست ندید 🤝🍻.
وبسایت مارک : http://markpash.me
🎙 @CodeNaline
🗣 @TorhamDevCH
وبسایت مارک : http://markpash.me
🎙 @CodeNaline
🗣 @TorhamDevCH
👍4
Python BackendHub
یک کدینگ چلنج بسیار ساده و در عین حال بسیار سخت جهت تمرین 🙂 Software Requirements: فرض کنید برنامه ای دارید برای یک مدرسه ای مینویسید. داخل مدرسه ۴ یوزر role مختلف وجود داره: ۱. مدیر(ادمین) ۲. مشاور ۳. معلم ۴. دانش آموز یک اپ student طراحی کنید که داخل…
یک نکته:
خودم خیلیی علاقه دارم که یوتیوب رو شروع کنم، ولی یک نکته داره، متنو من هرروز مینویسم و رد میشم. شما نمیای تو کانالم متن ۱ سال پیش منو بخونی؟ درسته؟
ولی یوتیوب فیلم بذارم ۵ سال بعدم ممکنه بیاین سراغش.
پس باید بیشتر به self study ادامه بدم تا جایی که حس کنم مطلبی که میگم اینقدر valid هست که دو سال دیگه دیدمش خجالت نکشم از خودم بگم وای چه فیلمی پست کردم
ولی live coding همون لحظست! فردا که نمیرسم ۲ ساعت لایو کد بذارم، بعدشم طول هفست وقت ندارم. ولی شنبه/یک شنبه هفته دیگه وقت دارم. بنظرتون لایو کد بذارم اینو یکی دو ساعته پیاده کنم؟ یا کد بزنم بیام تو ۱۰-۱۵ دقیقه لایو توضیحش بدم و سوالاتو جواب بدم؟
خودم خیلیی علاقه دارم که یوتیوب رو شروع کنم، ولی یک نکته داره، متنو من هرروز مینویسم و رد میشم. شما نمیای تو کانالم متن ۱ سال پیش منو بخونی؟ درسته؟
ولی یوتیوب فیلم بذارم ۵ سال بعدم ممکنه بیاین سراغش.
پس باید بیشتر به self study ادامه بدم تا جایی که حس کنم مطلبی که میگم اینقدر valid هست که دو سال دیگه دیدمش خجالت نکشم از خودم بگم وای چه فیلمی پست کردم
ولی live coding همون لحظست! فردا که نمیرسم ۲ ساعت لایو کد بذارم، بعدشم طول هفست وقت ندارم. ولی شنبه/یک شنبه هفته دیگه وقت دارم. بنظرتون لایو کد بذارم اینو یکی دو ساعته پیاده کنم؟ یا کد بزنم بیام تو ۱۰-۱۵ دقیقه لایو توضیحش بدم و سوالاتو جواب بدم؟
👍35
لایو کدینگ بذارم؟
Final Results
85%
۱-۲ ساعت،لایو کد با کل پیاده سازی
15%
۱۰-۲۰ دقیقه، در حد presentation و QA
❤21⚡2💩2
Python BackendHub
لایو کدینگ بذارم؟
خیلی خوشحال شدم از این حجم engagement 🙏
یک شنبه از ساعت ۸ تا ۹:۳۰ شب تهران من live code رو میذارم. (منظورم هفته دیگست). روی گوگل میت خواهد بود.
اگه ریپوتون رو تموم کرده باشین بعد از لایو کدینگ تمام ریپو هارو بررسی میکنم و feedback میدم نظرات شخصیمو راجب ریپو همونجا به صورت لایو.
ابتدا ۱۰ دقیقه اول تسک رو میخونیم و نکاتی که باید موقع خوندن و قبل از انجام تسک رو رعایت کنید توضیح میدم.
بعد دیزاین میکنیم, و در نهایت شروع میکنیم به کد زدن. آخرش هم اگه فرصت شد تست نویسی هم انجام میدیم.
حتما توصیه میکنم حداقل ۱۰ دقیقه اول رو miss نکنید چون از سوالات مشخص بود که کسی به hidden point های coding challenge پی نبرده
@ManiFoldsPython
یک شنبه از ساعت ۸ تا ۹:۳۰ شب تهران من live code رو میذارم. (منظورم هفته دیگست). روی گوگل میت خواهد بود.
اگه ریپوتون رو تموم کرده باشین بعد از لایو کدینگ تمام ریپو هارو بررسی میکنم و feedback میدم نظرات شخصیمو راجب ریپو همونجا به صورت لایو.
ابتدا ۱۰ دقیقه اول تسک رو میخونیم و نکاتی که باید موقع خوندن و قبل از انجام تسک رو رعایت کنید توضیح میدم.
بعد دیزاین میکنیم, و در نهایت شروع میکنیم به کد زدن. آخرش هم اگه فرصت شد تست نویسی هم انجام میدیم.
حتما توصیه میکنم حداقل ۱۰ دقیقه اول رو miss نکنید چون از سوالات مشخص بود که کسی به hidden point های coding challenge پی نبرده
@ManiFoldsPython
❤21👍7❤🔥2
با این کامند میتونید فایل های بزرگ تر از ۴۰۰ خط پروژتون رو پیدا کنید.
اینکه فایلی بیشتر از ۴۰۰ خط باشه میتونه منطقی باشه. ولی بهتره خود فایلو یک دور نگاه کنید ببینید میشه ریفکتورش کرد؟ میشه مرتب ترش کرد؟ اکثر اوقات میشه 🙂
پ.ن:ویدیو ورک شاپ arjan code رو حتما ثبت نام کنید و ببینید
Free code diagnosis 👌
https://www.arjancodes.com/diagnosis
@ManifoldsPython
اینکه فایلی بیشتر از ۴۰۰ خط باشه میتونه منطقی باشه. ولی بهتره خود فایلو یک دور نگاه کنید ببینید میشه ریفکتورش کرد؟ میشه مرتب ترش کرد؟ اکثر اوقات میشه 🙂
git ls-files | grep '\.py$' | xargs -I {} sh -c 'lines=$(wc -l < {}); if [ "$lines" -gt 400 ]; then echo "$lines lines - {}"; fi' | sort -nrk1 | head -n 10
پ.ن:ویدیو ورک شاپ arjan code رو حتما ثبت نام کنید و ببینید
Free code diagnosis 👌
https://www.arjancodes.com/diagnosis
@ManifoldsPython
ArjanCodes | Become a better software developer
I'm Arjan Egges, a software developer and educator with a passion for building beautiful, efficient, and reliable software.
👍7🔥1
واو
شما فایلو کپی کنید تو تلگرام
خوده تلگرام archive یا zip میکنه :))
چقدر خفن بود برام این قابلیت 😁 نمیدونستم اولش
شما فایلو کپی کنید تو تلگرام
خوده تلگرام archive یا zip میکنه :))
چقدر خفن بود برام این قابلیت 😁 نمیدونستم اولش
🥰5👍1
The software mindset
قیمت این کورس از ۲۳۰ دلار شروع میشه تا ۷۰۰ دلار که Arjan میفروشه. حالا به هر طریقی دانلود کردیم (با تشکر از سایه بابت معرفی اون طریق 😁)
گذاشتم تو کانال زیر. داره اپلود میشه کامل نشده.
https://news.1rj.ru/str/+wHLS0yl7y_M4Yzdk
این کورس رو حتمااااا ببینید (البته اگه با غیر قانونی دیدنش مشکل ندارین)
مباحثش به شدت مهمه! تو عکس تایتل هاشو گذاشتم.
خودمم دیروز دانلودش کردم که ببینم.
@ManiFoldsPython
قیمت این کورس از ۲۳۰ دلار شروع میشه تا ۷۰۰ دلار که Arjan میفروشه. حالا به هر طریقی دانلود کردیم (با تشکر از سایه بابت معرفی اون طریق 😁)
گذاشتم تو کانال زیر. داره اپلود میشه کامل نشده.
https://news.1rj.ru/str/+wHLS0yl7y_M4Yzdk
این کورس رو حتمااااا ببینید (البته اگه با غیر قانونی دیدنش مشکل ندارین)
مباحثش به شدت مهمه! تو عکس تایتل هاشو گذاشتم.
خودمم دیروز دانلودش کردم که ببینم.
@ManiFoldsPython
❤31👍4🥰2😁2🤬2
Python BackendHub
The software mindset قیمت این کورس از ۲۳۰ دلار شروع میشه تا ۷۰۰ دلار که Arjan میفروشه. حالا به هر طریقی دانلود کردیم (با تشکر از سایه بابت معرفی اون طریق 😁) گذاشتم تو کانال زیر. داره اپلود میشه کامل نشده. https://news.1rj.ru/str/+wHLS0yl7y_M4Yzdk این کورس رو حتمااااا…
دوستانی که این دوره رو میبینن:
۱. این دوره بهتون مایندست. software engineer میده تو context دیزاین برنامتون.
۲. دوستان دیزاین صفر تا صد نظر شخصیه. مثل فلسفه. چیزی نیست که absolute باشه. بگید یا یکه یا صفر. نظرات زیاده. آدم بهتره هرچیزی که با ذهنش جور درمیاد رو رعایت کنه
مثال میگم من دیروز داشتم با یکی از دوستام بحث میکردم که settings.py نباید یک کلس باشه و lazy گرفته شه. چون IDE نمیتونه بخونه. چون من نمیتونم سریع از تو IDE برم تو کد لایبری و ببینم چه چیزایی داره و باید حتما داک لایبریو بخونم.
ولی از طرفی اونم حرف منطقی میزد. میگفت یک فایله که طرف هرچی بخواد توش ست میکنه و خیلی راحت تره و مشخصه . یوزر فرندلی تره برای کسی که نخواد بره تو سورس کد module.
مثال میگم من قبلا گفتم TDD پروداکت رو کند میکنه و تو دنیای واقعی خیلی به درد نمیخوره چیزایی که میده رو میشه یک جور دگیه گرفت. یکی از دوستان تو کامنت مخالفت کرد و دلایل کاملا منطقی هم اورد. نه من اشتباه میگم نه اون. صرفا دیدگاه شخصیه.
من مطلبی تو کانالم میگم ممکنه اشتباه باشه. این کانال دفترچه یادداشت منه. طرز فکر منه. بنابراین ممکنه با طرز فکر شما یکی نباشه و هیچ ایرادی نداره و خوشحال میشم اتفاقا روش بحثم بکنیم که با طرز فکر شمام آشنا شم.
@ManiFoldsPython
۱. این دوره بهتون مایندست. software engineer میده تو context دیزاین برنامتون.
۲. دوستان دیزاین صفر تا صد نظر شخصیه. مثل فلسفه. چیزی نیست که absolute باشه. بگید یا یکه یا صفر. نظرات زیاده. آدم بهتره هرچیزی که با ذهنش جور درمیاد رو رعایت کنه
مثال میگم من دیروز داشتم با یکی از دوستام بحث میکردم که settings.py نباید یک کلس باشه و lazy گرفته شه. چون IDE نمیتونه بخونه. چون من نمیتونم سریع از تو IDE برم تو کد لایبری و ببینم چه چیزایی داره و باید حتما داک لایبریو بخونم.
ولی از طرفی اونم حرف منطقی میزد. میگفت یک فایله که طرف هرچی بخواد توش ست میکنه و خیلی راحت تره و مشخصه . یوزر فرندلی تره برای کسی که نخواد بره تو سورس کد module.
مثال میگم من قبلا گفتم TDD پروداکت رو کند میکنه و تو دنیای واقعی خیلی به درد نمیخوره چیزایی که میده رو میشه یک جور دگیه گرفت. یکی از دوستان تو کامنت مخالفت کرد و دلایل کاملا منطقی هم اورد. نه من اشتباه میگم نه اون. صرفا دیدگاه شخصیه.
من مطلبی تو کانالم میگم ممکنه اشتباه باشه. این کانال دفترچه یادداشت منه. طرز فکر منه. بنابراین ممکنه با طرز فکر شما یکی نباشه و هیچ ایرادی نداره و خوشحال میشم اتفاقا روش بحثم بکنیم که با طرز فکر شمام آشنا شم.
@ManiFoldsPython
👍32👌5🔥2❤1🤔1
Python BackendHub pinned «دوستانی که این دوره رو میبینن: ۱. این دوره بهتون مایندست. software engineer میده تو context دیزاین برنامتون. ۲. دوستان دیزاین صفر تا صد نظر شخصیه. مثل فلسفه. چیزی نیست که absolute باشه. بگید یا یکه یا صفر. نظرات زیاده. آدم بهتره هرچیزی که با ذهنش جور درمیاد…»
کانفیگ vscode خودم با بلک و flake8 که ترکیب خوبین با تایپ چکر basic
پ.ن:از tabnine هم استفاده میکنم ولی حذفش کردم چون یکم شخصیه. بعضیا مخالفن و بعضیا موافق (میگن جلوی خلاقیت و فکر کردنو رو میگیره وقتی auto compelete AI داری که تا حدی درسته بنظرم)
@ManiFoldsPython
پ.ن:از tabnine هم استفاده میکنم ولی حذفش کردم چون یکم شخصیه. بعضیا مخالفن و بعضیا موافق (میگن جلوی خلاقیت و فکر کردنو رو میگیره وقتی auto compelete AI داری که تا حدی درسته بنظرم)
{
"editor.unicodeHighlight.ambiguousCharacters": false,
"editor.unicodeHighlight.nonBasicASCII": false,
"editor.defaultFormatter": "esbenp.prettier-vscode",
"python.analysis.typeCheckingMode": "basic",
"[toml]": {
"editor.defaultFormatter": "tamasfe.even-better-toml"
},
"[json]": {
"editor.defaultFormatter": "vscode.json-language-features"
},
"[python]": {
"editor.tabSize": 4,
"editor.formatOnType": true,
"editor.insertSpaces": true,
"editor.tabCompletion": "on",
"editor.autoIndent": "advanced",
"editor.trimAutoWhitespace": true,
"files.trimTrailingWhitespace": true,
"editor.codeActionsOnSave": {
"source.organizeImports": true
},
"editor.defaultFormatter": "ms-python.black-formatter"
},
"python.analysis.autoImportCompletions": true,
"editor.formatOnSaveMode": "file",
"editor.formatOnPaste": false,
"editor.formatOnType": false,
"editor.formatOnSave": true,
"files.autoSave": "off",
"editor.inlineSuggest.enabled": true,
"flake8.args": ["--max-line-length", "88", "--ignore=E501,E711"],
"isort.args": ["--multi-line=8", "--line-length=88"]
}
@ManiFoldsPython
👌10👍4❤2🖕1
یک نکته خیلی مهم تو دیباگینگ:
Always assert failing test first
هیچوقت فرض نکنید چون یک خطایی دیدین و کدتون رو درست کردین پس اون خطا رو نمیبینید پس مشکل برطرف شده.
اول باید تست کنید که ایا اون خطایی که بهش برخوردین رو محیط لوکالتون دقیقا رخ میده؟ بعد از تغییر کدتون مجددا تست کنید که اون خطا برطرف شده یا نه؟
پس وقتی به یک خطایی میخورید:
۱. اول تست بنویسید که اون خطا reproduce شه که نخواین هی دستی reproduce کنید و همینطور خیالتون راحت باشه که درست assert کردین
۲. خطا رو دیباگ کنید تا تستتون پاس شه
@ManiFoldsPython
Always assert failing test first
هیچوقت فرض نکنید چون یک خطایی دیدین و کدتون رو درست کردین پس اون خطا رو نمیبینید پس مشکل برطرف شده.
اول باید تست کنید که ایا اون خطایی که بهش برخوردین رو محیط لوکالتون دقیقا رخ میده؟ بعد از تغییر کدتون مجددا تست کنید که اون خطا برطرف شده یا نه؟
پس وقتی به یک خطایی میخورید:
۱. اول تست بنویسید که اون خطا reproduce شه که نخواین هی دستی reproduce کنید و همینطور خیالتون راحت باشه که درست assert کردین
۲. خطا رو دیباگ کنید تا تستتون پاس شه
@ManiFoldsPython
👍14
Python BackendHub
یک کدینگ چلنج بسیار ساده و در عین حال بسیار سخت جهت تمرین 🙂 Software Requirements: فرض کنید برنامه ای دارید برای یک مدرسه ای مینویسید. داخل مدرسه ۴ یوزر role مختلف وجود داره: ۱. مدیر(ادمین) ۲. مشاور ۳. معلم ۴. دانش آموز یک اپ student طراحی کنید که داخل…
Live coding assignment: School Student App
لینک گوگل میت:
https://meet.google.com/mum-umcx-qwt
یک شنبه ساعت ۲۰ تا ۲۱:۳۰
۱۵ دقیقه اول فقط تسک رو میخونم. خیلی مهمه این موضوع. سعی کنید miss نکنید ۱۵ دقیقه اولو.
مفاهیمی که تو ۱۵ دقیقه اول توضیح داده میشه:
طریقه خواندن یک assignment
Software Requirements
Software Test Scenarios
Software Test Cases
Software Test Runs
Technology Requirements
Explicit ACL Design
Database Table Design
فرقی نمیکنه بک اند کار هستین یا نه ولی حداقل تا قبل از ACL Design باید بلد باشین چون مفاهیم software development lifecycle(SDLC) هست.
@ManiFoldsPython
لینک گوگل میت:
https://meet.google.com/mum-umcx-qwt
یک شنبه ساعت ۲۰ تا ۲۱:۳۰
۱۵ دقیقه اول فقط تسک رو میخونم. خیلی مهمه این موضوع. سعی کنید miss نکنید ۱۵ دقیقه اولو.
مفاهیمی که تو ۱۵ دقیقه اول توضیح داده میشه:
طریقه خواندن یک assignment
Software Requirements
Software Test Scenarios
Software Test Cases
Software Test Runs
Technology Requirements
Explicit ACL Design
Database Table Design
فرقی نمیکنه بک اند کار هستین یا نه ولی حداقل تا قبل از ACL Design باید بلد باشین چون مفاهیم software development lifecycle(SDLC) هست.
@ManiFoldsPython
Google
Real-time meetings by Google. Using your browser, share your video, desktop, and presentations with teammates and customers.
🔥16👍4
دو سوال تو گروه پرسیدن که گفتم تو کانال جواب بدم بهتره. شاید سوال چند نفر باشه:
"مهندس یه سوال داشتم که الان من نزدیک یه ساله دارم جنگو و پایتون کار میکنم ولی خیلییی از مطالبی که شما میزارید رو حتی به گوشم هم نخورده بود و واقعا تو اون سطح نه آموزشی دیدم نه کار کردم، آیا حتما باید اونقدری مسلط بشم که همه ی این مطالب رو از بر باشم برای سطح جونیور یا نه تا یه مقداری کافیه، این موضوع یکم نگرانم کرده"
طبیعیه چون همینطور که گفتم تو کامینیتی پایتون ایران خیلی این مباحث مانور رفته نمیشه. منم هدفم بولد کردن همین مباحث مهم بود.من تجربه خودمو میگم, قبلا هم گفتم. من چند سال خودم کار میکردم کدام هم خیلی کثیف بوده و هنوزم دارم ریفکتورشون میکنم. اما این مدت (از دسامبر پارسال) تصمیم گرفتم شروع کنم خوندن سورس کد پروژه های اوپن سورس. قبلش خیلی از اصول مهندسی رو رعایت نمیکردم و ضربه میخوردم.
شما یک سری مفاهیم رو باید بلد باشین تا بتونید تو یک شرکت کار بگیرین. شاید تا این حدی که من تو کانالم دارم پوش میکنم نباشه. خیلی حدش کمتر باشه. ولی برای پوزیشن intern و جونیور باید یک سری مفاهیم رو بلد باشین. اگه تو شرکت خوب برین طبیعتا این مهارت هاتون بیشتر میشه. من یک سوم مطالبی که این سه ماه اخیر نوشتم تو شرکت از سنیورم یاد گرفتم. همینطور داشتن یک منتور خیلی عالیه. که از این سایت میتونید منتور رایگان پیدا کنید! من مدتی پیش با بابی یک جلسه گذاشتم که یک picture کلی داشته باشم از roadmap ام برای گرفتن جاب آفر و اولین شغلی که self employed نبوده و به لطف بابی به این level رسیدم.
https://adplist.org/explore?tab=mentors
بابی هم اینجاست.😁 تاپ ۱۰ عه 🙌🙌
پس توصیه من اینه:شما اپلای کنید برای کار جدید ولی هدفتون این باشه که تو یک شرکت خوب برید. یک شرکت خوب خیلی باعث پیشرفتتون میشه.
اگه قبول نشدین اشکالی نداره. بیشتر اپلای کنید. رزومتون رو بهتر کنید(یک ریپو رزومه نویسی دارم حتما بخونید) بالاخره مصاحبه میگیرین. تو مصاحبه فنی و رفتاری کم کم متوجه نقاط ضعفی که نیاز دارین برای گرفتن اولین شغلتون میشید و اصلاحش میکنید. اینکه چون ۱۰ بار ریجکت شدید دلیل نمیشه استاپ کنید. من که فقط سابقه self employed داشتم با دیپلم و دانش نه چندان زیاد تونستم با زیاد اپلای کردن و پافشاری رو هدفم بالاخره بهش برسم (گرفتن کار تو آلمان). شاید خیلیا شرایط تکنیکال و مدرکیشون بهتر از من باشه.
پس اپلای کنید و نترسید. منم اگه میخواستم اینطوری وسواس به خرج بدم الان تو همون مود ۲ سال پیشم بودم :))
@ManiFoldPython
"مهندس یه سوال داشتم که الان من نزدیک یه ساله دارم جنگو و پایتون کار میکنم ولی خیلییی از مطالبی که شما میزارید رو حتی به گوشم هم نخورده بود و واقعا تو اون سطح نه آموزشی دیدم نه کار کردم، آیا حتما باید اونقدری مسلط بشم که همه ی این مطالب رو از بر باشم برای سطح جونیور یا نه تا یه مقداری کافیه، این موضوع یکم نگرانم کرده"
طبیعیه چون همینطور که گفتم تو کامینیتی پایتون ایران خیلی این مباحث مانور رفته نمیشه. منم هدفم بولد کردن همین مباحث مهم بود.من تجربه خودمو میگم, قبلا هم گفتم. من چند سال خودم کار میکردم کدام هم خیلی کثیف بوده و هنوزم دارم ریفکتورشون میکنم. اما این مدت (از دسامبر پارسال) تصمیم گرفتم شروع کنم خوندن سورس کد پروژه های اوپن سورس. قبلش خیلی از اصول مهندسی رو رعایت نمیکردم و ضربه میخوردم.
شما یک سری مفاهیم رو باید بلد باشین تا بتونید تو یک شرکت کار بگیرین. شاید تا این حدی که من تو کانالم دارم پوش میکنم نباشه. خیلی حدش کمتر باشه. ولی برای پوزیشن intern و جونیور باید یک سری مفاهیم رو بلد باشین. اگه تو شرکت خوب برین طبیعتا این مهارت هاتون بیشتر میشه. من یک سوم مطالبی که این سه ماه اخیر نوشتم تو شرکت از سنیورم یاد گرفتم. همینطور داشتن یک منتور خیلی عالیه. که از این سایت میتونید منتور رایگان پیدا کنید! من مدتی پیش با بابی یک جلسه گذاشتم که یک picture کلی داشته باشم از roadmap ام برای گرفتن جاب آفر و اولین شغلی که self employed نبوده و به لطف بابی به این level رسیدم.
https://adplist.org/explore?tab=mentors
بابی هم اینجاست.😁 تاپ ۱۰ عه 🙌🙌
پس توصیه من اینه:شما اپلای کنید برای کار جدید ولی هدفتون این باشه که تو یک شرکت خوب برید. یک شرکت خوب خیلی باعث پیشرفتتون میشه.
اگه قبول نشدین اشکالی نداره. بیشتر اپلای کنید. رزومتون رو بهتر کنید(یک ریپو رزومه نویسی دارم حتما بخونید) بالاخره مصاحبه میگیرین. تو مصاحبه فنی و رفتاری کم کم متوجه نقاط ضعفی که نیاز دارین برای گرفتن اولین شغلتون میشید و اصلاحش میکنید. اینکه چون ۱۰ بار ریجکت شدید دلیل نمیشه استاپ کنید. من که فقط سابقه self employed داشتم با دیپلم و دانش نه چندان زیاد تونستم با زیاد اپلای کردن و پافشاری رو هدفم بالاخره بهش برسم (گرفتن کار تو آلمان). شاید خیلیا شرایط تکنیکال و مدرکیشون بهتر از من باشه.
پس اپلای کنید و نترسید. منم اگه میخواستم اینطوری وسواس به خرج بدم الان تو همون مود ۲ سال پیشم بودم :))
@ManiFoldPython
adplist.org
ADPList: Explore
ADPList is the leading free-to-use mentorship platform with mentors in AI, UI/UX design, product management, software development and marketing. Learn portfolio review, resume review, interview preparation and more.
👏14👍5❤1🤯1