Syntax | سینتکس
تو این ریپازیتوری، میتونید لیستی از workflow های از قبل تنظیم شده رو ببینید، کدهاشو بخونید و ازش استفاده کنید. https://github.com/actions/starter-workflows/ دوست دارید در خصوص گیتهاب اکشن پست های بیشتری بذاریم؟ تو پروژه هاتون از گیتهاب اکشن استفاده می کنید؟…
چه کسایی سمت گیتهاب اکشن نسخه رایگانش نرن؟
بنظرم خیلی از موارد گزینه مناسبیه ولی اگه:
ریپازیتوری پرایوت شما بیشتر از 2000 دقیقه در ماه قراره روش جاب های مختلف ورکفلو هاتون اجرا بشه.
ریپازیتوری پابلیک ->بیشتر از 16 گیگ رم و 14 گیگ فضا و 4 تا پردازنده نیاز دارید.
ریپازیتوری پرایوت -> بیشتر از 7 گیگ رم و 14 گیگ فضا و 2 پردازنده نیاز دارید.
در غیر اینصورت گزینه خیلی خوبیه مخصوصا برای استفاده شخصی
همچنین ورکفلو های زمانبندی شده رو هم داره که میتونید جاب هایی که باید هر چند وقت یبار اجرا بشن، ازش استفاده کنید و کلی trigger های مختلف دیگه.
#github #workflow
@syntax_fa
بنظرم خیلی از موارد گزینه مناسبیه ولی اگه:
ریپازیتوری پرایوت شما بیشتر از 2000 دقیقه در ماه قراره روش جاب های مختلف ورکفلو هاتون اجرا بشه.
ریپازیتوری پابلیک ->بیشتر از 16 گیگ رم و 14 گیگ فضا و 4 تا پردازنده نیاز دارید.
ریپازیتوری پرایوت -> بیشتر از 7 گیگ رم و 14 گیگ فضا و 2 پردازنده نیاز دارید.
در غیر اینصورت گزینه خیلی خوبیه مخصوصا برای استفاده شخصی
همچنین ورکفلو های زمانبندی شده رو هم داره که میتونید جاب هایی که باید هر چند وقت یبار اجرا بشن، ازش استفاده کنید و کلی trigger های مختلف دیگه.
#github #workflow
@syntax_fa
👍14
مشارکت تو پروژه اپن سورس
قراره کنار هم یه سری چیز هارو آزمایش کنیم، خودمون رو به چالش بکشیم و یک پروژه اپن سورس جالبو توسعه بدیم.
در حال حاضر نیازه چند نفر رو به تیممون اضافه کنیم تا بتونیم با سرعت بیشتری پیش بریم.
برای چه کسایی مناسبه؟
- پایتون رو بلد باشه
- به کراولر نویسی و web scraping علاقه داشته باشه
- تجربه کار با جنگو رو داشته باشه
*در کنار این تسک ها، اگه فرصتش پیش بیاد، یه پروژه جنگویی که تمرکزش روی یه سری ابزار و مفاهیم بدرد بخور هستش رو هم انجام میدیم.
همچنین یکی از افراد با تجربه که خیلی قبولش دارم، پروژه رو مدیریت میکنه.
بنظر من برای لول آپ، فرصت خوبیه
اگه دوست دارید مشارکت کنید، پیویم پیام بدید:
@ayeef
قراره کنار هم یه سری چیز هارو آزمایش کنیم، خودمون رو به چالش بکشیم و یک پروژه اپن سورس جالبو توسعه بدیم.
در حال حاضر نیازه چند نفر رو به تیممون اضافه کنیم تا بتونیم با سرعت بیشتری پیش بریم.
برای چه کسایی مناسبه؟
- پایتون رو بلد باشه
- به کراولر نویسی و web scraping علاقه داشته باشه
- تجربه کار با جنگو رو داشته باشه
*در کنار این تسک ها، اگه فرصتش پیش بیاد، یه پروژه جنگویی که تمرکزش روی یه سری ابزار و مفاهیم بدرد بخور هستش رو هم انجام میدیم.
همچنین یکی از افراد با تجربه که خیلی قبولش دارم، پروژه رو مدیریت میکنه.
بنظر من برای لول آپ، فرصت خوبیه
اگه دوست دارید مشارکت کنید، پیویم پیام بدید:
@ayeef
👍14🔥5❤1
سه تا وب سایت با طراحی فضایی
وب سایت اولی و دومی تو یه لیگ دیگن
https://gapsystudio.com/
https://boredapeyachtclub.com/
https://amie.so/
@Syntax_fa
وب سایت اولی و دومی تو یه لیگ دیگن
https://gapsystudio.com/
https://boredapeyachtclub.com/
https://amie.so/
@Syntax_fa
GapsyStudio
Creative Design Studio | UI/UX Design Agency for Web & Apps
Top UI/UX design agency Gapsy Studio with a creative design edge. As a UX studio, we create intuitive app and web solutions for healthcare, eCommerce, SaaS, and more.
👌12👍2🔥2
چندتا از بچهها پیوی پیام دادن و راجب یه موضوع صحبت کردن
اینکه بیکاری اذیتشون میکنه، منجر به تنبلی و کاهش اعتماد بنفس درونشون شده و ...
بچهها درکتون میکنم و این مسئله کاملا طبیعی هستش
بهش میگیم روان نژندی حاصل از بیکاری، ریشه استرس درونی داره و هر چقدر این مسئله تداوم داشته باشه بیشتر بهتون آسیب میزنه و هنگام مصاحبهها هم قطعا باعث عملکرد بد ازتون خواهد شد
چطوری مقابلش اقدام کنیم؟؟؟
انجام کارهای گروهی روی پروژههای متن باز، بهتون کمک میکنه که روحیتون رو بدست بیارید و خودت رو از لحاظ روانی در سطح آمادگی برای جایگاه شغلی و حرفهای ببینید و منجر بشه در مصاحبهها هم عملکرد خوبی رو از خودتون نشون بدید
این قضیه رو جدی بگیرید و ازش استفاده کنید
Source
@Syntax_fa
اینکه بیکاری اذیتشون میکنه، منجر به تنبلی و کاهش اعتماد بنفس درونشون شده و ...
بچهها درکتون میکنم و این مسئله کاملا طبیعی هستش
بهش میگیم روان نژندی حاصل از بیکاری، ریشه استرس درونی داره و هر چقدر این مسئله تداوم داشته باشه بیشتر بهتون آسیب میزنه و هنگام مصاحبهها هم قطعا باعث عملکرد بد ازتون خواهد شد
چطوری مقابلش اقدام کنیم؟؟؟
انجام کارهای گروهی روی پروژههای متن باز، بهتون کمک میکنه که روحیتون رو بدست بیارید و خودت رو از لحاظ روانی در سطح آمادگی برای جایگاه شغلی و حرفهای ببینید و منجر بشه در مصاحبهها هم عملکرد خوبی رو از خودتون نشون بدید
این قضیه رو جدی بگیرید و ازش استفاده کنید
Source
@Syntax_fa
👍24❤3
📌 معرفی KeePassX؛ ابزار مدیریت رمز عبور امن و کاربردی
🔒 KeePassX یک نرمافزار مدیریت رمز عبور رایگان و متنباز است که به شما کمک میکند تمامی رمزهای عبور خود را بهصورت امن ذخیره کنید و تنها با به خاطر سپردن یک رمز اصلی (Master Password) به تمامی آنها دسترسی داشته باشید.
✅ ویژگیهای اصلی KeePassX:
1. امنیت بالا:
با استفاده از الگوریتمهای رمزنگاری قدرتمند (AES و Twofish)، KeePassX اطلاعات شما را در برابر دسترسیهای غیرمجاز محافظت میکند.
2. متنباز بودن:
به دلیل متنباز بودن، میتوانید از امنیت و شفافیت آن مطمئن شوید. جامعه برنامهنویسان همواره آن را بررسی میکنند و بهبود میدهند.
3. قابل استفاده در چند سیستمعامل:
ا KeePassX برای ویندوز، مک و لینوکس در دسترس است و بهراحتی میتوانید از آن در پلتفرمهای مختلف استفاده کنید.
4. مدیریت ساده:
قابلیت دستهبندی رمزها، جستجوی سریع و تولید رمزهای پیچیده به شما این امکان را میدهد که از رمزهای قوی و غیرقابل حدس استفاده کنید.
5. بدون نیاز به اینترنت:
KeePassX روی سیستم شما اجرا میشود و نیازی به اتصال به اینترنت ندارد، بنابراین خطرات ناشی از هک شدن سرویسهای ابری را کاهش میدهد.
🔰 کی برای KeePassX مناسب است؟
- افرادی که رمزهای زیادی دارند و حفظ آنها دشوار است.
- کسانی که به امنیت اطلاعات و حریم خصوصی خود اهمیت میدهند.
- کاربرانی که ترجیح میدهند دادههای خود را بهصورت آفلاین و بدون نیاز به سرورهای ابری ذخیره کنند.
💡 چرا KeePassX؟
در دنیایی که اطلاعات دیجیتال ما هدف اصلی هکرهاست، استفاده از یک ابزار مدیریت رمز عبور امن، ضروری است. KeePassX یک گزینه عالی برای محافظت از اطلاعات شخصی شماست.
📥 دانلود KeePassX:
برای دانلود و اطلاعات بیشتر به وبسایت رسمی آن مراجعه کنید:
https://www.keepassx.org
🌐 با KeePassX، امنیت رمزهای عبور خود را تضمین کنید!
#keepassx
@syntax_fa
🔒 KeePassX یک نرمافزار مدیریت رمز عبور رایگان و متنباز است که به شما کمک میکند تمامی رمزهای عبور خود را بهصورت امن ذخیره کنید و تنها با به خاطر سپردن یک رمز اصلی (Master Password) به تمامی آنها دسترسی داشته باشید.
✅ ویژگیهای اصلی KeePassX:
1. امنیت بالا:
با استفاده از الگوریتمهای رمزنگاری قدرتمند (AES و Twofish)، KeePassX اطلاعات شما را در برابر دسترسیهای غیرمجاز محافظت میکند.
2. متنباز بودن:
به دلیل متنباز بودن، میتوانید از امنیت و شفافیت آن مطمئن شوید. جامعه برنامهنویسان همواره آن را بررسی میکنند و بهبود میدهند.
3. قابل استفاده در چند سیستمعامل:
ا KeePassX برای ویندوز، مک و لینوکس در دسترس است و بهراحتی میتوانید از آن در پلتفرمهای مختلف استفاده کنید.
4. مدیریت ساده:
قابلیت دستهبندی رمزها، جستجوی سریع و تولید رمزهای پیچیده به شما این امکان را میدهد که از رمزهای قوی و غیرقابل حدس استفاده کنید.
5. بدون نیاز به اینترنت:
KeePassX روی سیستم شما اجرا میشود و نیازی به اتصال به اینترنت ندارد، بنابراین خطرات ناشی از هک شدن سرویسهای ابری را کاهش میدهد.
🔰 کی برای KeePassX مناسب است؟
- افرادی که رمزهای زیادی دارند و حفظ آنها دشوار است.
- کسانی که به امنیت اطلاعات و حریم خصوصی خود اهمیت میدهند.
- کاربرانی که ترجیح میدهند دادههای خود را بهصورت آفلاین و بدون نیاز به سرورهای ابری ذخیره کنند.
💡 چرا KeePassX؟
در دنیایی که اطلاعات دیجیتال ما هدف اصلی هکرهاست، استفاده از یک ابزار مدیریت رمز عبور امن، ضروری است. KeePassX یک گزینه عالی برای محافظت از اطلاعات شخصی شماست.
📥 دانلود KeePassX:
برای دانلود و اطلاعات بیشتر به وبسایت رسمی آن مراجعه کنید:
https://www.keepassx.org
🌐 با KeePassX، امنیت رمزهای عبور خود را تضمین کنید!
#keepassx
@syntax_fa
👍7
تایپ اسکریپت هم به راه راست هدایت شد و فهمید جی اس خرابه.
بازنویسی 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
بازنویسی 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:
Lynis سبک و آسان برای استفاده است. روش نصب از طریق گیتهاب:
- کلون از GitHub
git clone https://github.com/CISOfy/lynis
- استفاده از فایل tarball و اجرای دستور
lynis/lynis audit system -Q
🛡 امنیت سیستم شما با Lynis تضمین میشود!
#lynis
@syntax_fa
ا🔒 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
😁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
داشتم توی توییتر (اکس) میچرخیدم که به یه اصطلاح جدید به نام 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
برای من خیلی پیش اومده ایمیلی که اشاره میکنه پول ریکوئست جدید زده شده رو میبینم و میگم حالا بعدا میرم ریویو میکنم الان حوصلش نیست ولی متاسفانه نصف مواقع یادم میره ریویو کنم و پول ریکوئسته همینجوری نامعلوم باقی میمونه مگه اینکه اون شخص دوباره یادآوری کنه یا اینکه خودم چک کنم پول ریکوئست هارو چیز جدیدی هست یا نه.
با خودم گفتم بهتره هر صبح قبل هر چیزی چک کنم آخرین تغییرات چیا هستن. ولی بازم نمیشه به ذهن فراموش کار آدم ها اعتماد کرد اما اگه میومد بصورت اتوماتیک هرصبح برای پول ریکوئست هایی که باز هستند و ریویو نشدن ایمیل یادآوری میزد، چقدر عالی میشد!
پس دست به کار شدم یچیز فان و جالب بزنم.
حالا چطور اینکارو انجام بدیم؟
گیتهاب اکشن یه قابلیتی داره که میتونیم تنظیم کنیم یه ورکفلو بصورت دوره تکرار همش اجرا بشه
خب پس قسمت اول مسئله حل شد بقیشم که کاری نداره یدونه 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
داکر کمپوز استک elk:
https://github.com/deviantony/docker-elk
خیلی بدرد بخوره
خوبیش اینه مدام آپدیتش میکنه و از آخرین نسخه استک استفاده می کنه.
همچنین fleet رو هم داره تو قسمت extentions
#elk
@syntax_fa
https://github.com/deviantony/docker-elk
خیلی بدرد بخوره
خوبیش اینه مدام آپدیتش میکنه و از آخرین نسخه استک استفاده می کنه.
همچنین fleet رو هم داره تو قسمت extentions
#elk
@syntax_fa
GitHub
GitHub - deviantony/docker-elk: The Elastic stack (ELK) powered by Docker and Compose.
The Elastic stack (ELK) powered by Docker and Compose. - deviantony/docker-elk
👍11❤1
بررسی معماری پرومتئوس Prometheus
پرومتئوس یک ابزار متنباز برای مانیتورینگ و هشداردهی است که بهطور گسترده در حوزه DevOps و مدیریت سیستمها استفاده میشود ...
در وبلاگ سینتکسفا بخوانید:
https://syntaxfa.com/blogs/prometheus-architecture/
#prometheus
@syntax_fa
پرومتئوس یک ابزار متنباز برای مانیتورینگ و هشداردهی است که بهطور گسترده در حوزه DevOps و مدیریت سیستمها استفاده میشود ...
در وبلاگ سینتکسفا بخوانید:
https://syntaxfa.com/blogs/prometheus-architecture/
#prometheus
@syntax_fa
🔥7👍6❤1
وقتی یه برنامه نویس میخواد زندگیشو توصیف کنه
اینو اتفاقی تو کانال شخصیه یه برنامه نویس دیدم:
هر بار که به یه باگ برمیخورم همیشه سوالم اینه که سرمنشعش کجاست؟
خب یه وقتایی باعثش خودمم
بعضی وقتاهم ناسازگاری های غیر قابل پیش بینی هستن که میان سر راه آدم
زمان همیشه دیباگر خوبیه
ولی ن همیشه! :)
توی یه سری نقاط خاص که اصلا به ذهنتم خطور نمیکنه چیزای باحالی اتفاق میوفته
باگایی که از ناکجا آباد پیداشون میشه که سر منشع مشخصی دارن
حتی میدونی دلیلشون چیه و چرا اتفاق افتادن
اما غیر قابل رفع کردنن
انگار اومدن که خو بگیرن و بشن بخشی از چیزی که نمیخواستی
مجبور میشی ی گوشه لا به لای کدات خاکشون کنی و بزاری که باقی بمونن
دقیقا مث اتفاقای خارج از انتظار توی زندگی میمونه که میدونی دلیلش چیه ولی هر چقدرم که تلاش میکنی تا از بین ببریش راهی براش نیست
شاید یه سریا که یکم عقیده نسبتن خوش تری نسبت به این دنیای مزخرف داشته باشن پیش خودشون بگن همیشه یه راهی هست!
ولی من که بعید میدونم
مگه میشه آدامسی که ته ی کفش چسبیده رو کند؟
اونم وقتی خیلی وقته اونجاس و هر جا میری باهاته...
یکم فکر کنیم خوب میدونیم این باگای تخمی از کجا نشعت گرفتن
از ادمای به ظاهر روشن فکر و هرکسی که کوچک ترین دخالتی توی زندگیمون داشته تا خانواده و حکومت و جامعه...!
هرکدومو که یکم نگاه میکنی این نوع باگارو میبینی
میشه سر منشعشون رو دید ولی نه کاری از دستت بر میاد و نه راهی برای از بین بردنشون :)
#fun
@syntax_fa
اینو اتفاقی تو کانال شخصیه یه برنامه نویس دیدم:
هر بار که به یه باگ برمیخورم همیشه سوالم اینه که سرمنشعش کجاست؟
خب یه وقتایی باعثش خودمم
بعضی وقتاهم ناسازگاری های غیر قابل پیش بینی هستن که میان سر راه آدم
زمان همیشه دیباگر خوبیه
ولی ن همیشه! :)
توی یه سری نقاط خاص که اصلا به ذهنتم خطور نمیکنه چیزای باحالی اتفاق میوفته
باگایی که از ناکجا آباد پیداشون میشه که سر منشع مشخصی دارن
حتی میدونی دلیلشون چیه و چرا اتفاق افتادن
اما غیر قابل رفع کردنن
انگار اومدن که خو بگیرن و بشن بخشی از چیزی که نمیخواستی
مجبور میشی ی گوشه لا به لای کدات خاکشون کنی و بزاری که باقی بمونن
دقیقا مث اتفاقای خارج از انتظار توی زندگی میمونه که میدونی دلیلش چیه ولی هر چقدرم که تلاش میکنی تا از بین ببریش راهی براش نیست
شاید یه سریا که یکم عقیده نسبتن خوش تری نسبت به این دنیای مزخرف داشته باشن پیش خودشون بگن همیشه یه راهی هست!
ولی من که بعید میدونم
مگه میشه آدامسی که ته ی کفش چسبیده رو کند؟
اونم وقتی خیلی وقته اونجاس و هر جا میری باهاته...
یکم فکر کنیم خوب میدونیم این باگای تخمی از کجا نشعت گرفتن
از ادمای به ظاهر روشن فکر و هرکسی که کوچک ترین دخالتی توی زندگیمون داشته تا خانواده و حکومت و جامعه...!
هرکدومو که یکم نگاه میکنی این نوع باگارو میبینی
میشه سر منشعشون رو دید ولی نه کاری از دستت بر میاد و نه راهی برای از بین بردنشون :)
#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
از اونجا شروع میشه که یه سری مهندس خفن، که تو شرکتهای بزرگی مثل مایکروسافت و اوبر کار میکردن، فهمیدن مدیریت پردازشهای پیچیده و توزیعشده (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
👍15❤2🔥2
مهارت تمام کردن کار ها (task completion skills)
مهارت شروع کردن همیشه به عنوان یک ویژگی جذاب مطرحه. همهی ما دوست داریم کارها و پروژه هامونو با انرژی و اشتیاق زیاد شروع کنیم. اما نکتهای که شاید کمتر بهش توجه می کنیم اینه که مهارت تموم کردن، حتی از مهارت شروع کردنم مهمتره!
توانایی به پایان رسوندن کارها نه تنها نشون دهنده نظم و پشتکار هستش، بلکه باعث رشد واقعی و ایجاد اعتماد به نفس میشه.
شروع کردن آسونه، تموم کردن چالش واقعیه!
همهی پروژهها تو روزهای اول خیلی جذاب و دلبرن. ایدههای نو، انرژی اولیه، و هیجان برای شروع چیزی جدید باعث میشه احساس کنیم تو مسیر درستی قرار داریم. اما چند هفته یا چند ماه که میگذره اشتیاق اولیه کمرنگ میشه و کار به بخشهای چالشبرانگیز میرسه. اینجاست که تمایل به رها کردن کار یا درجا زدن به وجود میاد.
یادگیری واقعی موقع تموم کردن
وقتی کاری رو تموم می کنیم، تازه متوجه میشویم که چه چیزهایی یاد گرفتیم. از فاز ایدهپردازی تا اجرا و از حل چالشها تا نتیجهگیری، تموم این مراحل در پایان کار شکل واقعی پیدا می کنن. اگه پروژه رو نیمهکاره رها کنیم، از بخش مهمی از یادگیری محروم میشیم.
اعتماد به نفس از "فرام اسکرچ تا پروداکشن" میاد!
انجام یه پروژه از صفر تا صد، به شما نشون میده که توانایی تبدیل یک ایده به یک محصول واقعی رو دارید که باعث میشه اعتماد به نفس شما، به شدت افزایش پیدا کنه که میتونید کارهای بزرگتری رو هم انجام بدید.
بعضی چالش های میونه راه مشخص میشه:
- کارهای جزیرهای و گسسته
طول یک پروژه یا تسک طولانی، گاهی کارهایی انجام میدیم که تو لحظه به نظر میرسه ارتباط مستقیمی با نتیجه نهایی نداره. بعد چند وقت، این کارهای جزیرهای انباشته میشن و نمیدونیم چطور اون هارو کنار هم قرار بدیم تا پروژه به نتیجه برسه. اینجاست که نیاز به برنامهریزی دقیق و اولویتبندی اهمیت پیدا میکنه.
- کاهش اشتیاق
اشتیاق اولیه معمولا بعد از مدتی کاهش پیدا میکنه و پروژه فعلی برامون جذابیتش رو از دست میده. درست تو همین لحظه هاست که باید انگیزه هامون رو بیشتر کنیم و ادامه بدیم.
چطور میشه مهارت تموم کنندگیمون رو افزایش بدیم؟
از کوچک شروع کنید و قدم به قدم پیش برید
پروژههای بزرگ رو به بخشهای کوچیک تر تقسیم کنید. اگه بخواید همون اول کار به تموم چالش ها و مشکلاتی که باهاش قراره مواجه بشید فکر کنید، هیچوقت نمیتونید دست به کار بشید. پس پروژه رو به بخش های مختلف تقسیم کنید و یک بخش رو تموم کنید بعد برید سراغ بعدی.
برنامهریزی
بدون برنامه مشخص، احتمالا وسطاش راه خونتون رو هم گم می کنید اینقدر که همه چی بی نظم و نچسب میشه. پس با تعیین ددلاین و اهداف مشخص، میتونید کاری کنید پروژه فقط همون اول راه خوب و جذاب نباشه.
#soft_skill
@Syntax_fa
مهارت شروع کردن همیشه به عنوان یک ویژگی جذاب مطرحه. همهی ما دوست داریم کارها و پروژه هامونو با انرژی و اشتیاق زیاد شروع کنیم. اما نکتهای که شاید کمتر بهش توجه می کنیم اینه که مهارت تموم کردن، حتی از مهارت شروع کردنم مهمتره!
توانایی به پایان رسوندن کارها نه تنها نشون دهنده نظم و پشتکار هستش، بلکه باعث رشد واقعی و ایجاد اعتماد به نفس میشه.
شروع کردن آسونه، تموم کردن چالش واقعیه!
همهی پروژهها تو روزهای اول خیلی جذاب و دلبرن. ایدههای نو، انرژی اولیه، و هیجان برای شروع چیزی جدید باعث میشه احساس کنیم تو مسیر درستی قرار داریم. اما چند هفته یا چند ماه که میگذره اشتیاق اولیه کمرنگ میشه و کار به بخشهای چالشبرانگیز میرسه. اینجاست که تمایل به رها کردن کار یا درجا زدن به وجود میاد.
یادگیری واقعی موقع تموم کردن
وقتی کاری رو تموم می کنیم، تازه متوجه میشویم که چه چیزهایی یاد گرفتیم. از فاز ایدهپردازی تا اجرا و از حل چالشها تا نتیجهگیری، تموم این مراحل در پایان کار شکل واقعی پیدا می کنن. اگه پروژه رو نیمهکاره رها کنیم، از بخش مهمی از یادگیری محروم میشیم.
اعتماد به نفس از "فرام اسکرچ تا پروداکشن" میاد!
انجام یه پروژه از صفر تا صد، به شما نشون میده که توانایی تبدیل یک ایده به یک محصول واقعی رو دارید که باعث میشه اعتماد به نفس شما، به شدت افزایش پیدا کنه که میتونید کارهای بزرگتری رو هم انجام بدید.
بعضی چالش های میونه راه مشخص میشه:
- کارهای جزیرهای و گسسته
طول یک پروژه یا تسک طولانی، گاهی کارهایی انجام میدیم که تو لحظه به نظر میرسه ارتباط مستقیمی با نتیجه نهایی نداره. بعد چند وقت، این کارهای جزیرهای انباشته میشن و نمیدونیم چطور اون هارو کنار هم قرار بدیم تا پروژه به نتیجه برسه. اینجاست که نیاز به برنامهریزی دقیق و اولویتبندی اهمیت پیدا میکنه.
- کاهش اشتیاق
اشتیاق اولیه معمولا بعد از مدتی کاهش پیدا میکنه و پروژه فعلی برامون جذابیتش رو از دست میده. درست تو همین لحظه هاست که باید انگیزه هامون رو بیشتر کنیم و ادامه بدیم.
چطور میشه مهارت تموم کنندگیمون رو افزایش بدیم؟
از کوچک شروع کنید و قدم به قدم پیش برید
پروژههای بزرگ رو به بخشهای کوچیک تر تقسیم کنید. اگه بخواید همون اول کار به تموم چالش ها و مشکلاتی که باهاش قراره مواجه بشید فکر کنید، هیچوقت نمیتونید دست به کار بشید. پس پروژه رو به بخش های مختلف تقسیم کنید و یک بخش رو تموم کنید بعد برید سراغ بعدی.
برنامهریزی
بدون برنامه مشخص، احتمالا وسطاش راه خونتون رو هم گم می کنید اینقدر که همه چی بی نظم و نچسب میشه. پس با تعیین ددلاین و اهداف مشخص، میتونید کاری کنید پروژه فقط همون اول راه خوب و جذاب نباشه.
#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
اگه بعد از ساختن یه آبجکت توی ویو (مثلاً با متد 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