Syntax | سینتکس – Telegram
تایپ اسکریپت هم به راه راست هدایت شد و فهمید جی اس خرابه.

بازنویسی TypeScript با Go و افزایش سرعت ۱۰ برابری 🚀

مایکروسافت اعلام کرده TypeScript در حال بازنویسی مجدد به زبان Go می باشد. این تغییر باعث افزایش ۱۰ برابری سرعت نسبت به نسخه قبلی خواهد شد. در حال حاضر، TypeScript بر پایه JavaScript و TypeScript خودش نوشته شده است، اما این رویکرد جدید به طور چشمگیری عملکرد را بهبود می‌بخشد.

چرا Go انتخاب شد؟ 🤔
مایکروسافت که در دوراهی سی هشتگ و گولنگ مانده بود در نهایت تصمیم قاطعانه گرفت از سی هشتگ استفاده نکند.

همچنین مایکروسافت دلایلی برای این تصمیم بازنویسی با گو ارائه داده است:

بهینه‌سازی حافظه – زبان و مفسر Go نسبت به JavaScript از حافظه بهینه‌تر استفاده می‌کند.
همزمانی بهتر – زبان و مفسر Go دارای مدل همزمانی پیشرفته است که باعث افزایش سرعت کامپایل می‌شود.
بهره‌گیری از کامپایلر کارآمد – زبان و مفسر Go با داشتن یک باینری مستقل، نیاز به اجرای TypeScript روی Node.js را حذف می‌کند.

مزایای تغییر به Go 🔥

🔹 افزایش سرعت کامپایل – پروژه‌های بزرگ TypeScript سریع‌تر اجرا خواهند شد.
🔹 مصرف کمتر حافظه – منابع کمتری مصرف شده و پردازش‌ها سبک‌تر خواهند بود.
🔹 ادغام بهتر با محیط‌های مختلف – می توان ادعا نمود که TypeScript بدون وابستگی به Node.js روی سیستم‌های بیشتری قابل اجراست.

آیا این به معنای دردسر برای کدنویسها است؟ 🧐

به گفته تیم توسعه‌، این تغییر در بنیان TypeScript رخ می‌دهد و بر نحوه استفاده برنامه‌نویسان از آن تأثیری نخواهد گذاشت. کدهای موجود همچنان به درستی کار خواهند کرد، اما با سرعت و کارایی بیشتر.

مایکروسافت قول داده که جزئیات بیشتری را در آینده منتشر کند. این حرکت می‌تواند تحولی مهم در دنیای توسعه وب ایجاد کند.

📌 نتیجه‌گیری:
قرار است TypeScript به زبان Go بازنویسی شود که باعث افزایش چشمگیر سرعت و بهینه‌سازی مصرف منابع خواهد شد. این یک تغییر بنیادی است که می‌تواند تجربه توسعه‌دهندگان را بهبود ببخشد. 💡

#fun

Source

@syntax_fa
🔥16👍10😁2❤‍🔥1
معرفی ابزار امنیتی Lynis 

ا🔒 Lynis چیست؟ 
ا- Lynis یک ابزار امنیتی قدرتمند برای بررسی امنیت سیستم‌های مبتنی بر Linux، macOS یا Unix است. این ابزار با انجام یک اسکن گسترده، به تقویت امنیت سیستم و تست‌های تطابق با استانداردها کمک می‌کند. Lynis یک پروژه متن‌باز است.

🎯 اهداف Lynis: 
این ابزار به دلیل انعطاف‌پذیری بالا، برای اهداف مختلفی استفاده می‌شود، از جمله: 
- بررسی امنیتی (Security Auditing) 
- تست تطابق با استانداردها (مانند PCI، HIPAA، SOx) 
- تست نفوذ (Penetration Testing) 
- شناسایی آسیب‌پذیری‌ها 
- تقویت امنیت سیستم (System Hardening) 


👥 کاربران Lynis: 
- توسعه‌دهندگان: برای تست ایمیج های Docker یا بهبود امنیت اپلیکیشن‌های وب. 
- مدیران سیستم: اسکن برای شناسایی نقاط ضعف جدید.
- تسترهای نفوذ: شناسایی نقاط ضعف امنیتی در سیستم‌های مشتریان. 

📂 سیستم‌عامل‌های پشتیبانی‌شده: 
- Linux 
- macOS 
- FreeBSD 
- OpenBSD 
- Solaris 
- و حتی دستگاه‌هایی مثل IoT. 

⚙️ نحوه کار Lynis: 
ا- Lynis به‌صورت ماژولار و بر اساس اجزای موجود در سیستم شما عمل می‌کند. این یعنی: 
- هیچ نیازی به نصب ابزارهای دیگر نیست. 
- هرچه اجزای بیشتری شناسایی کند، اسکن دقیق‌تر خواهد بود. 
- اسکن به‌طور خاص برای هر سیستم سفارشی‌سازی می‌شود. 

📋 مراحل اسکن Lynis: 
1. آغاز اسکن 
2. بررسی مالکیت فایل‌ها 
3. شناسایی سیستم‌عامل و ابزارها 
4. جستجوی اجزای نرم‌افزاری موجود 
5. اجرای تست‌های امنیتی 
6. ارائه گزارش وضعیت امنیتی 

🔎 نتیجه: گزارش‌های فنی در فایل‌های گزارش (مانند lynis.log و lynis-report.dat) ذخیره می‌شوند. 

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

📦 نصب Lynis: 
Lynis سبک و آسان برای استفاده است. روش نصب از طریق گیت‌هاب: 
- کلون از GitHub
git clone https://github.com/CISOfy/lynis

- استفاده از فایل tarball و اجرای دستور
lynis/lynis audit system -Q


🛡 امنیت سیستم شما با Lynis تضمین می‌شود!

#lynis

@syntax_fa
👍12❤‍🔥1
Forwarded from Syntax | سینتکس (Alireza-Fa)
This media is not supported in your browser
VIEW IN TELEGRAM
این ارتش هاگوارتز و دنیای هری پاتر نیست

بلکه چهارشنبه سوری است

#Fun

@Syntax_fa
😁24👍2👻2
💻 Vibe Coding: برنامه‌نویسی بدون درک کد؟!

داشتم توی توییتر (اکس) می‌چرخیدم که به یه اصطلاح جدید به نام Vibe Coding برخوردم. این یعنی یه برنامه‌نویس دیگه مستقیم کد نمی‌نویسه، بلکه میره از ابزارهای AI مثل ChatGPT، Cursor AI، Copilot و این جور چیزا استفاده می‌کنه و کدی می‌سازه که شاید کار کنه، ولی نه خیلی قابل درک یا بهینه باشه!

🔹 مکانیزم این روش چجوریه؟
1️⃣ برنامه‌نویس یه ایده کلی داره.
2️⃣ می‌ره به AI می‌گه که "یه چیزی بساز که این کار رو بکنه."
3️⃣ هوش مصنوعی یه کد می‌سازه که احتمالاً درست کار کنه.
4️⃣ آخرش، بدون اینکه خیلی درک کنه چطور کار می‌کنه، برنامه اجرا میشه!

📌 نتیجه؟
کد نوشته شده و بالا اومده.
اما ساختار و بهینه بودنش هنوز معلوم نیست.
برنامه‌نویس حتی نمی‌دونه کد چطور کار می‌کنه!
عملکرد؟ شاید درست کار کنه، ولی فقط تا وقتی مشکلی پیش نیاد!
مشکلات امنیتی؟ ممکنه یه سوراخ امنیتی بزرگی وجود داشته باشه که کسی متوجهش نشه تا زمانی که به مشکل برخورد کنه! 🔓

یه مثال جالب از این قضیه، "Leo" یه برنامه‌نویس بود که با استفاده از Cursor AI بدون نوشتن حتی یک خط کد یه سیستم SaaS راه انداخت و داخل توییتر (اکس) پز می‌داد که چطور موفق شده و چقدر فروخته. اما بعد از یه مدت، یه توییت زد و گفت که وب‌سایتش تحت حمله قرار گرفته و اپلیکیشنش خراب شده! بعد مشخص شد که چیزای ساده‌ای مثل authentication یا CORS رعایت نشده بود!

📌 نتیجه‌گیری:

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

پس هنوز باید توجه کنیم که درک عمیق از کد و اصول پایه‌ای مهمه. باید بتونیم از این ابزارها استفاده کنیم، ولی همزمان باید آگاهی و تجربه هم داشته باشیم تا نرم‌افزارهای پایداری بسازیم.

@Syntax_fa
👍29❤‍🔥1
به عنوان آخرین پست امسال این آموزش فان رو بهتون تقدیم می کنم

برای من خیلی پیش اومده ایمیلی که اشاره میکنه پول ریکوئست جدید زده شده رو میبینم و میگم حالا بعدا میرم ریویو میکنم الان حوصلش نیست ولی متاسفانه نصف مواقع یادم میره ریویو کنم و پول ریکوئسته همینجوری نامعلوم باقی میمونه مگه اینکه اون شخص دوباره یادآوری کنه یا اینکه خودم چک کنم پول ریکوئست هارو چیز جدیدی هست یا نه.

با خودم گفتم بهتره هر صبح قبل هر چیزی چک کنم آخرین تغییرات چیا هستن. ولی بازم نمیشه به ذهن فراموش کار آدم ها اعتماد کرد اما اگه میومد بصورت اتوماتیک هرصبح برای پول ریکوئست هایی که باز هستند و ریویو نشدن ایمیل یادآوری میزد، چقدر عالی میشد!
پس دست به کار شدم یچیز فان و جالب بزنم.

حالا چطور اینکارو انجام بدیم؟
گیتهاب اکشن یه قابلیتی داره که میتونیم تنظیم کنیم یه ورکفلو بصورت دوره تکرار همش اجرا بشه
خب پس قسمت اول مسئله حل شد بقیشم که کاری نداره یدونه smtp میخوایم اونم جیمیل در اختیارمون قرار میده و تا روزی 500 تا ایمیل هم رایگان میتونیم ارسال کنیم پس فقط نیازه یه سری ریکوئست و فیلتر ساده بزنیم تا پول ریکوئست های مدنظر رو در بیاریم و به آدرس ایمیل اشخاصی که ریویو میکنن ارسال کنیم.

در نهایت این ورکفلو رو پیادش کردم:
https://github.com/alireza-fa/github-actions/blob/main/.github/workflows/check_prs_and_send_email.yml

#github_action

@syntax_fa
13👍6🔥1🥰1
نوروزتان پیروز باد!
سال نوی خورشیدی رو به شما و خانواده‌تان تبریک می‌گم. 
آرزو دارم که این سال نو برای شما پر از شادی، سلامتی و برکت باشه. همیشه شاد و کامگار باشید!
21
This media is not supported in your browser
VIEW IN TELEGRAM
چند فکت محبوب برنامه نویسی😂👌
.
.
خدایی غیر اینه؟!
#fun
😁342👍2👏1
داکر کمپوز استک elk:
https://github.com/deviantony/docker-elk

خیلی بدرد بخوره
خوبیش اینه مدام آپدیتش میکنه و از آخرین نسخه استک استفاده می کنه.
همچنین fleet رو هم داره تو قسمت extentions

#elk

@syntax_fa
👍111
بررسی معماری پرومتئوس Prometheus

پرومتئوس یک ابزار متن‌باز برای مانیتورینگ و هشداردهی است که به‌طور گسترده در حوزه DevOps و مدیریت سیستم‌ها استفاده می‌شود ...

در وبلاگ سینتکس‌فا بخوانید:
https://syntaxfa.com/blogs/prometheus-architecture/

#prometheus

@syntax_fa
🔥7👍61
وقتی یه برنامه نویس میخواد زندگیشو توصیف کنه

اینو اتفاقی تو کانال شخصیه یه برنامه نویس دیدم:

هر بار که به یه باگ برمیخورم همیشه سوالم اینه که سرمنشعش کجاست؟
خب یه وقتایی باعثش خودمم
بعضی وقتاهم ناسازگاری های غیر قابل پیش بینی هستن که میان سر راه آدم
زمان همیشه دیباگر خوبیه
ولی ن همیشه! :)
توی یه سری نقاط خاص که اصلا به ذهنتم خطور نمیکنه چیزای باحالی اتفاق میوفته
باگایی که از ناکجا آباد پیداشون میشه که سر منشع مشخصی دارن
حتی میدونی دلیلشون چیه و چرا اتفاق افتادن
اما غیر قابل رفع کردنن
انگار اومدن که خو بگیرن و بشن بخشی از چیزی که نمیخواستی
مجبور میشی ی گوشه لا به لای کدات خاکشون کنی و بزاری که باقی بمونن
دقیقا مث اتفاقای خارج از انتظار توی زندگی میمونه که میدونی دلیلش چیه ولی هر چقدرم که تلاش میکنی تا از بین ببریش راهی براش نیست
شاید یه سریا که یکم عقیده نسبتن خوش تری نسبت به این دنیای مزخرف داشته باشن پیش خودشون بگن همیشه یه راهی هست!
ولی من که بعید میدونم
مگه میشه آدامسی که ته ی کفش چسبیده رو کند؟
اونم وقتی خیلی وقته اونجاس و هر جا میری باهاته...
یکم فکر کنیم خوب میدونیم این باگای تخمی از کجا نشعت گرفتن
از ادمای به ظاهر روشن فکر و هرکسی که کوچک ترین دخالتی توی زندگیمون داشته تا خانواده و حکومت و جامعه...!
هرکدومو که یکم نگاه میکنی این نوع باگارو میبینی
میشه سر منشعشون رو دید ولی نه کاری از دستت بر میاد و نه راهی برای از بین بردنشون :)

#fun

@syntax_fa
14👍8😁6
Temporal

از اونجا شروع می‌شه که یه سری مهندس خفن، که تو شرکت‌های بزرگی مثل مایکروسافت و اوبر کار می‌کردن، فهمیدن مدیریت پردازش‌های پیچیده و توزیع‌شده (distributed systems) خیلی دردسر داره. مخصوصاً وقتی پای چیزایی مثل زمان‌بندی (scheduling)، ریتری (retry)، مانیتور کردن یا حتی برخورد با خطاها (failure handling) وسط میاد.

اینها میان به‌جای اینکه هر بار این مشکلات رو دوباره از اول حل کنن، تو اوبر یه چیزی به اسم Cadence طراحی کردن.

ا. Cadence یه ابزار خیلی قویه برای مدیریت workflow تو سیستم‌های توزیع‌شده. ولی خب، بعدها این بچه‌ها تصمیم گرفتن از اوبر بیان بیرون و یه ورژن بهتر از Cadence رو بسازن که همون Temporalهستش. Cadence با گولنگ توسعه دادن همچنین Temporal هم گولنگی هستش.

ا. Temporal دقیقاً همون ایده‌های Cadence رو گرفته با یه سری امکانات خفن‌تر و تجربه بهتر.

ا. Temporal چیه کاربرد هایی داره؟

ا. Temporal کمک می‌کنه جریان‌های کاری (workflow) پیچیده رو تو سیستم‌های توزیع‌شده مدیریت کنی. حالا یعنی چی؟ یعنی وقتی یه سری کار داری که تو زمان‌های مختلف باید انجام بشن یا یه سری عملیات که ممکنه به هر دلیلی (مثلاً قطع‌شدن سرور یا خطای شبکه) خراب بشه، دیگه لازم نیست خودت دست‌به‌کار بشی و اینا رو هندل کنی. Temporal همه اینارو خودش اوتوماتیک هندل می‌کنه.

برتری اصلی Temporal اینه که می‌تونی کدهای معمولی بنویسی، ولی اون خودش این کدها رو به‌شکلی مدیریت می‌کنه که انگار یه سیستم توزیع‌شده داری که همه چیش اوکیه. یعنی دیگه نگران ریتری، زمان‌بندی یا حفظ وضعیت (state) نباشی. خودش همه چیو هندل می‌کنه.

یه سناریوی واقعی: مدیریت رزرو با Temporal

فرض کن یه اپلیکیشن داری که توش کاربرها می‌تونن یه چیزی (مثلاً یه میز تو رستوران) رو رزرو کنن. حالا وقتی کسی یه رزرو انجام می‌ده، طبیعتاً نمی‌خوای اون میز برای همیشه قفل بمونه. مثلاً اگه کاربر تا ۱۵ دقیقه بعد رزروشو تأیید نکرد، باید خودبه‌خود اون رزرو آزاد شه.

خب، اینجا می‌تونیم با Temporal یه جریان کاری (workflow) خفن بسازیم. بیایم این‌جوری فکر کنیم:

1. وقتی کاربر یه رزرو انجام می‌ده، یه رویداد (event) ارسال می‌شه که می‌گه: «فلان میز رزرو شد».

2. حالا یه workflow تو Temporal تعریف می‌کنیم که بگه: «۱۵ دقیقه صبر کن. اگه تو این مدت کاربر رزرو رو تأیید نکرد، میز رو آزاد کن».

3. اگه کاربر قبل از ۱۵ دقیقه اومد و رزروشو تأیید کرد، workflow رو تموم می‌کنیم و اینبار یه تسک جدید تعریف میکنیم که مثلا یه ساعت قبل تایم رزرو نوتیف یادآوری بده و همینطور بر اساس رویداد های مختلف میتونیم جاب های جدید تعریف کنیم.

4. اگه نه، بعد از ۱۵ دقیقه Temporal خودش اون رزرو رو آزاد می‌کنه.

چرا Temporal اینجا معرکه‌ست؟

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

#temporal

@Syntax_fa
👍152🔥2
A Time For Us
Celtic Woman
4👍1
This media is not supported in your browser
VIEW IN TELEGRAM
جدا چند بار شده گفتم کوتاه بنویس اینقدر توضیح نده ساده بنویس😂

Code module

#fun

@Syntax_fa
😁28👻3👍2
وب سایت Excalidraw خیلی خوشگل مشگله برای دیزاین پیشنهادش میدم
https://excalidraw.com/

@Syntax_fa
👏17👍6👌1
مهارت تمام کردن کار ها‌ (task completion skills)

مهارت شروع کردن همیشه به عنوان یک ویژگی جذاب مطرحه. همه‌ی ما دوست داریم کارها و پروژه هامونو با انرژی و اشتیاق زیاد شروع کنیم. اما نکته‌ای که شاید کمتر بهش توجه می کنیم اینه که مهارت تموم کردن، حتی از مهارت شروع کردنم مهم‌تره!
توانایی به پایان رسوندن کارها نه تنها نشون دهنده نظم و پشتکار هستش، بلکه باعث رشد واقعی و ایجاد اعتماد به نفس میشه.

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

یادگیری واقعی موقع تموم کردن
وقتی کاری رو تموم می کنیم، تازه متوجه می‌شویم که چه چیزهایی یاد گرفتیم. از فاز ایده‌پردازی تا اجرا و از حل چالش‌ها تا نتیجه‌گیری، تموم این مراحل در پایان کار شکل واقعی پیدا می کنن. اگه پروژه رو نیمه‌کاره رها کنیم، از بخش مهمی از یادگیری محروم میشیم.

اعتماد به نفس از "فرام اسکرچ تا پروداکشن" میاد!
انجام یه پروژه از صفر تا صد، به شما نشون میده که توانایی تبدیل یک ایده به یک محصول واقعی رو دارید که باعث میشه اعتماد به نفس شما، به شدت افزایش پیدا کنه که میتونید کارهای بزرگتری رو هم انجام بدید.

بعضی چالش های میونه راه مشخص میشه:

- کارهای جزیره‌ای و گسسته
طول یک پروژه یا تسک طولانی، گاهی کارهایی انجام میدیم که تو لحظه به نظر میرسه ارتباط مستقیمی با نتیجه نهایی نداره. بعد چند وقت، این کارهای جزیره‌ای انباشته میشن و نمیدونیم چطور اون هارو کنار هم قرار بدیم تا پروژه به نتیجه برسه. اینجاست که نیاز به برنامه‌ریزی دقیق و اولویت‌بندی اهمیت پیدا میکنه.

- کاهش اشتیاق
اشتیاق اولیه معمولا بعد از مدتی کاهش پیدا می‌کنه و پروژه فعلی برامون جذابیتش رو از دست میده. درست تو همین لحظه‌ هاست که باید انگیزه‌ هامون رو بیشتر کنیم و ادامه بدیم.

چطور میشه مهارت تموم کنندگیمون رو افزایش بدیم؟

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

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

#soft_skill

@Syntax_fa
👍16
امروز یه باگ بامزه تو پروژه Django خورد تو صورتم که گفتم باهاتون درمیون بذارم، شاید یه روزی به دادتون برسه!

اگه بعد از ساختن یه آبجکت توی ویو (مثلاً با متد create) بلافاصله آی‌دی اون رو بدی به یه تسک Celery، ممکنه توی محیط پروداکشن با ارور DoesNotExist مواجه بشی — در حالی که لوکال همه چیز درست کار می‌کنه!

چرا این اتفاق می‌افته؟

چون وقتی تنظیماتی مثل ATOMIC_REQUESTS = True فعال باشه، Django تا زمانی که ریکوئست کامل نشه، اطلاعات رو به دیتابیس commit نمی‌کنه.
از اون طرف Celery تسک رو بلافاصله بعد از پاسخ 201 اجرا می‌کنه؛ یعنی قبل از اینکه دیتابیس واقعاً اطلاعات رو ذخیره کرده باشه.

راه‌حل درست و اصولی:
به جای اینکه تسک رو همون لحظه اجرا کنیم، باید صبر کنیم تا commit تموم بشه.
و Django خودش این ابزار رو بهمون داده:

transaction.on_commit(lambda: my_task.delay(obj_id))

این خط یعنی: «بعد از اینکه commit شد، حالا برو سراغ تسک.»

یه نکته ساده ولی حیاتی که می‌تونه جلوی کلی باگ دردسرساز رو بگیره — مخصوصاً وقتی کد رو از dev می‌بریم روی production!

Source

#django

@Syntax_fa
👍39🔥1👌1
معرفی اپ گیتهابی Renovate – خودکارسازی مدیریت وابستگی‌ها

به‌روز نگه داشتن وابستگی‌ها (dependencies) یکی از مهم‌ترین و در عین حال خسته‌کننده‌ترین وظایف تیم‌های فنیه. هر روز ممکنه یک نسخه جدید از کتابخونه‌ای که استفاده می‌کنید منتشر بشه — آیا لازمه آپدیتش کنید؟ آیا تغییراتش سازگار با پروژه شماست؟ آیا آسیب‌پذیری امنیتی داره؟
اینجاست که اپ Renovate این بار رو از دوش شما برمیداره.

Renovate چیه؟


اپ Renovate یک ابزار اپن‌سورس از شرکت Mend هست که به صورت خودکار:
- آپدیت‌های جدید کتابخانه‌ها، ابزارها و وابستگی‌های پروژه رو شناسایی می‌کنه.
ا- Pull Request (یا Merge Request) می‌سازه با نسخه جدید و changelog.
- می‌تونه براساس قوانین دلخواه، آپدیت‌ها رو اتوماتیک merge یا review کنه.
- از زبان‌های مختلف مثل Go, JavaScript/TypeScript, Python, Docker, GitHub Actions و... پشتیبانی می‌کنه.

نمونه کاربرد: پروژه Go

برای پروژه‌هایی که با Go توسعه داده شدن، Renovate می‌تونه فایل go.mod رو بررسی کنه و نسخه‌های جدید پکیج‌ها رو پیشنهاد بده. حتی می‌تونه نسخه‌ی Go خود پروژه رو هم بررسی کنه (در صورت فعال‌سازی).

ما تو پروژه quick connect از Renovate استفاده کردیم:
https://github.com/syntaxfa/quick-connect/blob/main/renovate.json5

نکته:
فایل enovate.json میتونه داخل دایرکتوری .github هم باشه اگه دوست ندارید تو روت پروژه قرارش بدید.

چند تا نکته دیگه:

- برای پروژه‌هایی که CI/CD دارند، می‌شه آپدیت‌های GitHub Actions رو هم خودکار مدیریت کرد.
- می‌تونید از labels، commit convention، یا حتی محدودیت در تعداد PRها استفاده کنید.
- با فعال‌سازی vulnerability alerts، بدون نیاز به منتظر بودن برای PR، از آسیب‌پذیری‌ها مطلع می‌شید.

#renovate

@Syntax_fa
👍123
چطور تبدیل به شت کدر بشیم؟؟

1. هیچ قانونی نداشته باش!
بذار هرکی هرجوری دلش خواست کد بزنه.

2. کیفیت؟ این دیگه چه مزخرفیه؟
فقط سریع باش! وقتت رو حرومه بررسی و تست نکن. هرچی زودتر تحویل بدی بهتره!


3. امنیت؟ 😂
هرکی اومد، همه چی رو بهش بده. رمز نمیخواد، ورود نمیخواد، اعتبارسنجی؟ چی هست اصن؟ همه چیز آزاده! چرا سخت میگیری تو دنیای آزاد، آزادانه رفتار کن


4. کد تکراری ؟ اشکال نداره!
یه تیکه کد نوشتی؟ صدبار کپیش کن توو جاهای مختلف. چرا زحمت بکشی تابع درست کنی؟


5. به سرعت لاک‌پشت وفادار باش!
نه کشی، نه بهینه‌سازی، نه تست عملکرد. بذار برنامت در حد اینترنت دایل‌ آپ اجرا بشه!


6. کیفیت برای دیگران؟ نه بابا!
فقط رو سیستم خودت تست کن اونم فقط با chrome. اگه کسی با سیستم یا مرورگره دیگه‌ای وارد شد، مشکل خودشونه! شما که خودت همه چیز رو دیدی!

7. پروژه‌تو توی غار بنویس!
نه فیدبک بگیر، نه دمو بده...


8. ا(observability) حسش نیس!
صبر کن کاربر خودش زنگ بزنه و بگه: «سایتتون به فنا رفته!» بعد تازه بپرسی: چی دیدی؟ چه اروری بود؟ چی زدی؟!


📌 اگه می‌خوای یه نرم‌افزار ضعیف بسازی، فقط کافیه این دستورالعمل‌ها همیشه اولویتت باشه!

source

#fun

@syntax_fa
👍24😁62👎1
This media is not supported in your browser
VIEW IN TELEGRAM
بچه ها میخوام بهتون روحیه بدم حتما این کلیپو ببینید نتیجه فقط یه سال تلاش شبانه روزیه

#fun

@Syntax_fa
👍22😁19👎2
بس کن ایرانی!

درباره پروژه:
بس کن ایرانی یک پروژه‌ی متن‌باز و مردمی است که با هدف افزایش آگاهی اجتماعی و نقد رفتارهای اشتباه در جامعه طراحی شده. هدف ما ایجاد فضایی برای گفتگو، آموزش و تحول فرهنگی‌ست.

باحال بود دیدم شما هم ببینید😁

#fun

@Syntax_fa
😁23👎6👍4
معرفی پروژه Quick Connect

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

کوئیک کانکت قراره همه این دغدغه ها‌رو حل کنه اونم بصورت رایگان و اپن سورس!

با کوئیک کانکت مثل ابزار Crisp و یا تو ایران «گفتینو»، می تونید به پروژتون چت آنلاین رو اضافه کنید.

اگه دقت کرده باشید وب سایت های پربازدید مثل digikala و filimo و zoomit قابلیتی شبیه به استوری اینستاگرام اضافه کردن که باعث افزایش تعامل با کاربر میشه. همچنین کوئیک کانکت هم، قابلیت جذاب استوری رو قراره داشته باشه.

پروژه سبک و قابل مقیاس هستش. زبان مورد استفاده سمت بک اند گولنگه و برای داشبورد از react استفاده می کنیم

اگه توانایی کانتریبیوت کردن دارید، خوشحال میشیم جوین بشید.«برای نحوه کانتریبیوت به گیتهاب پروژه مراجعه کنید»

منتظر حمایت و استار شما هستیم تا بهمون انگیزه بده این پروژه جذابو پیش ببریم.

لینک پروژه:
https://github.com/syntaxfa/quick-connect

#quick_connect

@Syntax_fa
🔥10👍1