Ru
Главная → Каналы → Технологии → HowProgrammingWorks - JavaScript and Node.js Programming

HowProgrammingWorks - JavaScript and Node.js Programming

@HowProgrammingWorks · Технологии

Программная инженерия и JavaScript сообщества Метархия. Ссылки на митапы, группы и каналы сообщества https://github.com/HowProgrammingWorks/Index/blob/master/Links.md

6 530подписчиков сейчас
69.0%ERR
6.0цитируемость
2постов/день
Русскийязык
Россиягео
Подписаться в Telegram
Данные обновлены 22.07.2020

Публикации всего: 81

Постов на странице: 10 30 50 Страница 1 из 9
https://youtu.be/ZRrq3DuXvd4
👍 4 ❤ 1 🔥 1 Перейти к публикации →
https://youtu.be/EV3BqA06qQc
🔥 6 💯 3 ❤ 2 Перейти к публикации →
Если взять одно, что я хочу в JavaScript, то это будет Block Expression. При чем в V8 все готово, чтобы это сделать, в каждом блоке последнее выражение отдельно сохраняется в структуре V8, я даже согласен на do-expression, но зачем этот do? Сейчас приходится либо выносить функцию или использовать IIFE или let снаружи - это отвратительно:
let price;
if (user.isAdmin) {
  price = 0;
} else if (user.hasDiscount) {
  const discount = calculateDiscount(user);
  price = basePrice * (1 - discount);
} else {
  price = basePrice;
}
Промежуточные переменные не загрязняют scope, а можно было бы:
const id = {
  const normalized = name.trim().toLowerCase();
  const separator = normalized.includes("-") ? "-" : "_";
  const parts = normalized.split(separator);
  parts.join(":");
};
Вместо IIFE только представьте как можно было бы переписать:
const config = (() => {
  const env = process.env.NODE_ENV ?? 'development';
  const production = env === 'production';
  // do something...
  return { env, host, port, secure: production };
})();
Но лучше всего в try/catch, представьте это как перепишем:
let data;

try {
  const text = await readFile(path, 'utf8');
  data = JSON.parse(text);
} catch {
  data = 'default value';
}
А теперь представьте литерал объекта:
const response = {
  user,
  permissions: {
    const roles = await getRoles(user);
    if (roles.includes('admin')) ['read', 'write", 'delete'];
    else if (roles.includes('editor')) ['read', 'write'];
    else ['read'];
  },
  displayName: { ... some calculations },
};
Или вызов функции:
render({
  const width = container.clientWidth;
  const columns = Math.max(1, Math.floor(width / 300));
  const gap = columns > 3 ? 24 : 16;
  { width, columns, gap };
});
🔥 12 ❤ 3 🤷‍♂ 2 · всего 22 Перейти к публикации →
На кого учиться, если все профессии отберут роботы? Где пределы экспансии искусственного интеллекта? Что останется кожаным? https://youtu.be/BQRDr71Yaaw
❤ 9 👍 4 👀 2 Перейти к публикации →
Объем текста и объем кода должны заставлять нас не махнуть рукой, а заставлять ии делать меньше бюрократии
💯 8 👍 3 ❤ 2 Перейти к публикации →
https://youtu.be/I5ILntVSjkQ
🔥 9 ❤ 4 👍 3 Перейти к публикации →
Dashboard with real-time monitoring Released in reslop v0.2.6 https://github.com/tshemsedinov/reslop
❤ 6 🔥 6 🤩 1 Перейти к публикации →
Что AI научился делать действительно хорошо, так это максимально отсрочить катастрофу в проекте
🔥 11 🤣 10 ❤ 2 · всего 25 Перейти к публикации →
Тут пример, как я сделал рефакторинг reslop при помощи - Opus 5.5 как старшая модель - Grok 4.7 как младшая - reslop составлял планы, делал коммиты - модели запускали тесты через reslop t на этом экономили - я делал ревю в GitHub + reslop - Backlog и спеки я вел в reslop (но это покажу только тем, кто на курсе) - скилы: metaskills - data-structures, js-data-structures, error-handling, js-conventions, js-gof Объем кодоваой базы: js код - 23 k строк - 636 kb тесты - 18 k строк - 601 kb Lines changed: +1422 additions / -2273 deletions https://github.com/tshemsedinov/reslop/pull/109
👍 12 ❤ 3 🔥 1 Перейти к публикации →
Каждое ваше ревью слопа должно превращаться в скилл и в следующий раз уже вас не спрашивать. Скилы уплотняются, так и происходит трансфер знаний. Вместо того, чтобы не смотреть код, нужно автоматизировать ревью, частично алгоритмами, кстати.
👀 8 👍 3 🔥 3 · всего 15 Перейти к публикации →
1 2 3 … 8 9

Другие каналы категории