🔺ـ Subresource Integrity چیه؟ 🤔
- اگه ریسورسهای یک صفحه (اسکریپتها، استایلها و ...) رو از یک منبع خارجی (مثلاً CDN) لود میکنیم، یه نکته امنیتی مهم رو باید در نظر داشته باشیم
- وقتی یه اسکریپت توی صفحه لود میشه، میتونه به همهٔ اطلاعات صفحه دسترسی داشته باشه. و اگه مثلاً اون CDN هک بشه، هکر میتونه محتویات ریسورس رو دستکاری کنه بهطوری که بهراحتی میتونه اطلاعات هر کاربری رو بخونه
- برای جلوگیری از این اتفاق، مرورگرها یک قابلیت امنیتی دارن به اسم Subresouce Integrity یا بهطور خلاصه SRI
- توی این پست با این ویژگی و نحوهٔ پیادهسازی اون بیشتر آشنا میشیم:
ditty.ir/587
#frontend
- اگه ریسورسهای یک صفحه (اسکریپتها، استایلها و ...) رو از یک منبع خارجی (مثلاً CDN) لود میکنیم، یه نکته امنیتی مهم رو باید در نظر داشته باشیم
- وقتی یه اسکریپت توی صفحه لود میشه، میتونه به همهٔ اطلاعات صفحه دسترسی داشته باشه. و اگه مثلاً اون CDN هک بشه، هکر میتونه محتویات ریسورس رو دستکاری کنه بهطوری که بهراحتی میتونه اطلاعات هر کاربری رو بخونه
- برای جلوگیری از این اتفاق، مرورگرها یک قابلیت امنیتی دارن به اسم Subresouce Integrity یا بهطور خلاصه SRI
- توی این پست با این ویژگی و نحوهٔ پیادهسازی اون بیشتر آشنا میشیم:
ditty.ir/587
#frontend
❤23🔥7
کوچیکترین کاری که میتونم بکنم اینه که دورههای آموزشی دیتی رو رایگان در اختیارتون بذارم. کد تخفیف:
برای این دورهها میتونین استفاده کنین:
- پروژههای جاوااسکریپتی برای تازهکارها
- آموزش جامع جاوااسکریپت به زبان ساده
- همه چیز از ES6 جاوااسکریپت
#زنده_باد_ایران 🇮🇷✊
off-100برای این دورهها میتونین استفاده کنین:
- پروژههای جاوااسکریپتی برای تازهکارها
- آموزش جامع جاوااسکریپت به زبان ساده
- همه چیز از ES6 جاوااسکریپت
#زنده_باد_ایران 🇮🇷✊
❤200🔥6🙏6
نسخه 7 ویت (Vite) منتشر شد و چیزی که جالب بود اینه که مستندات به زبان فارسی رسماً اضافه شده:
https://fa.vite.dev/
جزییات بیشتر:
https://vite.dev/blog/announcing-vite7.html
- دم بچههای پر تلاش جامعهٔ فارسیزبان گرم 👏💪
#tools
https://fa.vite.dev/
جزییات بیشتر:
https://vite.dev/blog/announcing-vite7.html
- دم بچههای پر تلاش جامعهٔ فارسیزبان گرم 👏💪
#tools
vitejs
ابزار نسل بعدی فرانتاند
🔥48❤5👌5👍2
🔺اکمااسکریپت ۲۰۲۵ و متدهای جدید Set
- توی جدیدترین آپدیت اکمااسکریپت (۲۰۲۵) متدهای جدید و کاربردی به مجموعه Set اضافه شده
- توی جدیدترین پست دیتی اونها رو بررسی میکنیم:
ditty.ir/589
#javanoscript
- توی جدیدترین آپدیت اکمااسکریپت (۲۰۲۵) متدهای جدید و کاربردی به مجموعه Set اضافه شده
- توی جدیدترین پست دیتی اونها رو بررسی میکنیم:
ditty.ir/589
#javanoscript
🔥17❤7👍6
🔺آزادسازی قانونی جاوااسکریپت
- شاید جالب باشه که بدونیم مالکیت کلمهٔ «جاوااسکریپت» در اختیار شرکت اوراکل هست. این در حالیه که این شرکت نه جاوااسکریپت رو ساخته و نه تلاشی برای توسعهٔ اون انجام داده
- بهتازگی گروهی از افراد معروف حوزهٔ برنامهنویسی (از جمله خالق جاوااسکریپت، خالق نودجیاس، خالق npm و ۲۱هزار نفر دیگه) از طریق قانون درخواستی برای لغو مالکیت واژه «جاوااسکریپت» توسط اوراکل رو ارائه دادن
- دلیل این اقدام اینه که جاوااسکریپت اسم یک زبان برنامهنویسی عام هست که توسط میلیونها شخص و شرکت داره استفاده میشه. همچنین طبق قوانین امریکا اگه شرکتی از یک اسم برند طی مدت ۳ سال استفادهای نکنه، اون اسم میتونه به صورت قانونی از مالکیت شرکت بیرون بیاد
- اوراکل چکار کرد؟ اوراکل برای اینکه به دادگاه ثابت کنه که داره از کلمهٔ جاوااسکریپت استفادهٔ تجاری میکنه زیاد خودش رو به زحمت نینداخت. رفت از وبسایت رسمی نودجیاس یک اسکرینشات مرموزانه گرفت و به دادگاه ارائه داد و گفت «من دارم استفاده تجاری میکنم. لطفاً برند من رو تمدید کنید!»
- این کار باعث عصبانیت بیشتر رایان دال (مالک نودجیاس) شد. تا جایی که شکایتی رو در این مورد هم ثبت کرد (که البته شکایت برای این قسمت به جایی نرسید)
- اما موضوع آزادسازی و عامیت بخشیدن به کلمه «جاوااسکریپت» هنوز در حال بررسی هست و شرکت اوراکل تا تاریخ ۷ آگوست ۲۰۲۵ میبایست در این مورد اظهار نظر کنه
- این اتفاق چرا مهمه؟ توی دنیایی که کپیرایت اهمیت داره، استفاده کردن از نام جاوااسکریپت ممکنه تبعات قانونی برای افراد و سازمانها داشته باشه و برای همین افراد و سازمانها سعی میکنن با ریسک کمتری از این واژه استفاده کنن. مثلاً استفاده از JS Conf بجای JavaScript Conf
- صفحه رسمی با این درخواست:
https://javanoscript.tm
#javanoscript
- شاید جالب باشه که بدونیم مالکیت کلمهٔ «جاوااسکریپت» در اختیار شرکت اوراکل هست. این در حالیه که این شرکت نه جاوااسکریپت رو ساخته و نه تلاشی برای توسعهٔ اون انجام داده
- بهتازگی گروهی از افراد معروف حوزهٔ برنامهنویسی (از جمله خالق جاوااسکریپت، خالق نودجیاس، خالق npm و ۲۱هزار نفر دیگه) از طریق قانون درخواستی برای لغو مالکیت واژه «جاوااسکریپت» توسط اوراکل رو ارائه دادن
- دلیل این اقدام اینه که جاوااسکریپت اسم یک زبان برنامهنویسی عام هست که توسط میلیونها شخص و شرکت داره استفاده میشه. همچنین طبق قوانین امریکا اگه شرکتی از یک اسم برند طی مدت ۳ سال استفادهای نکنه، اون اسم میتونه به صورت قانونی از مالکیت شرکت بیرون بیاد
- اوراکل چکار کرد؟ اوراکل برای اینکه به دادگاه ثابت کنه که داره از کلمهٔ جاوااسکریپت استفادهٔ تجاری میکنه زیاد خودش رو به زحمت نینداخت. رفت از وبسایت رسمی نودجیاس یک اسکرینشات مرموزانه گرفت و به دادگاه ارائه داد و گفت «من دارم استفاده تجاری میکنم. لطفاً برند من رو تمدید کنید!»
- این کار باعث عصبانیت بیشتر رایان دال (مالک نودجیاس) شد. تا جایی که شکایتی رو در این مورد هم ثبت کرد (که البته شکایت برای این قسمت به جایی نرسید)
- اما موضوع آزادسازی و عامیت بخشیدن به کلمه «جاوااسکریپت» هنوز در حال بررسی هست و شرکت اوراکل تا تاریخ ۷ آگوست ۲۰۲۵ میبایست در این مورد اظهار نظر کنه
- این اتفاق چرا مهمه؟ توی دنیایی که کپیرایت اهمیت داره، استفاده کردن از نام جاوااسکریپت ممکنه تبعات قانونی برای افراد و سازمانها داشته باشه و برای همین افراد و سازمانها سعی میکنن با ریسک کمتری از این واژه استفاده کنن. مثلاً استفاده از JS Conf بجای JavaScript Conf
- صفحه رسمی با این درخواست:
https://javanoscript.tm
#javanoscript
JavaScript™
We need your help to continue our fight over Oracle's claim to the JavaScript trademark. Here's where we are now and what you can do to help.
👍22❤3🤔2
یکی از خبرنامههایی که چند ساله دنبالش میکنم Web Tools Weekly هست که هر هفته ابزارها و پلاگینها و ... جدید مرتبط با وب رو معرفی میکنه و توضیح میده:
https://webtoolsweekly.com
https://webtoolsweekly.com
Webtoolsweekly
Web Tools Weekly | A Weekly Newsletter for Front-end Developers
A weekly newsletter for front-end developers with a specific focus on tools.
❤23🔥4🤯2👍1🤷1
طبق آمار وبسایت معروف Pragmatic Engineer، توی سال ۲۰۲۵ GitHub Copilot پراستفادهترین ابزار هوش مصنوعی برای مهندسان نرمافزار بوده.
- این در حالی بوده که توی سال ۲۰۲۴ شرکتکنندهها بیشتر به ChatGPT رأی داده بودن
https://newsletter.pragmaticengineer.com/p/the-pragmatic-engineer-2025-survey
- این در حالی بوده که توی سال ۲۰۲۴ شرکتکنندهها بیشتر به ChatGPT رأی داده بودن
https://newsletter.pragmaticengineer.com/p/the-pragmatic-engineer-2025-survey
👍14❤2👎2
Ditty | دیتی
🔺وایب کدینگ (Vibe Coding) چیه که همه جا دارن دربارش صحبت میکنن؟ - وقتی این رو از ChatGPT پرسیدم حس کردم یه یکمی در جریان موضوع نیست. مثلاً گفت: مدلی از کدنویسی که شخص خیلی ریلکس و با آرامش کدنویسی میکنه، موزیک ملایم پخش میشه، تمهای جذاب ادیتور و ابزارهای…
یه نکته قابل توجه دیگه که این نظرسنجی داشت این بود که اکثر شرکتکنندههایی که از ابزارهای Vibe Coding استفاده میکنن، مهندسهای نرمافزار نبودن. در واقع اکثرشون مدیر، فاندر و ... بودن
این آمار نشون میده که ابزارهای Vibe Coding مثل Vercel v0, Bolt .new و Lovable بیشتر توسط افرادی استفاده شده که توانایی فنی خوبی نداشتن (یا زمانش رو نداشتن) و میخواستن یک طرح اولیه از نرمافزار بسازن و به بقیه نشون بدن که منظورم اینه
این آمار نشون میده که ابزارهای Vibe Coding مثل Vercel v0, Bolt .new و Lovable بیشتر توسط افرادی استفاده شده که توانایی فنی خوبی نداشتن (یا زمانش رو نداشتن) و میخواستن یک طرح اولیه از نرمافزار بسازن و به بقیه نشون بدن که منظورم اینه
👍12❤4🥴1
یه کتابخونه شبیه Lodash معرفی شده به اسم es-toolkit که در مقایسه با Lodash سرعت خیلی بالاتر و حجم کمتری داره، Tree-shaking داره و از صورت پیشفرض از تایپاسکریپت استفاده میکنه:
https://es-toolkit.dev/
#links
https://es-toolkit.dev/
#links
es-toolkit.dev
A state-of-the-art, high-performance JavaScript utility library with a small bundle size and strong type annotations.
🔥32👍6❤4
🔺ـ ChatGPT یک قابلیت اضافه کرده به اسم Study Mode که باهاش میتونید مرحله به مرحله یک چیز رو یاد بگیرین
- قبلاً برای مثال اگه بهش میگفتین یه پروژه Todo رو با ریاکت برام بزن، همهٔ آموزش رو توی یک پاسخ جا میداد، که در نتیجه خیلی از نکات و مراحل نادیده گرفته میشدن
- اما الان حالت Study Mode مرحله به مرحله سعی میکنه همه نکات رو توی پاسخهای جداگونه ارائه بده و شما فقط باید بهش بگید «مرحله بعد»
https://chatgpt.com/?hints=study
- قبلاً برای مثال اگه بهش میگفتین یه پروژه Todo رو با ریاکت برام بزن، همهٔ آموزش رو توی یک پاسخ جا میداد، که در نتیجه خیلی از نکات و مراحل نادیده گرفته میشدن
- اما الان حالت Study Mode مرحله به مرحله سعی میکنه همه نکات رو توی پاسخهای جداگونه ارائه بده و شما فقط باید بهش بگید «مرحله بعد»
https://chatgpt.com/?hints=study
🔥53❤9👍6🤯5😁2
🔺نظرسنجی
- مزایای ابزارهایی مثل ChatGPT و Copilot برای همهمون که مشخصه. اما به نظر من بزرگترین عیبی که ابزارهای هوش مصنوعی دارن اینه که آدم رو به شدت تنبل میکنن. مغز ما کمترین تلاش رو برای حل مسئله میکنه و توی بلند مدت اصلاً چیز خوبی نیست. مثل یک لقمهٔ همیشه آماده. مثل اینکه بگی تا وقتی که ماشین هست چرا باید پیادهروی کنم؟
- برای مثال من توی نوشتن ایمیلهای کاری خیلی از ChatGPT استفاده میکردم. این قضیه تا جایی پیش رفت که حتی توی نوشتن پیامهای عادی هم ناخودآگاه میخواستم ازش استفاده کنم. و این خیلی بد بود. مغزم کمترین تلاش رو برای نوشتن میکرد. یه جورایی اعتماد به نفسم رو توی نوشتن یک ایمیل ساده هم از دست داده بودم. خیلی حساس شده بودم که آیا درست نوشتم و همه چی رعایت شده یا نه
- این قضیه همیشه من رو یاد والدینی میندازه برای فرزندانشون بیشترین تلاش رو انجام میدن تا مبادا فرزند ذرهای احساس کمبود نکنه. در صورتی که همون فرزند توی بزرگسالی اعتماد به نفس کمی داره چون نمیتونه بدون حضور والدین کاری انجام بده.
نظر شما چیه؟
- مزایای ابزارهایی مثل ChatGPT و Copilot برای همهمون که مشخصه. اما به نظر من بزرگترین عیبی که ابزارهای هوش مصنوعی دارن اینه که آدم رو به شدت تنبل میکنن. مغز ما کمترین تلاش رو برای حل مسئله میکنه و توی بلند مدت اصلاً چیز خوبی نیست. مثل یک لقمهٔ همیشه آماده. مثل اینکه بگی تا وقتی که ماشین هست چرا باید پیادهروی کنم؟
- برای مثال من توی نوشتن ایمیلهای کاری خیلی از ChatGPT استفاده میکردم. این قضیه تا جایی پیش رفت که حتی توی نوشتن پیامهای عادی هم ناخودآگاه میخواستم ازش استفاده کنم. و این خیلی بد بود. مغزم کمترین تلاش رو برای نوشتن میکرد. یه جورایی اعتماد به نفسم رو توی نوشتن یک ایمیل ساده هم از دست داده بودم. خیلی حساس شده بودم که آیا درست نوشتم و همه چی رعایت شده یا نه
- این قضیه همیشه من رو یاد والدینی میندازه برای فرزندانشون بیشترین تلاش رو انجام میدن تا مبادا فرزند ذرهای احساس کمبود نکنه. در صورتی که همون فرزند توی بزرگسالی اعتماد به نفس کمی داره چون نمیتونه بدون حضور والدین کاری انجام بده.
نظر شما چیه؟
👍61🤷♂4❤2🤷♀2🤷1
🔺وبسایت v0.app یک سرویس جدید از Vercel هست که میتونه نسبتاً دقیق پرامپتها و عکسها رو به کد تبدیل کنه. برای مثال ازش خواستم لینکدین رو بازطراحی کن و چنین چیزی توی کمتر از ۱ دقیقه تحویل داد:
https://v0.app/chat/linkedin-redesign-nh5RmyjyyZ1
- خیلی وقت پیش هم از تبدیل عکس به کد HTML اون استفاده کرده بودم و تقریباً دقیق بود
https://v0.app
https://v0.app/chat/linkedin-redesign-nh5RmyjyyZ1
- خیلی وقت پیش هم از تبدیل عکس به کد HTML اون استفاده کرده بودم و تقریباً دقیق بود
https://v0.app
👌15👍8❤1
🔺تجربهای از ۲۰۰+ مصاحبه کاری
توی ۳ سال گذشته اگه بگم بیشتر از ۲۰۰ تا مصاحبه کاری دادم کم نگفتم. از بین هزاران تجربه و نکتهٔ ریز و درشتی که بدست آوردم، اگه بخوام مهمترینش رو براتون به اشتراک بذارم اینه:
» کار کنید و تجربه واقعی و عملی بدست بیارید!
- اگه به تازگی وارد حوزه نرمافزار شدین، پیشنهاد من اینه که هر چی زودتر وارد بازار کار بشین. خودتون رو غرق یادگیری و دیدن کورسها و ... نکنین. توی کار عملی چیزهایی یاد میگیرین که هیچوقت این کورسها بهتون یاد نمیدن
- ۸۰٪ دنیای کار امروز مربوط به سافتاسکیل هست! بله ۸۰ درصد! سافت اسکیل رو جایی به شما یاد نمیدن. حتی اگه ۱۰۰۰ ساعت کورس دربارش دیدم باشیم، اگه لمسش نکنیم یاد نمیگیریم
- گرچه توی حوزه کاری ما یادگیری خیلی موضوع مهمی هست، پیشنهاد من اینه که یادگیری رو حین کار عملی داشته باشین. اگه قصد آموزش دیدن از کتابها و کورسها و ... رو دارین، به نظرم ۲۰٪ وقتتون رو برای چنین سبک یادگیری بذارین. چونکه یادگیری واقعی از تمرینها و تجربههای عملی بدست میاد
- هر چی زودتر جایی رو پیدا کنید برای کار کردن. و حین جستجو برای شغل سعی کنین پروژههای عملی برای خودتون بزنین. نگید کار نیست. از در و همسایه و فامیل و ... پروژه بگیرید. کسی نیست که به جایی رسیده باشه ولی خاک نخورده باشه
- پروژههای عملی رو خیلی بزرگ در نظر نگیرید. مثلاً پیادهسازی یک فروشگاه اینترنتی با ۱۰۰ صفحه کار اشتباهی هست. بلکه سعی کنید چند پروژه خیلی کوچیک ولی متنوع پیادهسازی کنید. و اونها رو خیلی شیک و مرتب توی گیتهاب قرار بدین
- اگه به تازگی وارد این حوزه شدین (زیر ۵ سال تجربه دارین)، شرکت مناسب برای کار کردن جایی هست که بتونین تجربه کار عملی بدست بیارین. حقوق و مزایای مالی رو بعداً ۱۰۰ برابرش رو بهمون میدن اگه ارزشمند بشیم. توی هر حرفه و شغلی که هستیم، اگه واقعاً قصد پیشرفت داریم به قول معروف باید خاک اون حوزه رو بخوریم.
توی ۳ سال گذشته اگه بگم بیشتر از ۲۰۰ تا مصاحبه کاری دادم کم نگفتم. از بین هزاران تجربه و نکتهٔ ریز و درشتی که بدست آوردم، اگه بخوام مهمترینش رو براتون به اشتراک بذارم اینه:
» کار کنید و تجربه واقعی و عملی بدست بیارید!
- اگه به تازگی وارد حوزه نرمافزار شدین، پیشنهاد من اینه که هر چی زودتر وارد بازار کار بشین. خودتون رو غرق یادگیری و دیدن کورسها و ... نکنین. توی کار عملی چیزهایی یاد میگیرین که هیچوقت این کورسها بهتون یاد نمیدن
- ۸۰٪ دنیای کار امروز مربوط به سافتاسکیل هست! بله ۸۰ درصد! سافت اسکیل رو جایی به شما یاد نمیدن. حتی اگه ۱۰۰۰ ساعت کورس دربارش دیدم باشیم، اگه لمسش نکنیم یاد نمیگیریم
- گرچه توی حوزه کاری ما یادگیری خیلی موضوع مهمی هست، پیشنهاد من اینه که یادگیری رو حین کار عملی داشته باشین. اگه قصد آموزش دیدن از کتابها و کورسها و ... رو دارین، به نظرم ۲۰٪ وقتتون رو برای چنین سبک یادگیری بذارین. چونکه یادگیری واقعی از تمرینها و تجربههای عملی بدست میاد
- هر چی زودتر جایی رو پیدا کنید برای کار کردن. و حین جستجو برای شغل سعی کنین پروژههای عملی برای خودتون بزنین. نگید کار نیست. از در و همسایه و فامیل و ... پروژه بگیرید. کسی نیست که به جایی رسیده باشه ولی خاک نخورده باشه
- پروژههای عملی رو خیلی بزرگ در نظر نگیرید. مثلاً پیادهسازی یک فروشگاه اینترنتی با ۱۰۰ صفحه کار اشتباهی هست. بلکه سعی کنید چند پروژه خیلی کوچیک ولی متنوع پیادهسازی کنید. و اونها رو خیلی شیک و مرتب توی گیتهاب قرار بدین
- اگه به تازگی وارد این حوزه شدین (زیر ۵ سال تجربه دارین)، شرکت مناسب برای کار کردن جایی هست که بتونین تجربه کار عملی بدست بیارین. حقوق و مزایای مالی رو بعداً ۱۰۰ برابرش رو بهمون میدن اگه ارزشمند بشیم. توی هر حرفه و شغلی که هستیم، اگه واقعاً قصد پیشرفت داریم به قول معروف باید خاک اون حوزه رو بخوریم.
👍61❤12🤔2🤣2
🔺برنامهنویسی = مهارت حل مسئله
- بعد از مدتی که دارم برای برنامهنویسی از ابزارهای معروف هوش مصنوعی (کوپایلوت، چت جیپیتی) استفاده میکنم، واقعاً دوست داشتم یک سری تجارب مهمی رو براتون به اشتراک بذارم
- اوایل که وارد دنیای مهندسی نرمافزار شدم، برای برنامهنویسی از ادیتور Notepad++ استفاده میکردم، و روی استفاده از اون پافشاری داشتم 😄 صرفاً یک ادیتور که بتونه کدها رو رنگیرنگی نشون بده برام کافی بود. یادمه بعضی از همکارا میگفتن که چرا از ادیتورهای پیشرفتهتر استفاده نمیکنی که قابلیتهایی مثل Code suggestion و ... دارن. جواب من این بود که «الان نمیخوام»
- میخواستم خودم کدنویسی انجام بدم، تا ذهنم در جریان چون و چرای اتفاقها قرار بگیره. و بعداً هر وقت احساس تسلط کردم، میتونم از ابزارهای پیشرفتهتر استفاده کنم.
- اون پافشاری من، حالا بعد از گذشت سالها خیلی به کارم اومده و باعث شده راحتتر و سریعتر کدنویسی و دیباگ کنم. مثال امروزیتر این داستان، نحوهٔ استفاده ما از هوش مصنوعی هست. امروز هم خیلی سعی میکنم چنین رویکردی رو در قبال هوش مصنوعی داشته باشم
- شاید مهمترین مهارت برای یک برنامهنویس مهارت حل مسئله هست. حل مسئله یعنی بتونیم بهراحتی دیباگ کنیم و الگوریتمهای بهینه و کدهای تمیز و قابل توسعه بنویسم. اگه این مهارتها تقویت بشه، هوش مصنوعی دوست ما خواهد بود و به عنوان یک ابزار به ما کمک میکنه بهرهوری بیشتری داشته باشیم. اما برعکس اگه برای این مهارتهای حیاتی وابستگی مطلق به چیزهای خارج از خودمون (مثل هوش مصنوعی) داشته باشیم، دیگه به ما نمیشه گفت برنامهنویس یا مهندس نرمافزار. و همون ابزار جایگزین ما خواهد شد
- توی دوران هوش مصنوعی من از چیزی که مطمئنم اینه که اگه کسی به مباحث پایه و مهم حرفه خودش مسلط باشه و خودش رو بروز نگه داره، اصلاً نمیتونه با چیزی یا ابزاری جایگزین بشه
- ابزارهایی مثل Cursor و یا وابستگی بیشاز اندازه به ChatGPT و Copilot برای کسانی که تازهکار هستن مثل تیشه به ریشه زدن هست. وقتی تازهکار هستیم و پروژههامون رو میدیم به Cursor، به ChatGPT میگیم کد ما رو دیباگ کن، و Copilot ما همیشه وصله، دیگه چه انتظاری داریم به مفاهیم مهم برنامهنویسی و توسعه نرمافزار مسلط بشیم و به ردههای بالای این حوزه برسیم؟
- توی پستهای بعدی سعی میکنم راههایی رو معرفی کنم که کمک میکنه مهارتهای حل مسئلهمون رو بهتر کنیم 🌹
- بعد از مدتی که دارم برای برنامهنویسی از ابزارهای معروف هوش مصنوعی (کوپایلوت، چت جیپیتی) استفاده میکنم، واقعاً دوست داشتم یک سری تجارب مهمی رو براتون به اشتراک بذارم
- اوایل که وارد دنیای مهندسی نرمافزار شدم، برای برنامهنویسی از ادیتور Notepad++ استفاده میکردم، و روی استفاده از اون پافشاری داشتم 😄 صرفاً یک ادیتور که بتونه کدها رو رنگیرنگی نشون بده برام کافی بود. یادمه بعضی از همکارا میگفتن که چرا از ادیتورهای پیشرفتهتر استفاده نمیکنی که قابلیتهایی مثل Code suggestion و ... دارن. جواب من این بود که «الان نمیخوام»
- میخواستم خودم کدنویسی انجام بدم، تا ذهنم در جریان چون و چرای اتفاقها قرار بگیره. و بعداً هر وقت احساس تسلط کردم، میتونم از ابزارهای پیشرفتهتر استفاده کنم.
- اون پافشاری من، حالا بعد از گذشت سالها خیلی به کارم اومده و باعث شده راحتتر و سریعتر کدنویسی و دیباگ کنم. مثال امروزیتر این داستان، نحوهٔ استفاده ما از هوش مصنوعی هست. امروز هم خیلی سعی میکنم چنین رویکردی رو در قبال هوش مصنوعی داشته باشم
- شاید مهمترین مهارت برای یک برنامهنویس مهارت حل مسئله هست. حل مسئله یعنی بتونیم بهراحتی دیباگ کنیم و الگوریتمهای بهینه و کدهای تمیز و قابل توسعه بنویسم. اگه این مهارتها تقویت بشه، هوش مصنوعی دوست ما خواهد بود و به عنوان یک ابزار به ما کمک میکنه بهرهوری بیشتری داشته باشیم. اما برعکس اگه برای این مهارتهای حیاتی وابستگی مطلق به چیزهای خارج از خودمون (مثل هوش مصنوعی) داشته باشیم، دیگه به ما نمیشه گفت برنامهنویس یا مهندس نرمافزار. و همون ابزار جایگزین ما خواهد شد
- توی دوران هوش مصنوعی من از چیزی که مطمئنم اینه که اگه کسی به مباحث پایه و مهم حرفه خودش مسلط باشه و خودش رو بروز نگه داره، اصلاً نمیتونه با چیزی یا ابزاری جایگزین بشه
- ابزارهایی مثل Cursor و یا وابستگی بیشاز اندازه به ChatGPT و Copilot برای کسانی که تازهکار هستن مثل تیشه به ریشه زدن هست. وقتی تازهکار هستیم و پروژههامون رو میدیم به Cursor، به ChatGPT میگیم کد ما رو دیباگ کن، و Copilot ما همیشه وصله، دیگه چه انتظاری داریم به مفاهیم مهم برنامهنویسی و توسعه نرمافزار مسلط بشیم و به ردههای بالای این حوزه برسیم؟
- توی پستهای بعدی سعی میکنم راههایی رو معرفی کنم که کمک میکنه مهارتهای حل مسئلهمون رو بهتر کنیم 🌹
👍66👏9❤5👎3✍2🔥2👌2🤷♂1
🔺میخواید مهارتهای الگوریتمنویسی و حل مسئلهتون رو توسعه بدید؟
- یه روش که خیلی مناسب هست و کمک میکنه بهصورت کاربردی و آسون الگوریتمنویسی حرفهای رو یاد بگیرین، اینه که خودتون توابع کاربردی (Utility Function) که کتابخونههایی مثل Lodash و Laravel Collections ارائه میدن رو پیادهسازی کنین
- برای پیادهسازی توی جاوااسکریپت میتونین به این صفحه برید و توابع رو یکییکی پیادهسازی کنین. خبر خوب اینه تست هر تابع کنارش موجوده. کافیه تابع مربوطه رو اول خودتون بنویسین و تستش رو اجرا کنین تا ببینین درست نوشتین یا نه
- مهمه که از هوش مصنوعی استفاده نکنین و خودتون رو به چالش بکشید. وسواس نداشته باشید. فقط شروع کنید به نوشتن. لازم نیست عالی باشید. این موارد رو توی الگوریتمنویسی به خاطر داشته باشید: بهینهنویسی (Big O) و تمیز و خوانا نویسی
- میتونین یک ریپوی گیتهاب بسازین و کداتون رو اونجا قرار بدین
- با این کار حتی لازم نیست سراغ وبسایتهای لیتکد و هکررنک و ... برید و مسائل پیچیدهٔ کوانتومی پیادهسازی کنید
- یه روش که خیلی مناسب هست و کمک میکنه بهصورت کاربردی و آسون الگوریتمنویسی حرفهای رو یاد بگیرین، اینه که خودتون توابع کاربردی (Utility Function) که کتابخونههایی مثل Lodash و Laravel Collections ارائه میدن رو پیادهسازی کنین
- برای پیادهسازی توی جاوااسکریپت میتونین به این صفحه برید و توابع رو یکییکی پیادهسازی کنین. خبر خوب اینه تست هر تابع کنارش موجوده. کافیه تابع مربوطه رو اول خودتون بنویسین و تستش رو اجرا کنین تا ببینین درست نوشتین یا نه
- مهمه که از هوش مصنوعی استفاده نکنین و خودتون رو به چالش بکشید. وسواس نداشته باشید. فقط شروع کنید به نوشتن. لازم نیست عالی باشید. این موارد رو توی الگوریتمنویسی به خاطر داشته باشید: بهینهنویسی (Big O) و تمیز و خوانا نویسی
- میتونین یک ریپوی گیتهاب بسازین و کداتون رو اونجا قرار بدین
- با این کار حتی لازم نیست سراغ وبسایتهای لیتکد و هکررنک و ... برید و مسائل پیچیدهٔ کوانتومی پیادهسازی کنید
GitHub
es-toolkit/src at main · toss/es-toolkit
A modern JavaScript utility library that's 2-3 times faster and up to 97% smaller—a major upgrade to lodash. - toss/es-toolkit
❤31👍6👨💻3
۱۰۰ بار سریعتر از 𝗘𝗦𝗟𝗶𝗻𝘁 ؟! 😃
- واقعاً یکی از معضلات پروژههای بزرگ وقتیه که ابزارهایی مثل Linter و Formatter و روی اونها اجرا میشه
- جدیداً با توصیه Evan You (خالق Vue و Vite و …) با پروژهای به اسم Oxc آشنا شدم که مجموعهای از چند ابزار #جاوااسکریپتی هست که با زبان Rust نوشته شده و ادعا میکنه که سرعت و عملکرد فوقالعادی در مقایسه با رقبا داره
- این ابزارها شامل Parser و Linter و Formatter و Minifier و … هست و توی پروژههایی مثل Vite+ و Shopify و Turborepo استفاده شده و برای مثال ادعا میکنه ۱۰۰ برابر سریع تر از ESLint و ۴۰ برابر سریعتر از Babel هست
- یکی از ابزارهای این پروژه Oxlint هست که از اکثر دستورات فعلی ESLint و … پشتیبانی میکنه. اگه اندازهٔ پروژهتون خیلی بزرگ نیست و از ESlint استفاده میکنین، میتونین اون رو کاملاً با Oxlint جایگزین کنین
- برای آشنایی بیشتر با این پروژه این صفحه رو ببینین:
https://oxc.rs/docs/guide/usage/linter.html
#tools
- واقعاً یکی از معضلات پروژههای بزرگ وقتیه که ابزارهایی مثل Linter و Formatter و روی اونها اجرا میشه
- جدیداً با توصیه Evan You (خالق Vue و Vite و …) با پروژهای به اسم Oxc آشنا شدم که مجموعهای از چند ابزار #جاوااسکریپتی هست که با زبان Rust نوشته شده و ادعا میکنه که سرعت و عملکرد فوقالعادی در مقایسه با رقبا داره
- این ابزارها شامل Parser و Linter و Formatter و Minifier و … هست و توی پروژههایی مثل Vite+ و Shopify و Turborepo استفاده شده و برای مثال ادعا میکنه ۱۰۰ برابر سریع تر از ESLint و ۴۰ برابر سریعتر از Babel هست
- یکی از ابزارهای این پروژه Oxlint هست که از اکثر دستورات فعلی ESLint و … پشتیبانی میکنه. اگه اندازهٔ پروژهتون خیلی بزرگ نیست و از ESlint استفاده میکنین، میتونین اون رو کاملاً با Oxlint جایگزین کنین
- برای آشنایی بیشتر با این پروژه این صفحه رو ببینین:
https://oxc.rs/docs/guide/usage/linter.html
#tools
Oxc
Linter
A collection of high-performance JavaScript tools written in Rust
👍28❤3🙏2
ویت (𝗩𝗶𝘁𝗲) پلاس؟ ⚡️
- یک ایدهٔ جالب تیم Vite متحد کردن و یکپارچه کردن ابزارهایی هست که توی پروژههای فرانتاندی استفاده میشه. یکی از معضلهای پروژههای فرانتاندی تنوع بالای ابزارها و مخصوصاً کانفیگهایی هست که توی اونها استفاده میشه. اما Vite برای حل این مسئله توی نسخهٔ پلاس تلاش کرده چنین ابزارها و کانفیگهایی رو به صورت پیشفرض توی خودش جا بده. مثل Prettier و Linter و Vitest
- ویت پلاس به زودی منتشر میشه و برای پروژههای شخصی، اپن سورس و کسب و کارهای کوچیک رایگان هست
- جزییات بیشتر:
https://voidzero.dev/posts/announcing-vite-plus
- یک ایدهٔ جالب تیم Vite متحد کردن و یکپارچه کردن ابزارهایی هست که توی پروژههای فرانتاندی استفاده میشه. یکی از معضلهای پروژههای فرانتاندی تنوع بالای ابزارها و مخصوصاً کانفیگهایی هست که توی اونها استفاده میشه. اما Vite برای حل این مسئله توی نسخهٔ پلاس تلاش کرده چنین ابزارها و کانفیگهایی رو به صورت پیشفرض توی خودش جا بده. مثل Prettier و Linter و Vitest
- ویت پلاس به زودی منتشر میشه و برای پروژههای شخصی، اپن سورس و کسب و کارهای کوچیک رایگان هست
- جزییات بیشتر:
https://voidzero.dev/posts/announcing-vite-plus
👌11❤6
🔺 حرکت جالب Stackoverflow
- اگه از چتجیپیتی و ... استفاده میکنین ولی دلتون پیش Stackoverflow هست، میتونین از سرویس جدید این شرکت استفاده کنین که شباهت زیادی به چتبات های امروزی داره ولی جوابهایی به سبک Stackoverflow میده:
https://stackoverflow.ai
#links
- اگه از چتجیپیتی و ... استفاده میکنین ولی دلتون پیش Stackoverflow هست، میتونین از سرویس جدید این شرکت استفاده کنین که شباهت زیادی به چتبات های امروزی داره ولی جوابهایی به سبک Stackoverflow میده:
https://stackoverflow.ai
#links
Stack Overflow
AI Assist
Stack Overflow | The World’s Largest Online Community for Developers
❤23👍12😁6😍3
🔺نسخه رسمی React Compiler منتشر شد
- برای خیلی از توسعهدهندهها نحوه استفاده درست از توابع useMemo و useCallback و … گنگ بود. طوری که گاهی اوقات اثر معکوس روی عملکرد برنامه داشتن
- چند وقت پیش تیم ریاکت شروع کرد به توسعهٔ یک قابلیت خیلی خوب و کاربردی به اسم React Compiler که هدف اصلی اون کاهش قابل توجه نیاز به استفاده از useMemo و useCallback و React.memo و … بود. یعنی افزایش بهینگی و کاهش رندرهای اضافی، به صورت خودکار، بدون نیاز به استفاده از اون توابع!
- حالا نسخه رسمی این ابزار منتشر شده و میتونه توی هر برنامهٔ ریاکتی ورژن ۱۷ به بالا مورد استفاده قرار بگیره
- نصب و آشنایی بیشتر:
https://react.dev/learn/react-compiler/introduction
- برای خیلی از توسعهدهندهها نحوه استفاده درست از توابع useMemo و useCallback و … گنگ بود. طوری که گاهی اوقات اثر معکوس روی عملکرد برنامه داشتن
- چند وقت پیش تیم ریاکت شروع کرد به توسعهٔ یک قابلیت خیلی خوب و کاربردی به اسم React Compiler که هدف اصلی اون کاهش قابل توجه نیاز به استفاده از useMemo و useCallback و React.memo و … بود. یعنی افزایش بهینگی و کاهش رندرهای اضافی، به صورت خودکار، بدون نیاز به استفاده از اون توابع!
- حالا نسخه رسمی این ابزار منتشر شده و میتونه توی هر برنامهٔ ریاکتی ورژن ۱۷ به بالا مورد استفاده قرار بگیره
- نصب و آشنایی بیشتر:
https://react.dev/learn/react-compiler/introduction
react.dev
Introduction – React
The library for web and native user interfaces
🔥26❤8