رقصنده با کد – Telegram
رقصنده با کد
784 subscribers
1.69K photos
850 videos
207 files
665 links
Here are some interesting things I've come across during my learning process. That's it. Admin ID:
@alithecodeguy
Download Telegram
برای من ریکتی ، یه ذره دردناکه گفتنش ولی به نظر اگر آنگولار بلد باشید ، با اختلاف فاحشی شانس مهاجرتتون بیشتر میشه.

چیه آخه این مزخرف 😁
لیست سایت‌های کاریابی خارجی‌ که قبلا ایرانی‌ها ازش نتیجه گرفتن:

1- linkedin
2- github
3- indeed
4- direct on company website

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

---------------------------------

اگر سایتی رو میشناسید کامنت کنید ، ادش میکنم به لیست بالا تا شانس کار خوب پیدا کردن همه بره بالاتر.

این پست رو دوست داشتید به اشتراک بذارید که برنامه‌نویسای بیشتری ببینن.

#job #work
Javanoscript - Day 13

Count By

Implement a function countBy(array, iteratee) that creates an object composed of keys generated from the results of running each element of array through iteratee. The corresponding value of each key is the number of times the key was returned by iteratee.


countBy(array, iteratee);


Arguments

- array (Array): The array to iterate over.
- iteratee (Function): The iteratee function to transform elements. The function is invoked with one argument: (value).

Returns

(Object): Returns the composed aggregate object.

Examples


countBy([6.1, 4.2, 6.3], Math.floor);
// => { '4': 1, '6': 2 }

countBy([{ n: 3 }, { n: 5 }, { n: 3 }], (o) => o.n);
// => { '3': 2, '5': 1 }


The function should return when array is empty and treat null / undefined keys after going through iteratee as it is.


countBy([], (o) => o); // => {}

countBy([{ n: 1 }, { n: 2 }], (o) => o.m); // => { undefined: 2 }


@danceswithcode
@alithecodeguy

#js #javanoscript #interview87
فکت:
شما با برنامه‌نویسی هیچ‌وقت پولدار نمیشی.

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

چه جوری پولدار شیم؟ نمیدونم ولی دو تا گزینه رو میشناسم :
۱- قبول کنیم که کارمندیم و با همین نون بخور نمیر پیش بریم
۲- بزنیم توی دل ترسامون و بریم وسط بازار آزاد. چه بوقلمون دربیاد ، چه یه لقمه نون خشک ، بشینیم در آرامش نوش جان کنیم.

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

https://business.gemini.google/
Javanoscript - Day 14

Curry

Currying is the technique of converting a function that takes multiple arguments into a sequence of functions that each takes a single argument.

Implement the curry function which accepts a function as the only argument and returns a function that accepts single arguments and can be repeatedly called until at least the minimum number of arguments have been provided (determined by how many arguments the original function accepts). The initial function argument is then invoked with the provided arguments.

Examples


function add(a, b) {
return a + b;
}

const curriedAdd = curry(add);
curriedAdd(3)(4); // 7

const alreadyAddedThree = curriedAdd(3);
alreadyAddedThree(4); // 7



function multiplyThreeNumbers(a, b, c) {
return a * b * c;
}

const curriedMultiplyThreeNumbers = curry(multiplyThreeNumbers);
curriedMultiplyThreeNumbers(4)(5)(6); // 120

const containsFour = curriedMultiplyThreeNumbers(4);
const containsFourMulFive = containsFour(5);
containsFourMulFive(6); // 120


@danceswithcode
@alithecodeguy

#js #javanoscript #interview87
چه جالب و چه غم انگیز
با وجود ریکتی بودن خودم ، ولی قدرت همیشه توی سادگیه.

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

جدایی از بحث هک اخیر ، شما اگر فقط ریکت و نکست بلدی و نمیتونی با vanilla js اپ‌های وب رو توسعه بدی ، با ضعف بزرگی درگیری که شاید هنوز ندیدیش.

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

تراکنشهای استرایپ توی بلک فرایدی هستش. این که چه قدره مهم نیست ، این که ما توش نیستیم مهمه.

بچه‌ای هستیم با توپ چهل تیکه که هیچ بچه‌ی دیگه‌ای حاضر نیست باهامون بازی کنه.
Javanoscript - Day 15

Debounce

Debouncing is a technique used to control how many times we allow a function to be executed over time. When a JavaScript function is debounced with a wait time of X milliseconds, it must wait until after X milliseconds have elapsed since the debounced function was last called.

You almost certainly have encountered debouncing in your daily lives before (e.g. when entering an elevator). Only after X duration of not pressing the "Door open" button (the debounced function not being called) will the elevator door actually close (the callback function is executed).

Implement a debounce function which accepts a callback function and a wait duration. Calling debounce() returns a function which has debounced invocations of the callback function following the behavior described above.

Examples


let i = 0;
function increment() {
i++;
}
const debouncedIncrement = debounce(increment, 100);

// t = 0: Call debouncedIncrement().
debouncedIncrement(); // i = 0

// t = 50: i is still 0 because 100ms have not passed.

// t = 100: increment() was invoked and i is now 1.



debouncedIncrement() is called multiple times.


let i = 0;
function increment() {
i++;
}
const debouncedIncrement = debounce(increment, 100);

// t = 0: Call debouncedIncrement().
debouncedIncrement(); // i = 0

// t = 50: i is still 0 because 100ms have not passed.
// Call debouncedIncrement() again.
debouncedIncrement(); // i = 0

// t = 100: i is still 0 because it has only
// been 50ms since the last debouncedIncrement() at t = 50.

// t = 150: Because 100ms have passed since
// the last debouncedIncrement() at t = 50,
// increment was invoked and i is now 1 .


@danceswithcode
@alithecodeguy

#js #javanoscript #interview87
حجم زیادی آگهی کار فرانت اند خارجی رو دادم هوش مصنوعی خلاصه کرد و به این نتیجه رسید که عناوین زیر باید توی رزومتون باشه. برای هر نوع پوزیشن فرانتی که اقدام می‌کنید.

به ترتیب اولویت:

1- React
2- TypeScript
3- JavaScript
4- Next.js
5- Node.js
6- GraphQL
7- Micro Frontend
8- BFF
9- Jest , React Testing Library , Playwright
10- Redux, Mobx
11- Performance, Security, & Accessibility
12- CI/CD
13- Git, GitLab, GitHub
14- Monorepo Setups & Tooling

اگر براتون عجیبه بعضی‌هاش چه ربطی داره ، باید بگم که بله. اکثرا دنبال فول استکن.
Javanoscript - Day 16

Promisify

Before promises/async/await became the standard, it was a convention for async APIs in JavaScript to accept callbacks as the last argument. Many async versions of Node.js APIs (e.g. fs.readFile and fs.rm) have such signatures. Node.js' util.promisify function was created to wrap around callback-based functions by returning Promises so that they can be used with async/await.

Implement a function promisify that takes a function following the common callback-last error-first style, i.e. taking a (err, value) => ... callback as the last argument, and returns a version that returns promises.

Examples


// Example function with callback as last argument
// The callback has the signature `(err, value) => any`
function foo(url, options, callback) {
apiCall(url, options)
.then((data) => callback(null, data))
.catch((err) => callback(err));
}

const promisifiedFoo = promisify(foo);
const data = await promisifiedFoo('example.com', { foo: 1 });


@danceswithcode
@alithecodeguy

#js #javanoscript #interview87
دارم روی یک مقاله جامع برای webrtc کار میکنم که اینجا به اشتراک بذارم (شاید هم ویدیو کردم)

جز mdn و webrtc.org ، اگر رفرنس دیگه‌ای دارید که میتونه مفید باشه ، ممنون میشم بگید.
اینم آخر شبی ببینید فانه: 😁

https://youtube.com/shorts/W26aUa3ZBVA?si=i5-wPHcNoEaksW_r
Javanoscript - Day 17

Throttle

Throttling is a technique used to control how many times we allow a function to be executed over time. When a JavaScript function is said to be throttled with a wait time of X milliseconds, it can only be invoked at most once every X milliseconds. The callback is invoked immediately and cannot be invoked again for the rest of the wait duration.

Implement a throttle function which accepts a callback function and a wait duration. Calling throttle() returns a function which throttled invocations of the callback function following the behavior described above.

Examples


let i = 0;
function increment() {
i++;
}
const throttledIncrement = throttle(increment, 100);

// t = 0: Call throttledIncrement(). i is now 1.
throttledIncrement(); // i = 1

// t = 50: Call throttledIncrement() again.
// i is still 1 because 100ms have not passed.
throttledIncrement(); // i = 1

// t = 101: Call throttledIncrement() again. i is now 2.
// i can be incremented because it has been more than 100ms
// since the last throttledIncrement() call at t = 0.
throttledIncrement(); // i = 2


@danceswithcode
@alithecodeguy

#js #javanoscript #interview87