PGTWEET | توییت برنامه نویسی
من در برنامهنویسی خیلی محافظه کار هستم. همه چیز رو دوست دارم با خود زبان حل کنم. و در قدم بعد با کتابخونه استانداردش. هر پکیج جانبی رو با کلی فاکتور که در ذهنم دارم میسنجم. گاهی روزها طول میکشه تا تصمیم بگیرم به اضافه کردن چیزی! با فریم ورکهای بزرگ میونهای…
این پست رو ما اگه سال پیش میخوندم میگفتم چرت و پرته محضه از نظره خودم
ولی الان با بیشترش موافقم.
اینکه میگین DRY, خیلی مهمه که DRY به جای don't repeat yourself تبدیل نشه به don't respect yourself.
مثلا یک وب فریمورک اصلا نیازی نداره که از دیتابیس آگاهی داشته باشه, اتفاقی که تو جنگو نمیفته ولی تو fastapi میفته و همین موضوع fastapi رو خیلی قشنگ تر میکنه, چون به شدت solid تر از جنگو هست.
تو قاعده DRY تو یک وب فریم ورک, ما یک سری نیاز اساسی و کلی داریم که تو هر وب فریم ورکی باید تعریف شه, و FastAPI تقریبا همه رو شامل کرده. حالا در خصوص bottle نمیتونم نظری بدم چون باهاش کار نکردم.
ولی باید این مرز رو رعایت کنید, که دوباره از اون سمت نیوفتین, مثلا چه کاریه بیایم از پایتون استفاده کنیم وقتی کلی built in module داره که ما ازش استفاده نمیکنیم؟ این طرز فکر به نظره من حماقته, و باعث میشه reinvent the wheel رو انجام بدید.
پس بنظره من DRY باید تو چهارچوب SOLID باشه و کم حجم نگه داشتن پروژه به صورت همزمان با رعایت بالانس. 👍
@ManiFoldsPython
ولی الان با بیشترش موافقم.
اینکه میگین DRY, خیلی مهمه که DRY به جای don't repeat yourself تبدیل نشه به don't respect yourself.
مثلا یک وب فریمورک اصلا نیازی نداره که از دیتابیس آگاهی داشته باشه, اتفاقی که تو جنگو نمیفته ولی تو fastapi میفته و همین موضوع fastapi رو خیلی قشنگ تر میکنه, چون به شدت solid تر از جنگو هست.
تو قاعده DRY تو یک وب فریم ورک, ما یک سری نیاز اساسی و کلی داریم که تو هر وب فریم ورکی باید تعریف شه, و FastAPI تقریبا همه رو شامل کرده. حالا در خصوص bottle نمیتونم نظری بدم چون باهاش کار نکردم.
ولی باید این مرز رو رعایت کنید, که دوباره از اون سمت نیوفتین, مثلا چه کاریه بیایم از پایتون استفاده کنیم وقتی کلی built in module داره که ما ازش استفاده نمیکنیم؟ این طرز فکر به نظره من حماقته, و باعث میشه reinvent the wheel رو انجام بدید.
پس بنظره من DRY باید تو چهارچوب SOLID باشه و کم حجم نگه داشتن پروژه به صورت همزمان با رعایت بالانس. 👍
@ManiFoldsPython
👍3👎1🤔1
Python BackendHub
این پست رو ما اگه سال پیش میخوندم میگفتم چرت و پرته محضه از نظره خودم ولی الان با بیشترش موافقم. اینکه میگین DRY, خیلی مهمه که DRY به جای don't repeat yourself تبدیل نشه به don't respect yourself. مثلا یک وب فریمورک اصلا نیازی نداره که از دیتابیس آگاهی داشته…
The DRY principle is stated as "Every piece of knowledge must have a single, unambiguous, authoritative representation within a system". The principle has been formulated by Andy Hunt and Dave Thomas in their book The Pragmatic Programmer.[2] They apply it quite broadly to include database schemas, test plans, the build system, even documentation.[3] When the DRY principle is applied successfully, a modification of any single element of a system does not require a change in other logically unrelated elements.
اینم تعریف DRY.
خیلیا فکر میکنن DRY یعنی خودشونو تکرار نکنند, در صورتی که خیلی جاها باید کدمون رو تکرار کنیم تا دیزاین پترن و architecture تمیزی داشته باشیم که flexible و scalable باشه. چیزی که flexible نیست بنظر من به راحتی scalable نیست.
حواستون به تعاریف باشه
@ManiFoldsPython
اینم تعریف DRY.
خیلیا فکر میکنن DRY یعنی خودشونو تکرار نکنند, در صورتی که خیلی جاها باید کدمون رو تکرار کنیم تا دیزاین پترن و architecture تمیزی داشته باشیم که flexible و scalable باشه. چیزی که flexible نیست بنظر من به راحتی scalable نیست.
حواستون به تعاریف باشه
@ManiFoldsPython
از وقتی با pydantic آشنا شدم دیگه هیچ ولیدشنی ننوشتم.
یا خودم براش arbitrary types تعریف کردم اگه تو built in اش نبود که یک بار برای همیشه validation اش رو بنویسم تموم شه بره.
تقریبا تو همه crawler هام ازش استفاده میکنم. خلاصه دریغ نکنید از این لایبری خوشگل. 😁 هرچی کد میبینم تو لایبری های قدیمی میگم اینو میشه دقیقا با pydantic بیای ریفکتور کنی... مثل graphene که اخیرا باهاش کار کردم
@ManiFoldsPython
یا خودم براش arbitrary types تعریف کردم اگه تو built in اش نبود که یک بار برای همیشه validation اش رو بنویسم تموم شه بره.
تقریبا تو همه crawler هام ازش استفاده میکنم. خلاصه دریغ نکنید از این لایبری خوشگل. 😁 هرچی کد میبینم تو لایبری های قدیمی میگم اینو میشه دقیقا با pydantic بیای ریفکتور کنی... مثل graphene که اخیرا باهاش کار کردم
@ManiFoldsPython
👍8
اگه کارت دانشجویی و ایمیل آکادمیک فعال داشته باشین, میتونید ایمیلتون رو وصل کنید به اکانت گیب هاتون و کارت رو آپلود کنید, تا اکانتتون PRO شه و از خدمات دانشجویی بهره ببرین
نمیدونم با دانشگاه های ایران بشه یا نه, ولی امتحان کنید.
https://education.github.com/pack
@ManiFoldsPython
نمیدونم با دانشگاه های ایران بشه یا نه, ولی امتحان کنید.
https://education.github.com/pack
@ManiFoldsPython
👍4
Python BackendHub
اگه کارت دانشجویی و ایمیل آکادمیک فعال داشته باشین, میتونید ایمیلتون رو وصل کنید به اکانت گیب هاتون و کارت رو آپلود کنید, تا اکانتتون PRO شه و از خدمات دانشجویی بهره ببرین نمیدونم با دانشگاه های ایران بشه یا نه, ولی امتحان کنید. https://education.github.com/pack…
تازه فهمیدم این عکس پروفایلم داره پشت سیستم گریه میکنه 😂😂
قیافه من وقتی کد های legacy قدیمیمو میبینم :)))
@ManiFoldsPython
قیافه من وقتی کد های legacy قدیمیمو میبینم :)))
@ManiFoldsPython
😁3
Forwarded from Sadra Codes
دوستان اگه خودتون مشغولید یا افرادی رو میشناسید، ممنون میشم معرفی کنید. 😊
شیر کردن این پست لینکدین، موجب خوشحالیست! :) ❤️🙏
👇
شیر کردن این پست لینکدین، موجب خوشحالیست! :) ❤️🙏
👇
Forwarded from Sadra Codes
Sadra Codes
دوستان اگه خودتون مشغولید یا افرادی رو میشناسید، ممنون میشم معرفی کنید. 😊 شیر کردن این پست لینکدین، موجب خوشحالیست! :) ❤️🙏 👇
GitHub: https://github.com/lnxpy
LinkedIn: https://www.linkedin.com/in/sadra-yahyapour
Email: lnxpylnxpy@gmail.com
https://www.linkedin.com/posts/sadra-yahyapour_opportunities-research-connections-activity-7066396829910736896-Afz7?utm_source=share&utm_medium=member_android
LinkedIn: https://www.linkedin.com/in/sadra-yahyapour
Email: lnxpylnxpy@gmail.com
https://www.linkedin.com/posts/sadra-yahyapour_opportunities-research-connections-activity-7066396829910736896-Afz7?utm_source=share&utm_medium=member_android
GitHub
lnxpy - Overview
CS Student · Campus Expert @github · Technical Writer · ML Lover - lnxpy
اکانت goodreads زدم خیلی خوبه برای track کردن اینکه کی چی میخونه 😅
https://www.goodreads.com/manimozaffar
خوشحال میشم friend request بدین 🙏
@ManiFoldsPython
https://www.goodreads.com/manimozaffar
خوشحال میشم friend request بدین 🙏
@ManiFoldsPython
Goodreads
Mani Mozaffar (manimozaffar) - Istanbul, Turkey (31 books)
Mani Mozaffar has 31 books on Goodreads, and is currently reading Grokking Algorithms An Illustrated Guide For Programmers and Other Curious People by Ad...
👍5
این حجم کتاب هاییه که پرینت گرفتم بخونمشون. هم درد داره هم لذت 🫠😂
اگه خوب بودن پیشنهادشون میکنم اینجا ✌️
@ManiFoldsPython
اگه خوب بودن پیشنهادشون میکنم اینجا ✌️
@ManiFoldsPython
🗿11❤1👍1
Forwarded from BenDev
برای مصاحبه های behavioral بسیار بسیار مهمه که شما بتونید با استفاده از تکنیک STAR پاسخ بدین
لینک زیر رو مطالعه کنید:
https://www.indeed.com/career-advice/interviewing/how-to-prepare-for-a-behavioral-interview
@BenDevelop
لینک زیر رو مطالعه کنید:
https://www.indeed.com/career-advice/interviewing/how-to-prepare-for-a-behavioral-interview
@BenDevelop
Indeed Career Guide
How To Prepare for a Behavioral Interview
Learn how to use the STAR technique for behavioral interviews, then prep with Indeed Career Scout’s personalized guidance and mock interviews.
👍6👌1
این پلی لیست محشره
https://www.youtube.com/playlist?list=PLC0nd42SBTaNuP4iB4L6SJlMaHE71FG6N
Software Design in Python by ArjanCodes
@ManiFoldsPython
https://www.youtube.com/playlist?list=PLC0nd42SBTaNuP4iB4L6SJlMaHE71FG6N
Software Design in Python by ArjanCodes
@ManiFoldsPython
❤3
Python BackendHub
اگه اکانت پرمیوم دارین, برای فعال سازی نسخه browsering چت جی پی تی, اول سه نقطه کنار اسمتون رو بزنید سمت چپ پایین صفحه, بعدش برین رو setting, بعد beta features و بعد تیک این دو رو بزنید. بعدش برای مدل GPT4 قابلیت browsering فعال میشه و باعث میشه قبل از جواب…
کاربرد نسخه gpt browser رو پیدا کردم :))
میتونید بهش آدرس ریپو بدید و بگید code quality رو review کنه.
از این نظر فوق العادست. 👍
پی نوشت: تهش زده ارور خورده, ولی کارشو کرده..
@ManiFoldsPython
میتونید بهش آدرس ریپو بدید و بگید code quality رو review کنه.
از این نظر فوق العادست. 👍
پی نوشت: تهش زده ارور خورده, ولی کارشو کرده..
@ManiFoldsPython
👍5
این سایت رو جدیدا پیدا کردم برای هندل todolist و کار هام
https://habitica.com
خیلی سایت جالبیه 😅 حتما یک سر بهش بندازین.
برای daily repetitive task و habit هم میتونید برنامه درست کنید.
@ManiFoldsPython
https://habitica.com
خیلی سایت جالبیه 😅 حتما یک سر بهش بندازین.
برای daily repetitive task و habit هم میتونید برنامه درست کنید.
@ManiFoldsPython
Habitica
Habitica - Gamify Your Life
Habitica is a free habit and productivity app that treats your real life like a game. Habitica can help you achieve your goals to become healthy and happy.
👍6
Forwarded from Django Expert (Boby Cloud)
درود خدمت دوستان عزیز، طی چند هفته گذشته روی ریپوهای DjangoEx کار میکردیم و آپدیتی که قولش رو داده بودیم آماده شده. در زیر ریپوهارو به ترتیب معرفی میکنیم.
✅ ریپازیتوری Awesome Python Resources: مجموعه ای از بهترین و کامل ترین ریسورسهای مورد نیاز برای رشد در مسیر شغلی مهندسی نرم افزار (پایتون) به همراه تفکیک بر اساس Career Path و Advanced Topics
https://github.com/DjangoEx/awesome-python-resources
✅ ریپازیتوری Awesome Python Roadmaps: مجموعه از رودمپهای مورد نیاز یک مهندس نرم افزار (پایتون) در Career Path هایی نظیر Backend، Data Scientist، Software Architect و ...
https://github.com/DjangoEx/awesome-python-roadmaps
✅ ریپازیتوری Awesome Python Podcast: مجموعهای از پادکست های حوزه مهندسی نرمافزار/پایتون برای آپدیت بودن راجع به رویدادهای کامیونیتی پایتون و اپیزودهای تکنیکالی که با پادکست میتونید یاد بگیرید:
https://github.com/DjangoEx/awesome-python-podcasts
✅ ریپازیتوری Awesome Python Project Ideas: مجموعهای از ایدهها برای پیاده سازی پروژه با پایتون به منظور تمرین یا کمک به رزومه، در سطوح Beginner، Intermediate و Advanced و به همراه User Stories, Project Overview, Bonus Features و ...
https://github.com/DjangoEx/awesome-python-project-ideas
✅ ریپازیتوری Awesome Python Resources Persian: مجموعهای از منابع آموزشی در زمینه پایتون به زبان فارسی
https://github.com/DjangoEx/awesome-python-resources-persian
✅ ریپازیتوری DjangoEx Bot: احتمالا تا حالا کاربر Backend Senior Developer رو توی گروه دیدین که به سوالات پاسخ میده، این کاربر یک نوع هوش مصنوعی مبتنی بر GPT هست و توسط یکی از ادمینهای کانال توسعه داده شده که میتونین به سورس کدش از طریق ریپازیتوری زیر دسترسی داشته باشین:
https://github.com/DjangoEx/django-expert-bot
✅ تمام ریپازیتوریها به صورت یکجا نیز در صفحه گیتهاب DjangoEx قابل دسترسی هست
https://github.com/DjangoEx
💡 لطفا اگر شما هم ایدههایی برای ریپازیتوریها دارید، با ایجاد Issue و Pull Request به کاملتر شدن این ریپازیتوریها کمک کنید، ما از هرگونه مشارکت عام المنفعه استقبال میکنیم.
✔️ باتشکر از همراهی همه شما عزیزانی که تا الان کانتربیوت کردید (+۵۰ نفر) و به این ریپازیتوریها استار دادید و حمایت کردید به اشتراک گذاشتید. لطفا اگر این پست رو هم مفید میبینید به اشتراک بزارید.
#DjangoEx #Python #Github
〰〰〰〰〰〰〰
© @DjangoEx
✅ ریپازیتوری Awesome Python Resources: مجموعه ای از بهترین و کامل ترین ریسورسهای مورد نیاز برای رشد در مسیر شغلی مهندسی نرم افزار (پایتون) به همراه تفکیک بر اساس Career Path و Advanced Topics
https://github.com/DjangoEx/awesome-python-resources
✅ ریپازیتوری Awesome Python Roadmaps: مجموعه از رودمپهای مورد نیاز یک مهندس نرم افزار (پایتون) در Career Path هایی نظیر Backend، Data Scientist، Software Architect و ...
https://github.com/DjangoEx/awesome-python-roadmaps
✅ ریپازیتوری Awesome Python Podcast: مجموعهای از پادکست های حوزه مهندسی نرمافزار/پایتون برای آپدیت بودن راجع به رویدادهای کامیونیتی پایتون و اپیزودهای تکنیکالی که با پادکست میتونید یاد بگیرید:
https://github.com/DjangoEx/awesome-python-podcasts
✅ ریپازیتوری Awesome Python Project Ideas: مجموعهای از ایدهها برای پیاده سازی پروژه با پایتون به منظور تمرین یا کمک به رزومه، در سطوح Beginner، Intermediate و Advanced و به همراه User Stories, Project Overview, Bonus Features و ...
https://github.com/DjangoEx/awesome-python-project-ideas
✅ ریپازیتوری Awesome Python Resources Persian: مجموعهای از منابع آموزشی در زمینه پایتون به زبان فارسی
https://github.com/DjangoEx/awesome-python-resources-persian
✅ ریپازیتوری DjangoEx Bot: احتمالا تا حالا کاربر Backend Senior Developer رو توی گروه دیدین که به سوالات پاسخ میده، این کاربر یک نوع هوش مصنوعی مبتنی بر GPT هست و توسط یکی از ادمینهای کانال توسعه داده شده که میتونین به سورس کدش از طریق ریپازیتوری زیر دسترسی داشته باشین:
https://github.com/DjangoEx/django-expert-bot
✅ تمام ریپازیتوریها به صورت یکجا نیز در صفحه گیتهاب DjangoEx قابل دسترسی هست
https://github.com/DjangoEx
💡 لطفا اگر شما هم ایدههایی برای ریپازیتوریها دارید، با ایجاد Issue و Pull Request به کاملتر شدن این ریپازیتوریها کمک کنید، ما از هرگونه مشارکت عام المنفعه استقبال میکنیم.
✔️ باتشکر از همراهی همه شما عزیزانی که تا الان کانتربیوت کردید (+۵۰ نفر) و به این ریپازیتوریها استار دادید و حمایت کردید به اشتراک گذاشتید. لطفا اگر این پست رو هم مفید میبینید به اشتراک بزارید.
#DjangoEx #Python #Github
〰〰〰〰〰〰〰
© @DjangoEx
👍7
احتمالا تاحالا شنیدین که مثلا رو یک issue یک مبلغی گذاشتن تا یکی برطرفش کنه و اون مبلغ پرداخت شه.
حالا تو این سایت شما میتونید issue bounty hunter شید
https://app.bountysource.com/?order=created_at&direction=desc
پرداخت با کریپتو هم داره و حتی issue های چند هزار دلاری هم هست مثل این 😁:
https://app.bountysource.com/issues/31778112-add-support-for-gnome-in-dom0-gui-domain
@ManiFoldsPython
حالا تو این سایت شما میتونید issue bounty hunter شید
https://app.bountysource.com/?order=created_at&direction=desc
پرداخت با کریپتو هم داره و حتی issue های چند هزار دلاری هم هست مثل این 😁:
https://app.bountysource.com/issues/31778112-add-support-for-gnome-in-dom0-gui-domain
@ManiFoldsPython
Bountysource
$6,400 Bounty on QubesOS/qubes-issues
Add support for GNOME in dom0/GUI domain
👍6
برای دوستانی که میخواین شغل پیدا کنن تو خارج از کشور و دارن اپلای میکنن. یک پروژه جذاب اوپن سورس دارم که آگهی هارو به صورت real time از لینکدین میگیره و پردازش میکنه.
لینک گیت هاب | کانال تلگرام | ربات تلگرام | Dev map
تو این پروژه شما میتونید شغل پرفکت خودتون رو بدون هیچ effort ای پیدا کنید. کافیه جوین تلگرام و ربات بشین, و یک query مینویسید. query که مینویسید logıcal python expresion هست مثلا برای پیدا کردن شغل بک اند پایتون یا فرانت اند جاوااسکریپت اینطوری باید بنویسین
(python and backend) or (javanoscript and frontend)
یک or france هم مثلا بهش اضافه کنید فقط شغل های فرانسه رو براتون لحاظ میکنه. هروقت که شغلا تو کانال اضافه شدن ریل تایم فراوارد میکنه براتون.
این پروژه رو تمرینی زده بودم برای خودم ولی محبوب شد و حتی اسپانسرم براش پیدا شده. پرفومنس مارکینگ و آنالیز آگهیشو قوی ترم میکنم وقتی مبلغی که دونیت کردن به حسابم اضافه شه. چون فکر نمیکردم محبوب شه کد بیسش یک چیز شلخته و یکهویی بود که نیاز خودمو کاور کنه ولی الان دارم ریفکتورش میکنم که اصولی باشه. کد crawlerشو دیشب تموم کردم و تو نسخه جدید تو 12 ساعت 6 هزار آگهی کراول زد 😁
ممنون میشم حمایت کنید از پروژه, با فروارد این متن یا ستاره دادن یا contribute کردن به پروژه.
@ManiFoldsPython
لینک گیت هاب | کانال تلگرام | ربات تلگرام | Dev map
تو این پروژه شما میتونید شغل پرفکت خودتون رو بدون هیچ effort ای پیدا کنید. کافیه جوین تلگرام و ربات بشین, و یک query مینویسید. query که مینویسید logıcal python expresion هست مثلا برای پیدا کردن شغل بک اند پایتون یا فرانت اند جاوااسکریپت اینطوری باید بنویسین
(python and backend) or (javanoscript and frontend)
یک or france هم مثلا بهش اضافه کنید فقط شغل های فرانسه رو براتون لحاظ میکنه. هروقت که شغلا تو کانال اضافه شدن ریل تایم فراوارد میکنه براتون.
این پروژه رو تمرینی زده بودم برای خودم ولی محبوب شد و حتی اسپانسرم براش پیدا شده. پرفومنس مارکینگ و آنالیز آگهیشو قوی ترم میکنم وقتی مبلغی که دونیت کردن به حسابم اضافه شه. چون فکر نمیکردم محبوب شه کد بیسش یک چیز شلخته و یکهویی بود که نیاز خودمو کاور کنه ولی الان دارم ریفکتورش میکنم که اصولی باشه. کد crawlerشو دیشب تموم کردم و تو نسخه جدید تو 12 ساعت 6 هزار آگهی کراول زد 😁
ممنون میشم حمایت کنید از پروژه, با فروارد این متن یا ستاره دادن یا contribute کردن به پروژه.
@ManiFoldsPython
GitHub
GitHub - ManiMozaffar/linkedIn-scraper: A playwright bot which is implemented to scrape linkedin and store advertisement data in…
A playwright bot which is implemented to scrape linkedin and store advertisement data in a database and telegram channel - ManiMozaffar/linkedIn-scraper
👍9❤3👎1
سعی کنید به جای TypedDict از Pydantic استفاده کنید. هم ولیدیشن داره هم felixable تره هم آپشن های خوبی داره و هم خیلی راحت میتونید تبدیلش کنید به json و dictionary و ..
@ManiFoldsPython
@ManiFoldsPython
👍11👎1
Python BackendHub
@ManiFoldsPython
یکی از کار هایی که میتونید با gpt انجام بدین و خوب انجام میده اینه که شما یک پروتکل از class تون همراه با داک استرینگ بنویسید و بعدش به gpt بدین تا سریع طبق اون تکمیل کنه کدتون رو اینطوری تو وقت صرفه جویی کردین. اون موقع میتونید فقط بپردازین به تست نویسی و دیباگ کدی که gpt نوشته و برطرف کردن ایراد های کلیش.
یک همچین پرومتی من استفاده میکنم در اینجور مواقع:
PROMPT:
1. follow best practices of coding according to fluent python. Explain yourself how did you follow fluent python guideline.
2. Use modern syntax, for instance list comprehension instead of for loop and append in a list. Explain yourself if you used this.
3. Write the code algorithm friendly, make the base problem to be as efficient as possible, with a good time complexity pattern, Explain yourself if you used this approach.
4. Respect SOLID, DRY, KIS, Explain yourself how you did this.
5. Respect clean code practices according to Robert Cecil Martin book, Explain yourself how you respected.
6. Respect type annotation and pay attention to the output annotation of each method. I want it SAME as protocol.
7. Keep docstring with the code. Improve it if you can.
8. your prompts ...
@ManiFoldsPython
یک همچین پرومتی من استفاده میکنم در اینجور مواقع:
PROMPT:
1. follow best practices of coding according to fluent python. Explain yourself how did you follow fluent python guideline.
2. Use modern syntax, for instance list comprehension instead of for loop and append in a list. Explain yourself if you used this.
3. Write the code algorithm friendly, make the base problem to be as efficient as possible, with a good time complexity pattern, Explain yourself if you used this approach.
4. Respect SOLID, DRY, KIS, Explain yourself how you did this.
5. Respect clean code practices according to Robert Cecil Martin book, Explain yourself how you respected.
6. Respect type annotation and pay attention to the output annotation of each method. I want it SAME as protocol.
7. Keep docstring with the code. Improve it if you can.
8. your prompts ...
@ManiFoldsPython
👍6