Forwarded from Anophel | آنوفل
چقدر تا حالا به این فکر کردین که دادهها مثل یه رودخونه از یه مسیر مشخص عبور کنن و در هر ایستگاه، کاری روشون انجام بده؟
اگه بخوام خیلی ساده توضیح بدم، Pipeline همینه! یعنی دادهها از نقطه A شروع میکنن، مرحلهبهمرحله فیلتر، پردازش، ترکیب یا جمعبندی میشن و در نهایت توی نقطه B تحویل داده میشن.
حالا جذابیتش چیه؟ هر مرحله، یه مسئولیت خاص داره و میشه به راحتی تغییرش داد، کم یا زیادش کرد، یا حتی تو پروژههای دیگه استفادهش کرد.
به این مثال نگاه کنین:
تو یه پخش زنده، ممکنه دادهها این شکلی پردازش بشن:
1️⃣ دریافت تصاویر و صدا (Reader)
2️⃣ فشردهسازی دادهها (Processor)
3️⃣ اضافه کردن زیرنویس یا جلوههای گرافیکی (Processor)
4️⃣ پخش زنده روی یوتیوب یا اینستاگرام (Writer)
اینجا یه دیاگرام ساده از یه Pipeline کشیدم که نشون میده دادهها مرحله به مرحله عبور میکنن. این مراحل شامل:
1️⃣ rangeGen: تولید اعداد
2️⃣ takeLucky: انتخاب اعداد خاص
3️⃣ merge: ادغام کانالها
4️⃣ sum: محاسبه جمع و تعداد
5️⃣ printTotal: نمایش نتیجه
این مدل به راحتی قابل توسعه و سفارشیسازی هست.
اینجا یک مثال ساده با زبان Go برای پیادهسازی یک Pipeline آوردم که میتونی ایده کلی رو ازش بگیری:
توضیح مراحل:
rangeGen: اعداد رو در بازه مشخص تولید میکنه.
takeLucky: فقط اعداد خوششانس (قابل تقسیم بر 7 ولی نه بر 13) رو انتخاب میکنه.
merge: دادههای خروجی از چند کانال مستقل رو یکی میکنه.
sum: جمع اعداد خوششانس و تعدادشون رو محاسبه میکنه.
printTotal: نتایج رو چاپ میکنه.
راستی، تا حالا تو پروژههاتون از همچین روشی استفاده کردین؟
خوشحال میشم تجربههاتون رو بشنوم.
#گو #گولنگ #go #golang
اگه بخوام خیلی ساده توضیح بدم، Pipeline همینه! یعنی دادهها از نقطه A شروع میکنن، مرحلهبهمرحله فیلتر، پردازش، ترکیب یا جمعبندی میشن و در نهایت توی نقطه B تحویل داده میشن.
حالا جذابیتش چیه؟ هر مرحله، یه مسئولیت خاص داره و میشه به راحتی تغییرش داد، کم یا زیادش کرد، یا حتی تو پروژههای دیگه استفادهش کرد.
به این مثال نگاه کنین:
تو یه پخش زنده، ممکنه دادهها این شکلی پردازش بشن:
1️⃣ دریافت تصاویر و صدا (Reader)
2️⃣ فشردهسازی دادهها (Processor)
3️⃣ اضافه کردن زیرنویس یا جلوههای گرافیکی (Processor)
4️⃣ پخش زنده روی یوتیوب یا اینستاگرام (Writer)
اینجا یه دیاگرام ساده از یه Pipeline کشیدم که نشون میده دادهها مرحله به مرحله عبور میکنن. این مراحل شامل:
1️⃣ rangeGen: تولید اعداد
2️⃣ takeLucky: انتخاب اعداد خاص
3️⃣ merge: ادغام کانالها
4️⃣ sum: محاسبه جمع و تعداد
5️⃣ printTotal: نمایش نتیجه
این مدل به راحتی قابل توسعه و سفارشیسازی هست.
اینجا یک مثال ساده با زبان Go برای پیادهسازی یک Pipeline آوردم که میتونی ایده کلی رو ازش بگیری:
توضیح مراحل:
rangeGen: اعداد رو در بازه مشخص تولید میکنه.
takeLucky: فقط اعداد خوششانس (قابل تقسیم بر 7 ولی نه بر 13) رو انتخاب میکنه.
merge: دادههای خروجی از چند کانال مستقل رو یکی میکنه.
sum: جمع اعداد خوششانس و تعدادشون رو محاسبه میکنه.
printTotal: نتایج رو چاپ میکنه.
راستی، تا حالا تو پروژههاتون از همچین روشی استفاده کردین؟
خوشحال میشم تجربههاتون رو بشنوم.
#گو #گولنگ #go #golang
Forwarded from Laravel News
Customizing Model Date Formats in Laravel https://laravel-news.com/date-formats
Laravel News
Customizing Model Date Formats in Laravel - Laravel News
Explore Laravel's date serialization features for consistent date formatting in your models. Learn to customize date presentation globally or per attribute while maintaining clean, readable code.
Forwarded from Anophel | آنوفل
حالا جذابیتش چیه؟ هر مرحله، یه مسئولیت خاص داره و میشه به راحتی تغییرش داد، کم یا زیادش کرد، یا حتی تو پروژههای دیگه استفادهش کرد.
تو یه پخش زنده، ممکنه دادهها این شکلی پردازش بشن:
این مدل به راحتی قابل توسعه و سفارشیسازی هست.
توضیح مراحل:
rangeGen: اعداد رو در بازه مشخص تولید میکنه.
takeLucky: فقط اعداد خوششانس (قابل تقسیم بر 7 ولی نه بر 13) رو انتخاب میکنه.
merge: دادههای خروجی از چند کانال مستقل رو یکی میکنه.
sum: جمع اعداد خوششانس و تعدادشون رو محاسبه میکنه.
printTotal: نتایج رو چاپ میکنه.
راستی، تا حالا تو پروژههاتون از همچین روشی استفاده کردین؟
خوشحال میشم تجربههاتون رو بشنوم.
#گو #گولنگ #go #golang
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from DevTwitter | توییت برنامه نویسی
توافق روی نام گذاری ها از نون شب واجب تره!!
یه جمله جالب توی کتاب clean code دیدم که نوشته بود، زمانی که میخواید توابع یا متغیرهاتون رو نامگذاری کنید اون قدر حساسیت به خرج بدید که انگار دارید برای یک نوزاد تازه به دنیا اومده اسم انتخاب میکنید.
یک نکته که داخل تیم هم خیلی مهمه اینه که برای یک مفهوم، از چند ورب مختلف استفاده نشه. مثلا برای ایجاد کردن فرضا محصول میشه همه ورب های add, create, insert, make, ... رو استفاده کرد. برای اینکه ابهام و سردرگمی پیش نیاد همیشه سعی کنید توی پروژتون برای همه entity ها از یک ورب یکسان استفاده کنید و این رو توی تیمتون هم باهم توافق کنید که همه از اون ورب استفاده کنن.
این مساله به ظاهر کوچیک خیلی خیلی مهمه لطفا رعایت کنید.
@DevTwitter | <Pouya Farshidnia/>
یه جمله جالب توی کتاب clean code دیدم که نوشته بود، زمانی که میخواید توابع یا متغیرهاتون رو نامگذاری کنید اون قدر حساسیت به خرج بدید که انگار دارید برای یک نوزاد تازه به دنیا اومده اسم انتخاب میکنید.
یک نکته که داخل تیم هم خیلی مهمه اینه که برای یک مفهوم، از چند ورب مختلف استفاده نشه. مثلا برای ایجاد کردن فرضا محصول میشه همه ورب های add, create, insert, make, ... رو استفاده کرد. برای اینکه ابهام و سردرگمی پیش نیاد همیشه سعی کنید توی پروژتون برای همه entity ها از یک ورب یکسان استفاده کنید و این رو توی تیمتون هم باهم توافق کنید که همه از اون ورب استفاده کنن.
این مساله به ظاهر کوچیک خیلی خیلی مهمه لطفا رعایت کنید.
@DevTwitter | <Pouya Farshidnia/>
Forwarded from Linuxor ?
یه نفر اومده و یه بش اسکریپت نوشته که باهاش به صورت سطحی میشه امنیت یه سرور رو برسی کرد، کار پیچیده ای نمیکنه بیشتر به درد تازه کار ها میخوره که این مشکلات رایج رو توی کانفیگ کردن سرور نداشته باشن :
https://github.com/vernu/vps-audit
@Linuxor
https://github.com/vernu/vps-audit
@Linuxor
Forwarded from Code Module | کد ماژول (genix)
معماری Modular Monolith چیه و چه کاربردی داره؟ 🦦
اخیرا معماری modular monolith توجه خیلی از متخصصان رو به خودش جلب کرده، چرا که گوگل چارچوب «Service Weaver» رو پیشنهاد میکنه تا دولوپر ها رو قادر میسازه تا برنامهها رو به صورت modular monolith بنویسن و اونها رو به عنوان مجموعهای از ریزسرویسها به کار بگیرن. گوگل اون رو چارچوبی در نظر گرفت که بهترین های هر دو دنیا رو داره و به نظر میرسه یک روند در معماری نرم افزار باشه.
اما Modular Monolith چی هست؟
تو یک دهه اخیر شرکت های زیادی مثل آمازون، نتفلیکس و...، از میکروسرویس ها برای توسعه اپلیکیشن های خودشون استفاده کردن. اما با این حال، چندین شرکت مزایای مورد انتظار رو از مهاجرت به میکروسرویس ها به دست نیاوردن و به دلیل مسائلی مثل هزینه بالا و پیچیدگی میکروسرویس ها، با مشکل مواجه شدن. همین مشکلات باعث توجه متخصصان به مفهوم "Modular Monolith" شد. گوگل چارچوب "Service Weaver" رو پیشنهاد کرد تا دولوپر ها رو قادر بسازه برنامه ها رو به صورت یکپارچه مدولار بنویسن و اون ها رو به عنوان مجموعه ای از ریزسرویس ها به کار بگیرن.
گوگل در این رابطه به این شکل توضیح میده که این چارچوبی هست، که بهترین های هر دو جهان توسعه نرم افزار رو داره:
1 - سرعت توسعه یکپارچه، با مقیاسپذیری
2 - امنیت و fault-tolerance در میکروسرویس ها
monoliths های سنتی اغلب بر روی لایه ها تمرکز میکنن و اغلب شامل سه لایه هستن: UI، Business و Data.
اما تفاوت اون با monolithic system چیست؟ 🤔
تفاوت اون با یک monolithic system در این هست که سیستم رو به ماژول های جداگانه تقسیم میکنه و تیم ها، مستقل میتونن روی هر ماژول کار کنن تا زمان توسعه محصول رو کاهش بدن و انعطاف پذیری و درک بیشتری داشته باشن. پیشنهاد modular monolith از سمت گوگل هیجانانگیز هست و شباهتهایی با traditional monolith و modularization mechanism که در گذشته بود داره و بنظر ترکیبی از هر دو هست.
به صورت کلی نتایج نشان میده که Modular Monolith یک الگوی معماری نرمافزاری هست که مزایای monolith رو با معماری میکروسرویس ترکیب میکنه. در این معماری، سیستمها به صورت ماژولهای جفتشده آزاد سازماندهی میشن که هر کدام مرزهای کاملاً تعریف شده و وابستگیهای صریح به ماژولهای دیگر رو مشخص میکنن. به خصوص تفاوت اون با modularization که قبلا گفته شد، در اینه که در صورت تمایل اون رو میشه جابجا کرد یا بعداً به عنوان میکروسرویس مستقر کرد.
#architecture
@CodeModule
اخیرا معماری modular monolith توجه خیلی از متخصصان رو به خودش جلب کرده، چرا که گوگل چارچوب «Service Weaver» رو پیشنهاد میکنه تا دولوپر ها رو قادر میسازه تا برنامهها رو به صورت modular monolith بنویسن و اونها رو به عنوان مجموعهای از ریزسرویسها به کار بگیرن. گوگل اون رو چارچوبی در نظر گرفت که بهترین های هر دو دنیا رو داره و به نظر میرسه یک روند در معماری نرم افزار باشه.
اما Modular Monolith چی هست؟
تو یک دهه اخیر شرکت های زیادی مثل آمازون، نتفلیکس و...، از میکروسرویس ها برای توسعه اپلیکیشن های خودشون استفاده کردن. اما با این حال، چندین شرکت مزایای مورد انتظار رو از مهاجرت به میکروسرویس ها به دست نیاوردن و به دلیل مسائلی مثل هزینه بالا و پیچیدگی میکروسرویس ها، با مشکل مواجه شدن. همین مشکلات باعث توجه متخصصان به مفهوم "Modular Monolith" شد. گوگل چارچوب "Service Weaver" رو پیشنهاد کرد تا دولوپر ها رو قادر بسازه برنامه ها رو به صورت یکپارچه مدولار بنویسن و اون ها رو به عنوان مجموعه ای از ریزسرویس ها به کار بگیرن.
گوگل در این رابطه به این شکل توضیح میده که این چارچوبی هست، که بهترین های هر دو جهان توسعه نرم افزار رو داره:
1 - سرعت توسعه یکپارچه، با مقیاسپذیری
2 - امنیت و fault-tolerance در میکروسرویس ها
monoliths های سنتی اغلب بر روی لایه ها تمرکز میکنن و اغلب شامل سه لایه هستن: UI، Business و Data.
اما تفاوت اون با monolithic system چیست؟ 🤔
تفاوت اون با یک monolithic system در این هست که سیستم رو به ماژول های جداگانه تقسیم میکنه و تیم ها، مستقل میتونن روی هر ماژول کار کنن تا زمان توسعه محصول رو کاهش بدن و انعطاف پذیری و درک بیشتری داشته باشن. پیشنهاد modular monolith از سمت گوگل هیجانانگیز هست و شباهتهایی با traditional monolith و modularization mechanism که در گذشته بود داره و بنظر ترکیبی از هر دو هست.
به صورت کلی نتایج نشان میده که Modular Monolith یک الگوی معماری نرمافزاری هست که مزایای monolith رو با معماری میکروسرویس ترکیب میکنه. در این معماری، سیستمها به صورت ماژولهای جفتشده آزاد سازماندهی میشن که هر کدام مرزهای کاملاً تعریف شده و وابستگیهای صریح به ماژولهای دیگر رو مشخص میکنن. به خصوص تفاوت اون با modularization که قبلا گفته شد، در اینه که در صورت تمایل اون رو میشه جابجا کرد یا بعداً به عنوان میکروسرویس مستقر کرد.
#architecture
@CodeModule
Forwarded from Code Module | کد ماژول (𔓙)
2024 شروع خوبی بود اما 2025 این آمار باید ۲ برابر بشه.
چند وقتیه فعالیت چنل به نسبت قبل کمتر شده، که دلیلش گرفتاری های روزمره هست که روز به روز داره بهشون اضافه میشه :))
تو سال جدید دوباره برمیگردیم به روال قبل و با پست ها و میتینگ های خاص مثل همیشه، به استقبال شما ماژولیتیای عزیز میایم💙
اگه هر گونه انتقادی، ایده ای برای میتینگ ها یا برنامه های دیگه، شکایتی خلاصه هر چیزی که فکرتون میرسه دارید، با من میتونید در ارتباط باشید.
@CodeModule
@CodeModuleGap
چند وقتیه فعالیت چنل به نسبت قبل کمتر شده، که دلیلش گرفتاری های روزمره هست که روز به روز داره بهشون اضافه میشه :))
تو سال جدید دوباره برمیگردیم به روال قبل و با پست ها و میتینگ های خاص مثل همیشه، به استقبال شما ماژولیتیای عزیز میایم💙
اگه هر گونه انتقادی، ایده ای برای میتینگ ها یا برنامه های دیگه، شکایتی خلاصه هر چیزی که فکرتون میرسه دارید، با من میتونید در ارتباط باشید.
@CodeModule
@CodeModuleGap
Forwarded from laravel-news
آیا استفاده از #FormRequest ها در #Livewire امکانپذیره؟
احتمالا خیلی ها فکر میکنن که امکان پذیر نیست.
اما با این روش میتوانید به راحتی از #فرمریکوئست ها در کامپوننت های #لایووایر استفاده کنید.
#Livewire #FormRequest
احتمالا خیلی ها فکر میکنن که امکان پذیر نیست.
اما با این روش میتوانید به راحتی از #فرمریکوئست ها در کامپوننت های #لایووایر استفاده کنید.
#Livewire #FormRequest
Forwarded from کانال اطلاعرسانی توزیع پارچ
Forwarded from Linuxor ?
کدام یک برای دستهبندی نقاط ضعف "رایج" در طراحی و کدنویسی نرمافزارها استفاده میشود تا از ایجاد آنها جلوگیری شود؟
Anonymous Quiz
10%
CUE
17%
CWE
48%
CVE
25%
دسته بندی و انتشار نقاط ضعف به صورت عمومی کار اشتباهی است.
Forwarded from Md Daily (Mahan)
This media is not supported in your browser
VIEW IN TELEGRAM
چرا نباید به بنچمارک ها اعتماد کنیم؟
چند وقته میبینم اول لینکدین و بعد توئیتر و تلگرام این سبک ویدیو ها از مقایسه ی سرعت زبان ها درحال نشر هستند. ولی نباید. معیارتون رو برای انتخاب زبان مناسب و حتی مقایسشون این سبک ویدیو ها بذارید. طرفدارای یه زبان میگن: "زبان X از زبان Y سریعتره!" آره بابا، یه سری تست و بنچمارک نشون میده که یه ذره سرعت اجرا یا مصرف حافظه تو زبونا فرق میکنه. ولی بیخیال، واسه 99 درصد برنامهها این فرقها مثه اینه که موقع کدنویسی جوراب قرمز بپوشی یا آبی! مهم معماری، الگوریتم و استراتژی بهینهسازیه که کارو راه میندازه. یه سیستم بد طراحیشده، چه با Rust نوشته بشه چه با Ruby، آخرش بد و ناکار آمد هستش. نکته ی دیگه که راجب این سبک مقایسه وجود داره اینکه دقیقا معلوم،نیست تحت چه شرایطی و با چه سیستمی طبق چه نوع پیاده سازی ای این تست ها گرفته شده. خلاصه که تا وقتی بنچمارک توسط خودتون با شرایط یکسان گرفته نشده خیلی اعتماد نکنید و معیارتون برای انتخاب و مقایسه زبان ها اینها نباشه :)
🆔 @MdDaily
چند وقته میبینم اول لینکدین و بعد توئیتر و تلگرام این سبک ویدیو ها از مقایسه ی سرعت زبان ها درحال نشر هستند. ولی نباید. معیارتون رو برای انتخاب زبان مناسب و حتی مقایسشون این سبک ویدیو ها بذارید. طرفدارای یه زبان میگن: "زبان X از زبان Y سریعتره!" آره بابا، یه سری تست و بنچمارک نشون میده که یه ذره سرعت اجرا یا مصرف حافظه تو زبونا فرق میکنه. ولی بیخیال، واسه 99 درصد برنامهها این فرقها مثه اینه که موقع کدنویسی جوراب قرمز بپوشی یا آبی! مهم معماری، الگوریتم و استراتژی بهینهسازیه که کارو راه میندازه. یه سیستم بد طراحیشده، چه با Rust نوشته بشه چه با Ruby، آخرش بد و ناکار آمد هستش. نکته ی دیگه که راجب این سبک مقایسه وجود داره اینکه دقیقا معلوم،نیست تحت چه شرایطی و با چه سیستمی طبق چه نوع پیاده سازی ای این تست ها گرفته شده. خلاصه که تا وقتی بنچمارک توسط خودتون با شرایط یکسان گرفته نشده خیلی اعتماد نکنید و معیارتون برای انتخاب و مقایسه زبان ها اینها نباشه :)
🆔 @MdDaily
Forwarded from Armon technical logs (armon Taheri)
انجمن تجارت الکترونیک تهران
گزارش چهارم کیفیت اینترنت در ایران؛ از فریب آماری Speed Test تا افزایش 20 برابری کاربران ایرانی در دسترسی به اینترنت آزاد - انجمن…
چهارمین گزارش کیفیت اینترنت در ایران، توسط کمیسیون اینترنت و زیرساخت انجمن تجارت الکترونیک تهران منتشر شد.
Forwarded from CleverDevs (Mammad)
یکی از بچه های چنل یه پروژه ای توسعه داده که اگه نیاز به استان ها و شهر های ایران داشتید میتونید ازش استفاده کنید
این کتابخونه متد های مختلفی داره که ازشون میتونید برای پیدا کردن شهرهای یک استان و ... استفاده کنید
لینک گیتهاب :
https://github.com/mohammad-hassani/iran-city
لینک npmjs :
https://www.npmjs.com/package/iran-city
#openSource #js
@CleverDevs - @CleverDevsGp
این کتابخونه متد های مختلفی داره که ازشون میتونید برای پیدا کردن شهرهای یک استان و ... استفاده کنید
لینک گیتهاب :
https://github.com/mohammad-hassani/iran-city
لینک npmjs :
https://www.npmjs.com/package/iran-city
#openSource #js
@CleverDevs - @CleverDevsGp
Forwarded from DevTwitter | توییت برنامه نویسی
امروز با
https://github.com/browser-use/browser-use
قدری ور رفتم. شبیه جادو بود
دنیا هر روز داره جالب تر میشه
رسیدیم به فصل AI Agent
@DevTwitter | <straxico/>
https://github.com/browser-use/browser-use
قدری ور رفتم. شبیه جادو بود
دنیا هر روز داره جالب تر میشه
رسیدیم به فصل AI Agent
@DevTwitter | <straxico/>
Forwarded from Ninja Learn | نینجا لرن
طاها جان یکی از بچه های پرتلاش کامیونیتی هست که محتوای خفنیم تولید میکنه.
درحال حاضر روی توسعه یه زبان کارمیکنه به نام (کوروش) و کامپایلریه و داره با زبان برنامه نویسی Rust توسعش میده و از LLVM هم برای کامپایلرش استفاده میکنه.
متاسفانه مورد حمایت اصلا قراره نمیگیره.
اینم تبلیغ نیست و به انتخاب خودم دارم اینکارو میکنم و تاحالا کلی چیز از طاها یاد گرفتم.
کانال طاها 👇
https://news.1rj.ru/str/geek_engineers
درحال حاضر روی توسعه یه زبان کارمیکنه به نام (کوروش) و کامپایلریه و داره با زبان برنامه نویسی Rust توسعش میده و از LLVM هم برای کامپایلرش استفاده میکنه.
متاسفانه مورد حمایت اصلا قراره نمیگیره.
اینم تبلیغ نیست و به انتخاب خودم دارم اینکارو میکنم و تاحالا کلی چیز از طاها یاد گرفتم.
کانال طاها 👇
https://news.1rj.ru/str/geek_engineers