Dev Perfects
40 subscribers
9.23K photos
1.26K videos
468 files
13K links
بخوام خیلی خلاصه بگم
این کانال میاد مطالب کانالای خفن تو حوزه تکنولوژی و برنامه نویسی رو جمع میکنه

پست پین رو بخونید
https://t.iss.one/dev_perfects/455


ارتباط:
https://t.iss.one/HidenChat_Bot?start=936082426
Download Telegram
Forwarded from کدنویس یکروزه (پدرام رحیمی)
rock-paper-scissors.zip
327.4 KB
کد بازی  سنگ کاغذ قیچی

   که در ویدیویی در مورد تکنیک متفاوت هوش مصنوعی به کار رفته در آن صحبت شده است.
#javascript  #game   #vue
تاس سه بُعدی فقط با CSS

با این برنامه‌ی بسیار جالب که فقط با اسکریپت CSS بسیار هنرمندانه‌ تاس های واقعی را شبیه سازی کرده می توان بدون صدا تخته نرد هم بازی کرد!
برای چرخش تاس ها و انیمیشن نرم اونها هم از جاوااسکریپت استفاده شده.
کدنویسی با هوش مصنوعی DeepSeek

#javascript #css #html
Forwarded from کدنویس یکروزه (پدرام رحیمی)
angular.pdf
1.1 MB
جزوه ی آشنایی با انگولار Angular

سال ۲۰۱۰ محصول همکاری مایکروسافت و گوگل و یک کار تیمی عظیم این فریم ورک شد که برنامه نویسان سی شارپ خیلی با محیطش راحت بودن و تلخی و سختی کار با جاوااسکریپت یا کتابخانه های مرتبط مثل React رو از بین برد و میتونستن صفحات بی نیاز از رفرش یا SPA بسازن. هر چند بعد از اون فقط ۴ سال بعد یکی از اعضای تیم توسعه دست به تولید ابزاری به مراتب قوی تر و ساده تر زد که به صورت پیشرونده یا Progressive (بدون لود حجم زیادی از کتابخانه و استفاده از کد فقط زمان نیاز) همان کارهای انگولار رو این بار ساده تر و سریع تر انجام میداد و مخترعش آقای ایوان یو، نام Vue رو براش انتخاب کرد.
اگر فیلم و متن آموزش Node رو هم یک مرور کنید بد نیست.

#javascript #angular #book
Forwarded from Dev Dastan
🖼️ React is Just document.createElement() With Good Marketing, and I Can Prove It

React, the darling of modern web development, is nothing more than document.createElement() wrapped in excellent marketing and increasingly complex abstractions.


📚 Article: [here]

#javaScript #react


🖥 Follow @devDastan for more content.
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Dev Dastan
This media is not supported in your browser
VIEW IN TELEGRAM
🖼️ The Hidden Cost of JavaScript Arrays (Part 1 - Memory Allocation)


✔️ JS arrays can tank performance and there are ways to optimize them.


Operations like push(), pop(), and splice() can trigger memory reallocation, copying, and fragmentation.

Using fixed-size or oversized arrays can be more efficient.


// Inefficient: Repeatedly resizing the array

let arr = [];
console.time("Resizing Array");
for (let i = 0; i < 10000; i++) {
arr.push(i);
}
console.timeEnd("Resizing Array");

// Time varies, typically slow

// Efficient: Using a pre-sized array

let arr2 = new Array(10000);

console.time("Pre-sized Array");

for (let i = 0; i < 10000; i++) {
arr2[i] = i;
}

console.timeEnd("Pre-sized Array"); // Time varies, typically faster


📚 Article: [here]

#javaScript #performance #softwareEngineering


🖥 Follow @devDastan for more content.
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Dev Dastan
This media is not supported in your browser
VIEW IN TELEGRAM
🖼️ The Hidden Cost of JavaScript Arrays (Part 1 - Memory Allocation)


✔️ JS arrays can tank performance and there are ways to optimize them.

Operations like push(), pop(), and splice() can trigger memory reallocation, copying, and fragmentation.

Using fixed-size or oversized arrays can be more efficient.



// Inefficient: Repeatedly resizing the array

let arr = [];

for (let i = 0; i < 10000; i++) {
arr.push(i);
}

// Efficient: Using a pre-sized array

let arr2 = new Array(10000);


for (let i = 0; i < 10000; i++) {
arr2[i] = i;
}





📚 Article: [here]

#javaScript #performance #softwareEngineering


🖥 Follow @devDastan for more content.
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Dev Dastan
🖼️ A Brief History of JavaScript: This year, JavaScript turns 30


🔸 1994: Netscape releases Netscape Navigator 1.0


🔸 1995: Brendan Eich creates the very first version of JavaScript


🔸 1996: Microsoft introduces JScript in Internet Explorer 3 to compete with Netscape Navigator


🔸 1996: Netscape Navigator 2.0 is released with JavaScript 1.0


🔸 1997: Netscape submits JavaScript to ECMA International


🔸 1998: Official release of the first ECMAScript language specification (ECMAScript 2)


🔸 1999: Microsoft releases Internet Explorer 5, which uses more proprietary technology than before.


🔸 2001: The first JSON message is sent


🔸 2002: JSLint, the “grandfather of all JavaScript syntax checkers” is introduced


🔸 2003: Apple introduces Safari and WebKit


🔸 2004: A beta version of Gmail is released, which uses a new asynchronous JavaScript protocol, “AJAX”


🔸 2006: John Resig creates first commit to a project named jQuery


🔸 2007: The first Apple iPhone is released with its mobile safari not supporting Flash


🔸 2008: Netscape Navigator is sunset, marking the end of the “First Browser War”


🔸 2008: Douglas Crockford publishes “JavaScript: The Good Parts”


🔸 2008: Google releases the Chrome browser, the fastest web browser at the time, and with it, the V8 engine.


🔸 2009: Ryan Dahl begins work on Node.js


🔸 2009: The first commit on Express.js is created


🔸 2010: npm 1.0 is released


🔸 2010: WebStorm 1.0, a new JavaScript IDE by JetBrains, is released


🔸 2010: AngularJS and Backbone.js are released


🔸 2012: Webpack, a module bundler, is introduced


🔸 2012: Microsoft makes TypeScript 0.8 available for the public


🔸 2013: Facebook releases React


🔸 2014: Vue.js is released


🔸 2014: The first commit to Babel.js is created


🔸 2014: Amazon announces AWS Lambda, powered by Node.js


🔸 2015: GraphQL, a query language for APIs, is launched


🔸 2015: Redux is released


🔸 2015: Web assembly is released


🔸 2015: ECMAScript 6 (ES2015) is released


🔸 2016: Microsoft releases VSCode 1.0, a lightweight, fast, cross-platform IDE


🔸 2016: Angular (Angular2) is released


🔸 2016: Next.js 1.0 is released


🔸 2017: Prettier 1.0 is released


🔸 2017: Facebook launches Yarn, a new package manager


🔸 2018: TensorFlow.js is released, bringing machine learning to the browser via WebGL or WebGPU without needing compute


🔸 2019: Node.js stabilizes support for ECMAScript modules in v13.2.0


🔸 2020: JavaScript makes it into space with SpaceX Dragon


🔸 2020: Deno 1.0 is released


🔸 2022: Internet Explorer 11 is retired


🔸 2023: Bun 1.0 is released


🔸 2025: TypeScript will be ported to Go



📚 Article: [here]

#JavaScript


🖥 Follow @devDastan for more content.
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Ditty | دیتی
🔺اکمااسکریپت ۲۰۲۵ و متدهای جدید Set

- توی جدیدترین آپدیت اکمااسکریپت (۲۰۲۵) متدهای جدید و کاربردی به مجموعه Set اضافه شده

- توی جدیدترین پست دیتی اونها رو بررسی می‌کنیم:
ditty.ir/589

#javascript
Forwarded from Ditty | دیتی
🔺آزادسازی قانونی جاوااسکریپت

- شاید جالب باشه که بدونیم مالکیت کلمهٔ «جاوااسکریپت» در اختیار شرکت اوراکل هست. این در حالیه که این شرکت نه جاوااسکریپت رو ساخته و نه تلاشی برای توسعهٔ اون انجام داده

- به‌تازگی گروهی از افراد معروف حوزهٔ برنامه‌نویسی (از جمله خالق جاوااسکریپت، خالق نودجی‌اس، خالق npm و ۲۱هزار نفر دیگه) از طریق قانون درخواستی برای لغو مالکیت واژه «جاوااسکریپت» توسط اوراکل رو ارائه دادن

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

- اوراکل چکار کرد؟ اوراکل برای اینکه به دادگاه ثابت کنه که داره از کلمهٔ جاوااسکریپت استفادهٔ تجاری می‌کنه زیاد خودش رو به زحمت نینداخت. رفت از وبسایت رسمی نودجی‌اس یک اسکرین‌شات مرموزانه گرفت و به دادگاه ارائه داد و گفت «من دارم استفاده تجاری می‌کنم. لطفاً برند من رو تمدید کنید!»

- این کار باعث عصبانیت بیشتر رایان دال (مالک نودجی‌اس) شد. تا جایی که شکایتی رو در این مورد هم ثبت کرد (که البته شکایت برای این قسمت به جایی نرسید)

- اما موضوع آزادسازی و عامیت بخشیدن به کلمه «جاوااسکریپت» هنوز در حال بررسی هست و شرکت اوراکل تا تاریخ ۷ آگوست ۲۰۲۵ می‌بایست در این مورد اظهار نظر کنه

- این اتفاق چرا مهمه؟ توی دنیایی که کپی‌رایت اهمیت داره، استفاده کردن از نام جاوااسکریپت ممکنه تبعات قانونی برای افراد و سازمان‌ها داشته باشه و برای همین افراد و سازمان‌ها سعی می‌کنن با ریسک کمتری از این واژه استفاده کنن. مثلاً استفاده از JS Conf بجای JavaScript Conf

- صفحه رسمی با این درخواست:
https://javascript.tm


#javascript
Forwarded from Code Lab (𝘮𝘰𝘯𝘪𝘣 𝘴𝘢𝘭𝘦𝘩𝘪)
🔥 تفاوت جاوااسکریپت و تایپ‌اسکریپت

جاوااسکریپت یه زبان Dynamic هست یعنی تایپ داده‌ها رو موقع اجرا مشخص می‌کنه و این باعث میشه گاهی با خطاهای عجیب روبرو بشی
تایپ‌اسکریپت اومده تا این مشکل رو حل کنه و به جاوااسکریپت قدرت Static Typing بده یعنی از همون اول تایپ متغیرها رو مشخص کنی و قبل از اجرا خطاها رو ببینی
در واقع تایپ‌اسکریپت مثل یه لایه امن روی جاوااسکریپت عمل می‌کنه و کدتو تمیزتر و قابل پیش‌بینی‌تر می‌کنه
یه نکته مهم بدون تایپ‌اسکریپت تبدیل به جاوااسکریپت میشه پس برای اجرا همیشه به JS برمی‌گرده

#TypeScript #JavaScript

CODELAB | GpCodeLab
#javascript

زبان CoffeeScript دقیقا برعکس تایپ‌اسکریپته: TypeScript به جاوااسکریپت قابلیت‌های تایپ و ساختار اضافه می‌کنه، ولی CoffeeScript تلاش می‌کنه با سینتکس ساده‌تر و کوتاه‌تر جاوااسکریپت رو راحت تر کنه دیگه حتی همون var و let هم نیاز نیست بزارین:

https://coffeescript.org/

@DevTwitter | <Nimo/>
Forwarded from Gopher Academy
🔵 عنوان مقاله
be experimenting with

🟢 خلاصه مقاله:
از کتابخانه‌های زیادی که می‌خواهند به مخاطبان بیشتری برسند، در حال حاضر نسخه‌های JavaScript ارائه می‌شود تا هم در مرورگر و هم در محیط‌های Node.js، Deno و Bun در دسترس باشند. مزیت اصلی، دسترسی گسترده، توزیع ساده از طریق npm و تجربه کاربری یکپارچه بین فرانت‌اند و بک‌اند است.

دو مسیر رایج وجود دارد: بازنویسی بومی با TypeScript برای ارائه APIهای استاندارد، تایپ‌های دقیق و قابلیت tree-shaking؛ یا پورت از زبان‌های سطح پایین به WebAssembly برای حفظ کارایی و استفاده مجدد از کد موجود. ابزارهایی مانند Emscripten، wasm-bindgen و ابزارهای Go این کار را تسهیل می‌کنند و با ارائه TypeScript declarations سطح استفاده‌پسند ایجاد می‌شود.

چالش‌ها شامل انتخاب بین ESM و CJS، بهینه‌سازی اندازه باندل و دارایی‌های WASM، محدودیت‌های مرورگر (فایل‌سیستم و سوکت خام)، تفاوت‌های اجرا در Node.js/Deno/Bun، و مدیریت کارایی و زمان راه‌اندازی است. استفاده از Web Workers، بارگذاری تدریجی، بنچمارک‌گیری در محیط‌های مختلف و مستندسازی دقیق کمک‌کننده است. در حوزه امنیت نیز باید مراقب زنجیره تأمین، نسخه‌بندی SemVer، تست و انتشار مرحله‌ای بود.

نمونه‌های موفق شامل OpenCV.js، نسخه WASM از SQLite، TensorFlow.js، ONNX Runtime Web و Pyodide است که نشان می‌دهند با طراحی API مناسب و ابزار درست، پورت‌های جدی عملی است. قاعده تصمیم‌گیری: اگر کتابخانه سنگین و بهینه است، WASM انتخاب خوبی است؛ اگر هدف تجربه توسعه‌دهنده در اکوسیستم JavaScript است، بازنویسی با TypeScript بهتر است؛ و برای قابلیت‌های سخت‌افزاری/سیستمی، رویکرد هیبریدی یا سمت سرور منطقی است. با پیشرفت WebAssembly/WASI، WebGPU و پلتفرم‌های edge مانند Cloudflare Workers و Vercel Edge، زمان مناسبی برای آزمایش و تکرار است.

#JavaScript #WebAssembly #TypeScript #NodeJS #Deno #npm #OpenSource

🟣لینک مقاله:
https://golangweekly.com/link/175359/web


👑 @gopher_academy
Forwarded from Gopher Academy
🔵 عنوان مقاله
qjs: Run JavaScript in Go

🟢 خلاصه مقاله:
qjs یک روش تازه برای اجرای JavaScript داخل اپ‌های Go است که بدون نیاز به Cgo کار می‌کند. به‌جای اتصال به یک کتابخانه بومی، نسخه فورک‌شده‌ای از QuickJS را به WebAssembly کامپایل کرده و آن را زیر Wazero اجرا می‌کند. این رویکرد کل زنجیره را در محیط خالص Go نگه می‌دارد و فرایند بیلد، استاتیک‌سازی و کراس‌کامپایل را ساده‌تر می‌کند. مزیت دیگر، ایزوله‌سازی و سندباکس طبیعی ناشی از WebAssembly است. هرچند احتمالاً نسبت به اتصال بومی اندکی سربار دارد، اما برای سناریوهایی مثل اسکریپت‌نویسی، افزونه‌ها و اجرای امن منطق کاربر، توازن خوبی بین سادگی، پرتابل‌بودن و امنیت ارائه می‌دهد.

#Go #JavaScript #WebAssembly #Wazero #QuickJS #Cgo #GoLang #Embedding

🟣لینک مقاله:
https://golangweekly.com/link/175350/web


👑 @gopher_academy
Forwarded from Gopher Academy
🔵 عنوان مقاله
vite-plugin-use-golang: Write Go in JavaScript Files?

🟢 خلاصه مقاله:
** این افزونه با نام vite-plugin-use-golang برای Vite یک آزمایش جالب است که با قرار دادن دستور "use golang" داخل فایل‌های JavaScript، کدهای Go را شناسایی کرده و آن‌ها را برای استفاده در فرانت‌اند به WebAssembly کامپایل می‌کند. نتیجه این است که می‌توانید بخشی از منطق Go را مستقیماً در مرورگر و کنار کدهای JavaScript فراخوانی کنید. این رویکرد برای بهره‌برداری مجدد از منطق موجود در Go یا آزمایش بخش‌های حساس به کارایی مفید است، اما پیچیدگی فرایند ساخت، افزایش حجم باندل، زمان راه‌اندازی WASM، دشواری دیباگ و محدودیت دسترسی مستقیم به DOM از چالش‌های آن هستند. در مجموع، این کار «نامتعارف اما واقعی» است و نشان می‌دهد زنجیره ابزارهای امروز تا کجا قابل گسترش است.

#Vite #Go #WebAssembly #WASM #JavaScript #Frontend #DevTools #WasmInBrowser

🟣لینک مقاله:
https://golangweekly.com/link/176347/web


👑 @gopher_academy
Forwarded from Golden Code (علی 🇨🇴)
خیلی وقتا برای نمایش عددها، قیمت‌ها یا درصدها کمی دردسر داریم ( ویرگول، اعشار، واحد پول، زبان کاربر و...)
اما جاوااسکریپت خودش یه ابزار آماده داره که همه‌ی اینارو خودش انجام میده 👇🏾

چی هستش؟

این Intl.NumberFormat یه قابلیت Native و قدرتمنده
که اعداد رو بر اساس زبان و منطقه‌ی کاربر فرمت میکنه.
نه نیاز به کتابخونه داریم نه regex بنویسیم

یه مثال:
const num = 1234567.89;

new Intl.NumberFormat('en-US').format(num);
// 1,234,567.89

new Intl.NumberFormat('fa-IR').format(num);
// ۱٬۲۳۴٬۵۶۷٫۸۹ 🇮🇷

👆🏾 همون عدد، ولی متناسب با زبان کاربر نمایش داده میشه.

برای پول و درصد :

new Intl.NumberFormat('en-US', {
style: 'currency',
currency: 'USD'
}).format(4999.99);
// $4,999.99 💵

new Intl.NumberFormat('fa-IR', {
style: 'percent',
maximumFractionDigits: 1
}).format(0.853);
// ‎٪۸۵٫۳ 🔢

مزایاش؟

• داخلی و سریع (بدون نصب کتابخونه)
• پشتیبانی از تمام زبان‌ها و ارزها
• کنترل اعشار، جداکننده‌ها، و سبک نمایش
• ظاهر حرفه‌ای‌تر برای کاربر 👌🏾

خلاصه:
وقتی Intl.NumberFormat هست، دیگه نیازی به کدنویسی اضافی برای فرمت اعداد نیست.
#JS #JavaScript #جاوااسکرپیت

@GoldenCodeir 🔥

(به‌منبع و مثالش دقت کنید 👇🏾)
https://x.com/KaraBharat/status/1984635931832328388?t=nyibER_ZCoXfs8nLIFoy7g&s=19
Forwarded from Gopher Academy
🎙️ عنوان پادکست:
An episode as short as the name of a unix command
خلاصه پادکست:
این اپیزود کوتاه به‌روزترین خبرها را پوشش می‌دهد: انتشار نسخه‌های Go 1.25.3 و 1.24.9، و مرور بلاگ Thea Heinen درباره‌ی کشف یک باگ در کامپایلر arm64 زبان Go. همچنین درباره‌ی پیشرفت پشتیبانی zsh و بهبودهای مرتبط با sh صحبت می‌شود، و خبر یک Go meetup و ضبط زنده اپیزود در San Francisco اعلام می‌گردد. در بخش Lightning، به qjs (یک JavaScript runtime مدرن و امن بدون CGO برای برنامه‌های Go) و Kaizen (تماشای انیمه از ترمینال) می‌پردازیم. در پایان از مخاطبان برای حمایت از پادکست در Patreon دعوت می‌شود.

#Go #Golang #arm64 #Unix #zsh #JavaScript #qjs #Podcast
Forwarded from Gopher Academy
🔵 عنوان مقاله
A look into how JavaScript source maps work

🟢 خلاصه مقاله:
خلاصه‌ای از ساخت‌وکار source map در JavaScript: کدی که در مرورگر اجرا می‌شود معمولاً پس از transpile، bundle و minify با کد اصلی تفاوت دارد. source map پلی است میان این دو تا بتوانید در DevTools مثل کد اصلی breakpoint بگذارید و خطاها را بخوانید. یک source map فایل JSONی است با فیلدهایی مثل version، file، sources، names، sourcesContent و یک رشته mappings که با Base64 VLQ فشرده شده و با بخش‌های دلتایی موقعیت‌های کد تولید‌شده را به سطر/ستون‌های فایل‌های اصلی (و در صورت وجود، نام‌ها) نگاشت می‌کند. ابزارهایی مثل TypeScript و Babel نگاشت را هنگام تبدیل می‌سازند، Webpack/Rollup/esbuild آن‌ها را ترکیب می‌کنند و Terser در مرحله minify این زنجیره را حفظ می‌کند؛ این همان chain شدن source map است. مرورگر از طریق دستور sourceMappingURL (فایل خارجی یا data URI) map را می‌خواند و با رعایت CORS آن را decode کرده و در DevTools نمایش و دیباگ را بر اساس کد اصلی ممکن می‌سازد؛ همچنین پلتفرم‌هایی مثل Sentry با دریافت map می‌توانند stack traceهای production را de-minify کنند. در عمل، به خاطر اندازه و حریم خصوصی، بهتر است در production از الگوهایی چون hidden-source-map یا nosources-source-map، میزبانی امن، و فشرده‌سازی/کش استفاده کنید. محدودیت‌ها شامل دقت ستونی ناقص در برخی تبدیل‌ها، کدهای dynamic/eval، ناسازگاری مسیرها و سوگیری‌های نگاشت است. بهترین رویه‌ها: فعال‌سازی map در تمام مراحل build، اعتبارسنجی در DevTools، اطمینان از CORS مناسب برای ابزار خطا، کنترل نسخه ابزارها و آزمون remap شدن خطاها در CI.

#JavaScript #SourceMaps #WebDev #Debugging #DevTools #Bundlers #Performance

🟣لینک مقاله:
https://golangweekly.com/link/176649/web


👑 @gopher_academy
Forwarded from Golden Code (علی 🇨🇴)
گاهی یک رشته داریم که عناصرش با "," یا ";" جدا شدن. با استفاده از split() و یک Regex ساده میتونیم هر دو رو همزمان جدا کنیم.

مثال:

let text = "apple,banana;orange,grape;melon";
let parts = text.split(/[,;]/);

console.log(parts);
// ["apple", "banana", "orange", "grape", "melon"]


الگوی بالا میگه هرجا ", " یا ";" دیدی جداسازی انجام بده برامون

#Javascript #جاوا_اسکریپت
#جاوااسکریپت

@GoldenCodeir 🔥
(به‌منبع و مثالش دقت کنید 👇🏾)
https://x.com/Shefali__J/status/1988564436559249609?t=3KBELet8DL6rU_-xqTFCDA&s=35