Forwarded from کانال مهرداد لینوکس
✳️ سایت لیت کد (LeetCode) یک پلتفرم برای کمک به ارتقای مهارتها، گسترش دانش و آمادگی برای مصاحبههای فنی
✅ گروهی دیگر برای machine learning نمونه این سایت را ساختند به نام Deep-ML
🔥 این سایت، شامل مفاهیم تمرینی برای یادگیری ماشین و هوش مصنوعی.
برای هر مساله توضیحاتی ارائه شده و میشه بهصورت آنلاین کدنویسی و نتیجه رو برای چک کردن سابمیت کرد.
🗓 بیشتر تمریناتش مربوط به جبر خطی، یادگیری ماشین و یادگیری عمیق هست.
پروژه عملی مثل شبکههای عصبی یا بینایی کامپیوتر (Computer Vision)
ابزارهایی مثل TensorFlow و PyTorch و ...
توضیحاتش ساده و کاربردیه
🗓 سطحبندی سوالهاش
میتونین با مفاهیم پایهای مثل رگرسیون و طبقهبندی شروع کنن
سطح متوسط روی موضوعاتی مثل شبکههای عصبی و تنظیم مدلها تمرکز داره
حرفهایها هم سوالهای پیچیدهتری مثل طراحی مدلهای پیشرفته یا حل پروژههای واقعی پیدا میکنن
❤️ ممنون از حمایت هاتون 💐🌺
#AI
✅ گروهی دیگر برای machine learning نمونه این سایت را ساختند به نام Deep-ML
🔥 این سایت، شامل مفاهیم تمرینی برای یادگیری ماشین و هوش مصنوعی.
برای هر مساله توضیحاتی ارائه شده و میشه بهصورت آنلاین کدنویسی و نتیجه رو برای چک کردن سابمیت کرد.
🗓 بیشتر تمریناتش مربوط به جبر خطی، یادگیری ماشین و یادگیری عمیق هست.
پروژه عملی مثل شبکههای عصبی یا بینایی کامپیوتر (Computer Vision)
ابزارهایی مثل TensorFlow و PyTorch و ...
توضیحاتش ساده و کاربردیه
🗓 سطحبندی سوالهاش
میتونین با مفاهیم پایهای مثل رگرسیون و طبقهبندی شروع کنن
سطح متوسط روی موضوعاتی مثل شبکههای عصبی و تنظیم مدلها تمرکز داره
حرفهایها هم سوالهای پیچیدهتری مثل طراحی مدلهای پیشرفته یا حل پروژههای واقعی پیدا میکنن
❤️ ممنون از حمایت هاتون 💐🌺
#AI
Forwarded from Ninja Learn | نینجا لرن
🌐 خب خب خب لایه شبکه (Network Layer) در مدل OSI
لایه شبکه، سومین لایه از مدل OSI، مسئول انتقال دادهها بین شبکههای مختلفه. این لایه کاری میکنه که دادهها از یه مبدأ به مقصد مشخص (تو هر گوشه دنیا) برسن، بدون این که مسیر و راهش گم بشه. این لایه مثل یه سیستم حملونقل بزرگ عمل میکنه که بستههای اطلاعاتی رو از یه نقطه به نقطه دیگه منتقل میکنه. بیاین جزئیاتش رو مرحلهبهمرحله بررسی کنیم. 🚀
📍 وظایف اصلی لایه شبکه
🧭 آدرسدهی منطقی (Logical Addressing):
هر دستگاه تو شبکه یه آدرس منحصربهفرد داره که بهش آدرس IP میگن. این آدرس مشخص میکنه دادهها باید دقیقاً به کجا برن.
مثال:
🛣️ مسیریابی (Routing):
وقتی دادهها باید از یه شبکه به شبکه دیگه برن، این لایه تصمیم میگیره که از چه مسیری برن تا سریعتر و مطمئنتر به مقصد برسن.
نقش روترها:
دستگاههای روتر تو این مرحله خیلی مهمن. روترها با بررسی آدرسهای IP، بهترین مسیر رو برای انتقال داده پیدا میکنن.
مثال:
📦 بستهبندی دادهها (Packetization):
دادههایی که از لایه انتقال (Transport Layer) میان، به بخشهای کوچیکتری به اسم پکت (Packet) تقسیم میشن. هر پکت شامل اطلاعات زیره:
🔍 مثال:
🚦 کنترل تراکم (Congestion Control):
اگه یه شبکه شلوغ بشه و دادهها نتونن به موقع منتقل بشن، این لایه کمک میکنه ترافیک مدیریت بشه.
مثال:
🔧 تکهتکه کردن و دوبارهسازی (Fragmentation and Reassembly):
گاهی وقتا دادهها بزرگتر از ظرفیت انتقال یه شبکه هستن. این لایه دادهها رو به قطعات کوچیکتر تقسیم میکنه و وقتی به مقصد رسید، دوباره به هم وصلشون میکنه.
مثال:
⚙️ پروتکلهای مهم لایه شبکه
IPv4 (Internet Protocol Version 4):
پرکاربردترین پروتکل برای آدرسدهی و مسیریابی.
از آدرسهای ۳۲ بیتی استفاده میکنه (مثلاً: 192.168.1.1).
IPv6 (Internet Protocol Version 6):
نسخه جدیدتر IPv4 که ظرفیت بیشتری برای آدرسدهی داره (۱۲۸ بیتی).
مشکل کمبود آدرسهای IPv4 رو حل کرده.
ICMP (Internet Control Message Protocol):
برای ارسال پیامهای کنترلی (مثل خطاها) و تست شبکه (مثل ابزار Ping).
ARP (Address Resolution Protocol):
تبدیل آدرس IP به آدرس فیزیکی (MAC Address).
🔄 انواع ارتباطات تو لایه شبکه
تکپخشی (Unicast):
ارسال پکت فقط به یه مقصد خاص.
مثال: ارسال ایمیل به مدحج.
چندپخشی (Multicast):
ارسال پکت به گروهی از دستگاهها.
مثال: استریم زنده یه بازی برای چند کاربر خاص.
همگانی (Broadcast):
ارسال پکت به همه دستگاههای یه شبکه.
مثال: اعلام عمومی پیام تو یه گروه چت.
🎯 جمع بندی
لایه شبکه یه پل حیاتی بین دستگاهها تو شبکههای مختلفه. این لایه مطمئن میشه که هر پکت به موقع و بدون اشتباه به مقصدش برسه. با وظایفی مثل مسیریابی، آدرسدهی، و کنترل ترافیک، این لایه ستون فقرات اینترنت و شبکههای مدرنه. بدون لایه شبکه، ارتباطات جهانی غیرممکن بودن 🌍
➖➖➖➖➖➖➖➖➖
لایه شبکه، سومین لایه از مدل OSI، مسئول انتقال دادهها بین شبکههای مختلفه. این لایه کاری میکنه که دادهها از یه مبدأ به مقصد مشخص (تو هر گوشه دنیا) برسن، بدون این که مسیر و راهش گم بشه. این لایه مثل یه سیستم حملونقل بزرگ عمل میکنه که بستههای اطلاعاتی رو از یه نقطه به نقطه دیگه منتقل میکنه. بیاین جزئیاتش رو مرحلهبهمرحله بررسی کنیم. 🚀
📍 وظایف اصلی لایه شبکه
🧭 آدرسدهی منطقی (Logical Addressing):
هر دستگاه تو شبکه یه آدرس منحصربهفرد داره که بهش آدرس IP میگن. این آدرس مشخص میکنه دادهها باید دقیقاً به کجا برن.
مثال:
فرض کن میخوای یه بسته پستی ارسال کنی. بدون داشتن آدرس خونه مقصد، عملاً ارسال بسته غیرممکنه. تو شبکه هم آدرس IP دقیقاً مثل آدرس خونه عمل میکنه.
🛣️ مسیریابی (Routing):
وقتی دادهها باید از یه شبکه به شبکه دیگه برن، این لایه تصمیم میگیره که از چه مسیری برن تا سریعتر و مطمئنتر به مقصد برسن.
نقش روترها:
دستگاههای روتر تو این مرحله خیلی مهمن. روترها با بررسی آدرسهای IP، بهترین مسیر رو برای انتقال داده پیدا میکنن.
مثال:
فرض کن داری از تهران به اصفهان سفر میکنی. چند مسیر مختلف هست، ولی تو کوتاهترین و کمترافیکترین جاده رو انتخاب میکنی. لایه شبکه همین کارو برای دادهها انجام میده
📦 بستهبندی دادهها (Packetization):
دادههایی که از لایه انتقال (Transport Layer) میان، به بخشهای کوچیکتری به اسم پکت (Packet) تقسیم میشن. هر پکت شامل اطلاعات زیره:
آدرس مبدأ: دستگاهی که داده رو ارسال کرده.
آدرس مقصد: جایی که داده باید بره.
داده اصلی: همون اطلاعاتی که باید منتقل بشه.
اطلاعات کنترلی: برای اطمینان از انتقال درست داده.
🔍 مثال:
فرض کن میخوای یه پیتزای بزرگ رو با دوستات بخوری، ولی ظرفت کوچیکه.
پیتزا رو به برشهای کوچیک تقسیم میکنی و هر برش رو جداگونه میفرستی.
🚦 کنترل تراکم (Congestion Control):
اگه یه شبکه شلوغ بشه و دادهها نتونن به موقع منتقل بشن، این لایه کمک میکنه ترافیک مدیریت بشه.
مثال:
فرض کن تو صف یه سوپرمارکت شلوغی. فروشنده سعی میکنه با اضافه کردن صندوقدار بیشتر، صف رو کوتاهتر کنه. لایه شبکه هم همین طور ترافیک شبکه رو کنترل میکنه.
🔧 تکهتکه کردن و دوبارهسازی (Fragmentation and Reassembly):
گاهی وقتا دادهها بزرگتر از ظرفیت انتقال یه شبکه هستن. این لایه دادهها رو به قطعات کوچیکتر تقسیم میکنه و وقتی به مقصد رسید، دوباره به هم وصلشون میکنه.
مثال:
فرض کن یه مبل بزرگ رو میخوای از در کوچیک خونه رد کنی. مبل رو باز میکنی، قطعاتش رو یکییکی رد میکنی و دوباره اونطرف سر هم میکنی.
⚙️ پروتکلهای مهم لایه شبکه
IPv4 (Internet Protocol Version 4):
پرکاربردترین پروتکل برای آدرسدهی و مسیریابی.
از آدرسهای ۳۲ بیتی استفاده میکنه (مثلاً: 192.168.1.1).
IPv6 (Internet Protocol Version 6):
نسخه جدیدتر IPv4 که ظرفیت بیشتری برای آدرسدهی داره (۱۲۸ بیتی).
مشکل کمبود آدرسهای IPv4 رو حل کرده.
ICMP (Internet Control Message Protocol):
برای ارسال پیامهای کنترلی (مثل خطاها) و تست شبکه (مثل ابزار Ping).
ARP (Address Resolution Protocol):
تبدیل آدرس IP به آدرس فیزیکی (MAC Address).
🔄 انواع ارتباطات تو لایه شبکه
تکپخشی (Unicast):
ارسال پکت فقط به یه مقصد خاص.
مثال: ارسال ایمیل به مدحج.
چندپخشی (Multicast):
ارسال پکت به گروهی از دستگاهها.
مثال: استریم زنده یه بازی برای چند کاربر خاص.
همگانی (Broadcast):
ارسال پکت به همه دستگاههای یه شبکه.
مثال: اعلام عمومی پیام تو یه گروه چت.
🎯 جمع بندی
لایه شبکه یه پل حیاتی بین دستگاهها تو شبکههای مختلفه. این لایه مطمئن میشه که هر پکت به موقع و بدون اشتباه به مقصدش برسه. با وظایفی مثل مسیریابی، آدرسدهی، و کنترل ترافیک، این لایه ستون فقرات اینترنت و شبکههای مدرنه. بدون لایه شبکه، ارتباطات جهانی غیرممکن بودن 🌍
#⃣ #network
➖➖➖➖➖➖➖➖➖
🥷 CHANNEL | GROUP
Forwarded from LearnPOV | لرن پی او وی
Media is too big
VIEW IN TELEGRAM
لطفا این ۵ دقیقه رو توی هر سن و سالی که هستید ببینید و به خانواده هاتونم نشون بدید !
پینوشت
🚀 @coolycode
پینوشت
آقای علی عبدالعالی ۴، ۵ سال همسایه ما بودن، یکی از افرادی که خیلی تلاش کردن توی ایران برای تغییر و تحول توی سیستم آموزشی، و تا جایی که تونستن در مدارسی که دسترسی داشتن این سیستم رو تا حد خیلی خوبی عملی کردن و همچنان هم در حال تلاش برای تغییر این سیستم اموزشی در کل کشور هستن و واقعا کارشون با ارزشه سعی کنید به اشتراک بزارید ❤️
Forwarded from محتوای آزاد سهراب
تجربه نشون داده کسایی که با اسکریپت آرچاینستال آرچ رو نصب میکنن، در انتها با برخورد به اولین مشکل نمیتونن رفعش کنن😁 بخصوص مشکلاتی که نیازمند chroot زدن به سیستم هستش.
بنابراین، اگر نمیدونید چیکار دارید میکنید، از آرچ اینستال استفاده نکنید.
@SohrabContents
بنابراین، اگر نمیدونید چیکار دارید میکنید، از آرچ اینستال استفاده نکنید.
@SohrabContents
Forwarded from Gopher Academy
🔵 عنوان مقاله
Build Go Apps using Project IDX and the Gemini API
🟢 خلاصه مقاله:
IDX یک فضای کاری آنلاین مجهز به هوش مصنوعی است که توسط گوگل توسعه یافته و برای توسعه اپلیکیشنهای فولاستک طراحی شده است. این پلتفرم به توسعهدهندگان امکان میدهد تا بر روی توسعه کاربردی در زبان برنامهنویسی Go تمرکز کنند. IDX با ارائه ابزارها و خدمات مختلف، فرایند توسعه نرمافزار را سادهتر و سریعتر میکند. بهرهگیری از IDX برای کار با Go نیازمند دانستن اصول اولیه استفاده از این پلتفرم میباشد، که شامل نحوه راهاندازی پروژهها، تنظیم محیط توسعه و استفاده از امکانات مختلف IDX برای بهینهسازی فرآیند توسعه است. این مقاله به عنوان راهنمایی برای شروع به کار با IDX در پروژههای مبتنی بر زبان Go عمل میکند و نکات کلیدی برای استفاده موثر از این ابزار را ارائه میدهد.
🟣لینک مقاله:
https://golangweekly.com/link/163977/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Build Go Apps using Project IDX and the Gemini API
🟢 خلاصه مقاله:
IDX یک فضای کاری آنلاین مجهز به هوش مصنوعی است که توسط گوگل توسعه یافته و برای توسعه اپلیکیشنهای فولاستک طراحی شده است. این پلتفرم به توسعهدهندگان امکان میدهد تا بر روی توسعه کاربردی در زبان برنامهنویسی Go تمرکز کنند. IDX با ارائه ابزارها و خدمات مختلف، فرایند توسعه نرمافزار را سادهتر و سریعتر میکند. بهرهگیری از IDX برای کار با Go نیازمند دانستن اصول اولیه استفاده از این پلتفرم میباشد، که شامل نحوه راهاندازی پروژهها، تنظیم محیط توسعه و استفاده از امکانات مختلف IDX برای بهینهسازی فرآیند توسعه است. این مقاله به عنوان راهنمایی برای شروع به کار با IDX در پروژههای مبتنی بر زبان Go عمل میکند و نکات کلیدی برای استفاده موثر از این ابزار را ارائه میدهد.
🟣لینک مقاله:
https://golangweekly.com/link/163977/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Googleblog
Google for Developers Blog - News about Web, Mobile, AI and Cloud
Explore the power of AI-assisted development with Project IDX, as we guide you through building Go applications.
Forwarded from 🎄 DevTwitter | توییت برنامه نویسی
همزمانی (Concurrency) در لاراول 11 را بیشتر بشناسیم
همزمانی یا Concurrency در Laravel نقش مهمی در بهبود عملکرد و مدیریت بار دارد. با استفاده از مکانیزم Queue و قابلیت Task Scheduling، میتوان وظایف را بهصورت همزمان اجرا کرد. برای جلوگیری از Race Condition، اغلب از Lock و Transaction در سطح دیتابیس بهره میبریم. هنگامی که تعداد درخواستها بالا میرود، توزیع بار توسط سرورهای متعدد در کنار مدیریت صحیح Session و Cache، Concurrency را کارآمدتر میکند. همچنین نظارت بر Performance و پیادهسازی الگوی Event-driven رویکردی کلیدی برای ساخت اپلیکیشنهای مقیاسپذیر است. همچنین بهکارگیری ابزارهایی مثل Horizon جهت مانیتورینگ Queue و Jobها، در تضمین سلامت Concurrency کمک میکند.
@DevTwitter | <Alireza Javadi/>
همزمانی یا Concurrency در Laravel نقش مهمی در بهبود عملکرد و مدیریت بار دارد. با استفاده از مکانیزم Queue و قابلیت Task Scheduling، میتوان وظایف را بهصورت همزمان اجرا کرد. برای جلوگیری از Race Condition، اغلب از Lock و Transaction در سطح دیتابیس بهره میبریم. هنگامی که تعداد درخواستها بالا میرود، توزیع بار توسط سرورهای متعدد در کنار مدیریت صحیح Session و Cache، Concurrency را کارآمدتر میکند. همچنین نظارت بر Performance و پیادهسازی الگوی Event-driven رویکردی کلیدی برای ساخت اپلیکیشنهای مقیاسپذیر است. همچنین بهکارگیری ابزارهایی مثل Horizon جهت مانیتورینگ Queue و Jobها، در تضمین سلامت Concurrency کمک میکند.
@DevTwitter | <Alireza Javadi/>
Forwarded from DevAcademy
استخدام برنامه نویس Nest.js
Required Skills:
✅ Strong proficiency in Nest.js and Node.js
✅ Experience with TypeScript
✅ Familiarity with GraphQL and RESTful APIs
✅ Hands-on experience with MongoDB or PostgreSQL
✅ Knowledge of Microservices Architecture and Message Brokers (RabbitMQ, Kafka)
✅ Experience with Docker and Kubernetes is a plus
✅ Understanding of CI/CD Pipelines
Responsibilities:
🔹 Develop and maintain backend services using Nest.js
🔹 Optimize system performance and scalability
🔹 Collaborate with frontend and DevOps teams
🔹 Write unit and integration tests to ensure code quality
First month test
payment 10 $ per hour
Cv: Zoobin@predipie.com
working time from
12pm dubai time to 8pm dubai time
project: Game
💻@DevAcaademy
💬@DevAcademyGroup
Required Skills:
✅ Strong proficiency in Nest.js and Node.js
✅ Experience with TypeScript
✅ Familiarity with GraphQL and RESTful APIs
✅ Hands-on experience with MongoDB or PostgreSQL
✅ Knowledge of Microservices Architecture and Message Brokers (RabbitMQ, Kafka)
✅ Experience with Docker and Kubernetes is a plus
✅ Understanding of CI/CD Pipelines
Responsibilities:
🔹 Develop and maintain backend services using Nest.js
🔹 Optimize system performance and scalability
🔹 Collaborate with frontend and DevOps teams
🔹 Write unit and integration tests to ensure code quality
First month test
payment 10 $ per hour
Cv: Zoobin@predipie.com
working time from
12pm dubai time to 8pm dubai time
project: Game
💻@DevAcaademy
💬@DevAcademyGroup
Forwarded from 🎄 DevTwitter | توییت برنامه نویسی
چرا بعضی Unit Testها به هیچ دردی نمی خورن؟
تا حالا براتون پیش اومده که بعد از کلی وقت گذاشتن روی نوشتن تست های واحد، بازم سیستم با یه باگ ناجور منفجر بشه؟ اون حس ناامیدی که انگار همه اون تست ها فقط وقت تلف کردن...
خب، چرا این اتفاق می افته؟
یه سری اشتباهات رایج باعث می شه تست ها بی اثر بشن. مثلا:
استفاده از داده های واقعی به جای داده های ساختگی:
فکر کنید تست تون روی دیتابیس واقعی اجرا بشه. اگه رکوردها تغییر کنن یا دسترسی به دیتابیس قطع بشه، تست می ترکه. تست خوب باید مستقل از محیط باشه.
عدم استفاده از Mocking:
وقتی همه وابستگی های کد واقعی باشن، دارین کل سیستم رو تست می کنید، نه فقط یه بخش خاص رو. این دیگه Unit Test نیست! استفاده از Mock باعث می شه به جای اینکه به API واقعی یا دیتابیس وصل بشید، شبیه ساز اون ها رو تست کنید.
نوشتن تست های زیاد ولی بدون هدف مشخص:
یه زمانی فکر می کردم هرچی تعداد تست ها بیشتر باشه بهتره. بعد فهمیدم تستی که هدفمند نباشه، فقط کد رو شلوغ می کنه و باعث می شه موقع تغییرات کلی مشکل زا بشه.
حالا راه حل چیه؟
۱. وابستگی ها رو Mock کنید. با ابزارهایی مثل Mockito می تونید رفتار وابستگی ها رو شبیه سازی کنید.
۲. از داده های ثابت و ساختگی (Fake Data) استفاده کنید که تغییر نمی کنن.
۳. روی سناریوهای کلیدی تمرکز کنید. مثلا یه تابع مهم چطوری ورودی های خاص رو هندل می کنه؟ این مهم تر از اینه که صد تا تست بنویسید که همشون بی هدف باشن.
@DevTwitter | <Hamed Farzanefar/>
تا حالا براتون پیش اومده که بعد از کلی وقت گذاشتن روی نوشتن تست های واحد، بازم سیستم با یه باگ ناجور منفجر بشه؟ اون حس ناامیدی که انگار همه اون تست ها فقط وقت تلف کردن...
خب، چرا این اتفاق می افته؟
یه سری اشتباهات رایج باعث می شه تست ها بی اثر بشن. مثلا:
استفاده از داده های واقعی به جای داده های ساختگی:
فکر کنید تست تون روی دیتابیس واقعی اجرا بشه. اگه رکوردها تغییر کنن یا دسترسی به دیتابیس قطع بشه، تست می ترکه. تست خوب باید مستقل از محیط باشه.
عدم استفاده از Mocking:
وقتی همه وابستگی های کد واقعی باشن، دارین کل سیستم رو تست می کنید، نه فقط یه بخش خاص رو. این دیگه Unit Test نیست! استفاده از Mock باعث می شه به جای اینکه به API واقعی یا دیتابیس وصل بشید، شبیه ساز اون ها رو تست کنید.
نوشتن تست های زیاد ولی بدون هدف مشخص:
یه زمانی فکر می کردم هرچی تعداد تست ها بیشتر باشه بهتره. بعد فهمیدم تستی که هدفمند نباشه، فقط کد رو شلوغ می کنه و باعث می شه موقع تغییرات کلی مشکل زا بشه.
حالا راه حل چیه؟
۱. وابستگی ها رو Mock کنید. با ابزارهایی مثل Mockito می تونید رفتار وابستگی ها رو شبیه سازی کنید.
۲. از داده های ثابت و ساختگی (Fake Data) استفاده کنید که تغییر نمی کنن.
۳. روی سناریوهای کلیدی تمرکز کنید. مثلا یه تابع مهم چطوری ورودی های خاص رو هندل می کنه؟ این مهم تر از اینه که صد تا تست بنویسید که همشون بی هدف باشن.
@DevTwitter | <Hamed Farzanefar/>
Forwarded from Go Casts 🚀
ویکی postgresql یه لیستی از anti-patternهارو لیست کرده و در موردشون توضیح داده، خوبه که لیست رو ببینید، احتمالش زیاده همین الان، در لحظه چند تا از این anti-patternهارو در حال استفاده باشید که بهتره جایگزین کنید.
مثلا NOT IN یا BETWEEN شاید استفاده ش کم نباشه تو کوئری ها.
https://wiki.postgresql.org/wiki/Don%27t_Do_This
@gocasts
مثلا NOT IN یا BETWEEN شاید استفاده ش کم نباشه تو کوئری ها.
https://wiki.postgresql.org/wiki/Don%27t_Do_This
@gocasts
Forwarded from Code Module | کد ماژول (genix)
چند تا کامند کاربردی و کمتر شناخته شده از گیت 🦦
میدونستی به جز push و pull گیت کامند های دیگه ای هم داره؟ در این پست من چند کامند کمتر شناخته شده و کاربردی رو بهتون معرفی میکنم.
💎 git stash
زمانی که شما در برنچ A هستید و یهویی مجبورید به برنچ B سوییچ کنید و نمیخواید این تغییرات نیمهکاره رو کامیت کنید، git stash به دادتون میرسه. تغییراتتون رو جمع میکنه و میتونید بدون کامیت کردن به یک برنچ دیگه برید.
💎 conditional config
اینجوری بگم که با این قابلیت میتونید تعیین کنید یه تنظیم خاص تو گیت فقط تحت شرایط خاصی اعمال بشه. مثلا اگه در یک پروژه خاص بودید، یا برای یه ایمیل خاص، تنظیمات متفاوتی داشته باشی.
💎 git blame
این کامند برای وقتی هست که در تیم، یک قسمت از کد خراب شده و میخواید بدونید کدوم دولوپر کامیت کرده و مقصر کیه. با این کامند به راحتی میتونید بفهمید چه کسی اون فایل رو تغییر داده.
💎 git reflog
این کامند برای زمانی خوبه که یک خرابکاری کردی، مثلا یک کامیت پاک کردی و این کامند بهت نشون میده چه تغییراتی صورت گرفته. این کامند به طور پیشفرض فعال هست و تغییرات محلی رو ثبت میکنه. (مثلا زمانی که ما از کامند git log استفاده میکنیم)
💎 git diff —word —diff
به جای اینکه کل تغییرات رو خطبهخط رو ببینی، این کامند تغییرات رو کلمهبهکلمه نشون میده. برای وقتایی که کد زیاد داری، خیلی کمک میکنه.
💎 git push —force-with-lease
این یه جور فورس پوش هست، ولی با احتیاط! به جای اینکه فورس بزنی و تغییرات دیگران رو overwrite کنی، این تضمین میکنه که اگه کسی دیگه چیزی تو ریپازیتوری تغییر داده، پوش تو انجام نشه.
به صورت خلاصه این کامند ها قطعا یه روز به کارتون میاد و به نوبه خودشون کاربردی هستن. دقت کنید تعداد کامند های گیت حدودا بیشتر از ۱۵۰ تا هست و اگه علاقه مند به کشف باقی موارد هستید، میتونید از YouTube اقای Scott Chacon اطلاعات خوبی به دست بیارید. ایشون نویسنده کتاب معروف Git Pro، و یکی از بنیانگذاران گیت هاب هستن.
#git
@CodeModule
میدونستی به جز push و pull گیت کامند های دیگه ای هم داره؟ در این پست من چند کامند کمتر شناخته شده و کاربردی رو بهتون معرفی میکنم.
💎 git stash
زمانی که شما در برنچ A هستید و یهویی مجبورید به برنچ B سوییچ کنید و نمیخواید این تغییرات نیمهکاره رو کامیت کنید، git stash به دادتون میرسه. تغییراتتون رو جمع میکنه و میتونید بدون کامیت کردن به یک برنچ دیگه برید.
💎 conditional config
اینجوری بگم که با این قابلیت میتونید تعیین کنید یه تنظیم خاص تو گیت فقط تحت شرایط خاصی اعمال بشه. مثلا اگه در یک پروژه خاص بودید، یا برای یه ایمیل خاص، تنظیمات متفاوتی داشته باشی.
💎 git blame
این کامند برای وقتی هست که در تیم، یک قسمت از کد خراب شده و میخواید بدونید کدوم دولوپر کامیت کرده و مقصر کیه. با این کامند به راحتی میتونید بفهمید چه کسی اون فایل رو تغییر داده.
💎 git reflog
این کامند برای زمانی خوبه که یک خرابکاری کردی، مثلا یک کامیت پاک کردی و این کامند بهت نشون میده چه تغییراتی صورت گرفته. این کامند به طور پیشفرض فعال هست و تغییرات محلی رو ثبت میکنه. (مثلا زمانی که ما از کامند git log استفاده میکنیم)
💎 git diff —word —diff
به جای اینکه کل تغییرات رو خطبهخط رو ببینی، این کامند تغییرات رو کلمهبهکلمه نشون میده. برای وقتایی که کد زیاد داری، خیلی کمک میکنه.
💎 git push —force-with-lease
این یه جور فورس پوش هست، ولی با احتیاط! به جای اینکه فورس بزنی و تغییرات دیگران رو overwrite کنی، این تضمین میکنه که اگه کسی دیگه چیزی تو ریپازیتوری تغییر داده، پوش تو انجام نشه.
به صورت خلاصه این کامند ها قطعا یه روز به کارتون میاد و به نوبه خودشون کاربردی هستن. دقت کنید تعداد کامند های گیت حدودا بیشتر از ۱۵۰ تا هست و اگه علاقه مند به کشف باقی موارد هستید، میتونید از YouTube اقای Scott Chacon اطلاعات خوبی به دست بیارید. ایشون نویسنده کتاب معروف Git Pro، و یکی از بنیانگذاران گیت هاب هستن.
#git
@CodeModule
Forwarded from Gopher Academy
هفته نامه Golang Nugget رو اگه دوست داشتید دنبال کنید.
منابع خوبی رو معرفی میکنه
این یه نمونه ش هست
https://golangnugget.com/p/go-concurrency-upgrade-strategies-memory-management-january-6-2024
این خبرنامه رو آقا لیام عزیز مدیریت میکنه
https://x.com/liammanesh
<Hossein Nazari/>
➖➖➖➖➖➖➖➖
https://news.1rj.ru/str/addlist/KpzXaiSpKENkMGM0
منابع خوبی رو معرفی میکنه
این یه نمونه ش هست
https://golangnugget.com/p/go-concurrency-upgrade-strategies-memory-management-january-6-2024
این خبرنامه رو آقا لیام عزیز مدیریت میکنه
https://x.com/liammanesh
<Hossein Nazari/>
➖➖➖➖➖➖➖➖
https://news.1rj.ru/str/addlist/KpzXaiSpKENkMGM0
Forwarded from Gopher Academy
دیزاین پترن Facade در Golang
یکی از دیزاین پترن های جذاب و کاربردی، پترن Facade! شاید اسمش یه کم شیک به نظر بیاد، ولی قول میدم که خیلی کاربردیه و کارمون رو راحتتر میکنه.
حالا Facade چیه؟
فرض کن جلوی یه ساختمون خیلی شیک و بزرگ وایسادی، ولی لازم نیست بری داخلش و همه اتاقاشو ببینی. فقط کافیه از بیرون، نمای ساده و مرتبش رو ببینی و کارتو راه بندازی. پترن Facade دقیقاً همینه! یه رابط کاربری ساده میده که دیگه لازم نباشه با پیچیدگیهای سیستم درگیر بشی.
چرا باید ازش استفاده کنیم؟
دو تا اصل مهم دنیای کدنویسی اینجا برامون روشنتر میشه:
1- همه چی ساده باشه KISS
2- تکرار نکن DRY
وقتی از Facade استفاده میکنی، پیچیدگیهای پشت پرده سیستم رو قایم میکنی و فقط چیزی که کاربر (یا حتی خودت!) نیاز داری رو نشون میدی. کدت مرتبتر، قابل نگهداریتر و قابلفهمتر میشه.
ی مثال ساده: اتصال به دیتابیس
فرض کن میخوای به دیتابیس وصل بشی، کوئری بزنی و قطع کنی. بدون Facade و با Facade داخل تصویر هست.
کاربردهای دیگه:
کار با فایلها
ارتباط با API
راهاندازی وبسرور
مدیریت سفارشهای فروشگاه آنلاین
و...
این Facade مثل یه شمشیر دولبهست. اگه زیادی سادهسازی کنی یا بخوای همه کارها رو تو یه struct و متدهاش بذاری، ممکنه یه ساختار پیچیده (God Object) بسازی که خودش یه مشکل جدیده.
خلاصه صحبت هامون:
دیزاین پترن Facade، یه ابزار فوقالعاده برای سادهسازی و مرتب کردن کدهاتونه. اما همونطور که هر چیزی حد داره، از این پترن هم فقط وقتی استفاده کن که به درد بخوره و لازم باشه.
<Mohammad Abdorrahmani/>
➖➖➖➖➖➖➖➖
https://news.1rj.ru/str/addlist/KpzXaiSpKENkMGM0
یکی از دیزاین پترن های جذاب و کاربردی، پترن Facade! شاید اسمش یه کم شیک به نظر بیاد، ولی قول میدم که خیلی کاربردیه و کارمون رو راحتتر میکنه.
حالا Facade چیه؟
فرض کن جلوی یه ساختمون خیلی شیک و بزرگ وایسادی، ولی لازم نیست بری داخلش و همه اتاقاشو ببینی. فقط کافیه از بیرون، نمای ساده و مرتبش رو ببینی و کارتو راه بندازی. پترن Facade دقیقاً همینه! یه رابط کاربری ساده میده که دیگه لازم نباشه با پیچیدگیهای سیستم درگیر بشی.
چرا باید ازش استفاده کنیم؟
دو تا اصل مهم دنیای کدنویسی اینجا برامون روشنتر میشه:
1- همه چی ساده باشه KISS
2- تکرار نکن DRY
وقتی از Facade استفاده میکنی، پیچیدگیهای پشت پرده سیستم رو قایم میکنی و فقط چیزی که کاربر (یا حتی خودت!) نیاز داری رو نشون میدی. کدت مرتبتر، قابل نگهداریتر و قابلفهمتر میشه.
ی مثال ساده: اتصال به دیتابیس
فرض کن میخوای به دیتابیس وصل بشی، کوئری بزنی و قطع کنی. بدون Facade و با Facade داخل تصویر هست.
کاربردهای دیگه:
کار با فایلها
ارتباط با API
راهاندازی وبسرور
مدیریت سفارشهای فروشگاه آنلاین
و...
این Facade مثل یه شمشیر دولبهست. اگه زیادی سادهسازی کنی یا بخوای همه کارها رو تو یه struct و متدهاش بذاری، ممکنه یه ساختار پیچیده (God Object) بسازی که خودش یه مشکل جدیده.
خلاصه صحبت هامون:
دیزاین پترن Facade، یه ابزار فوقالعاده برای سادهسازی و مرتب کردن کدهاتونه. اما همونطور که هر چیزی حد داره، از این پترن هم فقط وقتی استفاده کن که به درد بخوره و لازم باشه.
<Mohammad Abdorrahmani/>
➖➖➖➖➖➖➖➖
https://news.1rj.ru/str/addlist/KpzXaiSpKENkMGM0
Forwarded from 🎄 DevTwitter | توییت برنامه نویسی
اگر درس ساختمان داده داشتید و میخواستید بفهمید Linkedlist چطوریه این پروژه مثال خوبی ازشه ...
https://github.com/Mahdi-Rashidiyan/data-structure-study/blob/main/Liblinkedlist.py
@DevTwitter | <Mehdi Rashidiyan/>
https://github.com/Mahdi-Rashidiyan/data-structure-study/blob/main/Liblinkedlist.py
@DevTwitter | <Mehdi Rashidiyan/>
Forwarded from Gopher Academy
اصول CSP از Tony Hoare - الهامبخش طراحی Concurrency در زبان برنامهنویسی Go
https://virgool.io/@mehradsadeghi/tony-hoare-csp-votfcg3risji
https://virgool.io/@mehradsadeghi/tony-hoare-csp-votfcg3risji
ویرگول
اصول CSP از Tony Hoare - الهامبخش طراحی Concurrency در زبان برنامهنویسی Go
اندیشمند برجسته علوم کامپیوتر Tony Hoare، در سال ۱۹۷۸ مفهوم CSP را معرفی کرد؛ مدلی که تأثیر عمیقی بر طراحی Concurrency در زبان Go داشت.
Forwarded from Laravel News
Interactive Console Commands in Laravel https://laravel-news.com/interactive-console-commands
Laravel News
Interactive Console Commands in Laravel - Laravel News
Learn how to enhance Laravel Artisan commands with interactive prompts using PromptsForMissingInput. Create user-friendly CLI experiences by automatically prompting for missing arguments and options.
Forwarded from 🎄 یک برنامه نویس تنبل (The Lazy 🌱 Raymond)
Forwarded from Mahi in Tech
یکی از مواردی که میتونه دید خیلی خوبی نسبت به سناریوهای مختلف توی پروژههای کوچیک و بزرگ بهتون بده و شما رو به مهندس بهتری تبدیل کنه نه صرفا کدنویس، مطالعهی tech blog شرکتهای بزرگ هست؛ حالا چه ایرانی و چه خارجی. معمولا تجربیات و مقالات ارزشمندی بینشون پیدا میشه.
در ادامه لیستی از مقالات تخصصی و فرانتاندی شرکت PayPal رو که توسط Soheib Kiani معرفی شده بود قرار دادم:
🔻 چطور PayPal Checkout اپلیکیشن frontend خودش رو مقیاسپذیر کرد؟
https://bluepnume.medium.com/sane-scalable-angular-apps-are-tricky-but-not-impossible-lessons-learned-from-paypal-checkout-c5320558d4ef
🔻 PayPal درباره Dependency injection چه نظری داره؟
https://bluepnume.medium.com/dependency-injection-in-angular-isn-t-worth-it-more-lessons-learned-from-scaling-paypal-checkout-2189ec9c21a0
🔻 کاهش 1000 دکمه PayPal به iFrame
https://bluepnume.medium.com/less-is-more-reducing-thousands-of-paypal-buttons-into-a-single-iframe-using-xcomponent-d902d71d8875
🔻 درخواستهای cross-origin بدون CORS
https://bluepnume.medium.com/reinventing-cross-origin-requests-without-cors-b9c4cb645376
🔻 چرا اپلیکیشن وب جدید در PayPal از Typenoscript استفاده میکنه؟
https://medium.com/@kentcdodds/why-every-new-web-app-at-paypal-starts-with-typenoscript-9d1acc07c839
🔻 مقیاسپذیری GraphQL در PayPal
https://medium.com/paypal-tech/scaling-graphql-at-paypal-b5b5ac098810
🔻 کامپوننتهای UI قابل اشتراکگذاری PayPal در سطح Enterprise
https://medium.com/paypal-tech/reusing-ui-components-at-enterprise-level-a7df1ea1f8dd
🔻 اپلیکیشنهای PayPal معماری Microfrontend رو دنبال میکنند
https://medium.com/paypal-tech/how-micro-frontend-has-changed-our-team-dynamic-ba2f01597f48
🔻 توضیح PayPal درباره پذیرش GraphQL
https://medium.com/paypal-tech/graphql-at-paypal-an-adoption-story-b7e01175f2b7
🔻 داستان موفقیت PayPal Checkout
https://medium.com/paypal-tech/graphql-a-success-story-for-paypal-checkout-3482f724fb53
#PayPal #FrontEnd
در ادامه لیستی از مقالات تخصصی و فرانتاندی شرکت PayPal رو که توسط Soheib Kiani معرفی شده بود قرار دادم:
https://bluepnume.medium.com/sane-scalable-angular-apps-are-tricky-but-not-impossible-lessons-learned-from-paypal-checkout-c5320558d4ef
https://bluepnume.medium.com/dependency-injection-in-angular-isn-t-worth-it-more-lessons-learned-from-scaling-paypal-checkout-2189ec9c21a0
https://bluepnume.medium.com/less-is-more-reducing-thousands-of-paypal-buttons-into-a-single-iframe-using-xcomponent-d902d71d8875
https://bluepnume.medium.com/reinventing-cross-origin-requests-without-cors-b9c4cb645376
https://medium.com/@kentcdodds/why-every-new-web-app-at-paypal-starts-with-typenoscript-9d1acc07c839
https://medium.com/paypal-tech/scaling-graphql-at-paypal-b5b5ac098810
https://medium.com/paypal-tech/reusing-ui-components-at-enterprise-level-a7df1ea1f8dd
https://medium.com/paypal-tech/how-micro-frontend-has-changed-our-team-dynamic-ba2f01597f48
https://medium.com/paypal-tech/graphql-at-paypal-an-adoption-story-b7e01175f2b7
https://medium.com/paypal-tech/graphql-a-success-story-for-paypal-checkout-3482f724fb53
#PayPal #FrontEnd
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Linuxor ?
توی ++C، توابع ()likely و ()unlikely به برنامهنویس اجازه میده تا به کامپایلر اطلاع بده که احتمال وقوع یک مسیر خاص توی کد بیشتره یا کمتره. این موضوع میتونه بهینهسازی عملکرد برنامه را بهبود بده، به ویژه توی branch prediction یا پیشبینی انشعاب پردازنده.
وقتی پردازنده با یه دستور شرطی مثلا if یا switch روبهرو میشه، نیاز داره پیشبینی کنه که کدوم مسیر کد اجرا قراره بشه. اگه این پیشبینی درست باشه، پردازنده سریعتر عمل میکنه.
مثلا کد زیرو ببینید
if (likely(value > 0)) {
cout << "Positive value";
} else {
cout << "Non-positive value";
}
اینجا likely به کامپایلر اطلاع میده که شرط value به احتمال زیاد بزرگ تر از 0 هستش پس کامپایلر این مسیرو بهینه مدیریت میکنه.
@Linuxor
وقتی پردازنده با یه دستور شرطی مثلا if یا switch روبهرو میشه، نیاز داره پیشبینی کنه که کدوم مسیر کد اجرا قراره بشه. اگه این پیشبینی درست باشه، پردازنده سریعتر عمل میکنه.
مثلا کد زیرو ببینید
if (likely(value > 0)) {
cout << "Positive value";
} else {
cout << "Non-positive value";
}
اینجا likely به کامپایلر اطلاع میده که شرط value به احتمال زیاد بزرگ تر از 0 هستش پس کامپایلر این مسیرو بهینه مدیریت میکنه.
@Linuxor
Forwarded from 🎄 DevTwitter | توییت برنامه نویسی
دوستان یه ریپوزیتوری توی گیتهاب شروع کردم که دیزاین پترن ها توی پایتون رو کدش رو میزارم، دوست داشتید فورک کنید و کانتریبیوت کنید و در نهایت PR بزنید.
https://github.com/khodealib/designpattern-in-python
@DevTwitter | <فرداد/>
https://github.com/khodealib/designpattern-in-python
@DevTwitter | <فرداد/>
Forwarded from Rust for Python developers
هفته پیش اولین پروژه
یک ابزار تحت ترمینال برای آنالیز فایل (تعداد خیلی بالا) بود.
توی پایتون نوشته شده بود، میخواستند بیارنش روی
هرچند من بعد از خوندن کدها بهشون اطلاع دادم که کد پایتون درست نوشته نشده و همون باعث کند بودن هست و میتونم درستش کنم ولی به خواست خودشون رفتم روی
البته این درآمد نشه موضوعی برای اینکه برید
اما، خواستم این رو بگم که بیشترین کمک رو بهم، خوندن سورس کد دیگران کرد.
مثلاً پروژه
ازم درخواست
احتمالاً بعد از خوندن ۲-۳ تا سورس کد دیگری که در دستم هست و تمرین کردنشون برم سراغ یادگیری پکیجهای
Rust خودم رو تحویل دادم.یک ابزار تحت ترمینال برای آنالیز فایل (تعداد خیلی بالا) بود.
توی پایتون نوشته شده بود، میخواستند بیارنش روی
Rust و یکسری ویژگی جدید هم بهش اضافه کنند.هرچند من بعد از خوندن کدها بهشون اطلاع دادم که کد پایتون درست نوشته نشده و همون باعث کند بودن هست و میتونم درستش کنم ولی به خواست خودشون رفتم روی
Rust امروز تأیید خروجی و تستها و پرداخت انجام شد و شد اولین دستمزد Rust من و سریعترین درآمد مبلغ خوبم از یادگیری زبان برنامهنویسی جدید.البته این درآمد نشه موضوعی برای اینکه برید
Rust یادبگیرید، چون قطعاً تجربیات دیگری که داشتم باعث شد این پروژه رو بگیرم.اما، خواستم این رو بگم که بیشترین کمک رو بهم، خوندن سورس کد دیگران کرد.
مثلاً پروژه
Limbo که بالاتر گفتم، خیلی خیلی کمکم کرد که توی ۱ روز تمام دستورات cli پروژه رو بزنم.ازم درخواست
tui کردند که گفتم درحال حاضر وقتش رو ندارم و حقیقتا تا حالا هم tui برای Rust نخوندم. احتمالاً بعد از خوندن ۲-۳ تا سورس کد دیگری که در دستم هست و تمرین کردنشون برم سراغ یادگیری پکیجهای
tui و بعد از اون Tauri یا Dioxus ولی این موضوع انگیزه شد مضاعف برای ادامه مسیر.