Dev Perfects
40 subscribers
9.23K photos
1.26K videos
468 files
13K links
بخوام خیلی خلاصه بگم
این کانال میاد مطالب کانالای خفن تو حوزه تکنولوژی و برنامه نویسی رو جمع میکنه

پست پین رو بخونید
https://t.iss.one/dev_perfects/455


ارتباط:
https://t.iss.one/HidenChat_Bot?start=936082426
Download Telegram
Forwarded from Anophel | آنوفل
آیا تا به حال به یک ساختار کامل و منظم برای مدیریت پروژه‌های #گولنگ ( Go# ) با معماری Domain-Driven Design (DDD) فکر کرده‌اید؟ در این پست قصد داریم این ساختار را با جزئیات بیشتری بررسی کنیم و به شما نشان دهیم چگونه می‌توانید پروژه‌تان را مرتب‌تر و کارآمدتر پیش ببرید.

پست قبلی ما در این لینک:

https://lnkd.in/evuPH7cB

1. سطح بالا (Root Directory):
-cmd/:
- این دایرکتوری برای نقاط ورود برنامه استفاده می‌شه. هر اپلیکیشن قابل‌اجرا، چه سرور باشه چه ابزارهای CLI یا میکروسرویس‌ها، اینجا قرار می‌گیره.

- مثال: cmd/app/main.go: فایل اصلی که نقطه شروع اجرای برنامه است. این فایل باید تمیز و ساده باشه و فقط وظیفه‌ی مقداردهی اولیه مثل خواندن تنظیمات، ایجاد کانکشن‌ها، و شروع سرور رو برعهده داشته باشه.

- internal/:
- کدهایی که مختص پروژه‌ی ما هستن و نباید توسط ماژول‌های خارجی استفاده بشن، اینجا قرار می‌گیرن. در گولنگ، دایرکتوری internal به‌صورت پیش‌فرض دسترسی ماژول‌های خارجی رو محدود می‌کنه.

- pkg/:
- شامل کتابخانه‌ها و کدهای قابل استفاده مجدد هست که ممکنه در پروژه‌های دیگه یا بخش‌های دیگه همین پروژه استفاده بشن. دقت کنید که این دایرکتوری باید از internal جدا باشه چون عمومی‌تر هست.

- configs/:
- تنظیمات پروژه مثل فایل‌های yaml، json یا toml که برای کانفیگ سرور، دیتابیس یا سرویس‌های دیگه استفاده می‌شن اینجا قرار می‌گیرن.

- go.mod و go.sum:
- این فایل‌ها وظیفه مدیریت وابستگی‌ها رو به عهده دارن و توسط Go Modules استفاده می‌شن.

2. دایرکتوری داخلی (internal/):
این دایرکتوری قلب پروژه‌ست و تمامی دامنه‌های پروژه رو در خودش جای می‌ده. هر دامنه یا Bounded Context به صورت جداگانه سازمان‌دهی شده.

ساختار دامنه (مثال: user/):
- user.go (Model):
- شامل مدل‌ها و ساختارهای داده‌ای مرتبط با دامنه است.

- repository.go:
- مسئول مدیریت دسترسی به داده‌ها (Data Access Layer) هست.

- service.go:
- این لایه منطق تجاری رو پیاده‌سازی می‌کنه و سرویس‌ها با repository تعامل دارند و مدیریت فرآیندهای مربوط به دامنه رو انجام می‌دن.

- handler.go:
- این لایه مدیریت درخواست‌های ورودی (HTTP یا gRPC) و اتصال اون‌ها به سرویس‌ها رو بر عهده داره.

ساختار دامنه دیگر (مثال: product/):
- دامنه‌های دیگه مثل product ساختاری مشابه دارند. هر دامنه به‌صورت مستقل پیاده‌سازی شده و شامل لایه‌های مدل، سرویس، ریپازیتوری و هندلر هست.

کاربرد این ساختار در DDD:
- تفکیک دامنه‌ها :
- هر دامنه کاملاً مستقل پیاده‌سازی شده و می‌تونه به صورت جداگانه توسعه یابد.

- انعطاف‌پذیری:
- با این ساختار، می‌تونید تغییرات یا افزودن دامنه‌های جدید رو بدون تأثیر روی سایر بخش‌ها انجام بدید.

-مقیاس‌پذیری:
- هر دامنه می‌تونه به‌صورت مجزا تست و مقیاس‌دهی بشه. برای مثال، در صورت نیاز، می‌تونید دامنه خاصی رو به یک سرویس مستقل تبدیل کنید.

سازگاری با معماری‌های مدرن:
- این ساختار برای پروژه‌های میکروسرویس، مونولیت ماژولار یا حتی معماری‌های لایه‌ای مناسب است.

آیا شما هم تجربه‌ای در استفاده از معماری DDD# دارید؟ خوشحال می‌شوم که تجربیات و نظرات خود را با ما به اشتراک بگذارید!

Anophel | آنوفل
Forwarded from Geek Alerts
آماده باشید که در کنار ChatGPT رایگان، Gemini رایگان، چند روز دیگه چت‌بات Grok (گراک) هم رایگان میشه.
البته الان یه API هم داره که ۲۵ دلار رایگان برای شروع میده.
رایگان شد از طریق این لینک میتونید دسترسی داشته باشید.
https://x.com/i/grok
و این هم کنسول API که میتونید همین الان عضو بشید.
https://console.x.ai
s4n_s6n
@geekalerts
Forwarded from Go Casts 🚀
بچه ها کسی ایده ای داره چرا دیتابیس postgres یهویی باید sync بودن seq_idهاش عقب بیفته روی همه جدول ها؟

اینجا یه سری نکته گفته
https://dev.to/arctype/how-to-fix-a-sequence-when-it-goes-out-of-sync-in-postgres-480b

ولی برای خودم روشن نیست چرا این اتفاق افتاده، اگه کسی تجربه ای داره بگه لطفا

@gocasts
مدتیه که مشغول یادگیری و آموزش PostgreSQL هستم. امروز با موضوع جالبی به نام TOAST آشنا شدم که روش خاصی برای ذخیره داده‌های حجیم در این پایگاه داده ارائه می‌ده.
درباره این موضوع، یه مقاله در مدیوم نوشتم و امیدوارم برای دوستانی که با PostgreSQL کار می‌کنن مفید باشه

https://medium.com/@Amir_M4A/toast-in-postgresql-storing-large-data-efficiently-0423ce21dd05

@DevTwitter | <Amir Asgary/>
Forwarded from Geek Alerts
در بریتانیا و آمریکا قوانینی وجود دارن که میگن لغو یه اشتراک باید به سادگی ثبت‌نام و خرید اون باشه.
و همچنین شرایط اشتراک باید به صورت واضح توضیح داده بشه.
مثلا وقتی اشتراک ۳۰ روز رایگان تهیه میشه بعد از ۳۰ روز هزینه ماه بعد به شکل خودکار از حساب بانکی کم میشه
قوانین subscription traps بریتانیا میگه باید قبل از پایان دوره رایگان به مشتری یادآوری بشه که رایگان اون‌ها داره تموم میشه و قراره از حسابشون پول کم بشه.
همچنین در کنار یادآوری امکان لغو اشتراک رو هم بدن.
الان بعضی از شرکت‌های بزرگ مثل اپل و اوبر ... زیر ذره‌بینن.
news
@geekalerts
Forwarded from Geek Alerts
شرکت Grayshift برای دولت‌ها ابزار قفل‌شکن موبایل میسازه، بعد شرکت‌های موبایل‌سازی هم همیشه دنبال اینن که جلوی روش‌هارو بگیرن.
الان یک گزارش منتشر شده که Grayshift دیگه نمی‌تونه به طور کامل اطلاعات گوشی‌هایی که iOS 18 و iOS 18.0.1 دارن رو استخراج کنه.
طبق این اسناد روی iOS 18 و iOS 18.0.1، فقط می‌تونه داده‌های جزئی رو استخراج کنه. مثل فایل‌های رمزنگاری‌نشده و متادیتا (مثل ساختار پوشه‌ها و اندازه فایل‌ها).
روی نسخه‌های بتای iOS 18.1 و بالاتر که کاملا ناکارآمد هست.
appleinsider
@geekalerts
Forwarded from Geek Alerts
پلیس هند به دنبال کشته شدن ۳ مرد به دلیل دنبال کردن مسیر گوگل‌مپس از روی یک پل ناتمام، یکی از کارکنان این شرکت را دستگیر کرد.
پ.ن. پل ناتمام انقدر دسترسی بهش راحت بوده نظرتون در مورد برخورد با شهرداری چیه؟ یا پیمانکار پل.
theregister
@geekalerts
Forwarded from Geek Alerts
کلمه‌ی سال آکسفورد انتخاب شد،
پوسیدگی مغز، «brain rot»
می‌گن که این اصطلاح امسال خیلی مورد توجه قرار گرفته، چون مردم به شدت نگران تأثیر مصرف زیاد محتوای بی‌کیفیت تو شبکه‌های اجتماعی بودن.
corp.oup
@geekalerts
Forwarded from Linuxor ?
سیمکارت ها تقریبا یه کامپیوتر کوچولو ان که حافظه و پردازنده دارن و یه سری اطلاعات رو ذخیره و پردازش میکنن، اما چندی پیش به این نتیجه رسیدن که این کامپیوترو چرا با برد خود دستگاه ادغام نکنیم و سیمکارت کلا حذف بشه و در نتیجه سیمکارت ها تبدیل شدن به eSIM و بجای سیمکارت فیزیکی فقط کافیه یه کد رو روی دستگاهتون وارد کنید.


🐧 @Linuxor
Forwarded from Linuxor ?
ما برنامه نویسا شب نداریم، بعد از روز مستقیم صبح میشه.


🐧 @Linuxor
توسعه‌دهنده‌های فرانت‌اند یه شهرت دارن که "کمتر تکنیکی" از توسعه‌دهنده‌های بک‌اند هستن
بارها این موضوع رو توی صحبت‌ها شنیدم
بذارید یک بار برای همیشه روشن کنیم: ما اینجا نیستیم که فقط "چیزها رو زیبا کنیم"
این برداشت کاملاً اشتباه

حقیقت اینه که:
- ما تجربه‌های کاربری رو طراحی می‌کنیم – این فقط نوشتن کد نیست؛ بلکه ایجاد اپلیکیشن‌های شهودی، یکپارچه و دسترسی‌پذیر هست که کاربران رو درگیر می‌کنه و مشکلات واقعی رو حل می‌کنه. در سال ۲۰۲۴، با افزایش رابط‌های کاربری پیچیده و نیازهای متنوع کاربران، باید مطمئن بشیم هر تعامل معنا دار و در دسترس همه هست

- ما عملکرد رو بهینه می‌کنیم – کاربران سرعت رو می‌خوان و هر میلی‌ثانیه مهمه. در ۲۰۲۴، با داده‌محورتر و ویژگی‌غنی‌تر شدن اپلیکیشن‌ها، بهینه‌سازی زمان بارگذاری و عملکرد در حال اجرا حیاتی شده. تکنیک‌هایی مثل code splitting، lazy loading و مدیریت مؤثر دارایی‌ها حالا استانداردهایی برای بهبود تجربه کاربری هستن

- ما با خدمات بک‌اند ادغام می‌شیم – کار ما شامل برنامه‌نویسی asynchronous، مدیریت API و مدیریت خطاهای قوی هست تا ارتباط بین کلاینت و سرور به خوبی انجام بشه

- ما از ابزارهای ساخت پیچیده استفاده می‌کنیم – تسلط بر ابزارهایی مثل Webpack، Babel و npm scripts برای بهینه‌سازی دارایی‌ها، مدیریت وابستگی‌ها و خودکارسازی گردش کارها ضروریه

- ما امنیت رو پیاده‌سازی می‌کنیم – رسیدگی به آسیب‌پذیری‌ها مثل XSS و CSRF خیلی مهمه. ما می‌دونیم چطور ورودی‌ها رو ایمن کنیم و از داده‌های کاربران حفاظت کنیم، که جلوی خطرات رو می‌گیره

- ما به دسترسی (a11y) اهمیت می‌دیم – ساخت اپلیکیشن‌های فراگیر فقط یه هدف نیست، بلکه یک ضرورته. ما از ARIA roles، HTML semanticو keyboard navigationاستفاده می‌کنیم تا مطمئن بشیم همه می‌تونن از اپلیکیشن‌های ما استفاده کنن

- ما مدیریت state رو به خوبی انجام می‌دیم – با بزرگ‌تر شدن اپلیکیشن‌ها، مدیریت وضعیت بین کامپوننت‌ها چالش پیچیده‌ای می‌شه. با استفاده از کتابخانه‌های مدیریت وضعیت مثل Redux یا Context API، اطمینان حاصل می‌کنیم که داده‌ها به‌خوبی در اپلیکیشن جریان پیدا کنن و ثبات و عملکرد حفظ بشه

- ما از فریم‌ورک‌ها و کتابخانه‌های مدرن استفاده می‌کنیم – با افزایش فریم‌ورک‌هایی مثل React، Vue و Angular، باید همیشه درک به‌روز از اکوسیستم‌های اون‌ها داشته باشیم. تسلط بر معماری مبتنی بر کامپوننت و فهم روش‌های چرخه عمر برای ساخت اپلیکیشن‌های مقیاس‌پذیر حیاتی هست

- ما روی progressive enhancement و responsive design تمرکز می‌کنیم – در زمانی که کاربران از دستگاه‌های مختلف به اپلیکیشن‌ها دسترسی پیدا می‌کنن، طراحی با توسعه تدریجی اطمینان می‌ده که کارکردهای اصلی برای همه قابل دسترسی باشه. تکنیک‌های طراحی responsiveبه ما این امکان رو می‌ده که طرح‌های منعطفی بسازیم که به اندازه‌های مختلف صفحه نمایش سازگار بشن

- ما به بازخورد کاربران و تست‌ها اهمیت می‌دیم – ادغام بازخورد کاربران از طریق تست‌های usability و A/B برای بهبود تجربه‌های کاربری ضروریه. ما از ابزارهایی استفاده می‌کنیم که رفتار کاربران رو تجزیه و تحلیل می‌کنن و اطلاعاتی جمع‌آوری می‌کنن تا طراحی‌ها رو بهبود بدیم و مطمئن بشیم اپلیکیشن‌هامون به خوبی نیازهای کاربران رو برآورده می‌کنه

@DevTwitter | <Soheib Kiani/>
Forwarded from Geek Alerts
با کارت ملی ایران میتونید داخل فرگمنت وریفای کنید.
کارهای مثل خرید تبلیغ از تلگرام، نقد کردن درآمد یا خرید و فروش استارز تلگرام میشه انجام داد.
- شمارتون ایران باشه.
- اگه قبلا با مشخصات دیگه خواستید وریفای کنید، ممکنه دیگه نشه، نیازه دیلیت اکانت کنید.
https://fragment.com/kyc/account
@geekalerts
فرقی نمیکنه برنامه‌نویس باشی یا طراح و یا هر شغل دیگه ای که با گوشی و لپ‌تاپ زیاد سر و کار داشته باشه، باید بدونی که قراره به زودی مشکلات زیادی برای چشم هات به وجود بیاد 

چجوری جلوگیری کنیم ازش ؟
قبلا یه پست کامل راجبش ساختیم که حتما بخونیدش، ولی توی این پست میخوام برنامه BreakTimer رو بهتون معرفی بکنم که واقعا بهترین ابزار برای کمک به چشم هاتونه 🌟


برنامه 𝗕𝗥𝗘𝗔𝗞𝗧𝗜𝗠𝗘𝗥 چیست ؟ 👀
با استفاده از برنامه BreakTimer میتونید تایم های استراحت مشخصی رو‌ برای خودتون ست بکنید که به صورت اتومات در تایم استراحت یک پاپ‌آپ بهتون نمایش میده.
این برنامه انعطاف پذیری خیلی زیادی داره و میتونید تمامی تایم‌ها رو به صورت دقیق کاستوم بکنید و حتی میتونید ست بکنید که پاپ‌آپ تایم استراحت قابل ریجکت نباشه 😁
و در نهایت اینکه این برنامه کاملا رایگان و open source هست و برای ویندوز، مک و لینوکس در دسترسه ♂️


امیدوارم از این مطلب لذت برده باشید، با ری‌اکشنای خودتون بهمون انرژی بدید ❤️‍🔥

#️⃣ #tips #tools

𝗖𝗛𝗔𝗡𝗡𝗘𝗟  |  𝗚𝗥𝗢𝗨𝗣
Forwarded from کانال مهرداد لینوکس (Mehrdad Linux)
🔥مشکل امنیتی بحرانی سطح 9.2 CRITICAL در چند روتر و SAN از D-Link
😱امکان اجرای دستور از راه دور Command Injection

حفره از سال ۲۰۲۲ بوده پشتیبانی مودم تا ۲۰۲۴ و حفره چند روز است عمومی شده

🤬 شرکت Dlink میگوید با توجه به end of life (EOL) پچ ارائه نمیشود بروید یک مودم دیگه بخرید

در پلتفرم FOFA برای این محصولات بیشتر از ۶۰ هزار ریزالت برمیگرداند

سیستم بازاریابی و راه کار فروش خوبیه
محصول بده یک مشکل امنیتی بزار داخلش بعد EOL عمومی کن
ملت مجبور میشوند عوض کنند


درانتخاب محصولات خود موقع خرید دقت کنید

🆘 محصولات آسیب پذیر :
DNS-320 Version 1.00
DNS-320LW Version 1.01.0914.2012
DNS-325 Version 1.01, Version 1.02
DNS-340L Version 1.08
DSR-150 or N
DSR-250 or N

اکسپلویت :
curl "https://[Target-IP]/cgi-bin/account_mgr.cgi cmd=cgi_user_add&name=%27;<INJECTED_SHELL_COMMAND>;%27" 

جزئیات اسیب پذیری و CVE-2024-10914 و لینک vuldb
#secuirty
Forwarded from Gopher Academy
🔵 عنوان مقاله
WorkOS: Sell to Enterprises with a Few Lines of Code

🟢 خلاصه مقاله:
این مقاله به بررسی یک پلتفرم هویت‌سنجی مدرن برای نرم‌افزارهای B2B SaaS می‌پردازد که امکان پیاده‌سازی آسان و سریع Single Sign-On (SSO)، System for Cross-domain Identity Management (SCIM)، و Fine-Grained Access Control (FGA) را از طریق API‌های انعطاف‌پذیر فراهم می‌آورد. به جای صرف ماه‌ها زمان برای ادغام و تنظیم این ویژگی‌ها، پلتفرم ارائه شده این قابلیت‌ها را در چند دقیقه فراهم می‌کند، که نتیجتاً به بهبود بهره‌وری و کاهش هزینه‌های توسعه کمک می‌کند. این ابزار به شرکت‌های SaaS اجازه می‌دهد تا مدیریت احراز هویت و دسترسی‌ها را به شیوه‌ای موثر و امن تنظیم کنند، که در نهایت منجر به ارائه تجربه‌های کاربری بهتر و افزایش امنیت داده‌ها می‌شود.

🟣لینک مقاله:
https://golangweekly.com/link/162730/web


👑 @gopher_academy
اگه میخوای سریع یه داشبورد یا پنل مدیریت بیاری بالا اونم با ReactJs من پیشنهادم AdminLTE هستش. پیشنهاد شما چیه؟
لینک ریپازیتوری:
https://github.com/mehditohidi/ReactJS-AdminLTE
برای اکثر فریمورک ها کدهاش موجوده.
سایت اصلی: https://adminlte.io

@DevTwitter | <Mahdi Tohidi/>
ی آپدیت جدید داده deepseek r1
خروجیش به مراتب پیشرفت کرده
Forwarded from کانال مهرداد لینوکس (Mehrdad Linux)
🔥ابزار OpenSnitch یک فایروال تعاملی جذاب در GNU/Linux
الهام گرفته شده از Little Snitch در macOS

💠کنترل پنل ساده در عین حال قدرتمندی برای مدیریت ارتباطات شبکه روی سیستم شما ایجاد میکنه

ویژگی:
🗓 نصب، راه اندازی و کارباهاش فوق العاده ساده است 🤩
🗓 فیلتر کردن connections خروجی به صورت تعاملی
🗓 تبلیغاتads، ردیاب ها trackers یا دامنه های سیستم بدافزار را به سادگی مسدود کنید.
🗓 امکان پیکربندی فایروال سیستم، از طریق رابط GUI (nftables).
🗓 پیکربندی input policy، اجازه inbound services و غیره.
🗓 چندین گره را از یک رابط کاربری گرافیکی متمرکز مدیریت کنید.
🗓 یکپارچه سازی با SIEM


⁉️ اگر سوالی داشتید در بخش کامنت ها بپرسید
❤️ ممنون از حمایت هاتون 💐🌺
#linux