Web Overflow 🇺🇦
4.42K subscribers
380 photos
40 videos
3 files
518 links
Затишний блог про веб-розробку і не тільки 💛

Чат: @web_overflow_chat
Співпраця: @web_overflow_support
Автори: @lluchkaa & @anastasiia_tarasenko
加入频道
Frontend Masters Algorithms 😎

Сьогодні знову до алгоритмів. Не будемо згадувати наскільки вони важливі, а просто порадимо новий ресурс для вивчення.

The Last Algorithms Course You'll Need - це курс від ThePrimeagen, розробника з Netflix. У курсі ви отримаєте як теоретичне, так і практичне подання.

На платформі є багато різних курсів. Більшість, на жаль, платні, але саме цей курс є безкоштовним.

👉 Дивитись курс

Також додаємо посилання на Youtube-канал ThePrimeagen, там ви можете знайти багато цікавого та веселого

👉 Відкрити посилання

#interview
15👍11
👍73😭3
👍13🤔64
This media is not supported in your browser
VIEW IN TELEGRAM
#todo створити circual progress chart 🤩
👍92🔥1
C# Moq + SponsorLink 🤯
#post_from @Digicat

Тут буде трохи про C# (ще те збоченство), але думаю буде цікаво для всіх. І нагадуємо, що кожен може розповісти про щось цікаве через наш канал.

Нещодавно в спільноті C# була активна дискусія щодо бібліотеки Moq. Вона дуже популярна для тестування, адже дозволяє підмінювати обʼєкти.

В один момент автор цієї бібліотеки додав всередину іншу - SponsorLink. Ця бібліотека інтегрує GitHub Sponsors у ваш проект та на build етапі сканує залежності і пропонує вам стати спонсором інших open-source проектів. Ви навіть отримаєте warning, якщо не підтримуєте жоден проект.

Інтегрування цієї бібліотеки в Moq була несподіваною. На додачу, SponsorLink використовував ваш email та тримав його хеш в хмарі, про що нікого не попереджав. Власне це і стало рушієм всіх обговорень..

👉 Читати статтю

Також тут варто згадати про faker.js, який минулого року теж наробив шуму.

👉 Дивитись відео

Тож питання щодо OSS досі не вирішені. В них сотні мільйонів скачувань, а автори підтримують їх. Тож як вирішити спонсорування цих авторів? Яку участь в цьому мають брати мільярдні компанії, які використовують цей код?
👍62
Welcome! 👋️️️️️️
Let's practice our English! So...

👉 Tell us your English level and how you improve it?

Have a nice #english_friday 💛
👍9🤣21
Fern 🌿

Всі ми використовуємо різні API для свої проектів.

І нам, як користувачам цих API, було б дуже зручно не перейматись написанням запитів, а лише їх використанням. Тому розробникам даних API буде доречно писати специфікацію (наприклад, OpenAPI), після чого генерувати готові бібліотеки з клієнтським кодом.

Вже існують різні генератори коду для API, а сьогодні ми хочемо розказати про досить новий проект Fern. З його допомогою ви зможете згенерувати бібліотеки для найпопулярніших мов та фреймворків.

👉 Читати документацію

#library
👍123
Менторству бути!

Ознайомились з вашими анкетами і зрозуміли, що все-таки варто спробувати! Зараз ми активно обробляємо ваші відповіді і спілкуємось з учасниками. Початок плануємо на середину вересня, хотілось би раніше, але через певні обставини, немає такої можливості.

Якщо хтось не отримав від нас повідомлення, будь-ласка, напишіть в @web_overflow_support. І якщо ви ще хочете доєднатись, можете заповнити форму!

👉 Відкрити анкету

Це для нас новий досвід, якщо не враховувати менторство на роботі, але то зовсім інша історія. Тому будемо тримати вас в курсі! 💛
13👍5🔥3
How DNS works

Ану швидко назвіть IP-адресу Гугла!

Навряд чи багато хто напам'ять знає, і навряд чи треба. А от коли ви до свого комп'ютера звернетеся з проханням відкрити сторінку google.com, він таки змушений якось дізнатися цю адресу. Щоб побачити, як працює ця "магія" і що таке DNS, ми поділимося з вами коміксом, в якому ви швидко зможете ознайомитися з цим.

👉 Відкрити посилання

А якщо уважно пошукаєте, то внизу знайдете посилання ще на комікс про HTTPS 😉
👍236👨‍💻1
9👍4🤣1
👍16🤔7🤣32🍾1
Сьогодні дуже проста, але символічна #todo - намалювати будь-яким способом український прапор.

З Днем українського прапора! 🇺🇦
👍2212🤯1
З Днем Незалежності, Україно!
З Днем Незалежності, Українці!

Нехай кожен захисник повернеться додому цілим і неушкодженим! Робімо все, щоб наблизити нашу перемогу!

Слава Україні! 🇺🇦
69👍4🎉2🕊1🍾1
Welcome! 👋️️️️️️
Let's practice our English! So...

👉 Tell us where are you from and what’s your favorite thing about your hometown?

Have a nice #english_friday 💛
👍74
😁9👍31
NestJS + Telegram Bot API
#post_from @Yurets7777 @urbfkfys

Багато хто чув або вже знає, що таке є той NestJS. І звісно всі знають, що таке Телеграм і Телеграм-Боти. Хтось чув, хтось пробував щось писати з допомогою Telegram Bot API або NestJS.

Даний пост про те - а як правильно запустити телеграм бота на NestJS?

Не можу сказати що це просто.

Як рекомендує NestJS, створюємо окрему директорію для нашого телеграм бота під назвою telegram. В ній, по класиці, нам потрібні: module - telegram.module.ts; controller - telegram.controller.ts; service - telegram.service.ts.

telegram.service.ts - це те, що відповідає за запити до нашої БД. Сюди ми підтягуємо інші сервіси, щоб ТГ-бот вмів працювати із різними сутностями в нашій БД.

@Injectable()
export class TelegramService {
constructor(
private userService: UserService,
private categoryService: CategoryService,
private cityService: CityService,
) {}
}


І всі запити до нашої БД, котрі вміють робити дані сервіси, буде вміти робити наш ТГ-бот. Потрібно просто прописати необхідні методи з даних класів в сервісі телеграму.

telegram.controller.ts - контроллер; сама назва говорить сама за себе - контролюю. Сюди ми підтягуємо наш телеграм сервіс. Прописуємо команди, прослуховувачі на екшени (кліки на кнопки) та інше.

@Update()
export class TelegramController {
private readonly telegramActions: TelegramActions;

constructor(
@InjectBot() private readonly bot: Telegraf<Context>,
private readonly telegramService: TelegramService,
) {
this.bot.telegram.setMyCommands(COMMANDS);
this.telegramActions = new TelegramActions(this.telegramService);
}

@Start()
async startCommand(ctx): Promise<any> {
// do something
}

@Command(my_command)
async addLotCommand(ctx): Promise<any> {
// do something
}

@Action(String || RegEx)
async handleRejectLot(ctx): Promise<any> {
// do something
}
}

Ну і звісно модуль, куди ж без нього 🤷
telegram.module.ts - модуль збирає в себе все що потрібно для запуску нашої app, в даному випадку бота.

@Module({
imports: [
ConfigModule.forRoot({
envFilePath: '.env', // для того щоб була змога читати змінні із env
}),
TelegrafModule.forRoot({
middlewares: [session()],
token: process.env.TELEGRAM_BOT_TOKEN, //
не має сенсу в коментарях
}),
UserModule,
CategoryModule,
CityModule,
],
controllers: [],
providers: [
TelegramService,
TelegramController,
RegisterUserScene,
],
})
export class TelegramModule {}


Ліба для запуску Телеграм-Бота на NestJS називається nestjs-telegraf. Якщо хочете конкретики, запитуйте. Що знаємо - підкажемо 😉

Корисні посилання:
- NestJS
- NestJS Telegraf
- Telegram Bot API

PS. Ми тут робимо щось дійсно цікаве на даних технологіях. Скоро очікуйте Український продукт 😉
PPS. Забули показати root компонент app.module.ts

@Module({
imports: [
ConfigModule.forRoot({
envFilePath: '.env',
}),
MongooseModule.forRoot(process.env.MONGO_CONNECTION_STRING),
UserModule,
TelegramModule,
CategoryModule,
],
controllers: [AppController],
providers: [AppService],
})
export class AppModule {}


Поки все 😉
👍215👏3🔥1
Advent of Code 🗓

Сьогодні розповімо про адвент календар, тільки, на жаль, без смаколиків. Проте, на нашу думку, він є не менш цікавим.

Advent of Code - це збірник з 25 задачок. У кожній з них ви отримаєте вхідні дані на основі яких потрібно буде внести відповідь, після чого рухатись до наступної задачі.

Особливо рекомендуємо спробувати пройти ці задачки, якщо ви вивчаєте нову мову програмування. Адже саме на практиці ви зможете закріпити теоретичний матеріал. Також корисно буде пройти перед співбесідою, live coding ніхто не відміняв 🤫

👉 Відкрити посилання

#interview
👍126😍1
5👍5😍1
Що виведе консоль?
Anonymous Quiz
19%
1
49%
2
14%
undefined
18%
NaN
👍12👌52
Сьогодні проста, але максимально практична #todo - написати функцію, яка перевіряє чи об'єкт/map/словник пустий.

Наприклад:
{} -> true
{ a: 1 } -> false
👍123
vim 🤓

Останнім часом я вирішив спробувати vim. І сьогодні я хочу коротко поділитись про перший досвід та враження.

Насправді, це сталось з другої спроби, бо перший раз я обрав трохи не той підхід. Я подумав, що просто залечу в нього і все почне само собою виходити. А виявилось, що це зовсім нелегко.

Одне з найскладніших місць у vim - це саме почати ним користуватись, адже це зовсім нове середовище. Одразу після того як ви зрозумієте основні вертикальні і горизонтальні рухи, режими роботи та команди, ви будете ставати все більш продуктивнішими.

У vim справді закладено певний сенс. Ви зможете будувати свої команди на ходу, оперуючи вже тим, що вивчили. Ось короткий приклад: delete word - dw, delete inside () - di(.

Поки я пробую комбінувати VSCode з розширенням vim та Neovim редактори. Ще не вирішив чи буду змінювати редактор коду, але думаю, що все таки vim залишу у будь-якому випадку (хоча б як розширення).

Тому, якщо вам зручно працювати з фокусом на клавіатурі, раджу хоча б спробувати.

Якщо ви зацікавились, поділюсь кількома ресурсами:
- Youtube плейлист від ThePrimeagen
- Learn Vim for the last time
- Vim Adventures

#experience
👍14🤓64😨1