🎄 یک برنامه نویس تنبل – Telegram
🎄 یک برنامه نویس تنبل
2.01K subscribers
1.54K photos
284 videos
37 files
1.91K links
کانال یک برنامه نویس تنبل

🔥لینوکس
🔥برنامه نویسی فرانت‌اند
🔥برنامه نویسی بک‌اند
🔥اخبار تکنولوژی و...

ارتباط با مدیریت :

@CoderNap

اسپانسر هاست سایت راییوم توسط پوینا

https://rayium.ir

@poinair
Download Telegram
Forwarded from armin ghk
دوره آموزش Software Architecture (کاملا پروژه محور در NestJS منتشر شد)

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

۱ـ معرفی دوره و مفاهیم پایه ای معماری نرم افزار
۲ـ معماری لایه ای (Layer)
۳ـ معماری clean architecture
۴-معماری hexagonal
۵ـ معماری onion
۶-معماری Domain Driven Design
۷ـ معماری microservices بخش اول
۸ـ معماری microservices بخش دوم
۹ـ معماری microservices بخش سوم
۱۰ـ معماری سرویس گرا SOA
۱۱ـ معماری سیستم های توزیع شده Distributed
۱۲ـ workflow طراحی جریان کاری و مدیریت processها
۱۳ـstate machine - طراحی و پیاده سازی ماشین های حالت
۱۴ـ معماری مبتنی بر رویداد Event-Driven Architecture
۱۵ـ مدیریت تراکنش ها و اطمینان از صحت داده ها transaction management

لینک دسترسی به دوره:
https://www.armincode.com
🔶 مادربزرگ لینوکسی

#لینوکس

@TheRaymondDev
🥴94😁2
🔶 وقتی کارآموزی میشه نسخه جدید حمالی مدرن...

@TheRaymondDev | @wiki_tajrobe
👍19🤬10
👩‍💻 یکی از چیزایی که باعث می‌شه عاشق لاراول بمونی چیه؟
اینکه همیشه یه راه ساده‌تر برات داره!

توی نسخه لاراول 12.28 به بعد، یه قابلیت جدید اومده که واقعاً حس "لاراولی بودن" رو منتقل می‌کنه
الان می‌تونی فقط با یه Attribute ساده، پالیسی‌ت رو مستقیم به مدل وصل کنی 😳


یعنی دیگه لازم نیست بری AuthServiceProvider و دستی مپ کنی 😎
لاراول خودش اتوماتیک تشخیص می‌ده و هندلش می‌کنه 💪

یه خط کد کمتر، یه کافی کمتر ☕️ ❤️

#Milwad #Laravel

📱 @MilwadKhosravi
Please open Telegram to view this post
VIEW IN TELEGRAM
3🆒1
🔶 در حال ضبط دوره طراحی سایت شرکتی لاراول بودم در که موقع ضبط پکیچ laravel slugable که خودم نوشتم که خودکار slug رو ایجاد می کرد اما یه مشکلی داشت که برای روت resource از پارامتر id پشتیبانی نمی کرد و خطای ۴۰۴ می داد و فقط slug کار می کرد. بنابراین قابلیت پشتیبانی از پارامتر id در پکیچ اضافه کردیم که پیش فرض این پارامتر id فعال است و نیازی به تغییر نیست اما بخوای از پارامتر slug استفاده کنید با کد protected $slugUseForRoutes = true در مدل اضافه می کنید و پارامتر slug فعال می کنید.

گیت هاب :

https://github.com/LaraPire/laravel-slugable

#لاراول

@TheRaymondDev
👍2
🔸Girls don't reply to DMs

حدود ۲سال پیش که توییتر سورس مربوط به سیستم ریکامندیشین خودش رو به صورت اوپن سورس منتشر کرد یکی گلایه کرده بود که:

به هر دختری پیام میدم جوابی نمیگیرم! لطفا مشکل رو حل کنید :)


این ایشو همون سال بسته شد تا اینکه جدیدا این مشکل داره همه‌گیر میشه

https://github.com/twitter/the-algorithm/issues/412

#fun
@TheRaymondDev
🤣19
Forwarded from Linuxor ?
ویندوز خودتون رو آپدیت نکنید، کاربرا گزارش دادن بعد از آپدیت وقتی تسک منیجر رو با دکمه X می‌بستن، بسته نمی‌شه و بدتر می‌ره توی بکگراند و از منابع سیستم مصرف می‌کنه

اگه به این مشکل خوردید تنها راه Kill کردنشه، تا مایکروسافت فیکسش کنه.

@Linuxor
🤣14
👍21👎5🤣41💩1🥴1
🔶 در مستندات Preline UI یه مشکلی درباره CSS Variants داره.

وقتی توی فایل input.css مسیر CSS Variants Preline UI کپی و پیست می کنید و دستور زیر را اجرا می کنیم, خطا می دهد.

CSS Variants :

/* Preline UI */
@import "./node_modules/preline/variants.css";


Run :

npx @tailwindcss/cli -i ./src/input.css -o ./src/output.css --watch
≈ tailwindcss v4.1.13

Error: Can't resolve './node_modules/preline/variants.css' in
'/home/.../www/wordpress/wp-content/themes/new/src'


حالا CSS Variants بدون پوشه node_modules قرار می دهیم این مشکل حل می شود و اجرا می شود.

@import "preline/variants.css";


این مشکل رو به گیت هاب Preline UI گزارش دادم.

https://github.com/htmlstreamofficial/preline/issues/722

#ui

@TheRaymondDev
1👍1
Forwarded from محتوای آزاد سهراب (Sohrab)
ویندوز توی اخرین بتاش یک دکمه تست سرعت اینترنت اضافه کرده که وقتی روش بزنی توی بینگ سرچ می‌کنه speed test.


از اونجایی که مدیرعامل مایکروسافت قبلاً گفته بود که ۳۰ درصد از کدهای مایکروسافت با ai نوشته میشن یک مسأله قابل تامله.

#micro$oft

@SohrabContents
🥴7🤣3
🔶 بانک مرکزی ترکیه مجوز شرکت مالی Papara ترکیه را باطل کرد.

بسیاری کاربران ایرانی از کارت بین المللی Papara برای خرید اینترنتی استفاده می کند که شرکت مالی Papara ترکیه بیش از ۲۶ هزار حساب Papara بین سال ‌های ۲۰۲۱ تا ۲۰۲۳ برای تراکنش ‌های مرتبط با سایت ‌های شرط ‌بندی غیر قانونی استفاده شده‌ اند؛ ارزش این تراکنش‌ها حدود ۱۲ میلیارد لیره ترکیه بوده است و وجوه از طریق حساب‌های بانکی داخلی به کیف ‌پول ‌های رمزارز منتقل می ‌شدند.

این اقدام بخشی از سیاست دولت ترکیه برای مقابله با پول ‌شویی و تشدید نظارت بر مؤسسات مالی الکترونیکی است و مدیران ارشد Papara نیز در این پرونده تحت پیگرد قرار گرفته‌اند.

#خبر

@TheRaymondDev | @TechTube
3👍1
🔶 اخیرا یه سرویس مدیریت کاربران و احراز هویت Clerk معرفی شده که برای اپلیکیشن‌های وب و موبایل طراحی شده تا تیم ‌های توسعه بتوانند سریع وارد بخش احراز هویت و مدیریت کاربران شوند بدون اینکه همه‌ی این سیستم را از صفر بسازند.

اما بدی این سرویس اینکه داده های مدیریت کاربران و عضویت آن در سرورهای خود نگهداری می شوند و اگر داده های حساسی دارید, استفاده از احزار هویت Clerk توصیه نمی شود.

https://clerk.com

@TheRaymondDev
🥴6🤣1
🔶 برای فریم ‌ورک لاراول، الگوی Repository Pattern بهترین نوع معماری است، زیرا سازگاری کامل با ساختار این فریم ‌ورک دارد.

#لاراول

@TheRaymondDev
🔥5
Forwarded from Golden Code (@lix)
یه روش برای اینکه کارهای تکراریه مثل ساخت یه سری کلاس‌های خاص (مثلا DTO) رو خودکار کنید

اولش ببینیم چرا custom artisan command مفیده؟

صرفه‌جویی در زمان

کاهش خطا: از نوشتن دستی کد جلوگیری می‌کنین

وقت بیشتری برای کدنویسی بخش‌های مهم پروژه دارید.


📌 چطوری custom artisan command بسازیم؟

1. ایجاد کامند جدید:
با دستور زیر، یک کامند جدید ایجاد کنین:

php artisan make:command CreateDto

2. نوشتن منطق دستور:
در کلاس جدید،دستور مورد نظرتونو بنویسین (مثل ساخت یک DTO جدید).

یه مثال:

<?php
protected $signature = 'make:dto {name}';
protected $denoscription = 'Create a new DTO class';

public function handle() {
$name = $this->argument('name');
file_put_contents(app_path("Dtos/{$name}.php"), "<?php\n\nclass {$name} {}\n");
$this->info("DTO {$name} created successfully!");
}

3. اجرای دستور:
حالا با این دستور میتونین بسادگی کلاس‌های DTO جدید بسازید:

php artisan make:dto MyDto

خلاصش که:

با استفاده از custom artisan command، میتونین کارهای تکراریتون رو خودکار کنین و توسعه پروژتون رو هم سرعت بدید.
#Laravel #Laravel_tip #لاراول

@GoldenCodeir 🔥

(به‌منبع و مثالش دقت کنید 👇🏾)
https://x.com/mmartin_joo/status/1982797695568707742?t=EQ-hdRBX3rRgGuPH2EyA9Q&s=19
3👍1
خطا داریم؟ همینه که هست!

یه مثال دیدم که می‌گفت شما وقتی ماشینتون پنچر میشه صبر می‌کنید تا تعمیرکار بیاد درستش کنه، یا با همون چرخ های پنجر با سرعت کم ادامه میدین تا به مقصد برسید؟

به نظرم همین توی برنامه‌نویسی هم مصداق داره، وقتی برنامه‌مون به ارور میخوره چطوری مدیریتش می‌کنیم؟ حالا این ارور خیلی وقت ها exceptionه توی زبون های برنامه نویسی، ولی یکم سطح بالاتر ببینیم،
مثلا به یه سرویس خارجی درخواست دادیم و نیست، خب چیکار کنیم؟
یه فایل کانفیگ رو میخوایم لود کنیم ولی نیست.
دیتایی که از سمت کاربر اومده معتبر نیست.

در یک برنامه معمولی جوابِ (احتمالا) درست به خیلی از این سوالا اینه که خب کارکرد برنامه رو متوقف کن و بگو نمیتونم. برنامه کار نکنه تا دوباره با برطرف شدن مشکلات یکی از اول اجراش کنه،
ولی اگر برنامه ما قراره توی یکسری از محیط‌ها اجرا بشه دیگه خبری از «من کار نمیکنم تا شرایط درست بشه» نیست. چه محیط‌هایی؟ محیط‌هایی که availability بالا مهمه مثلا سیستم های امبدد یا بک‌اند.
مثلا قراره ما مسیریابی یک هواپیما رو انجام بدیم و سیگنال GPS دریافت نمی‌کنیم، خب به هواپیما بگیم فعلا من کار نمیکنم؟! یعنی چی که کار نمیکنم، با سرعت زیاد داره میره :)))
یا مثلاً توی کلود اگر ارور بدیم و برنامه کرش کنه کنیم چی میشه؟ کوبرنتیز دوباره برنامه رو اجرا می‌کنه و دوباره با مشکل درگیریم!

پس در این شرایط نمیشه ارور داد و بیخیال شد، بلکه باید با همون چرخ پنچر ادامه داد، برای هر روش هم با خلاقیت خودمون یا با کمک روش های پیشنهاد شده باید یه پلن بی داشته باشیم،
پیاده سازی و تست خود برنامه در کنار اینکه هر قسمتی ممکنه کار نکنه و سناریوهای مختلفش، کار سختیه ولی هزینه‌ی داشتن یه نرم افزار قابل اعتماده.

مثلا چه مشکلاتی؟
مثلاً اگه قراره کانفیگ فایل رو از بیرون لود کنیم, آمادگی نبودنش رو هم داشته باشیم، مثلا یه کانفیگ پیشفرض داشته باشیم (البته کانفیگ چون موقع اولین اجرای برنامه خودش رو نشون میده شاید نیازی هم نباشه)
مثلا اگر داده gps به ما نرسید، با کمک داده های قبلی که ذخیره کردیم و یا ترکیبش با سرعت و شتاب و ... مشکل رو موقتا و حتی نادقیق حل کنیم
یا مثلاً اگر به سرور خارجی درخواست می‌زنیم و نیست، آمادگی نبودنش رو داشته باشیم، اینجا یکسری پترن که تو صنعت استفاده میشه داریم
مثلا چه پترنهایی؟
+ دوباره درخواست بده: retry pattern
+ به یکی دیگه درخواست بده: fallback
+ اگر خرابه تا یه مدت بهش درخواست نده تا ارور الکی نگیری: circuit breaker
+ اگه سرور خارجی کنده، خیلی صبر نکن تا response time خودت هم بالا نره
+ اگر سرور خارجی دیتا قراره بهت بده، دیتای قبلی رو کش کن.

اینها در سطح کد بودن، در سطح معماری هم میشه از قبل روش‌هایی رو تدارک دید مثلاً خود دیتابیس رو چطوری High available کنیم، یا روش‌هایی که بیشتر تو سیستم های امبدد استفاده میشه مثل اینکه یه برنامه رو با چند تا پیاده سازی همزمان اجرا کنیم تا اگر یکیش خراب شد اون یکی‌ها باشن!

منابع:
https://opensource.com/article/19/9/transient-faults-devops

https://www.jrebel.com/blog/microservices-resilience-patterns

https://learn.microsoft.com/en-us/azure/architecture/best-practices/transient-faults

https://learn.microsoft.com/en-us/dotnet/architecture/cloud-native/application-resiliency-patterns

@terminal_stuff
3
در گیت‌هاب Typenoscript به محبوب‌ترین زبان برنامه‌نویسی تبدیل شده و از پایتون جلو زده!

@DevTwitter | <Masoud Majidi/>
8
🔶 به نظر می رسد انویدیا عملاً بازار چین را از دست داده و چین وارد عصر استقلال فناوری در حوزه هوش مصنوعی شده است.

چین پس از سال‌ها تحریم آمریکا علیه فروش تراشه ‌های هوش مصنوعی انویدیا، با توسعه تراشه ‌های بومی توسط Huawei و SMIC به خودکفایی رسیده است. تراشه ‌های جدید چینی عملکردی نزدیک به محصولات انویدیا دارند و همین باعث شد پکن دیگر به واردات تراشه ‌های آمریکایی نیازی نداشته باشد. در نتیجه، وقتی دولت ترامپ تلاش کرد فروش تراشه ‌های انویدیا را در مذاکرات با چین مطرح کند، شی جین‌پینگ آن را رد کرد.

#خبر
#توییت

@TheRaymondDev
👍7