Немного авторского лонгрида. Многие часто задаются желанием сделать архитектуру приложения более предсказуемой, а код читаемым, но не все знают инструментария для воплощения. Для JS/TS проектов есть несколько ESLint-плагинов, которые помогут реализовать желаемое.
Архитектура приложения:
✅ eslint-plugin-boundaries
Гибкий и удобный плагин, для ограничения импорта элементов системы в соответсвии с задеваемыми настройками. Поможет держать организацию папок/файлов проекта под контролем. Возможностей много, настраивать можно как удобно на свой вкус и цвет.
Дополнительные плагины для архитектуры приложение с узким применением:
https://www.npmjs.com/package/eslint-plugin-hexagonal-architecture
https://www.npmjs.com/package/eslint-plugin-relations
Строгость кода:
✅ eslint-plugin-sonarjs
Плагин, помогающий определить потенциально плохие участки кода. Правил много, не со всеми обязательно соглашаться, но основная часть будет очень полезна для чистоты проекта.
Красота кода:
✅ Prettier + eslint-plugin-prettier (смотрите секцию Recommended Configuration для настройки с ESLint)
Избавляет от извечного холивара по поводу стилистика кода. Да, правил для кастомизации стилизации не сказать, что много, но их достаточно, чтобы код выглядел красиво и единообразно. Крайне желательно настраивать с пре-коммитом через husky + lint-staged, чтобы в репозиторий всегда улетал отформатированный код.
Самая простая конфигурация:
.husky/pre-commit:
package.json:
✅ eslint-plugin-import + @typescript-eslint/consistent-type-imports + sort-imports
Превращает бесформенную массу импортов в упорядоченный список.
Пример конфигурации, которую использую в своих проектах:
.eslintrs.js
Красивый код - это еще и грамматически верно написанный, поэтому проверка правописания необходима. Плагин в этом поможет. Можно добавить свой whitelist для специфичных слов. Есть минус - крайне сильно негативно влияет на скорость проверки ESLint, поэтому есть смысл вынести только на уровень CI и исправлять грамматически ошибки уже после CI-пробежки.
Пример базовой конфигурации для CI:
.eslintrs.js
✅ Stylelint
Не джаваскриптом едины - стилизация и структуризация нужны и для CSS. Stylelint поддерживает поддерживает как сам CSS, так и CSS-подобные (например, SASS/LESS), так же CSS-in-JS (например, styled-components, emotion). Заводится не без приключений, но оно того определенно стоит.
#javascript #typescript #eslint
Архитектура приложения:
✅ eslint-plugin-boundaries
Гибкий и удобный плагин, для ограничения импорта элементов системы в соответсвии с задеваемыми настройками. Поможет держать организацию папок/файлов проекта под контролем. Возможностей много, настраивать можно как удобно на свой вкус и цвет.
Дополнительные плагины для архитектуры приложение с узким применением:
https://www.npmjs.com/package/eslint-plugin-hexagonal-architecture
https://www.npmjs.com/package/eslint-plugin-relations
Строгость кода:
✅ eslint-plugin-sonarjs
Плагин, помогающий определить потенциально плохие участки кода. Правил много, не со всеми обязательно соглашаться, но основная часть будет очень полезна для чистоты проекта.
Красота кода:
✅ Prettier + eslint-plugin-prettier (смотрите секцию Recommended Configuration для настройки с ESLint)
Избавляет от извечного холивара по поводу стилистика кода. Да, правил для кастомизации стилизации не сказать, что много, но их достаточно, чтобы код выглядел красиво и единообразно. Крайне желательно настраивать с пре-коммитом через husky + lint-staged, чтобы в репозиторий всегда улетал отформатированный код.
Самая простая конфигурация:
.husky/pre-commit:
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"
npx lint-staged
package.json:
{
"lint-staged": {
"*.{js,jsx,ts,tsx}": [
"eslint --fix",
"git add"
]
}
}
✅ eslint-plugin-import + @typescript-eslint/consistent-type-imports + sort-imports
Превращает бесформенную массу импортов в упорядоченный список.
Пример конфигурации, которую использую в своих проектах:
.eslintrs.js
{
rules: {
'@typescript-eslint/consistent-type-imports': 'error', // нужно для разделения на import и import type. Подробнее зачем вообще import/export type тут: https://stackoverflow.com/a/64243357
'sort-imports': [ // упорядочивает импортируемые значения. Подробнее тут: https://eslint.org/docs/latest/rules/sort-imports
'error',
{
ignoreDeclarationSort: true,
allowSeparatedGroups: true
}
],
'import/first': 'off', // отключено, т.к. правило перезатирается "import/order" ниже
'import/order': [ // собственно сортировка импортов, которая мне нравится
'error',
{
alphabetize: {
order: 'asc'
},
groups: [
['builtin', 'external'],
'internal',
['parent', 'object'],
['sibling', 'index'],
'type'
],
'newlines-between': 'always'
}
]
}
}
✅ @cspell/eslint-pluginКрасивый код - это еще и грамматически верно написанный, поэтому проверка правописания необходима. Плагин в этом поможет. Можно добавить свой whitelist для специфичных слов. Есть минус - крайне сильно негативно влияет на скорость проверки ESLint, поэтому есть смысл вынести только на уровень CI и исправлять грамматически ошибки уже после CI-пробежки.
Пример базовой конфигурации для CI:
.eslintrs.js
const eslintConfiguration = {
// настройки
}
if (process.env.NODE_ENV === 'production') {
eslintConfiguration.overrides.push({
files: ['src/**/*'], // список файлов для проверки правописания
excludedFiles: ['src/**/*.stories.ts'], // исключения
plugins: ['@cspell'],
rules: {
'@cspell/spellchecker': [
'error',
{
customWordListFile: './spellcheck-whitelist.dict' // файл с исключениями. Имеет специальный формат. Побробнее тут: https://cspell.org/docs/dictionaries-custom/
}
]
}
});
}
return eslintConfiguration;
✅ Stylelint
Не джаваскриптом едины - стилизация и структуризация нужны и для CSS. Stylelint поддерживает поддерживает как сам CSS, так и CSS-подобные (например, SASS/LESS), так же CSS-in-JS (например, styled-components, emotion). Заводится не без приключений, но оно того определенно стоит.
#javascript #typescript #eslint
Заключение:
Красота кода так же важна, как и те задачи, которые он решает. Не пренебрегайте и не доводите ваше детище до состояние одной сплошной нечитаемой массы😄 Если у вас есть какие-то полезные плагины, то шарьте в комментариях - добавлю в текущий список
P.S. Если ESLint/Prettier набили вам оскомину и хочется попробовать что-то более “современное”, то ниже статья с альтернативами:
➡️ https://blog.logrocket.com/modern-faster-alternatives-eslint/
На мой взгляд, наиболее стабильный и быстроразвивающийся проект - это Rome. Сочетает в себе возможности ESLint + Prettier из коробки. Пока не такой богатый по правилам, как ESLint, но потенциал у проекта огромный
Красота кода так же важна, как и те задачи, которые он решает. Не пренебрегайте и не доводите ваше детище до состояние одной сплошной нечитаемой массы
P.S. Если ESLint/Prettier набили вам оскомину и хочется попробовать что-то более “современное”, то ниже статья с альтернативами:
➡️ https://blog.logrocket.com/modern-faster-alternatives-eslint/
На мой взгляд, наиболее стабильный и быстроразвивающийся проект - это Rome. Сочетает в себе возможности ESLint + Prettier из коробки. Пока не такой богатый по правилам, как ESLint, но потенциал у проекта огромный
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3
Если захочется поиграться и запустить собственного ChatGPT-бота в Telegram, то можете начать экспериментировать на базе проекта:
➡️ https://github.com/karfly/chatgpt_telegram_bot
Там же автор указал ссылку на уже рабочий ChatGPT-бот https://t.me/chatgpt_karfly_bot для проверки возможностей (ограничение 2500 токенов бесплатно + с оплатой за доп.токены). На вопросы отвечает, контекст запоминает. Красота😍
#chatgpt
➡️ https://github.com/karfly/chatgpt_telegram_bot
Там же автор указал ссылку на уже рабочий ChatGPT-бот https://t.me/chatgpt_karfly_bot для проверки возможностей (ограничение 2500 токенов бесплатно + с оплатой за доп.токены). На вопросы отвечает, контекст запоминает. Красота
#chatgpt
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - father-bot/chatgpt_telegram_bot: 💬 Telegram bot with ChatGPT, Python-based, using OpenAI's API.
💬 Telegram bot with ChatGPT, Python-based, using OpenAI's API. - father-bot/chatgpt_telegram_bot
👍2
От сидячей работы спина часто начинает побаливать и доставлять дискомфорт. Ниже простой рецепт для снятия напряжения (да и руки крепче будут 😀):
➡️ https://youtube.com/shorts/PNFvCw3uygY
➡️ https://youtube.com/shorts/PNFvCw3uygY
YouTube
Easy Way to Decompress Your Back #Shorts
Dr. Rowe shows an easy way to decompress your back at home.This exercise will focus on a pulling motion in the back, known as traction, to help relieve press...
🔥4
Хорошая и подробная статья по логированию вашего node.js приложения с помощью Pino:
➡️ https://betterstack.com/community/guides/logging/how-to-install-setup-and-use-pino-to-log-node-js-applications/
От себя:
На сегодня Pino один самых (если не самый) богатых модулей для логирования по возможностям и поддержке. Есть множество транспортов (или источник куда писать залогированные данные) практически куда угодно. Список транспортов тут — https://github.com/pinojs/pino/blob/master/docs/transports.md. При желании/необходимости можно написать свой кастомный без особых проблем. Из альтернатив Pino можно выделить winston, bunyan и более молодой, но неплохой cabinjs
Если говорить в целом, то логирование критически необходимо, хотя многие считают это нудным занятием и в итоге на него забивают. Как минимум, нужно отлавливать все ошибки глобально и регистрировать их куда-нибудь централизованно. Из внешних сервисов мне нравится Bugsnag — он условно-бесплатный, но такой версии хватит большинству Proof-of-Сoncept и мелко-средних приложений. Аналоги — Sentry, Datadog, LogRocket и множество других (например, такие: https://www.atatus.com/blog/bugsnag-alternatives/). Если не хотите стороннее решение, то можно настроить Grafana Loki (открывается под VPN). Как пример такой настройки для Pino — https://skaug.dev/node-js-app-with-loki/.
Так что логируйте, не забивайте😄
#nodejs #logging
➡️ https://betterstack.com/community/guides/logging/how-to-install-setup-and-use-pino-to-log-node-js-applications/
От себя:
На сегодня Pino один самых (если не самый) богатых модулей для логирования по возможностям и поддержке. Есть множество транспортов (или источник куда писать залогированные данные) практически куда угодно. Список транспортов тут — https://github.com/pinojs/pino/blob/master/docs/transports.md. При желании/необходимости можно написать свой кастомный без особых проблем. Из альтернатив Pino можно выделить winston, bunyan и более молодой, но неплохой cabinjs
Если говорить в целом, то логирование критически необходимо, хотя многие считают это нудным занятием и в итоге на него забивают. Как минимум, нужно отлавливать все ошибки глобально и регистрировать их куда-нибудь централизованно. Из внешних сервисов мне нравится Bugsnag — он условно-бесплатный, но такой версии хватит большинству Proof-of-Сoncept и мелко-средних приложений. Аналоги — Sentry, Datadog, LogRocket и множество других (например, такие: https://www.atatus.com/blog/bugsnag-alternatives/). Если не хотите стороннее решение, то можно настроить Grafana Loki (открывается под VPN). Как пример такой настройки для Pino — https://skaug.dev/node-js-app-with-loki/.
Так что логируйте, не забивайте
#nodejs #logging
Please open Telegram to view this post
VIEW IN TELEGRAM
Betterstack
A Complete Guide to Pino Logging in Node.js | Better Stack Community
This tutorial will guide you through creating a production-ready logging system for your Node.js application using Pino
👍5🕊1
Довольно старая, но всё еще актуальная статья про ошибку десятилетий - null:
➡️ https://www.lucidchart.com/techblog/2015/08/31/the-worst-mistake-of-computer-science/
Решение проблемы с null/undefined тоже приложено к статье. Если лень читать, то решение заключается в использовании специальной Maybe-монады или ее аналогов для не ФП-ориентированных языков (больше информации, что такое монада с примером Maybe на вики). Maybe выступает в роли обертки над значением, которое может быть null/undefined. Фактически мы объявляем новый тип, который может иметь реальное значение, либо его не будет. В относительно современных языках отдельного значения null может и отсутствовать как такового, например, как в Rust, Zig, Swift и т.д, и там как раз используется данный прием с Maybe (может называться по другому, например Option в Rust, но суть та же).
Касательно JS/TS, то, как по мне, то подход с Maybe сложно-применим, особенно с его введением в уже существующий проект. Да, помогает избавится от некоторых проблем, но это за счет существенного увеличения порога вхождения в проекта, т.к нужно изучать функциональных подход к решению задач. Для TS задачу проверки на null и undefined можно переложить на сам язык через конфигурацию:
tsconfig.json:
strictNullChecks: true (а лучше strict: true в целом)
noUncheckedIndexedAccess: true
Но если же ваш проект изначально использует (или вы планируете использовать) библиотеки с ФП-парадигмой такие как rxjs (из коробки фронтовый Angular и бекендовский Nestjs хорошо дружат с rxjs), ramda, lodash/fp или прям fp-ts, то подход выше может отлично вписаться
#general #fp
➡️ https://www.lucidchart.com/techblog/2015/08/31/the-worst-mistake-of-computer-science/
Решение проблемы с null/undefined тоже приложено к статье. Если лень читать, то решение заключается в использовании специальной Maybe-монады или ее аналогов для не ФП-ориентированных языков (больше информации, что такое монада с примером Maybe на вики). Maybe выступает в роли обертки над значением, которое может быть null/undefined. Фактически мы объявляем новый тип, который может иметь реальное значение, либо его не будет. В относительно современных языках отдельного значения null может и отсутствовать как такового, например, как в Rust, Zig, Swift и т.д, и там как раз используется данный прием с Maybe (может называться по другому, например Option в Rust, но суть та же).
Касательно JS/TS, то, как по мне, то подход с Maybe сложно-применим, особенно с его введением в уже существующий проект. Да, помогает избавится от некоторых проблем, но это за счет существенного увеличения порога вхождения в проекта, т.к нужно изучать функциональных подход к решению задач. Для TS задачу проверки на null и undefined можно переложить на сам язык через конфигурацию:
tsconfig.json:
strictNullChecks: true (а лучше strict: true в целом)
noUncheckedIndexedAccess: true
Но если же ваш проект изначально использует (или вы планируете использовать) библиотеки с ФП-парадигмой такие как rxjs (из коробки фронтовый Angular и бекендовский Nestjs хорошо дружат с rxjs), ramda, lodash/fp или прям fp-ts, то подход выше может отлично вписаться
#general #fp
🔥2🤪2
Ниже очень подробная статья по популярным npm-модулям для создания интерактивных консольных утилит и их раскраски:
➡️ https://blog.kilpatrick.cloud/posts/node-cli-app-packages/
Еще подкину в список https://lars-waechter.gitbook.io/voici.js/ для форматирования консольных таблиц
#cli #nodejs
➡️ https://blog.kilpatrick.cloud/posts/node-cli-app-packages/
Еще подкину в список https://lars-waechter.gitbook.io/voici.js/ для форматирования консольных таблиц
#cli #nodejs
blog.kilpatrick.cloud
The Landscape of npm Packages for CLI Apps
A survey of popular packages for Node.js CLI development and recommendations for new command-line apps.
Достаточно подробный гайд от DataDog про то, как оптимизировать ресурсы окружения в Kubernetes, а соотвественно и финансовые расходы:
➡️ https://www.datadoghq.com/blog/rightsize-kubernetes-workloads/
Очень много слов на девопсовском, но если столкнетесь со схожей проблемой, то статья может сильно помочь
#kubernetes
➡️ https://www.datadoghq.com/blog/rightsize-kubernetes-workloads/
Очень много слов на девопсовском, но если столкнетесь со схожей проблемой, то статья может сильно помочь
#kubernetes
Datadog
Practical tips for rightsizing your Kubernetes workloads | Datadog
Learn how resources are allocated in Kubernetes environments and get tips for rightsizing your workloads for cost efficiency and performance.
👍2
Вышла новая мажорная версия node.js 20. В статье описаны основные значительные изменения и новые фичи:
Forwarded from opennet.ru
Доступна серверная JavaScript-платформа Node.js 20.0 https://opennet.ru/58998/
www.opennet.ru
Доступна серверная JavaScript-платформа Node.js 20.0
Состоялся релиз Node.js 20.0, платформы для выполнения сетевых приложений на языке JavaScript. Node.js 20.0 отнесён к веткам с длительным сроком поддержки, но данный статус будет присвоен только в октябре, после проведения стабилизации. Поддержка Node.js…
Отличный набор статей по React Router:
➡️ https://www.robinwieruch.de/categories/react-router-6/
Закрывает насущные вопросы по использованию библиотеки:
- Вложенный роутинг
- Аутентификация и приватные роуты
- Правильный редирект
- Основные хуки
- Ленивая подгрузка через React.Suspense
#react
➡️ https://www.robinwieruch.de/categories/react-router-6/
Закрывает насущные вопросы по использованию библиотеки:
- Вложенный роутинг
- Аутентификация и приватные роуты
- Правильный редирект
- Основные хуки
- Ленивая подгрузка через React.Suspense
#react
www.robinwieruch.de
RWieruch
Freelance Developer for React.js and JavaScript. Based in Berlin, German/English speaking. Consulting/Freelancing for Web Development project: Code Audits/Reviews, Workshops, Training, Implementation ...
👍2
Базовое, но четкое, пояснение разницы между Message-Driven, Event-Driven и Streaming, т.к зачастую понятия путаются между собой:
➡️ https://www.alibabacloud.com/blog/an-analysis-of-the-basic-concept-of-message-driven-event-driven-and-streaming_599521
Так же в конце статьи приложены варианты специфицирования вашего событийного API. Для nestjs есть модуль nestjs-asyncapi для AsyncAPI
#general #event
➡️ https://www.alibabacloud.com/blog/an-analysis-of-the-basic-concept-of-message-driven-event-driven-and-streaming_599521
Так же в конце статьи приложены варианты специфицирования вашего событийного API. Для nestjs есть модуль nestjs-asyncapi для AsyncAPI
#general #event
Alibaba Cloud Community
An Analysis of the Basic Concept of "Message-Driven, Event-Driven, and Streaming"
This article aims to provide a clear understanding of the recent high-frequency words "Message-Driven, Event-Driven, and Streaming" in messaging field.
👍4
Пролог: когда читал статью ниже, то по ходу дела возникали мысли, которыми хотел в итоге поделиться. И этих мыслей набралось столько, что пришлось разделить пост на две части 😄 Ниже представлена первая часть. Вторая выйдет на днях. И так-с…
Привез вам немножко лонгрида (там внутри статьи есть ссылки на другие связанные статьи, поэтому чтиво множиться в ширь еще больше):
➡️ https://www.spicyweb.dev/the-great-gaslighting-of-the-js-age/
Пересказывать не буду, т.к. лучше прочувствовать боль автора самому, но посыл такой - часто молодые (и не только) разработчики добровольно становятся заложниками одной/малого количества технологии (в статье на примере React) и считают ее идеалом/будущим/[любое восхитительное прилагательное]. Изучать что-то отличное от идеала у них большого желания нет и даже считают это вредным.
Проблема глубокая и может относится не только к React и не только к вебу, а к вообще любой любимой разработчиком технологии. Вкусовщина - очень плохое (и даже в некоторой степени губительное) качество разработчика. Да, могут быть технологии, которые ближе к сердцу, но они не должны влиять на объективность при принятии решений. Оценка и выбор конечных технологий должны идти от требований, сроков и уровня команды (в порядке важности).
Лично я сторонник мнения, что программист в первую очередь должен разбираться в общих принципах и подходах - это нужно для профессионализма, а уже конкретные технологии, как React - это нужно “для души”. Общие принципы и подходы не зависят от того, где их применять - веб, десктопная, мобильная, IoT, низкоуровневая и даже аппаратная разработка. В этом ценность такого программиста - огромная скорость адаптации к изменениям, а разработка ПО одна из наиболее динамичных сфер.
Во второй части раскрою детальнее, что значат эти “общие принципы и подходы”. Ждите…😅
Привез вам немножко лонгрида (там внутри статьи есть ссылки на другие связанные статьи, поэтому чтиво множиться в ширь еще больше):
➡️ https://www.spicyweb.dev/the-great-gaslighting-of-the-js-age/
Пересказывать не буду, т.к. лучше прочувствовать боль автора самому, но посыл такой - часто молодые (и не только) разработчики добровольно становятся заложниками одной/малого количества технологии (в статье на примере React) и считают ее идеалом/будущим/[любое восхитительное прилагательное]. Изучать что-то отличное от идеала у них большого желания нет и даже считают это вредным.
Проблема глубокая и может относится не только к React и не только к вебу, а к вообще любой любимой разработчиком технологии. Вкусовщина - очень плохое (и даже в некоторой степени губительное) качество разработчика. Да, могут быть технологии, которые ближе к сердцу, но они не должны влиять на объективность при принятии решений. Оценка и выбор конечных технологий должны идти от требований, сроков и уровня команды (в порядке важности).
Лично я сторонник мнения, что программист в первую очередь должен разбираться в общих принципах и подходах - это нужно для профессионализма, а уже конкретные технологии, как React - это нужно “для души”. Общие принципы и подходы не зависят от того, где их применять - веб, десктопная, мобильная, IoT, низкоуровневая и даже аппаратная разработка. В этом ценность такого программиста - огромная скорость адаптации к изменениям, а разработка ПО одна из наиболее динамичных сфер.
Во второй части раскрою детальнее, что значат эти “общие принципы и подходы”. Ждите…
Please open Telegram to view this post
VIEW IN TELEGRAM
The Spicy Web
The Great Gaslighting of the JavaScript Era
The age of frontend JavaScript frameworks eating the web world didn’t happen simply because some well-meaning developers found great DX. It happened because we were fed a line.
👍2🔥2❤1
Хорошая подборка библиотек для карт на React и JavaScript в целом:
➡️ https://javascript.plainenglish.io/5-javascript-mapping-libraries-when-to-use-them-961ff6366d0b
От себя:
Доводилось использовать только Leaflet - отличная библиотека, удобная в использовании и богатая по функционалу. Но из подборки впечатлила react-map-gl - обязательно попробую
➡️ https://javascript.plainenglish.io/5-javascript-mapping-libraries-when-to-use-them-961ff6366d0b
От себя:
Доводилось использовать только Leaflet - отличная библиотека, удобная в использовании и богатая по функционалу. Но из подборки впечатлила react-map-gl - обязательно попробую
Немного о «мультипоточности» в node.js. Хорошая статья рассказывающая про основы worker_threads с примерами высокоуровневых оберток:
➡️ https://snyk.io/blog/node-js-multithreading-worker-threads-pros-cons/
От себя:
В node.js «настоящих» потоков вы не найдете, как не ищи. Но это ни плохо, ни хорошо - просто сам движок не подразумевает оных. Если нужно реальное распараллеливание на уровне ОС, то в конце статьи как раз приведены примеры популярных языков с их поддержкой: Java, C/C++, Rust и еще десятки аля C#, Go, Closure, Haskell и т.д.
Вообще, если интересно разобраться с процессами/потоками, то неплохая базовая статья с картинками ➡️ https://dev.to/kwereutosu/multi-threading-and-parallel-programming-1l9m
➡️ https://snyk.io/blog/node-js-multithreading-worker-threads-pros-cons/
От себя:
В node.js «настоящих» потоков вы не найдете, как не ищи. Но это ни плохо, ни хорошо - просто сам движок не подразумевает оных. Если нужно реальное распараллеливание на уровне ОС, то в конце статьи как раз приведены примеры популярных языков с их поддержкой: Java, C/C++, Rust и еще десятки аля C#, Go, Closure, Haskell и т.д.
Вообще, если интересно разобраться с процессами/потоками, то неплохая базовая статья с картинками ➡️ https://dev.to/kwereutosu/multi-threading-and-parallel-programming-1l9m
Snyk
Node.js multithreading with worker threads: pros and cons | Snyk
In this article, we'll look at the pitfalls of worker threads and how they differ from the multithreading implementations in other programming languages.
👍3
This media is not supported in your browser
VIEW IN TELEGRAM
Твоя команда: закрываете проект раньше дедлайна, заказчик максимально доволен
Твоё начальство:
Твоё начальство:
😁6
Мой хороший друг и прекрасный девелопер предложил для канала отличную статью и свой комментарий к ней. Публикую как есть:
➡️ https://vas3k.blog/blog/ai_alignment/
Эта статья от Vas3k - настоящее чудо веселья и интереса, она обо всем: прошлом, настоящем и будущем ChatGPT. Однако, есть один вопрос, который волнует многих: заменит ли нас этот нейросетевой монстр в будущем? И если да, то когда? Неужели мы станем устаревшими, как старые добрые грамофоны? Или наши мозги будут все еще нужны для решения самых сложных задач? Может быть, ChatGPT будет лучшим другом и помощником человека? Давайте рассмотрим все эти вопросы с позитивной стороны и посмотрим, что нам готовит будущее вместе с нашими нейросетевыми товарищами!
Из статьи вы узнаете:
- кто такие "технобро"
- разницу между AI safety AI alignment
- Может ли себе ИИ ставить цели
Как и обычно в статьях о будущем, в этой тоже не обошлось без упоминания Илона Масковича, нашего любимого визионера и эксцентричного предпринимателя.
От себя:
Вы тоже можете помочь развивать канал через бота обратной связи @if_devlpr_bot. Предлагайте любые темы, статьи, книги, мемасики, новые идеи, строгую критику и вообще всё что приходит на ум. Буду рад любому фидбеку и если расскажите и пошарите канал со своим коллегам/друзьям/знакомым. Заранее спасибо!😘
➡️ https://vas3k.blog/blog/ai_alignment/
Эта статья от Vas3k - настоящее чудо веселья и интереса, она обо всем: прошлом, настоящем и будущем ChatGPT. Однако, есть один вопрос, который волнует многих: заменит ли нас этот нейросетевой монстр в будущем? И если да, то когда? Неужели мы станем устаревшими, как старые добрые грамофоны? Или наши мозги будут все еще нужны для решения самых сложных задач? Может быть, ChatGPT будет лучшим другом и помощником человека? Давайте рассмотрим все эти вопросы с позитивной стороны и посмотрим, что нам готовит будущее вместе с нашими нейросетевыми товарищами!
Из статьи вы узнаете:
- кто такие "технобро"
- разницу между AI safety AI alignment
- Может ли себе ИИ ставить цели
Как и обычно в статьях о будущем, в этой тоже не обошлось без упоминания Илона Масковича, нашего любимого визионера и эксцентричного предпринимателя.
От себя:
Вы тоже можете помочь развивать канал через бота обратной связи @if_devlpr_bot. Предлагайте любые темы, статьи, книги, мемасики, новые идеи, строгую критику и вообще всё что приходит на ум. Буду рад любому фидбеку и если расскажите и пошарите канал со своим коллегам/друзьям/знакомым. Заранее спасибо!
Please open Telegram to view this post
VIEW IN TELEGRAM
vas3k.blog
Человечество vs Искусственный интеллект
Успеем ли мы приручить ИИ до глобальной катастрофы?
👍3🙈1
Если ищите информацию про WebAssembly, то статья ниже точно для вас. Да, лонгрид, но и целый выходной впереди :)
➡️ https://thenewstack.io/will-javascript-become-the-most-popular-webassembly-language/
Статья крайне удачная и раскрывает тему не сколько про технические примеры «как» (про это подкину статейку https://www.yieldcode.blog/post/native-rust-wasm), а нужен ли вообще этот ваш WebAssembly (спойлер: нужен), почему JavaScript - это центр его вселенной, какие рабочие инструменты на сегодня уже есть и виденье будущего WASM в целом. В статье найдете большое количество ссылок на разного рода проекты, инициативы и рабочие библиотеки связанные с WebAssembly. Приятного прочтения📖
P.S. https://youtu.be/RcHER-3gFXI - отличное вводное видео в WebAssembly от Google. Кратко пробегаются по основным топикам: что такое wasm, где применяется, его портируемость и скорость.
#javascript #webassembly
➡️ https://thenewstack.io/will-javascript-become-the-most-popular-webassembly-language/
Статья крайне удачная и раскрывает тему не сколько про технические примеры «как» (про это подкину статейку https://www.yieldcode.blog/post/native-rust-wasm), а нужен ли вообще этот ваш WebAssembly (спойлер: нужен), почему JavaScript - это центр его вселенной, какие рабочие инструменты на сегодня уже есть и виденье будущего WASM в целом. В статье найдете большое количество ссылок на разного рода проекты, инициативы и рабочие библиотеки связанные с WebAssembly. Приятного прочтения
P.S. https://youtu.be/RcHER-3gFXI - отличное вводное видео в WebAssembly от Google. Кратко пробегаются по основным топикам: что такое wasm, где применяется, его портируемость и скорость.
#javascript #webassembly
Please open Telegram to view this post
VIEW IN TELEGRAM
The New Stack
Will JavaScript Become the Most Popular WebAssembly Language?
Rising interest in using JavaScript to write WebAssembly is driving maturity in tools, while the component model points to polyglot programs.
👍3
С 16й версии node.js добавили новый модуль node:test (stable с 20й версии). Название говорящее - модуль предназначен для написания тестов со стандартным набором функций, который можно найти в любом известном аналогичном модуле как mocha, chai, jest и т.д. Поэтому необходимость таких модулей фактически сводиться на нет.
Статья ниже про создание своего кастомного тест-репортера для node:test:
➡️ https://www.nearform.com/blog/writing-a-node-js-test-reporter/
#nodejs
Статья ниже про создание своего кастомного тест-репортера для node:test:
➡️ https://www.nearform.com/blog/writing-a-node-js-test-reporter/
#nodejs
👍2🔥1
IF Developer
Если ищите информацию про WebAssembly, то статья ниже точно для вас. Да, лонгрид, но и целый выходной впереди :) ➡️ https://thenewstack.io/will-javascript-become-the-most-popular-webassembly-language/ Статья крайне удачная и раскрывает тему не сколько про…
Небольшое приложение к теме WebAssembly. Ниже ссылки на статьи о создании wasm-модулей:
➡️ https://medium.com/geekculture/webassembly-for-node-js-13ef6bec0a0
Пример создания простого модуля для подсчета числа Фибоначчи через рекурсию. Пример скорее демонстративный, чем практичный, но для общего представления о структуре и реализации wasm-модулей очень хороший.
➡️ https://www.yieldcode.blog/post/supercharge-nodejs-with-rust
Тоже создание модуля для подсчета Фибоначчи, но уже с помощью фреймворка Neon. Статья скорее про фреймворк Neon, нежели про WebAssembly как таковой, но от этого не ставиться менее полезной.
➡️ https://www.alxolr.com/articles/how-to-process-a-csv-file-five-times-faster-in-node-js-with-rust-and-napi-rs
Более практичный пример, который можно брать за основу, т.к используется фреймворк napi.rs для создания wasm-модулей. Тут задача чтения и процессинга CSV. В данном примере, как и в предыдущем, разница в скорости исполнения wasm в несколько раз, что может быть крайне критично для подобного рода задач.
P.S. В обоих примерах используется Rust. Как по мне, то это наиболее удачный язык на замену C/C++ (ну или, как минимум, достойная альтернатива). Хорошо сбалансирована сложность языка с его возможностями. Язык подходит для всего, поэтому его знание лишним не будет точно, тем более сейчас Rust внедряется крупными корпорациями повсеместно.
Поэтому если раздумываете про изучение нового языка, то я бы крайне советовал именно его. Для изучения поможет youtube-канал Let’s get Rusty. Автор отлично и живо пересказывает официальную книгу-документацию с примерами кода, а так же дает много полезной и свежей информации по Rust.
Не интеграция🙂
➡️ https://medium.com/geekculture/webassembly-for-node-js-13ef6bec0a0
Пример создания простого модуля для подсчета числа Фибоначчи через рекурсию. Пример скорее демонстративный, чем практичный, но для общего представления о структуре и реализации wasm-модулей очень хороший.
➡️ https://www.yieldcode.blog/post/supercharge-nodejs-with-rust
Тоже создание модуля для подсчета Фибоначчи, но уже с помощью фреймворка Neon. Статья скорее про фреймворк Neon, нежели про WebAssembly как таковой, но от этого не ставиться менее полезной.
➡️ https://www.alxolr.com/articles/how-to-process-a-csv-file-five-times-faster-in-node-js-with-rust-and-napi-rs
Более практичный пример, который можно брать за основу, т.к используется фреймворк napi.rs для создания wasm-модулей. Тут задача чтения и процессинга CSV. В данном примере, как и в предыдущем, разница в скорости исполнения wasm в несколько раз, что может быть крайне критично для подобного рода задач.
P.S. В обоих примерах используется Rust. Как по мне, то это наиболее удачный язык на замену C/C++ (ну или, как минимум, достойная альтернатива). Хорошо сбалансирована сложность языка с его возможностями. Язык подходит для всего, поэтому его знание лишним не будет точно, тем более сейчас Rust внедряется крупными корпорациями повсеместно.
Поэтому если раздумываете про изучение нового языка, то я бы крайне советовал именно его. Для изучения поможет youtube-канал Let’s get Rusty. Автор отлично и живо пересказывает официальную книгу-документацию с примерами кода, а так же дает много полезной и свежей информации по Rust.
Не интеграция
Please open Telegram to view this post
VIEW IN TELEGRAM
Medium
WebAssembly for Node.js
Everybody talks about WebAssembly and how it will change the web. But what about Node.js? Can WebAssembly be useful for backend? Let’s…
👍3