Forwarded from Golden Code (علی 🇨🇴)
اصل S در اصول SOLID یعنی Single Responsibility Principle (اصل تک مسئولیتی)
چی میگه؟
یک کلاس باید فقط یک مسئولیت داشته باشه و فقط یک دلیل برای تغییر. یعنی هر کلاس باید یک نقش مشخص در سیستم داشته باشه و همه کارها رو قاطی نکنه.
چرا این مهمترین اصل SOLIDهستش؟
وقتی یک کلاس چند مسئولیت داشته باشه:
پیدا کردن و رفع باگ سخت میشه،
تغییرات کوچیک تو یه قسمت ممکنه باعث خرابی بخشهای دیگه بشه،
توسعه و نگهداری پروژه با مشکل مواجه میشه و تیمها بیشتر زمانشون رو صرف درست کردن کد میکنن تا اضافه کردن ویژگیهای جدید.
نتیجش:
با رعایت این اصل، کد تمیزتر، قابل فهمتر و قابل تستتر میشه.
کلاسها سادهتر هستند و وقتی نیاز به تغییر باشه، فقط بخش مرتبط اصلاح میشه بدون اینکه باقی سیستم آسیب ببینه.
#SOLID
@GoldenCodeir 🔥
(منبع👇🏾)
https://www.linkedin.com/posts/ali-mohammadi-5b7375389_solid-activity-7382848511261773824-diAJ?utm_source=share&utm_medium=member_android&rcm=ACoAAF-g0BsBHAA03jv74SJdJwUrgHFqATrvXb8
چی میگه؟
یک کلاس باید فقط یک مسئولیت داشته باشه و فقط یک دلیل برای تغییر. یعنی هر کلاس باید یک نقش مشخص در سیستم داشته باشه و همه کارها رو قاطی نکنه.
چرا این مهمترین اصل SOLIDهستش؟
وقتی یک کلاس چند مسئولیت داشته باشه:
پیدا کردن و رفع باگ سخت میشه،
تغییرات کوچیک تو یه قسمت ممکنه باعث خرابی بخشهای دیگه بشه،
توسعه و نگهداری پروژه با مشکل مواجه میشه و تیمها بیشتر زمانشون رو صرف درست کردن کد میکنن تا اضافه کردن ویژگیهای جدید.
نتیجش:
با رعایت این اصل، کد تمیزتر، قابل فهمتر و قابل تستتر میشه.
کلاسها سادهتر هستند و وقتی نیاز به تغییر باشه، فقط بخش مرتبط اصلاح میشه بدون اینکه باقی سیستم آسیب ببینه.
#SOLID
@GoldenCodeir 🔥
(منبع👇🏾)
https://www.linkedin.com/posts/ali-mohammadi-5b7375389_solid-activity-7382848511261773824-diAJ?utm_source=share&utm_medium=member_android&rcm=ACoAAF-g0BsBHAA03jv74SJdJwUrgHFqATrvXb8
❤1
Forwarded from ⚝ (امیرحسین پناهےفر)
نسخه بتای جدید پارچ لینوکس XFCE منتشر شد! 🐭 🐧
این نسخه تغییرات مهمی داره
• رفع مشکل نصب بوتلودر در بعضی سیستمها
• هماهنگی با آخرین تغییرات پارچ
• اضافه شدن پارچ درود
🖥 دریافت نسخه بتا
اگه موقع تست به باگی برخوردین یا پیشنهادی داشتین، حتماً توی فروم پارچ بنویسین.
❤️ برای مشارکت در توسعه یا کمک به نسخه XFCE هم میتونین ایمیل بزنین به:
[email protected]
نگهدارنده نسخه XFCE: امیرحسین پناهیفر
این نسخه تغییرات مهمی داره
• رفع مشکل نصب بوتلودر در بعضی سیستمها
• هماهنگی با آخرین تغییرات پارچ
• اضافه شدن پارچ درود
اگه موقع تست به باگی برخوردین یا پیشنهادی داشتین، حتماً توی فروم پارچ بنویسین.
[email protected]
نگهدارنده نسخه XFCE: امیرحسین پناهیفر
@ParchLinux
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from دستاوردهای یادگیری عمیق(InTec)
متا یک ابزار جدید منتشر کرده (شاید خیلی ساکت شخصا اتفاقی دیدم) به اسم OpenZL که برای compress کردن دیتا استفاده میشه که Format Aware هم هست.
compression path
های متفاوت میتونید بهش بدید (براساس نوع داده) ولی همهی موارد با یک decompressor به حالت عادی بر میگردند.
مهم سرعت خیلی بالا توی اینکار هست.
درحال حاضر:
بنظرم بدرد تیمهای توسعه ماژولهای دیتابیس یا تیمهایی که دیتا پایپلاین سنگین دارند هم میخوره قطعا!
مثلا بعنوان نمونه؛ یک سمپل دیدم که طرف لاگهای سرورهای شرکت رو داشت با این تست میکرد! لاگ خیلی خیلی سنگین میشه توی شرکتهای بزرگ.
Introducing OpenZL: An Open Source Format-Aware Compression Framework
compression path
های متفاوت میتونید بهش بدید (براساس نوع داده) ولی همهی موارد با یک decompressor به حالت عادی بر میگردند.
مهم سرعت خیلی بالا توی اینکار هست.
درحال حاضر:
well-suited to compressing vector, tabular, or tree-structured data, and can be expected to perform well with numeric, string, or binary data. Common examples include timeseries datasets, ML tensors, and database tables.
بنظرم بدرد تیمهای توسعه ماژولهای دیتابیس یا تیمهایی که دیتا پایپلاین سنگین دارند هم میخوره قطعا!
مثلا بعنوان نمونه؛ یک سمپل دیدم که طرف لاگهای سرورهای شرکت رو داشت با این تست میکرد! لاگ خیلی خیلی سنگین میشه توی شرکتهای بزرگ.
Introducing OpenZL: An Open Source Format-Aware Compression Framework
Engineering at Meta
Introducing OpenZL: An Open Source Format-Aware Compression Framework
OpenZL is a new open source data compression framework that offers lossless compression for structured data. OpenZL is designed to offer the performance of a format-specific compressor with the eas…
Forwarded from Linuxor ?
این کد باحالو ببینید... میدونستین بدن مثل یه برنامه کامپیوتری در حال اجراس؟
مثلا همین واکسن کرونایی که زدید انگاری یه فانکشن یا کلوژر به بدن تزریق کردین که این فانکشن حاوی کد ژنتیکی ویروس (مثل یک snippet از کلاس ویروس) هست و وقتی بدن با ویروس واقعی مواجه شد، این فانکشن روی سلولهای B و T حافظهای کالبک میخونه و سریعاً پادتنها و سلولهای کشنده رو spawn میکنه؛ انگار سیستم ایمنی شما یک garbage collector هوشمند داره که فقط تهدیدات شناختهشده رو پاک میکنه و منابع بدن رو برای کارهای مفید آزاد نگه میداره.
@Linuxor
مثلا همین واکسن کرونایی که زدید انگاری یه فانکشن یا کلوژر به بدن تزریق کردین که این فانکشن حاوی کد ژنتیکی ویروس (مثل یک snippet از کلاس ویروس) هست و وقتی بدن با ویروس واقعی مواجه شد، این فانکشن روی سلولهای B و T حافظهای کالبک میخونه و سریعاً پادتنها و سلولهای کشنده رو spawn میکنه؛ انگار سیستم ایمنی شما یک garbage collector هوشمند داره که فقط تهدیدات شناختهشده رو پاک میکنه و منابع بدن رو برای کارهای مفید آزاد نگه میداره.
@Linuxor
Forwarded from DevDrug
زمین یک میلیارد ساله میزبان شبکه پیچیده ارتباطی به اسم میسلیم هست، ریشه قارچ هایی به طول چند کیلومتر که به طور شگفت انگیزی پل ارتباطی حیات گیاهان هستند ... یعنی اینترنت جنگل.
گروه Mysilium قراره شبکه ارتباطی بهتری بین ما باشه :) من محتوام ویو کمی داره، اما تعاملی که با چند تا از سابسکرایبر ها داشتم بهم نشون داده چقدر مخاطبای ارزشمندی جذب کانالم شدن، هر چند کم.
دوست داشتم بیشتر و نزدیکتر باهاتون در ارتباط باشم و از ایده ها و نظراتتون بهتر بتونم استفاده کنم و یاد بگیرم :)
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Woland's Linux Journal (Woland)
گوگل با تغییر یک خط کد، ۹۰٪ اینترنت رو از دسترس خارج کرد
که تعداد صفحات نتایج جستجو رو تعیین میکرد حالا به ۱۰ کاهش یافته.
این تغییر برای انسانها شاید بیمعنی باشه چون به ندرت کسی از صفحه ۱۰ گوگل فراتر میره، اما همهی LLMها به واسطه crawlerهاشون از این داده برای فهمیدن سر و ته مطالب استفاده میکردند.
حالا بیش از ۹۰٪ اینترنت عملا از طریق گوگل از دسترس خارج شده. فقط با تغییر یک متغیر!
#خبر
&num=100
که تعداد صفحات نتایج جستجو رو تعیین میکرد حالا به ۱۰ کاهش یافته.
این تغییر برای انسانها شاید بیمعنی باشه چون به ندرت کسی از صفحه ۱۰ گوگل فراتر میره، اما همهی LLMها به واسطه crawlerهاشون از این داده برای فهمیدن سر و ته مطالب استفاده میکردند.
حالا بیش از ۹۰٪ اینترنت عملا از طریق گوگل از دسترس خارج شده. فقط با تغییر یک متغیر!
#خبر
Forwarded from Ninja Learn | نینجا لرن (Mohammad)
This media is not supported in your browser
VIEW IN TELEGRAM
Forwarded from a pessimistic researcher (Kc)
توی توییتر یکی از دوستان نوشته بود اگر بخواید مهاجرت کنید یا مهاجرت کرده باشید چه کتابایی رو میبرید. در تمام این ۲ سال دلم تنها برای این ۴ کتاب تنگ شده که نیاوردمشون : دیوان اشعار حسین منزوی / سیاهمشق سایه / دیوان حافظ / دیوان فخرالدین عراقی
Forwarded from DevDrug
زمین یک میلیارد ساله میزبان شبکه پیچیده ارتباطی به اسم میسلیم هست، ریشه قارچ هایی به طول چند کیلومتر که به طور شگفت انگیزی پل ارتباطی حیات گیاهان هستند ... اینترنت جنگل.گروه Mysilium قراره شبکه ارتباطی بهتری بین ما باشه :) من محتوام ویو کمی داره، اما تعاملی که با چند تا از سابسکرایبر ها داشتم بهم نشون داده چقدر مخاطبای ارزشمندی جذب کانالم شدن، هر چند کم.
دوست داشتم بیشتر و نزدیکتر باهاتون در ارتباط باشم و از ایده ها و نظراتتون بهتر بتونم استفاده کنم و یاد بگیرم :)
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from محتوای آزاد سهراب (Sohrab)
لینیج ۲۳ با اندروید ۱۶ قراره منتشر بشه و الان طبق چنجلاگشون از کرنل مینلاین لینوکس هم پشتیبانی میکنه.
https://lineageos.org/Changelog-30/
@SohrabContents
https://lineageos.org/Changelog-30/
@SohrabContents
lineageos.org
Changelog 30 - Sleek Sixteen, Streamlined Suite, Future Flow
23 is prime
Forwarded from Gopher Academy
🔵 عنوان مقاله
qjs: Run JavaScript in Go
🟢 خلاصه مقاله:
qjs یک روش تازه برای اجرای JavaScript داخل اپهای Go است که بدون نیاز به Cgo کار میکند. بهجای اتصال به یک کتابخانه بومی، نسخه فورکشدهای از QuickJS را به WebAssembly کامپایل کرده و آن را زیر Wazero اجرا میکند. این رویکرد کل زنجیره را در محیط خالص Go نگه میدارد و فرایند بیلد، استاتیکسازی و کراسکامپایل را سادهتر میکند. مزیت دیگر، ایزولهسازی و سندباکس طبیعی ناشی از WebAssembly است. هرچند احتمالاً نسبت به اتصال بومی اندکی سربار دارد، اما برای سناریوهایی مثل اسکریپتنویسی، افزونهها و اجرای امن منطق کاربر، توازن خوبی بین سادگی، پرتابلبودن و امنیت ارائه میدهد.
#Go #JavaScript #WebAssembly #Wazero #QuickJS #Cgo #GoLang #Embedding
🟣لینک مقاله:
https://golangweekly.com/link/175350/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
qjs: Run JavaScript in Go
🟢 خلاصه مقاله:
qjs یک روش تازه برای اجرای JavaScript داخل اپهای Go است که بدون نیاز به Cgo کار میکند. بهجای اتصال به یک کتابخانه بومی، نسخه فورکشدهای از QuickJS را به WebAssembly کامپایل کرده و آن را زیر Wazero اجرا میکند. این رویکرد کل زنجیره را در محیط خالص Go نگه میدارد و فرایند بیلد، استاتیکسازی و کراسکامپایل را سادهتر میکند. مزیت دیگر، ایزولهسازی و سندباکس طبیعی ناشی از WebAssembly است. هرچند احتمالاً نسبت به اتصال بومی اندکی سربار دارد، اما برای سناریوهایی مثل اسکریپتنویسی، افزونهها و اجرای امن منطق کاربر، توازن خوبی بین سادگی، پرتابلبودن و امنیت ارائه میدهد.
#Go #JavaScript #WebAssembly #Wazero #QuickJS #Cgo #GoLang #Embedding
🟣لینک مقاله:
https://golangweekly.com/link/175350/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
GitHub
GitHub - fastschema/qjs: QJS is a CGO-Free, modern, secure JavaScript runtime for Go applications, built on the powerful QuickJS…
QJS is a CGO-Free, modern, secure JavaScript runtime for Go applications, built on the powerful QuickJS engine and Wazero WebAssembly runtime - fastschema/qjs
Forwarded from Unknown Place (Abolfazl)
گر برکنم دل از تو و بردارم از تو مهر
آن مهر بر که افکنم؟ آن دل کجا برم؟
۲۰ مهر - روز بزرگداشت حافظ شیرازی
آن مهر بر که افکنم؟ آن دل کجا برم؟
۲۰ مهر - روز بزرگداشت حافظ شیرازی
Forwarded from Linuxor ?
دیدین اوایل که مثلا برنامهنویسی یا هر مهارتی رو یاد میگیرین، چقدر یهویی پول درمیارین؟ بعد کمکم این اتفاق و فرصت ها کمتر میشه؟
به این پدیده میگن Beginner’s Luck: جسارت و هیجان تازهکارها باعث میشه فرصتها راحتتر دستشون بیاد، قبل از اینکه تجربه و ترس از اشتباه محدودشون کنه. البته حرفه ای ها فرصت های بزرگ تر و پایدار تری دارن ولی همیشه محتاطانه عمل میکنن مثلا نمیرن برای یه شرکت نامعتر یا کسی توی تلگرام کار کنن همین باعث میشه شانسشون محدود تر باشه.
@Linuxor
به این پدیده میگن Beginner’s Luck: جسارت و هیجان تازهکارها باعث میشه فرصتها راحتتر دستشون بیاد، قبل از اینکه تجربه و ترس از اشتباه محدودشون کنه. البته حرفه ای ها فرصت های بزرگ تر و پایدار تری دارن ولی همیشه محتاطانه عمل میکنن مثلا نمیرن برای یه شرکت نامعتر یا کسی توی تلگرام کار کنن همین باعث میشه شانسشون محدود تر باشه.
@Linuxor
Forwarded from DevTwitter | توییت برنامه نویسی
اکستنشن Notebook Sidebar یکی از کاربردی ترین افزونه های کروم برای برنامه نویس ها و کاربران مختلف هست. با این افزونه می تونید یادداشت هاتون رو مستقیماً داخل سایدبار مرورگر کروم بنویسید و کار هاتون رو برنامه ریزی کنید.در آپدیت جدید اکستنشن Notebook Sidebar قابلیت های کاربردی جدیدی مثل ایمپورت و اکسپورت یادداشت ها و حالت دارک مود هم اضافه شده.
لینک دانلود از کروم استور:
https://chromewebstore.google.com/detail/notebook-sidebar/fdjcoigfklgjpeplkkdbdicminpimdok
@DevTwitter | <OMid/>
لینک دانلود از کروم استور:
https://chromewebstore.google.com/detail/notebook-sidebar/fdjcoigfklgjpeplkkdbdicminpimdok
@DevTwitter | <OMid/>
Forwarded from Gopher Academy
🔵 عنوان مقاله
Terminating Elegantly: A Guide to Graceful Shutdowns
🟢 خلاصه مقاله:
ترک شایسته در سرویسها یعنی برنامه بتواند با دریافت SIGTERM، بدون از دست دادن داده یا خراب کردن وضعیت، درخواستهای جاری را تمام کند و منابع را درست آزاد کند. در این ارائه، Alex Pliutau با تمرکز بر Go در Kubernetes، چرخه کامل خاتمه را توضیح میدهد: از دریافت سیگنال و قطعکردن ترافیک تا ضربالاجل SIGKILL.
نکتههای کلیدی شامل اینهاست: استفاده از signal.NotifyContext و context برای لغو هماهنگ، مدیریت goroutineها با sync.WaitGroup، فراخوانی http.Server.Shutdown یا معادل gRPC برای تخلیه امن اتصالها، و توقف گرفتن کار جدید در Workerها درحالیکه کارهای درحال اجرا بهصورت زماندار تمام میشوند. در Kubernetes باید readiness زودتر غیرفعال شود تا Pod از مسیر ترافیک خارج شود، از preStop برای تأخیر یا Drain سفارشی کمک بگیرید، و terminationGracePeriodSeconds را درست تنظیم کنید. پایش و آزمون نیز ضروری است: لاگ شروع/پایان Shutdown، سنجههایی مثل تعداد درخواستهای درحال پردازش و زمان خاتمه، و تست SIGTERM تحت بار. رعایت این الگوهای ساده، خاتمهای قابل اعتماد و بدون اختلال در Go روی Kubernetes فراهم میکند.
#Go #Kubernetes #GracefulShutdown #CloudNative #Microservices #DevOps #Reliability #ProductionOps
🟣لینک مقاله:
https://golangweekly.com/link/175363/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Terminating Elegantly: A Guide to Graceful Shutdowns
🟢 خلاصه مقاله:
ترک شایسته در سرویسها یعنی برنامه بتواند با دریافت SIGTERM، بدون از دست دادن داده یا خراب کردن وضعیت، درخواستهای جاری را تمام کند و منابع را درست آزاد کند. در این ارائه، Alex Pliutau با تمرکز بر Go در Kubernetes، چرخه کامل خاتمه را توضیح میدهد: از دریافت سیگنال و قطعکردن ترافیک تا ضربالاجل SIGKILL.
نکتههای کلیدی شامل اینهاست: استفاده از signal.NotifyContext و context برای لغو هماهنگ، مدیریت goroutineها با sync.WaitGroup، فراخوانی http.Server.Shutdown یا معادل gRPC برای تخلیه امن اتصالها، و توقف گرفتن کار جدید در Workerها درحالیکه کارهای درحال اجرا بهصورت زماندار تمام میشوند. در Kubernetes باید readiness زودتر غیرفعال شود تا Pod از مسیر ترافیک خارج شود، از preStop برای تأخیر یا Drain سفارشی کمک بگیرید، و terminationGracePeriodSeconds را درست تنظیم کنید. پایش و آزمون نیز ضروری است: لاگ شروع/پایان Shutdown، سنجههایی مثل تعداد درخواستهای درحال پردازش و زمان خاتمه، و تست SIGTERM تحت بار. رعایت این الگوهای ساده، خاتمهای قابل اعتماد و بدون اختلال در Go روی Kubernetes فراهم میکند.
#Go #Kubernetes #GracefulShutdown #CloudNative #Microservices #DevOps #Reliability #ProductionOps
🟣لینک مقاله:
https://golangweekly.com/link/175363/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
YouTube
Terminating elegantly: a guide to graceful shutdowns - Alex Pliutau
Did you ever unplug your computer because you were frustrated? In the world of software, a similar concept exists: the hard shutdown.
This abrupt termination can cause problems like data loss or system instability.
Thankfully, there's a better way: the…
This abrupt termination can cause problems like data loss or system instability.
Thankfully, there's a better way: the…