en
Feedback
Берлога программиста | Веб и не только

Берлога программиста | Веб и не только

Closed channel
5 000
Subscribers
No data24 hours
-167 days
-13830 days
Posts Archive
Знакомые девчонки сделали, зацените

ИИ-Адвент: 14-дневный бот для быстрых навыков работы с нейросетями ☃️🎄 Для тех, кто хотел разобраться с ИИ в 2025, но не нашёл времени, появился упрощённый формат обучения. Что это: Бесплатный телеграм-бот на 14 дней @neuro_advent_bot Каждый день открывается «окно»: — мини-урок (3–5 минут) — инструмент — практическое задание Формат рассчитан на пользователей без глубокого опыта: задания короткие, сразу применимые в рабочих задачах. Что даёт @neuro_advent_bot За 2 недели: — базовые навыки промптинга — собственный набор ИИ-инструментов — ускорение текстов, идей, визуализации и офисной рутины — понимание актуальных апдейтов отрасли Если в течение года не удалось войти в тему — это последний удобный момент перед 2026. 👉 Открыть первое окошко: @neuro_advent_bot

Пока завал, скоро посты❤️

А че в комментах тишина? Как собираетесь-то тайпскрипт учить?

Так-с, а теперь для тех кто реально хочет разиваться задачка практическая: в комменты напишите функцию (без реализации) со всеми типами которая получает на вход идентификтор пользователя, транзакцию (например оплата подписки), а на выходе объект пользователя (детальный - имя / фамилия / дата создания / роли) который содержит поле истечения подписки либо ошибку

Ну вот тут меня результаты радуют

Кстати знаете что такое Rest и Spread (которые как три точки выглядят) в JS?
Anonymous voting

TypeScript - введение (Часть 5 - функции) Часть 4 - тут [ссылка] Не будем мотать сопли на кулак, вот сразу примерчик:

function sum(a: number, b: number): number {
  return a + b;

sum("5", 10);
// ❌ Первый аргумент должен быть number

sum(5, 10, 15);
// ❌ Лишний аргумент
}
Вся наука очень простая: после каждого аргумента идет тип, после круглых скобок тип возврата, но с ним интереснее - его писать не обязательно поскольку TS сам поймет что возвращается, это скорее нужно для самопроверки когда Вы пишете возвращаемый тип и чтобы не ошибиться в теле функции, типо такого

function sum(a: number, b: number): number {
  if (a + b > 0) retutn "0";

  return a + b;
}
Вот за такой финт ушами TS даст Вам по рукам, НО если не типизировать возврат - все будет ок, поэтому его лучше прописывать чтобы случайно не допустить ошибки. Со стрелочными функциями принцип тот же:

const multiply = (x: number, y: number): number => {
  return x * y;
};
Опциональные параметры - точно также как и разбирали у объектов

function greet(name: string, title?: string) {
  if (title) {
    console.log(`${title} ${name}`);
  } else {
    console.log(name);
  }
}

greet("Анна");
greet("Анна", "Доктор");
Если у параметра есть значение по умолчанию — он автоматически считается необязательным

function power(base: number, exp: number = 2) {
  return base ** exp;
}

power(5);      // 25
power(5, 3);   // 125
Тип функции (function type)

type BinaryFn = (a: number, b: number) => number;

const add: BinaryFn = (x, y) => x + y;
const sub: BinaryFn = (x, y) => x - y;

type Example = {
  a: number;
  b: string;
  c: BinaryFn;
};
Либо если функцию надо запихнуть в объект

interface User {
  name: string;
  sayHi: () => void;
}

const u: User = {
  name: "Иван",
  sayHi() {
    console.log("Привет!");
  }
};
void и never - Еще одни приколы которые обознаают либо отсутствие возврата, либо что функция вообще ни когда не вернет ничего (например исключение или бесконечный цикл):

function log(msg: string): void {
  console.log(msg);
}

function crash(): never {
  throw new Error("Что-то пошло не так");
}

function infinite(): never {
  while (true) {}
}
Rest-параметры - работает как в JS, но типизируется

function sumAll(...nums: number[]) {
  return nums.reduce((a, b) => a + b, 0);
}

sumAll(1, 2, 3, 4);
Берлога программиста | Чат

Мне приснилось то на канал подписано 28 000 человек, видимо пора новый пост выпускать

Добрый вечер! У Меня к Вам домашнее задание: 1) Вступить в чат где мы общаемся, хихикаем и развиваем навыки разработки https://t.me/+36NOAKnCVuc2ZDNi 2) Дать каналу буст чтобы я мог постить пользу еще и в сторис https://t.me/c/1400947488?boost 3 подхода по 2 раза в день

Проголосуйте плиз по максимуму - я ж не по приколу, а чтобы понимать про что и как часто писать, давайте-давайте! 🚽

Я уже изучил… (выберите что можете уверенно использовать)
Anonymous voting

А завтра возвращаемся к тайпскрипт, продолжу Вас доучивать перед реактом

- сосиски - хлеб - яйца - новые носки

А что делают useMemo / useCallback знаете?
Anonymous voting

Конечно только примитивы и возврат useMemo / useCallback! Если массив зависимостей пустой [] - useEffect сработает только один раз при монтировании компоента, а если его наоборот не передавать - будет срабатывать при каждом обновлении компонента. Что-то Вы мало отвечали в этом опросе... или не знаете или для всех совсем очевидно, но и хорошо если очевидно - меньше банальны ошибок!)

Пару часиков как обычно отвечайте и потом откомменчу, вроде Вам в тот раз понравился такой формат работы. Да и в комменты задавайте вопросы - я почти не кусаюсь 😈

Как использовать dependencies array в useEffect 🖼️
Anonymous voting