code crafter 🚀
اسم یک سایت جدید توی زمینه اموزش برنامه نویسی
به پیشنهاد یکی از دوستان یه سری به این سایت زدم صرفا جهت کنجکاوی
و حالا چند روزی هست که دیگه حسااابی درگیرش شدم
سیستم CodeCrfter یه پلتفرم نیست که فقط تئوری بخواد پیش بره. اینجا شما رو مستقیم میبره سراغ پیادهسازی ابزارهای واقعی و اوپن سورس دنیای نرمافزار مثل Git، Redis و Kafka.
روش کارشون اینجوریه که هر ابزار رو به تسکهای مرحلهای تقسیم کردن. مثلاً برای Git هفت تا تسک مشخص شده. شما با زبان برنامهنویسی دلخواهتون، کد مربوط به هر مرحله رو از صفر مینویسید و در مخزن (Repository) اختصاصی خودتون تو گیت سایت، پوش میکنید. اگه تستهای خودکار سایت موفقیتآمیز باشه، میتونید برید مرحله بعد.
یکی از بهترین بخشهای این سیستم اینه که بعد از هر مرحله، میتونید کدهای سایر کاربرها رو هم ببینید و از رویکردهای مختلف یاد بگیرید. این یعنی یک یادگیری عملی و جامعهمحور.
این سبک آموزشی که تمرکز رو روی پیادهسازی واقعی و مهندسی نرمافزار گذاشته، باعث میشه مفاهیم رو عمیقتر یاد بگیری و به جای حفظ کردن، واقعاً ساختن رو تجربه کنی.
https://codecrafters.io/
یه سری بهش بزنید😉
@softwrteach
------------------------
🌐💻
اسم یک سایت جدید توی زمینه اموزش برنامه نویسی
به پیشنهاد یکی از دوستان یه سری به این سایت زدم صرفا جهت کنجکاوی
و حالا چند روزی هست که دیگه حسااابی درگیرش شدم
سیستم CodeCrfter یه پلتفرم نیست که فقط تئوری بخواد پیش بره. اینجا شما رو مستقیم میبره سراغ پیادهسازی ابزارهای واقعی و اوپن سورس دنیای نرمافزار مثل Git، Redis و Kafka.
روش کارشون اینجوریه که هر ابزار رو به تسکهای مرحلهای تقسیم کردن. مثلاً برای Git هفت تا تسک مشخص شده. شما با زبان برنامهنویسی دلخواهتون، کد مربوط به هر مرحله رو از صفر مینویسید و در مخزن (Repository) اختصاصی خودتون تو گیت سایت، پوش میکنید. اگه تستهای خودکار سایت موفقیتآمیز باشه، میتونید برید مرحله بعد.
یکی از بهترین بخشهای این سیستم اینه که بعد از هر مرحله، میتونید کدهای سایر کاربرها رو هم ببینید و از رویکردهای مختلف یاد بگیرید. این یعنی یک یادگیری عملی و جامعهمحور.
این سبک آموزشی که تمرکز رو روی پیادهسازی واقعی و مهندسی نرمافزار گذاشته، باعث میشه مفاهیم رو عمیقتر یاد بگیری و به جای حفظ کردن، واقعاً ساختن رو تجربه کنی.
https://codecrafters.io/
یه سری بهش بزنید😉
@softwrteach
------------------------
🌐💻
CodeCrafters
The Software Pro's Best Kept Secret.
Real-world proficiency projects designed for experienced engineers. Develop software craftsmanship by recreating popular devtools from scratch.
🔥2🍌1
امروز داشتم برای استارت یک پروژه کراولر روی اینستاگرام تحقیق میکردم که به چند تا مورد باحال (و البته چالشبرانگیز!) برخوردم. هدفم این بود که بتونم یه تعدادی از کامنت آخر هر پست اینستاگرام رو استخراج کنم. اولش فکر کردم کار سادهایه، اما اینستاگرام خیلی هوشمندانهتر از این حرفاست! (راستش دست کم گرفته بودمش😅)
چرا Scrapy یا BeautifulSoup اینجا کار نمیکنند؟ 🚧
وقتی شروع به کار کردم، سراغ ابزارهای معمولم یعنی Scrapy و BeautifulSoup رفتم. اینها برای وبسایتهای معمولی که محتواشون مستقیماً توی کد HTML هست، فوقالعادهان. اما اینستاگرام یه جور دیگهست! وقتی یه لینک پست اینستاگرام رو باز میکنیم (حتی بدون اینکه لاگین باشیم)، فقط یه نمای کلی از پست رو میبینیم و برای دیدن همه کامنتها، ازمون میخواد لاگین کنیم یا محتوا با جاوااسکریپت به صورت پویا بارگذاری میشه.
اینجاست که Scrapy و BeautifulSoup به مشکل برمیخورن. اونا نمیتونن جاوااسکریپت رو اجرا کنن یا مراحل لاگین رو شبیهسازی کنن(البته میشه یه کارهایی روش انجام داد اماااا...). در واقع، اونا فقط HTML خام صفحه رو میبینن، قبل از اینکه کامنتها اصلاً بارگذاری بشن. برای همین، هرچی تلاش کردم، نتونستم با این ابزارها به کامنتها دسترسی پیدا کنم. 🤦♂️
چاره چی بود؟ سلنیوم (Selenium)! 🚀
بعد از کمی تحقیق، فهمیدم باید سراغ Selenium برم. سلنیوم یه مرورگر واقعی رو شبیهسازی میکنه (مثل کروم یا فایرفاکس) و میتونه جاوااسکریپت رو اجرا کنه. این یعنی میتونم بهش بگم وارد اکانتم بشه، به صفحه پست مورد نظر بره و بعد صبر کنه تا کامنتها بارگذاری بشن و بعد شروع به جمعآوری اطلاعات کنه.
گام بعدی ساخت اکانت مخصوص و ریسکهایش! 😬
تصمیم گرفتم یه اکانت اینستاگرام جدید، فقط برای همین پروژه بسازم. اما اینجا یه نکته مهم هست: حتی با Selenium و اکانت جداگانه، اینستاگرام به شدت با رباتها مبارزه میکنه و احتمال مسدود شدن اکانت شما بالاست! چرا؟ به چند دلیل اصلی:
1-فعالیت بیش از حد و غیرطبیعی (Rate Limiting):
اگه ربات من خیلی سریع و پشت سر هم کار کنه (مثلاً دهها پست رو در عرض چند دقیقه بررسی کنه)، اینستاگرام فوراً مشکوک میشه. کاربران واقعی اینقدر سریع نیستن!
راهحل: باید تأخیرهای تصادفی بین هر عملیات بذارم (مثلاً ۳ تا ۱۰ ثانیه مکث بین اسکرولها یا کلیکها) و بعد از یه تعداد مشخص پست، یه استراحت طولانیتر (مثلاً ۵ تا ۱۵ دقیقه) به ربات بدم. اینجوری کمتر شبیه ربات به نظر میرسم. 😴
2-شناسایی شدن به عنوان ربات (WebDriver Detection):
اینستاگرام میتونه تشخیص بده که دارم از یه مرورگر اتوماتیک استفاده میکنم. رفتارهای رباتیک مثل عدم حرکت ماوس، اسکرولهای خیلی یکنواخت و کلیکهای کاملاً دقیق و سریع، منو لو میدن.
راهحل: باید سعی کنم رفتارهای انسانی رو شبیهسازی کنم؛ مثلاً حرکت تصادفی ماوس، اسکرولهای متغیر (گاهی تند، گاهی کند) و حتی گاهی روی عناصر بیربط کلیک کنم. همچنین باید اکانتی که میسازم، کاملاً طبیعی به نظر بیاد (عکس پروفایل، چند تا پست و فالوور واقعی داشته باشه).
3-استفاده از IPهای مشکوک یا ثابت:
اگه تمام درخواستها از یه آدرس IP ثابت (مخصوصاً اگه IP سرور باشه) ارسال بشن، اینستاگرام خیلی سریع اون IP رو بلاک میکنه.
راهحل: باید از پروکسیهای چرخشی (Proxy Rotation) استفاده کنم، مخصوصاً پروکسیهای Residential که شبیه IP کاربران واقعی هستن. 🌐
4-عدم مدیریت خطا و کپچا:
اگه ربات من خطاهایی مثل "Rate Limit Exceeded" رو نادیده بگیره یا نتونه کپچاها (reCAPTCHA) رو حل کنه، به سرعت اکانت رو مسدود میکنه.
راهحل: باید برنامهام رو جوری بنویسم که در صورت بروز خطا، مکث طولانیتر یا تعویض پروکسی رو انجام بده. برای کپچا هم ممکنه نیاز به استفاده از سرویسهای آنلاین حل کپچا داشته باشم.
در کل، کار جالبیه، اما باید با احتیاط زیاد انجامش بشه. اسکرپینگ از اینستاگرام، حتی با Selenium، یک بازی موش و گربه مداومه! اینستاگرام همیشه داره روشهای تشخیص رباتها رو بهتر میکنه. برای همین، مسدود شدن اکانت من، حتی با رعایت همه این نکات، یه احتمال جدیه.
بهترین و امنترین راه (البته پولی)که من تا الان پیدا کردم، استفاده از APIهای قانونی شرکتهای شخص ثالثه که خودشون تمام این پیچیدگیها و ریسکها رو پوشش میدن.
@softwrteach
------------------------
🌐💻
چرا Scrapy یا BeautifulSoup اینجا کار نمیکنند؟ 🚧
وقتی شروع به کار کردم، سراغ ابزارهای معمولم یعنی Scrapy و BeautifulSoup رفتم. اینها برای وبسایتهای معمولی که محتواشون مستقیماً توی کد HTML هست، فوقالعادهان. اما اینستاگرام یه جور دیگهست! وقتی یه لینک پست اینستاگرام رو باز میکنیم (حتی بدون اینکه لاگین باشیم)، فقط یه نمای کلی از پست رو میبینیم و برای دیدن همه کامنتها، ازمون میخواد لاگین کنیم یا محتوا با جاوااسکریپت به صورت پویا بارگذاری میشه.
اینجاست که Scrapy و BeautifulSoup به مشکل برمیخورن. اونا نمیتونن جاوااسکریپت رو اجرا کنن یا مراحل لاگین رو شبیهسازی کنن(البته میشه یه کارهایی روش انجام داد اماااا...). در واقع، اونا فقط HTML خام صفحه رو میبینن، قبل از اینکه کامنتها اصلاً بارگذاری بشن. برای همین، هرچی تلاش کردم، نتونستم با این ابزارها به کامنتها دسترسی پیدا کنم. 🤦♂️
چاره چی بود؟ سلنیوم (Selenium)! 🚀
بعد از کمی تحقیق، فهمیدم باید سراغ Selenium برم. سلنیوم یه مرورگر واقعی رو شبیهسازی میکنه (مثل کروم یا فایرفاکس) و میتونه جاوااسکریپت رو اجرا کنه. این یعنی میتونم بهش بگم وارد اکانتم بشه، به صفحه پست مورد نظر بره و بعد صبر کنه تا کامنتها بارگذاری بشن و بعد شروع به جمعآوری اطلاعات کنه.
گام بعدی ساخت اکانت مخصوص و ریسکهایش! 😬
تصمیم گرفتم یه اکانت اینستاگرام جدید، فقط برای همین پروژه بسازم. اما اینجا یه نکته مهم هست: حتی با Selenium و اکانت جداگانه، اینستاگرام به شدت با رباتها مبارزه میکنه و احتمال مسدود شدن اکانت شما بالاست! چرا؟ به چند دلیل اصلی:
1-فعالیت بیش از حد و غیرطبیعی (Rate Limiting):
اگه ربات من خیلی سریع و پشت سر هم کار کنه (مثلاً دهها پست رو در عرض چند دقیقه بررسی کنه)، اینستاگرام فوراً مشکوک میشه. کاربران واقعی اینقدر سریع نیستن!
راهحل: باید تأخیرهای تصادفی بین هر عملیات بذارم (مثلاً ۳ تا ۱۰ ثانیه مکث بین اسکرولها یا کلیکها) و بعد از یه تعداد مشخص پست، یه استراحت طولانیتر (مثلاً ۵ تا ۱۵ دقیقه) به ربات بدم. اینجوری کمتر شبیه ربات به نظر میرسم. 😴
2-شناسایی شدن به عنوان ربات (WebDriver Detection):
اینستاگرام میتونه تشخیص بده که دارم از یه مرورگر اتوماتیک استفاده میکنم. رفتارهای رباتیک مثل عدم حرکت ماوس، اسکرولهای خیلی یکنواخت و کلیکهای کاملاً دقیق و سریع، منو لو میدن.
راهحل: باید سعی کنم رفتارهای انسانی رو شبیهسازی کنم؛ مثلاً حرکت تصادفی ماوس، اسکرولهای متغیر (گاهی تند، گاهی کند) و حتی گاهی روی عناصر بیربط کلیک کنم. همچنین باید اکانتی که میسازم، کاملاً طبیعی به نظر بیاد (عکس پروفایل، چند تا پست و فالوور واقعی داشته باشه).
3-استفاده از IPهای مشکوک یا ثابت:
اگه تمام درخواستها از یه آدرس IP ثابت (مخصوصاً اگه IP سرور باشه) ارسال بشن، اینستاگرام خیلی سریع اون IP رو بلاک میکنه.
راهحل: باید از پروکسیهای چرخشی (Proxy Rotation) استفاده کنم، مخصوصاً پروکسیهای Residential که شبیه IP کاربران واقعی هستن. 🌐
4-عدم مدیریت خطا و کپچا:
اگه ربات من خطاهایی مثل "Rate Limit Exceeded" رو نادیده بگیره یا نتونه کپچاها (reCAPTCHA) رو حل کنه، به سرعت اکانت رو مسدود میکنه.
راهحل: باید برنامهام رو جوری بنویسم که در صورت بروز خطا، مکث طولانیتر یا تعویض پروکسی رو انجام بده. برای کپچا هم ممکنه نیاز به استفاده از سرویسهای آنلاین حل کپچا داشته باشم.
در کل، کار جالبیه، اما باید با احتیاط زیاد انجامش بشه. اسکرپینگ از اینستاگرام، حتی با Selenium، یک بازی موش و گربه مداومه! اینستاگرام همیشه داره روشهای تشخیص رباتها رو بهتر میکنه. برای همین، مسدود شدن اکانت من، حتی با رعایت همه این نکات، یه احتمال جدیه.
بهترین و امنترین راه (البته پولی)که من تا الان پیدا کردم، استفاده از APIهای قانونی شرکتهای شخص ثالثه که خودشون تمام این پیچیدگیها و ریسکها رو پوشش میدن.
@softwrteach
------------------------
🌐💻
🎃1
What the f*ck Python! 😱
یکی از مقاله های باحالی بود که توی چند روز گذشته خوندمش
اموزش پایتون با تکه کدهای جالب و کارامد
روش باحالی بود برای درک برنامه نویس و کدینگ
من که باهاش حال کردم
لینک مقاله:
https://github.com/satwikkansal/wtfpython
@softwrteach
------------------------
🌐💻
یکی از مقاله های باحالی بود که توی چند روز گذشته خوندمش
اموزش پایتون با تکه کدهای جالب و کارامد
روش باحالی بود برای درک برنامه نویس و کدینگ
من که باهاش حال کردم
لینک مقاله:
https://github.com/satwikkansal/wtfpython
@softwrteach
------------------------
🌐💻
GitHub
GitHub - satwikkansal/wtfpython: What the f*ck Python? 😱
What the f*ck Python? 😱. Contribute to satwikkansal/wtfpython development by creating an account on GitHub.
👍1👌1🐳1
یه توضیح خیلی باحال از روند باز کردن google.com
تو این مقاله اومدن خیلی ریز و دقیق از اون سیگنالی که وقتی g رو فشار دادید که از کیبورد ساخته میشه تا رندر شدن صفحه توسط GPU داستان جالبیه
github.com/alex/what-happens-when
حوصله میخواد خوندنش😅
اما باحال بود مخصوصا اینکه به صورت پیوسته و مرحله به مرحله دقیق توضیح داده
@softwrteach
------------------------
🌐💻
تو این مقاله اومدن خیلی ریز و دقیق از اون سیگنالی که وقتی g رو فشار دادید که از کیبورد ساخته میشه تا رندر شدن صفحه توسط GPU داستان جالبیه
github.com/alex/what-happens-when
حوصله میخواد خوندنش😅
اما باحال بود مخصوصا اینکه به صورت پیوسته و مرحله به مرحله دقیق توضیح داده
@softwrteach
------------------------
🌐💻
GitHub
GitHub - alex/what-happens-when: An attempt to answer the age old interview question "What happens when you type google.com into…
An attempt to answer the age old interview question "What happens when you type google.com into your browser and press enter?" - alex/what-happens-when
😇1
یه مفهوم جدید که این روزا حسابی تو دنیای نرمافزار و برنامهنویسی سر و صدا کرده، Vibe Coding عه
این مفهوم که جدیدا با اومدن هوش مصنوعیهای مولد مثل Gemini، ChatGPT و Copilot معنی پیدا کرده و خیلیها دارن ازش حرف میزنن.
خب Vibe Coding دقیقاً چیه؟ 🤔
خیلی خلاصه و خودمونی بگم Vibe Coding یعنی شما پادشاه کدنویسیاید، ولی با کمک LLMها و هوش مصنوعی! 🤖
این رویکرد جدید اینطوریه که به جای اینکه از صفر تا صد یه برنامه رو خودمون کد بزنیم، ایدههامون رو با زبون خودمون (فارسی، انگلیسی، فرقی نداره!) به یه مدل زبانی بزرگ (مثل ChatGPT یا Gemini) میگیم. (یه جورایی همون پرامپت اولیه رو میدیم.) بعدش هم با کمک خود AI، کد رو هی بهتر و بهتر میکنیم. 😅
بقول بعضی از دوستان اینقدررر میزنیم تو سرش تا چیزی که میخوایم رو بهمون بده! 😂😂
در واقع، Vibe Coding رو میشه این شکلی تعریف کرد که برنامهنویسی بدون داشتن دانش فنی عمیق و تماماً بر پایه هوش مصنوعی!
باگ خوردیم؟ چیکار کنیم؟
سؤال پیش میاد اگه به باگ خوردیم چطوری حلش کنیم؟ هیچی! باز دوباره فیکس کردن باگ رو به خود هوش مصنوعی میسپاریم. یا اینکه با اضافه کردن یه قابلیت جدید، سعی میکنیم اون باگ رو به یه شکلی دور بزنیم. (این دیگه برمیگرده به خلاقیت خودتون! )
انگار یه بازی پینگپنگ بین ما و هوش مصنوعی با هدف ساختن یه قطعه کد داریم.
کدوم ابزارها بهترن؟
با توجه به تجربه شخصی خودم، مدلهایی مثل Gemini و Canva Code برای این کار خروجی نسبتاً بهتری دارن. امتحانشون کنید!
کی از Vibe Coding استفاده کنیم و حواسمون به چی باشه؟
درسته که این روش خیلی سریع به یه مدل اولیه، طرح اولیه یا MVP (حداقل محصول قابل قبول) از ایدهمون میرسونتمون، اما باید به این نکته هم اشاره کنم که به همین ترتیب، درصد آسیبپذیری امنیتی بسیار بالایی داره.
یه مشکل دیگه اینه که چون کد رو ما ننوشتیم، درک درستی از کد نداریم و همین موضوع باعث میشه توسعههای بعدی یا رفع باگهای پیچیده خیلی سخت بشه و بیشتر مواقع، منجر به دوبارهکاری میشه.
پس، Vibe Coding بیشتر برای موقعهایی که صرفاً میخوایم یه مدل اولیه، طرح اولیه یا MVP از ایدهمون رو پیاده کنیم، برای کد های دم دستی و... عالیه.
@softwrteach
------------------------
🌐💻
#code
#vibe-coding
این مفهوم که جدیدا با اومدن هوش مصنوعیهای مولد مثل Gemini، ChatGPT و Copilot معنی پیدا کرده و خیلیها دارن ازش حرف میزنن.
خب Vibe Coding دقیقاً چیه؟ 🤔
خیلی خلاصه و خودمونی بگم Vibe Coding یعنی شما پادشاه کدنویسیاید، ولی با کمک LLMها و هوش مصنوعی! 🤖
این رویکرد جدید اینطوریه که به جای اینکه از صفر تا صد یه برنامه رو خودمون کد بزنیم، ایدههامون رو با زبون خودمون (فارسی، انگلیسی، فرقی نداره!) به یه مدل زبانی بزرگ (مثل ChatGPT یا Gemini) میگیم. (یه جورایی همون پرامپت اولیه رو میدیم.) بعدش هم با کمک خود AI، کد رو هی بهتر و بهتر میکنیم. 😅
بقول بعضی از دوستان اینقدررر میزنیم تو سرش تا چیزی که میخوایم رو بهمون بده! 😂😂
در واقع، Vibe Coding رو میشه این شکلی تعریف کرد که برنامهنویسی بدون داشتن دانش فنی عمیق و تماماً بر پایه هوش مصنوعی!
باگ خوردیم؟ چیکار کنیم؟
سؤال پیش میاد اگه به باگ خوردیم چطوری حلش کنیم؟ هیچی! باز دوباره فیکس کردن باگ رو به خود هوش مصنوعی میسپاریم. یا اینکه با اضافه کردن یه قابلیت جدید، سعی میکنیم اون باگ رو به یه شکلی دور بزنیم. (این دیگه برمیگرده به خلاقیت خودتون! )
انگار یه بازی پینگپنگ بین ما و هوش مصنوعی با هدف ساختن یه قطعه کد داریم.
کدوم ابزارها بهترن؟
با توجه به تجربه شخصی خودم، مدلهایی مثل Gemini و Canva Code برای این کار خروجی نسبتاً بهتری دارن. امتحانشون کنید!
کی از Vibe Coding استفاده کنیم و حواسمون به چی باشه؟
درسته که این روش خیلی سریع به یه مدل اولیه، طرح اولیه یا MVP (حداقل محصول قابل قبول) از ایدهمون میرسونتمون، اما باید به این نکته هم اشاره کنم که به همین ترتیب، درصد آسیبپذیری امنیتی بسیار بالایی داره.
یه مشکل دیگه اینه که چون کد رو ما ننوشتیم، درک درستی از کد نداریم و همین موضوع باعث میشه توسعههای بعدی یا رفع باگهای پیچیده خیلی سخت بشه و بیشتر مواقع، منجر به دوبارهکاری میشه.
پس، Vibe Coding بیشتر برای موقعهایی که صرفاً میخوایم یه مدل اولیه، طرح اولیه یا MVP از ایدهمون رو پیاده کنیم، برای کد های دم دستی و... عالیه.
@softwrteach
------------------------
🌐💻
#code
#vibe-coding
❤2👻1
سوال اصلی اینه MVT یا MVC ؟🤔
یکی از سوالات مهم توی بحث برنامه نویسی وب که همیشه پیش میاد و حتی میشه گفت پایه ثابت بعضی از جلسات مصاحبه هم هست همین mvt و mvc عه
به طور خلاصه mvt و mvc دو الگوی معماری مهم و پرطرفدار توی برنامه نویسی وب و مهندسی نرم افزار به شمار میره
میشه گفت MVCیا همون (Model-View-Controller)یک الگوی کلاسیک:
این الگوی کلاسیک و پرکاربرد که برنامه رو به سه بخش اصلی تقسیم میکنه
(مدل) Model :
کارش چیه؟ مدیریت دادهها و منطق دیتابیس. یعنی هرچیزی که مربوط به دیتابیس (مثل ذخیره و خوندن اطلاعات) و قوانین اصلی برنامه (مثل اعتبارسنجی و...) باشه، توی مدل انجام میشه.
ویژگی مهم: مدل از View و Controller بیخبره و فقط روی دادهها تمرکز داره.
(نما) View :
کارش چیه؟ مسئول نمایش رابط کاربری (UI) به کاربره. شامل کدای HTML, CSS و JavaScript میشه و فقط اطلاعاتی که از Controller میگیره رو نشون میده.
ویژگی مهم: View هیچ منطق پردازشی نداره و از Model و Controller بیخبره.
(کنترلر) Controller :
کارش چیه؟ نقش واسط و هماهنگکننده بین Model و View رو داره. درخواستهای کاربر (مثل کلیک روی دکمه) رو دریافت میکنه، با Model ارتباط میگیره تا دادهها رو آماده کنه، بعد تصمیم میگیره کدوم View با چه دادههایی به کاربر نشون داده بشه.
ویژگی مهم: Controller هم از Model و هم از View خبر داره و جریان برنامه رو مدیریت میکنه.
یه تعداد از فریمورکهای معروفی که با این معمازی کار میکنن: Laravel (PHP), Ruby on Rails (Ruby), ASP.NET MVC (C#)
مورد دوم MVT یا (Model-View-Template) رویکرد جنگو:
این معماری مخصوص فریمورک جنگو (Django) توی پایتونه. خیلی شبیه MVC هست، اما با یه تغییر توی نقشها و اسمها:
(مدل) Model :
کارش چیه؟ دقیقاً مثل مدل توی MVC، مدیریت دادهها و منطق کسبوکار رو بر عهده داره و با دیتابیس کار میکنه.
(نما در MVT) View :
کارش چیه؟ توی توی جنگو "View" همون کاری رو میکنه که "Controller" توی MVC انجام میده. یعنی درخواستهای کاربر رو پردازش میکنه، با Model ارتباط میگیره و تصمیم میگیره که کدوم Template باید نشون داده بشه.
ویژگی مهم: View در جنگو مسئول منطق پردازش و هماهنگیه.
(قالب) Template :
کارش چیه؟ این همون چیزیه که توی MVC بهش "View" میگفتیم. مسئول نمایش رابط کاربری به کاربره و شامل فایلهای HTML میشه که دادههای پویا رو از View دریافت میکنه.
ویژگی مهم: Templateها هیچ منطق کسبوکاری ندارن و فقط برای نمایش استفاده میشن.
اما تفاوتهای کلیدی :🔑
1 - نقش view :
توی MVC صرفاً نمایش دهنده UI.
اما در MVT مدیریت منطق برنامه و درخواستها (همون نقش Controller توی MVC).
2- نقش controller :
درون MVC یک جزء مشخص و صریح که جریان رو کنترل میکنه.
اما برای MVT جنگو خودش بخش بزرگی از وظایف Controller رو به صورت داخلی مدیریت میکنه و بقیهاش رو به "View" (در مفهوم جنگو) محول میکنه. یعنی یک Controller جدا و صریح نداریم.
@softwrteach
------------------------
🌐💻
#programming
#architecture
یکی از سوالات مهم توی بحث برنامه نویسی وب که همیشه پیش میاد و حتی میشه گفت پایه ثابت بعضی از جلسات مصاحبه هم هست همین mvt و mvc عه
به طور خلاصه mvt و mvc دو الگوی معماری مهم و پرطرفدار توی برنامه نویسی وب و مهندسی نرم افزار به شمار میره
میشه گفت MVCیا همون (Model-View-Controller)یک الگوی کلاسیک:
این الگوی کلاسیک و پرکاربرد که برنامه رو به سه بخش اصلی تقسیم میکنه
(مدل) Model :
کارش چیه؟ مدیریت دادهها و منطق دیتابیس. یعنی هرچیزی که مربوط به دیتابیس (مثل ذخیره و خوندن اطلاعات) و قوانین اصلی برنامه (مثل اعتبارسنجی و...) باشه، توی مدل انجام میشه.
ویژگی مهم: مدل از View و Controller بیخبره و فقط روی دادهها تمرکز داره.
(نما) View :
کارش چیه؟ مسئول نمایش رابط کاربری (UI) به کاربره. شامل کدای HTML, CSS و JavaScript میشه و فقط اطلاعاتی که از Controller میگیره رو نشون میده.
ویژگی مهم: View هیچ منطق پردازشی نداره و از Model و Controller بیخبره.
(کنترلر) Controller :
کارش چیه؟ نقش واسط و هماهنگکننده بین Model و View رو داره. درخواستهای کاربر (مثل کلیک روی دکمه) رو دریافت میکنه، با Model ارتباط میگیره تا دادهها رو آماده کنه، بعد تصمیم میگیره کدوم View با چه دادههایی به کاربر نشون داده بشه.
ویژگی مهم: Controller هم از Model و هم از View خبر داره و جریان برنامه رو مدیریت میکنه.
یه تعداد از فریمورکهای معروفی که با این معمازی کار میکنن: Laravel (PHP), Ruby on Rails (Ruby), ASP.NET MVC (C#)
مورد دوم MVT یا (Model-View-Template) رویکرد جنگو:
این معماری مخصوص فریمورک جنگو (Django) توی پایتونه. خیلی شبیه MVC هست، اما با یه تغییر توی نقشها و اسمها:
(مدل) Model :
کارش چیه؟ دقیقاً مثل مدل توی MVC، مدیریت دادهها و منطق کسبوکار رو بر عهده داره و با دیتابیس کار میکنه.
(نما در MVT) View :
کارش چیه؟ توی توی جنگو "View" همون کاری رو میکنه که "Controller" توی MVC انجام میده. یعنی درخواستهای کاربر رو پردازش میکنه، با Model ارتباط میگیره و تصمیم میگیره که کدوم Template باید نشون داده بشه.
ویژگی مهم: View در جنگو مسئول منطق پردازش و هماهنگیه.
(قالب) Template :
کارش چیه؟ این همون چیزیه که توی MVC بهش "View" میگفتیم. مسئول نمایش رابط کاربری به کاربره و شامل فایلهای HTML میشه که دادههای پویا رو از View دریافت میکنه.
ویژگی مهم: Templateها هیچ منطق کسبوکاری ندارن و فقط برای نمایش استفاده میشن.
اما تفاوتهای کلیدی :🔑
1 - نقش view :
توی MVC صرفاً نمایش دهنده UI.
اما در MVT مدیریت منطق برنامه و درخواستها (همون نقش Controller توی MVC).
2- نقش controller :
درون MVC یک جزء مشخص و صریح که جریان رو کنترل میکنه.
اما برای MVT جنگو خودش بخش بزرگی از وظایف Controller رو به صورت داخلی مدیریت میکنه و بقیهاش رو به "View" (در مفهوم جنگو) محول میکنه. یعنی یک Controller جدا و صریح نداریم.
@softwrteach
------------------------
🌐💻
#programming
#architecture
🔥1🦄1
This media is not supported in your browser
VIEW IN TELEGRAM
یکی از بهترین ویدیو های بصری نحوه عملکرد LLM ها
حین دیدنش قشنگ خاطرات یکی دو سال از دوران دانشگاه از جلو چشمم رد شد😅
@softwrteach
------------------------
🌐💻
حین دیدنش قشنگ خاطرات یکی دو سال از دوران دانشگاه از جلو چشمم رد شد😅
@softwrteach
------------------------
🌐💻
❤2🌭1
یکی از مهم ترین بخش های دولاپ یک پروژه انتخاب مناسب ترین دیتابیس با توجه به نیازها و فیچر های پروژه ست! PostgreSQL یکی از اون دیتابیسهای پرطرفداره که به خاطر قابلیتهای باحالش تو خیلی از پروژهها استفاده میشه. یکی از این قابلیتهای خفن، MVCC یا همون Multiversion Concurrency Control (کنترل همزمانی چندنسخهای)عه.
حالا این MVCC چیه و چرا انقدر مهمه؟
خب MVCC یه جور مکانیزمه که تو دیتابیسها کمک میکنه چند تا تراکنش (Transaction) بتونن همزمان روی دادهها کار کنن، بدون اینکه به هم گیر بدن یا دادهها قفل بشن! به جای اینکه دادهها رو کامل قفل کنه، MVCC نسخههای مختلف دادهها رو نگه میداره. اینجوری هر تراکنش میتونه مستقل کارشو انجام بده.
هدف اصلی MVCC چیه؟
🌟 همزمانی بالا: چند تا کاربر بتونن همزمان بخونن و بنویسن.
🔓 بدون قفل اضافی: خوندن دادهها جلوی نوشتن رو نگیره و برعکس.
✅ دادههای معتبر: هر تراکنش دادههای درست و سازگار ببینه.
خب MVCC چطور کار میکنه ؟
بهتره بگیم MVCC با درست کردن نسخههای مختلف (Snapshots) از دادهها برای هر تراکنش کار میکنه. حالا این یعنی چی؟ بریم قدم به قدم توضیح بدیم:
۱. ساختن نسخههای داده
هر وقت یه تراکنش دادهای رو تغییر بده (مثل INSERT، UPDATE یا DELETE)، PostgreSQL یه نسخه جدید از داده میسازه.
نسخه قدیمی دادهها نگه داشته میشه تا بقیه تراکنشهایی که بهش نیاز دارن، بتونن ازش استفاده کنن.
۲. شناسه تراکنش (Transaction ID)
هر تراکنش یه شناسه منحصربهفرد (XID) میگیره.
هر ردیف تو جدول اطلاعاتی مثل xmin (تراکنشی که ردیف رو ساخته) و xmax (تراکنشی که ردیف رو حذف یا آپدیت کرده) داره.
این اطلاعات به PostgreSQL میگه کدوم نسخه از داده برای یه تراکنش خاص قابل دیدنه.
۳. فرایند Snapshot Isolation
وقتی یه تراکنش شروع میشه، PostgreSQL یه Snapshot از دیتابیس میگیره که نشون میده دادهها تو اون لحظه چه شکلیان.
دادههایی که قبل از شروع تراکنش ثبت شدن و هنوز فعالن (Committed)، قابل دیدنن.
تغییراتی که بعد از شروع تراکنش توسط بقیه اعمال بشن، برای این تراکنش دیده نمیشن.
۴. مدیریت read, write
📖 خوندن (Read): تراکنشها بدون قفل کردن دادهها رو میخونن، چون هر کدوم نسخهای از داده رو میبینن که با Snapshot خودشون جور درمیاد.
✍️ نوشتن (Write): وقتی دادهای تغییر میکنه، یه نسخه جدید ساخته میشه، ولی نسخه قدیمی برای بقیه تراکنشها هنوز در دسترسه.
این روش باعث میشه خوندن و نوشتن بدون گیر کردن همزمان انجام بشن.
۵. پاک کردن نسخههای قدیمی (Vacuuming)
چون MVCC نسخههای قدیمی دادهها رو نگه میداره، ممکنه دیسک پر بشه!
حالا PostgreSQL با یه فرآیند به اسم VACUUM نسخههای قدیمی و بلااستفاده (Dead Tuples) رو پاک میکنه تا فضای دیسک آزاد بشه.
باید مرتب VACUUM و ANALYZE رو اجرا کنی تا عملکرد دیتابیس رو فرم باشه! 🚀
@softwrteach
------------------------
🌐💻
#programming
#SQL
#PosgresSQL
حالا این MVCC چیه و چرا انقدر مهمه؟
خب MVCC یه جور مکانیزمه که تو دیتابیسها کمک میکنه چند تا تراکنش (Transaction) بتونن همزمان روی دادهها کار کنن، بدون اینکه به هم گیر بدن یا دادهها قفل بشن! به جای اینکه دادهها رو کامل قفل کنه، MVCC نسخههای مختلف دادهها رو نگه میداره. اینجوری هر تراکنش میتونه مستقل کارشو انجام بده.
هدف اصلی MVCC چیه؟
🌟 همزمانی بالا: چند تا کاربر بتونن همزمان بخونن و بنویسن.
🔓 بدون قفل اضافی: خوندن دادهها جلوی نوشتن رو نگیره و برعکس.
✅ دادههای معتبر: هر تراکنش دادههای درست و سازگار ببینه.
خب MVCC چطور کار میکنه ؟
بهتره بگیم MVCC با درست کردن نسخههای مختلف (Snapshots) از دادهها برای هر تراکنش کار میکنه. حالا این یعنی چی؟ بریم قدم به قدم توضیح بدیم:
۱. ساختن نسخههای داده
هر وقت یه تراکنش دادهای رو تغییر بده (مثل INSERT، UPDATE یا DELETE)، PostgreSQL یه نسخه جدید از داده میسازه.
نسخه قدیمی دادهها نگه داشته میشه تا بقیه تراکنشهایی که بهش نیاز دارن، بتونن ازش استفاده کنن.
۲. شناسه تراکنش (Transaction ID)
هر تراکنش یه شناسه منحصربهفرد (XID) میگیره.
هر ردیف تو جدول اطلاعاتی مثل xmin (تراکنشی که ردیف رو ساخته) و xmax (تراکنشی که ردیف رو حذف یا آپدیت کرده) داره.
این اطلاعات به PostgreSQL میگه کدوم نسخه از داده برای یه تراکنش خاص قابل دیدنه.
۳. فرایند Snapshot Isolation
وقتی یه تراکنش شروع میشه، PostgreSQL یه Snapshot از دیتابیس میگیره که نشون میده دادهها تو اون لحظه چه شکلیان.
دادههایی که قبل از شروع تراکنش ثبت شدن و هنوز فعالن (Committed)، قابل دیدنن.
تغییراتی که بعد از شروع تراکنش توسط بقیه اعمال بشن، برای این تراکنش دیده نمیشن.
۴. مدیریت read, write
📖 خوندن (Read): تراکنشها بدون قفل کردن دادهها رو میخونن، چون هر کدوم نسخهای از داده رو میبینن که با Snapshot خودشون جور درمیاد.
✍️ نوشتن (Write): وقتی دادهای تغییر میکنه، یه نسخه جدید ساخته میشه، ولی نسخه قدیمی برای بقیه تراکنشها هنوز در دسترسه.
این روش باعث میشه خوندن و نوشتن بدون گیر کردن همزمان انجام بشن.
۵. پاک کردن نسخههای قدیمی (Vacuuming)
چون MVCC نسخههای قدیمی دادهها رو نگه میداره، ممکنه دیسک پر بشه!
حالا PostgreSQL با یه فرآیند به اسم VACUUM نسخههای قدیمی و بلااستفاده (Dead Tuples) رو پاک میکنه تا فضای دیسک آزاد بشه.
باید مرتب VACUUM و ANALYZE رو اجرا کنی تا عملکرد دیتابیس رو فرم باشه! 🚀
@softwrteach
------------------------
🌐💻
#programming
#SQL
#PosgresSQL
🔥3❤1👨💻1
به هر کدوم از مدلهای معروف هوشمصنوعی 10هزار دلار دادن که ترید کنن و تا به امروز ChatGPT بدترین عملکرد رو داشته و پولش به حدود 3هزار دلار رسیده، از اون سمت هم DeepSeek بهترین عملکرد رو داشته و حدود 10 درصد سود کرده.
آمار لحظهایشون رو میتونید تو سایت زیر ببینید:
https://nof1.ai/
@softwrteach
------------------------
🌐💻
آمار لحظهایشون رو میتونید تو سایت زیر ببینید:
https://nof1.ai/
@softwrteach
------------------------
🌐💻
❤2🌭2⚡1🔥1🤣1👻1
واقعیت تلخ یادگیری برنامهنویسی (که هیچکس به شما نمیگوید)
همه میگویند یادگیری برنامهنویسی سرگرمکننده است.
آنها از «ساختن پروژههای خفن»، «گرفتن اولین شغل توسعهدهندگی» و «نوشتن کدهای زیبا» حرف میزنند.
اما واقعیت تلخ اینجاست:
بیشتر روزها، این کار گیجکننده، کلافهکننده و پر از شک و تردید است.
و این کاملاً طبیعی است.
چون یادگیری برنامهنویسی فقط مربوط به سینتکس (syntax) نیست، بلکه به صبر، شکست و دیدگاه مربوط میشود.
مبارزه اولیهای که هیچکس در مورد آن به شما هشدار نمیدهد
وقتی کدنویسی را شروع میکنید، تصور میکنید که قرار است اپلیکیشنهایی شبیه به آموزشها بسازید.
اما در عوض، ساعتها به مانیتور خیره میشوید و از خود میپرسید چرا حلقه (loop) شما اجرا نمیشود یا چرا وقتی «فقط یک خط را تغییر دادید» همهچیز خراب میشود.
شما یک خطا را ۱۰ بار در گوگل جستجو خواهید کرد.
یک جواب تکراری را در Stack Overflow بارها و بارها خواهید خواند.
کدی را کپی میکنید که کار میکند و اصلاً نمیدانید *چرا* کار میکند.
این شکست نیست.
این دقیقاً همان روشی است که تکتک توسعهدهندگان یاد میگیرند.
آموزشها شما را نجات نخواهند داد
همه ما «مرحله آموزش» را پشت سر میگذاریم.
یوتیوب تماشا میکنید، همراه با آن پیش میروید، و همهچیز عالی کار میکند تا زمانی که سعی میکنید خودتان چیزی بسازید.
آن وقت... هیچچیز منطقی به نظر نمیرسد.
این همان لحظهای است که بیشتر مردم جا میزنند.
چون فکر میکنند: «من ذاتاً در برنامهنویسی خوب نیستم.»
اما حقیقت این است...
شما با تماشای کدنویسی دیگران یاد نمیگیرید؛ شما با گیر کردن و پیدا کردن راه خروج (حل کردن مشکل) یاد میگیرید.
مرحله فلات (و اینکه چرا چیز خوبی است)
یک مرحله میانی عجیب وجود دارد که هیچکس در مورد آن صحبت نمیکند.
شما دیگر مبتدی نیستید، اما احساس پیشرفته بودن هم ندارید.
میتوانید چیزهایی بسازید... اما هنوز در کدبیس (codebase) شخص دیگری گم میشوید.
در آن مرحله احساس میکنید که در حال پیشرفت نیستید.
اما در واقع، هستید.
شما در حال ساختن «شهود» هستید؛ آن مهارت آرامی که به شما امکان میدهد کد را بخوانید، باگها را پیشبینی کنید و تصمیمات تمیزتری بگیرید.
این پیشرفت نامرئی است.
و فقط در صورتی خودش را نشان میدهد که ادامه دهید.
آنچه در لینکدین نمیبینید
مردم پست میگذارند: «همین الان اولین شغلم را به عنوان توسعهدهنده گرفتم 💪🏻»
چیزی که پست نمیکنند، آن ۸ ماه شک به خود قبل از آن است.
شبهایی که صرف دیباگ کردن شد.
لحظاتی که به ترک کردن فکر کردند.
«سندروم ایمپاستر» (Imposter Syndrome) که هرگز واقعاً از بین نمیرود.
اگر شما در آن مرحله هستید، کلافه، و از خود میپرسید که آیا این مسیر برای شما مناسب است، به یاد داشته باشید:
کسانی که موفق میشوند، باهوشترینها نیستند.
آنها فقط کسانی هستند که متوقف نشدند.
یادگیری واقعی این شکلی است
✅ خراب کردن چیزی که قبلاً کار میکرد
✅ ساعتها جستجو برای یافتن پاسخ
✅ فهمیدن اینکه یک چیز ساده و پایهای را اشتباه فهمیده بودید
✅ درست کردن آن و فهمیدن *چرایی* آن
این یعنی رشد.
این یعنی یادگیری برنامهنویسی.
جذاب نیست، اما واقعی است.
و این همان چیزی است که مبتدیان را به توسعهدهندگان تبدیل میکند.
چیزهایی که بیشتر از همه به من کمک کرد
چند عادت کوچک همهچیز را برای من تغییر داد:
- پروژههای کوچک بسازید. منتظر «ایده بزرگ» نمانید. فقط *هر چیزی* را بسازید.
- کد بد بنویسید. ماه آینده کد تمیزتری خواهید نوشت.
- کد دیگران را بخوانید. مثل سفر در زمان به مغز شخص دیگری است.
- استراحت کنید. گاهی اوقات فاصله گرفتن از کار، باگهای بیشتری را نسبت به تا دیروقت بیدار ماندن برطرف میکند.
یادگیری برنامهنویسی یک ماراتن است، نه یک هکاتون.
نکات پایانی (از یک توسعهدهنده به توسعهدهنده دیگر)
اگر در حال تقلا برای یادگیری هستید، لطفاً بدانید که عقب نیستید.
هیچ جدول زمانی، هیچ خط پایانی و هیچ «راه درست» واحدی برای یادگیری وجود ندارد.
شما فقط باید به کدنویسی ادامه دهید.
یک باگ، یک پروژه، یک درس در هر زمان.
هر توسعهدهندهای که تحسینش میکنید، زمانی دقیقاً جایی بوده که شما الان هستید: خسته، سردرگم، و در این فکر که آیا هرگز «موفق میشود» (یا 'موضوع را میگیرد').
شما هم خواهید شد.
فقط کافی است دست از تلاش برندارید.
چون واقعیت تلخ این است...
یادگیری برنامهنویسی پر از آشفتگی است، اما به هر خط کدی که مینویسید میارزد .
(ترجمه با هوش مصنوعی)
https://dev.to/hadil/the-hard-truth-about-learning-to-code-that-no-one-tells-you-15c1
@softwrteach
------------------------
🌐💻
همه میگویند یادگیری برنامهنویسی سرگرمکننده است.
آنها از «ساختن پروژههای خفن»، «گرفتن اولین شغل توسعهدهندگی» و «نوشتن کدهای زیبا» حرف میزنند.
اما واقعیت تلخ اینجاست:
بیشتر روزها، این کار گیجکننده، کلافهکننده و پر از شک و تردید است.
و این کاملاً طبیعی است.
چون یادگیری برنامهنویسی فقط مربوط به سینتکس (syntax) نیست، بلکه به صبر، شکست و دیدگاه مربوط میشود.
مبارزه اولیهای که هیچکس در مورد آن به شما هشدار نمیدهد
وقتی کدنویسی را شروع میکنید، تصور میکنید که قرار است اپلیکیشنهایی شبیه به آموزشها بسازید.
اما در عوض، ساعتها به مانیتور خیره میشوید و از خود میپرسید چرا حلقه (loop) شما اجرا نمیشود یا چرا وقتی «فقط یک خط را تغییر دادید» همهچیز خراب میشود.
شما یک خطا را ۱۰ بار در گوگل جستجو خواهید کرد.
یک جواب تکراری را در Stack Overflow بارها و بارها خواهید خواند.
کدی را کپی میکنید که کار میکند و اصلاً نمیدانید *چرا* کار میکند.
این شکست نیست.
این دقیقاً همان روشی است که تکتک توسعهدهندگان یاد میگیرند.
آموزشها شما را نجات نخواهند داد
همه ما «مرحله آموزش» را پشت سر میگذاریم.
یوتیوب تماشا میکنید، همراه با آن پیش میروید، و همهچیز عالی کار میکند تا زمانی که سعی میکنید خودتان چیزی بسازید.
آن وقت... هیچچیز منطقی به نظر نمیرسد.
این همان لحظهای است که بیشتر مردم جا میزنند.
چون فکر میکنند: «من ذاتاً در برنامهنویسی خوب نیستم.»
اما حقیقت این است...
شما با تماشای کدنویسی دیگران یاد نمیگیرید؛ شما با گیر کردن و پیدا کردن راه خروج (حل کردن مشکل) یاد میگیرید.
مرحله فلات (و اینکه چرا چیز خوبی است)
یک مرحله میانی عجیب وجود دارد که هیچکس در مورد آن صحبت نمیکند.
شما دیگر مبتدی نیستید، اما احساس پیشرفته بودن هم ندارید.
میتوانید چیزهایی بسازید... اما هنوز در کدبیس (codebase) شخص دیگری گم میشوید.
در آن مرحله احساس میکنید که در حال پیشرفت نیستید.
اما در واقع، هستید.
شما در حال ساختن «شهود» هستید؛ آن مهارت آرامی که به شما امکان میدهد کد را بخوانید، باگها را پیشبینی کنید و تصمیمات تمیزتری بگیرید.
این پیشرفت نامرئی است.
و فقط در صورتی خودش را نشان میدهد که ادامه دهید.
آنچه در لینکدین نمیبینید
مردم پست میگذارند: «همین الان اولین شغلم را به عنوان توسعهدهنده گرفتم 💪🏻»
چیزی که پست نمیکنند، آن ۸ ماه شک به خود قبل از آن است.
شبهایی که صرف دیباگ کردن شد.
لحظاتی که به ترک کردن فکر کردند.
«سندروم ایمپاستر» (Imposter Syndrome) که هرگز واقعاً از بین نمیرود.
اگر شما در آن مرحله هستید، کلافه، و از خود میپرسید که آیا این مسیر برای شما مناسب است، به یاد داشته باشید:
کسانی که موفق میشوند، باهوشترینها نیستند.
آنها فقط کسانی هستند که متوقف نشدند.
یادگیری واقعی این شکلی است
✅ خراب کردن چیزی که قبلاً کار میکرد
✅ ساعتها جستجو برای یافتن پاسخ
✅ فهمیدن اینکه یک چیز ساده و پایهای را اشتباه فهمیده بودید
✅ درست کردن آن و فهمیدن *چرایی* آن
این یعنی رشد.
این یعنی یادگیری برنامهنویسی.
جذاب نیست، اما واقعی است.
و این همان چیزی است که مبتدیان را به توسعهدهندگان تبدیل میکند.
چیزهایی که بیشتر از همه به من کمک کرد
چند عادت کوچک همهچیز را برای من تغییر داد:
- پروژههای کوچک بسازید. منتظر «ایده بزرگ» نمانید. فقط *هر چیزی* را بسازید.
- کد بد بنویسید. ماه آینده کد تمیزتری خواهید نوشت.
- کد دیگران را بخوانید. مثل سفر در زمان به مغز شخص دیگری است.
- استراحت کنید. گاهی اوقات فاصله گرفتن از کار، باگهای بیشتری را نسبت به تا دیروقت بیدار ماندن برطرف میکند.
یادگیری برنامهنویسی یک ماراتن است، نه یک هکاتون.
نکات پایانی (از یک توسعهدهنده به توسعهدهنده دیگر)
اگر در حال تقلا برای یادگیری هستید، لطفاً بدانید که عقب نیستید.
هیچ جدول زمانی، هیچ خط پایانی و هیچ «راه درست» واحدی برای یادگیری وجود ندارد.
شما فقط باید به کدنویسی ادامه دهید.
یک باگ، یک پروژه، یک درس در هر زمان.
هر توسعهدهندهای که تحسینش میکنید، زمانی دقیقاً جایی بوده که شما الان هستید: خسته، سردرگم، و در این فکر که آیا هرگز «موفق میشود» (یا 'موضوع را میگیرد').
شما هم خواهید شد.
فقط کافی است دست از تلاش برندارید.
چون واقعیت تلخ این است...
یادگیری برنامهنویسی پر از آشفتگی است، اما به هر خط کدی که مینویسید میارزد .
(ترجمه با هوش مصنوعی)
https://dev.to/hadil/the-hard-truth-about-learning-to-code-that-no-one-tells-you-15c1
@softwrteach
------------------------
🌐💻
❤2👍1👏1
Forwarded from Linuxor ?
یه آسیب پذیری فوق العاده بحرانی توی فریم ورک ریاکت پیدا شده که به مهاجم دسترسی اجرای کد از راه دور رو میده!
نمره CVSS این آسیب پذیری 10/10 یعنی بالا ترین درجه خطر رو داره، توصیه شده فورا ریاکت رو آپدیت کنید.
پکیجهایی که آلودهاند:
react‑server‑dom‑webpack
react‑server‑dom‑parcel
react‑server‑dom‑turbopack
و کلی دیگر از ابزار ها درگیر شدن، توضیحات بیشتر...
@Linuxor
نمره CVSS این آسیب پذیری 10/10 یعنی بالا ترین درجه خطر رو داره، توصیه شده فورا ریاکت رو آپدیت کنید.
پکیجهایی که آلودهاند:
react‑server‑dom‑webpack
react‑server‑dom‑parcel
react‑server‑dom‑turbopack
و کلی دیگر از ابزار ها درگیر شدن، توضیحات بیشتر...
@Linuxor
❤1🕊1
نوامبر ۲۰۲۵ گزارش جدیدی در خصوص مهارت های سبز منتشر شد.
این گزارش یکی از مهمترین تحلیلهای LinkedIn دربارهٔ آیندهٔ استخدام در دنیا مخصوصا اروپاست.
🔹 ۱) رشد مهارتهای سبز در برابر نیاز بازار کار
• مهارتهای سبز در دنیا ۸٪ رشد داشتهاند.
• اما نیاز شرکتها به این مهارتها ۲۲٪ جهش کرده.
یعنی تقاضا خیلی سریعتر از عرضه در حال رشد است.
🔹 ۲) سرعت استخدام
افرادی که حتی یک مهارت سبز در رزومهشان داشته باشند:
📈 ۴۶.۶٪ سریعتر از دیگران استخدام میشوند.
این عدد یکی از کلیدیترین دیتاهای ۲۰۲۵ است.
🔹 ۳) کشورهای پیشرو در اروپا
طبق دادههای LinkedIn،
کشورهایی که بیشترین رشد مهارتهای سبز را داشتهاند عبارتند از:
🇩🇪 آلمان
🇫🇷 فرانسه
🇬🇧 بریتانیا
این کشورها جذب نیروی متخصص را با اولویت Green Skills انجام میدهند.
🔹 ۴) چرا این مهارتها بینرشتهای شدهاند؟
دیگر فقط برای محیطزیست نیست؛
مهارت سبز در حال ورود به اکثر حوزههاست:
• Data & Analytics
• Project Management
• Engineering
• Operations / Supply Chain
• Business & Strategy
دلیلش:
شرکتها برای گزارشهای ESG، کاهش اتلاف، بهینهسازی مصرف انرژی و رعایت قوانین اروپا به متخصصانی نیاز دارند که زبان داده و پایداری را بفهمند.
🔹 ۵) نمونهای از مهارتهای سبز پرتقاضا
• Energy / Resource Analysis
• ESG / Sustainability Reporting
• Process Optimization
• Green Data Analytics
• Risk & Environmental Compliance
اینها مهارتهایی هستند که مستقیماً سرعت استخدام شما را بالا میبرند.
🔗 لینک فایل اصلی مطالعه:
https://economicgraph.linkedin.com/content/dam/me/economicgraph/en-us/PDF/2180-global-green-skills-report-v04.pdf
@softwrteach
------------------------
🌐💻
این گزارش یکی از مهمترین تحلیلهای LinkedIn دربارهٔ آیندهٔ استخدام در دنیا مخصوصا اروپاست.
🔹 ۱) رشد مهارتهای سبز در برابر نیاز بازار کار
• مهارتهای سبز در دنیا ۸٪ رشد داشتهاند.
• اما نیاز شرکتها به این مهارتها ۲۲٪ جهش کرده.
یعنی تقاضا خیلی سریعتر از عرضه در حال رشد است.
🔹 ۲) سرعت استخدام
افرادی که حتی یک مهارت سبز در رزومهشان داشته باشند:
📈 ۴۶.۶٪ سریعتر از دیگران استخدام میشوند.
این عدد یکی از کلیدیترین دیتاهای ۲۰۲۵ است.
🔹 ۳) کشورهای پیشرو در اروپا
طبق دادههای LinkedIn،
کشورهایی که بیشترین رشد مهارتهای سبز را داشتهاند عبارتند از:
🇩🇪 آلمان
🇫🇷 فرانسه
🇬🇧 بریتانیا
این کشورها جذب نیروی متخصص را با اولویت Green Skills انجام میدهند.
🔹 ۴) چرا این مهارتها بینرشتهای شدهاند؟
دیگر فقط برای محیطزیست نیست؛
مهارت سبز در حال ورود به اکثر حوزههاست:
• Data & Analytics
• Project Management
• Engineering
• Operations / Supply Chain
• Business & Strategy
دلیلش:
شرکتها برای گزارشهای ESG، کاهش اتلاف، بهینهسازی مصرف انرژی و رعایت قوانین اروپا به متخصصانی نیاز دارند که زبان داده و پایداری را بفهمند.
🔹 ۵) نمونهای از مهارتهای سبز پرتقاضا
• Energy / Resource Analysis
• ESG / Sustainability Reporting
• Process Optimization
• Green Data Analytics
• Risk & Environmental Compliance
اینها مهارتهایی هستند که مستقیماً سرعت استخدام شما را بالا میبرند.
🔗 لینک فایل اصلی مطالعه:
https://economicgraph.linkedin.com/content/dam/me/economicgraph/en-us/PDF/2180-global-green-skills-report-v04.pdf
@softwrteach
------------------------
🌐💻
🔥1👏1
موضوعی که هست
چتجیپیتی الان روزانه ۲.۵ میلیارد پرامپت رو پردازش میکنه. همین چند ماه پیش این عدد ۱ میلیارد بود!
نکتهای که اکثر مارکت ها ازش غافلن:
طبق تحقیقات
۷۰٪ مصرفکنندهها الان ترجیح میدن برای انتخاب محصول، جای سرچ سنتی سراغ هوش مصنوعی برن. و ۶۴٪ حاضرن همون محصولی که ChatGPT یا مدل های در دسترس دیگه
پیشنهاد میده رو بخرن.
ولی حالا مشکل بزرگ کجاست؟
اکثر برندها اصلاً خبر ندارن که هوش مصنوعی داره در موردشون چی میگه.
کلی از کمپانی های بزرگ
دارن سالی ۵۰ هزار دلار پای سئو (SEO) خرج میکنن و با وسواس رنکینگ گوگل رو چک میکنن... در حالی که مشتریاشون دارن از ChatGPT و ai میپرسن: «بهترین محصول برای من چیه؟» و جوابهایی میگیرن که بعضا اصلاً اسمی از برند اونها توش نیست.
این قضیه مال آینده نیست. همین الان داره اتفاق میافته.
ترافیک سرچ هوش مصنوعی نسبت به سال قبل ۵۲۷٪ رشد داشته، در حالی که سرچ سنتی تقریباً داره درجا میزنه.
سوال دیگه این نیست که «آیا باید به دیده شدن تو هوش مصنوعی اهمیت بدم؟» سوال واقعی اینه: «آیا اصلاً میتونم هزینهی نادیده گرفتنش رو بپردازم؟»
از این به بعد جایگزین seo باید بریم روی geo ها (generative engine optimization) کار کنیم.
اما سوال اخری که پیش میاد اینه
این GEO رو چقدر باید جدی بگیریم ؟؟
@softwrteach
------------------------
🌐💻
چتجیپیتی الان روزانه ۲.۵ میلیارد پرامپت رو پردازش میکنه. همین چند ماه پیش این عدد ۱ میلیارد بود!
نکتهای که اکثر مارکت ها ازش غافلن:
طبق تحقیقات
۷۰٪ مصرفکنندهها الان ترجیح میدن برای انتخاب محصول، جای سرچ سنتی سراغ هوش مصنوعی برن. و ۶۴٪ حاضرن همون محصولی که ChatGPT یا مدل های در دسترس دیگه
پیشنهاد میده رو بخرن.
ولی حالا مشکل بزرگ کجاست؟
اکثر برندها اصلاً خبر ندارن که هوش مصنوعی داره در موردشون چی میگه.
کلی از کمپانی های بزرگ
دارن سالی ۵۰ هزار دلار پای سئو (SEO) خرج میکنن و با وسواس رنکینگ گوگل رو چک میکنن... در حالی که مشتریاشون دارن از ChatGPT و ai میپرسن: «بهترین محصول برای من چیه؟» و جوابهایی میگیرن که بعضا اصلاً اسمی از برند اونها توش نیست.
این قضیه مال آینده نیست. همین الان داره اتفاق میافته.
ترافیک سرچ هوش مصنوعی نسبت به سال قبل ۵۲۷٪ رشد داشته، در حالی که سرچ سنتی تقریباً داره درجا میزنه.
سوال دیگه این نیست که «آیا باید به دیده شدن تو هوش مصنوعی اهمیت بدم؟» سوال واقعی اینه: «آیا اصلاً میتونم هزینهی نادیده گرفتنش رو بپردازم؟»
از این به بعد جایگزین seo باید بریم روی geo ها (generative engine optimization) کار کنیم.
اما سوال اخری که پیش میاد اینه
این GEO رو چقدر باید جدی بگیریم ؟؟
@softwrteach
------------------------
🌐💻
👍3🔥3
Forwarded from tech-afternoon (Amin Mesbahi)
چند سالیه که سهم عبارت «AI» لابلای جملات، تیتر اخبار، صحبتهای یومیهی عوام تا متخصصین، شهروند تا دولتمرد، مصرفکننده تا صنعتگر روز به روز بیشتر شده. ترمهایی مثل Vibe Coding یا AI-Driven Development یا AI Slop به دایرهی واژگانمون اضافه شدن. حالا این وسط یه عده سودهای کوتاهمدت میبرن، مثل پکیجفروشها، سرویسهایی که چند تا API رو صدا میکنن و یه سرویس مثلا هوشمند ارائه میکنن؛ و برخی هم بیزنسهای بر پایهی این تحول ایجاد کردن، مثل سازندههای مدلهای پایه، سرویسهای کاربردی مدیریت AI مثل Agent Manager یا Prompt Engineering Platform و… یا اینکه AI رو مثل یک ابزار دیدن و کاربری اون رو «صحیح و اصولی» یاد گرفتن و مرتبا بهروز میشن تا مثل دورانی که اکثریت با محدودیتهای نرمافزارهای دسکتاپ دستوپنجه نرم میکردن و عدهای خیلی زود و به موقع، توسعه مبتنی بر وب رو جایگزین کردن، بتونن از مواهب AI به نفع بهرهوری، خلاقیت، و توسعه پایدار بهره ببرن.
این مطلب رو در چند بخش مینویسم، با توجه به فضای جامعه توسعه نرمافزار، متن رو خیلی مطالعه-محور مینویسم تا مقاومت کمتری نسبت به تحلیل شخصی داشته باشه؛ اول به «بد»، و در ادامه به «زشت» و نهایتا به «خوب» میپردازم:
- کد چرخشی (Code Churn): سیگنال خطر: تحقیقات GitClear روی ۲۱۱ میلیون خط کد تغییریافته بین سالهای ۲۰۲۰ تا ۲۰۲۴ نشون میده که Code Churn (درصد کدی که کمتر از دو هفته پس از نوشته شدن اصلاح یا حذف میشه) در سال ۲۰۲۴ دو برابر سال ۲۰۲۱ شده. این یعنی کدی که AI تولید میکنه، اغلب ناقص یا اشتباهه و نیاز به بازنگری سریع داره.
- کپیپیست به جای معماری: در سال ۲۰۲۴، GitClear افزایش ۸ برابری در بلوکهای کد تکراری (۵ خط یا بیشتر) رو ثبت کرده (یعنی ۱۰ برابر بیشتر از دو سال پیشش). مشکل اینجاست که AI به جای refactor کردن و استفاده مجدد از کد موجود، ترجیح میده کد جدید بنویسه. نتیجه؟ نقض اصل (DRY (Don't Repeat Yourself و کدبیسی که مدیریتش کابوسه.
در سال ۲۰۲۴، ۴۶٪ تغییرات کد، خطوط جدید بودند و کد کپیپیست شده، بیش از کد جابجا شده (moved) بوده (یعنی کمتر refactoring شده و بیشتر به صورت بیرویه کد اضافه شده).
- افزایش باگ و کاهش پایداری: مطالعه شرکت Uplevel که توسعهدهندههای با دسترسی به Copilot رو بررسی کرده، نشون میده این دولوپرها به طور معناداری نرخ باگ بالاتری تولید کردن، در حالی که بهرهوری کلیشون ثابت مونده. گزارش DORA 2024 گوگل هم تأیید میکنه: ۲۵٪ افزایش در استفاده از AI منجر به بهبود در code review و مستندات میشه، اما ۷.۲٪ کاهش در پایداری تحویل (delivery stability) ایجاد میکنه. همچنین گزارش Harness 2025 نشون داد اکثر توسعهدهندگان زمان بیشتری صرف debugging کد تولیدشده توسط AI و رفع آسیبپذیریهای امنیتی میکنند.
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from tech-afternoon (Amin Mesbahi)
اگر "بد" نمایانگر اصطکاک عملیاتیه، "زشت" نمایانگر ریسک سیستمیه. دادههای سالهای ۲۰۲۴ و ۲۰۲۵ به بحرانی قریبالوقوع در قابلیت نگهداری و امنیت نرمافزار اشاره میکنن...
جنبهی «زشت» ماجرا اینه که نتیجهی نهایی استفاده از هوش مصنوعی مولد بهشدت وابسته به بلوغ فنی و انضباط تیمه. اگر تیمی فرهنگ کدنویسی سالم، معیارهای کیفی و فرایندهای بازبینی روشن نداشته باشه، برای استفاده از GenAI دستورالعمل «فکر شده» و متناسب با نیازها و استعداد تیم نداشته باشه؛ AI میتونه هرجومرج ایجاد کنه یا هرجومرج موجود رو تشدید کنه. توی برخی نظرسنجیها دیده شده که کارکنان احساس کردن بهرهوریشون با وجود هوش مصنوعی کاهش یافته!
بدهی فنی که قابل پرداخت نیست
پروفسور Armando Solar-Lezama استاد دانشگاه MIT میگه: "AI مثل یه کارت اعتباری جدیده که به ما اجازه میده بدهی فنی رو به روشهایی انباشته کنیم که هرگز قبلاً نتونسته بودیم."
مطالعه دانشگاه Carnegie Mellon روی ۸۰۷ ریپو GitHub که بین ژانویه ۲۰۲۴ تا مارچ ۲۰۲۵ که از Cursor استفاده کرده بودن، نشون میده که با وجود بهبودهای مدلهای AI (Sonnet، GPT و غیره)، الگوی کاهش کیفیت کد همچنان ادامه داره. حتی با ارتقای ابزارها، کیفیت کد مسیر خودش رو به سمت افول طی میکنه! دلایلی مثل زمان صرف زیاد برای آزمونوخطا با ابزار یا رفع خطاهای ناشی از اون رو میشه در نظر گرفت؛ و تفاوت نتایج بین شرکتهای مختلف (از افزایش کارامدی تا معضلات عمیق) نشون میده که صرف خریداری یا فعالسازی ابزار یا سرویس هوشمصنوعی تضمینی برای موفقیت نیست.
- نابودی دانش تیمی: باز هم مطالعات نشون میدن در ۱۶.۸٪ از چتهای ChatGPT، کد تولید شده به صورت دقیق (با تغییرات جزئی) توی پروژههای GitHub استفاده شدن. مشکل اینجاست: وقتی توسعهدهندهها کد AI رو بدون درک عمیق copy میکنن، expertise model توی تیم توسعه آسیب میبینه و Truck Factor (تعداد اعضای تیم که از دست دادنشون پروژه را میتونه نابود کنه، گاهی هم bus factor گفته میشه) بدتر میشه.
- معضل Context Collapse در آینده: اگه کدهایی که مدلهای آینده از روی اونها train میشن، پیچیدهتر و غیرقابل نگهداریتر بشه، خطر واقعی اینه که مدلهای جدیدتر این روندها رو به صورت نمایی تقویت و تشدید میکنن و کد بدتری تولید خواهند کرد؛ دلیلش هم اینه که از روی کدهای شلوغ و بیکیفیتی آموزش دیدهاند.
- مشارکتکننده دورهگرد: کدهای تولید شده توسط هوش مصنوعی شبیه کار یک پیمانکار کوتاهمدته: از نظر عملکردی در انزوا، صحیح، اما منفک از قراردادها و معماری سیستم کلی! این منجر به تکهتکه شدن (Fragmentation) سبک و منطق کد میشه.
- پارادوکس بهرهوری مهندسی: ترکیب "خوب" (سرعت) و "زشت" (ریزش/کیفیت) منجر به شکلگیری "پارادوکس بهرهوری مهندسی" شده. سازمانها شاهد افزایش چشمگیر خروجی (پولریکوئستها، ویژگیها) هستن، اما همزمان کاهش پایداری و افزایش هزینههای نگهداری رو تجربه میکنن. گزارش سال ۲۰۲۵ DORA از گوگل نشون داد که افزایش ۹۰ درصدی در پذیرش هوش مصنوعی با افزایش ۹ درصدی نرخ باگ و افزایش ۹۱ درصدی زمان بازبینی کد همبستگی داره (بدتر از گزارش DORA در سال ۲۰۲۴ که پیشتر در بخش افزایش باگ و کاهش پایداری قسمت اول اشاره کردم). زمان صرفهجویی شده در تایپ کردن کد، عملاً به مرحله بازبینی و دیباگ منتقل شده؛ با این تفاوت که هزینه این مرحله بالاتره، چون خوندن کد تولید شده سختتر از نوشتنشه.
- انباشت بدهی فنی: انباشت کدهای ضعیف ساختاری، که با پیچیدگی بالا (Cyclomatic Complexity) و تکرار زیاد مشخص میشن؛ بدهیای ایجاد میکنه که باید با بهره پرداخت بشه. Forrester پیشبینی میکنه که سال ۲۰۲۶، ۷۵٪ از شرکتها به دلیل تولید کد کنترلنشدهی هوش مصنوعی، با بدهی فنی "متوسط تا شدید" مواجه خواهند شد.
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from tech-afternoon (Amin Mesbahi)
🏆 فصل سوم: The Good: موفقیت در سازمانهای بالغ
شنیدید که مارگزیده از ریسمون سیاه و سفید میترسه؟ در حقیقت من هم اینقدر طی این سالها شاهد جَوزَدگی اهالی نرمافزار بودهام که سعی میکنم قبل از محاسن یک تکنولوژی مستعد به حباب و جَو و هیجان، مخاطرات و الزامات و موارد کاربردش رو بگم! طی دو قسمت اول، با توجه به اقبال و وابستگی زیادی که توی اکوسیستم نسب به GenAI پدید اومده، سعی کردم تا مبتنی بر بررسیها و با حداقل رسوندن نظر شخصی، جنبههای بد و زشت رو اشاره کنم و سرنخهایی برایی مطالعه عمیقتر به اشتراک بگذارم. حالا توی قسمت سوم، بریم سراغ جنبهی خوب استفاده از GenAI در فرایند توسعه!
- کارایی در سازمانهای بالغ و دارای دیسیپلین: توی شرکتها و تیمهایی که اصول مهندسی نرمافزار و فرایندهای بازبینی کد، بهخوبی درک و نهادینه شده باشه، هوش مصنوعی مولد میتونه بدون افت کیفیت به بهبود عملکرد کمک کنه. به عنوان مثال، eBay با یه آزمایش A/B روی ۳۰۰ توسعهدهنده بهبود ۱۷٪ روی زمان مرج شدن کدها و بهبود ۱۲درصدی Lead Time for Change روی گروهی که از Copilot استفاده میکردن دیده! علاوه بر این کیفیت کد (بر اساس آنالیز Sonar) بین دو گروه آزمایشی و کنترل تفاوت معناداری نداشته. (نتیجه زمینهسازی استفاده از AI و بعد، به خدمت گرفتنش)
- فرصتی برای بزرگتر و پختهتر بودن: اگر به «شکل اصولی» استفاده بشه، آموزش داده بشه، و نه اینکه تجربی و آزمون و خطایی باشه؛ گامبهگام و با برنامه، مرحله به مرحله به فرایندها بیاد؛ شما فرصت یادگیری مداوم، بسترسازی برای بهبودها و تحلیلهای بعدی از طریق تیکتها و مستندات بهتر، تستنویسی بهینه و یادگیری رو در تیمتون فراهم کردید. مثلا به جیرا وصلش کنید تا اگر تیکت دقیق و اصولی نوشتید، چک کنه توی PR/MR آیا همه Acceptance Criteria لحاظ شده یا چیزی از قلم افتاده! مثلا مستندسازی فرایندها روی از کدهای قدیمی برای بازنویسی سیستم تسریع کنید، یا مثلا با ابزارهای غیر GenAI ترکیب کنید تا پیشگیرانه مانع از ورود الگوهای تکراری و پیچیدگی اشتباه شید (لطفا اگر علاقه داشتید مطالب مرتبط با code metricها رو در کانال مطالعه کنید)
- ذرهبینی برای واضحتر دیدن: تنبلی و رخوت و بیانگیزگی چیزی نیست که با GenAI از بین بره؛ شاید فردی که زمینهاش رو داره و عاشق «حلِمسئله» نیست، کمکم تنبلی نهان یا غیرفعالش رو نشون بده، ولی میشه از یک منظر به سرویسهای هوش مصنوعی به مثابه ذرهبینی پرداخت که میتونن کمک کنن خصوصیات منفی افراد آشکارتر بشه؛ آیا این تبعات منفی داره؟ بله حتمن داره؛ ولی یادمون نره ریشهی خصوصیات کسی که حاضره ۳ ساعت با کوپایلوت و کرسر ور بره ولی روی حل یه مسئله فکر نکنه، قدیمیتر از دوران پیدایش GenAI است و این آدم ۳ سال پیش، بدون خوندن توضیحات مردم، کدها رو از StackOverflow کپی/پیست میکرده. این آدم، در گذشتهی دورتر تواناییهایی رو کسب نکرده که حالا دیره! و من شخصا این رو یه مزیت GenAI میدونم.
یه نکته مهم و خوشبینانه اینه که ۶۸٪ سازمانها طبق گزارش World Quality Report 2024 به طور فعال از GenAI استفاده میکنن یا roadmap دارن براش و «برخی» موفق هستن؛ این عدد توی گزارشات ۲۰۲۵ رشد معنیداری کرده؛
- نکته مهم: کلی آمار توی فیشها و نوتهایی که حین بررسی جمع میکنم، برای این بخش در نظر گرفتم ولی به ذهنم رسید با این موضوع جایگزین کنم که کلی عدد و آمار وسوسهکننده از بهبود اعتماد به نفس تیم، افزایش بهرهوری، لذت برنامهنویسی و... توسط مراکز معتبر منتشر شده و خواهد شد؛ دقت کنید که خیلی از اینها درسته، ولی مثلا مایکروسافت در مورد برنامهنویسهاش اعلام کرده، ولی نکته مستتر اینه که کلی تیم به صورت تخصصی در شرکتهایی مثل مایکروسافت، گوگل، اوبر و تسلا و... به صورت تخصصی دارن زیرساخت AI و GenAI برای تیمهای توسعه فراهم میکنن، پس راهبهخطا نرفتن اون تیمها کمتر محتمل است تا شرکتی که توسعهدهندههاش خودجوش دارن با یه سری ابزار وَر میرن یا به صورت غیرساختاریافته ازشون استفاده میکنن؛ بدون هیچ guideline درونسازمانی، agent داخلی و نظارت platform engineering. یا برخی از این آمارها با حمایت سرویسدهندههایی تهیه شده که نتیجه بایاس است به سمت ترغیب شما به خرید copilot یا هر سرویس دیگهایه؛ درست مثل تبلیغ بستنی است که طبیعتا کسی از چربی و شکر و عوارضش رنج نمیکشه و همه با لذت بستنی رو میخورن!
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Linuxor ?
شرکت OpenAI اعتراف کرده که مرورگر هوش مصنوعی Atlas امن نیست و هرگز بهطور کامل از حملات امنیتی موسوم به prompt injection مصون نمیشه، این نوع حمله به این صورته که اون پشت هکر ها به مدل میگن فلان کارو کن مدل هم فکر میکنه شما گفتید وانجامش میده و حتی ممکنه اطلاعات حساس و پسورد هاتون رو به هکر ارسال کنه و فکر کنه شما بهش گفتید.
@Linuxor
@Linuxor