Алексей Соин · zencod.ru
19 subscribers
165 photos
16 videos
4 files
1K links
Статьи по разработке

- frontend
- backend
- server

zencod.ru
Download Telegram
Forwarded from CodeCamp
Google.pdf
6.5 MB
Тем временем Google выпустил гайд по промтингу LLM-ок аж на 68 страниц, из которого можно узнать:

— Кто такие top-K и top-P и как они влияют на ответы нейросетей;

— Что такое One Shot и сколько выстрелов нужно, чтобы нейронки нормально отвечали;

— Как заставить LLM играть какую-то роль;

— Техника Step-back prompting: это когда мы просим модель сформулировать рамки вопроса прежде чем отвечать. Например

❌Какие преимущества электромобилей?
✅Прежде чем ответить, какие преимущества имеют электромобили, сформулируй, какие критерии мы должны учитывать при оценке любого вида транспорта. Затем на их основе проанализируй электромобили.


— Старая-добрая цепочка мыслей;

— Еще много чего.
👩‍💻 Быстрая сортировка строк с `Intl.Collator`

Улучшите сортировку строк с учётом локали, заменив повторяющиеся вызовы `String.localeCompare` одним экземпляром `Intl.Collator` для более быстрого и эффективного сравнения.

Сортировка строк может создавать неожиданные проблемы с производительностью, особенно при работе с большими наборами данных, нуждающимися в соответствующей локализации. Многие разработчики полагаются на String.localeCompare для сортировки по алфавиту, но есть и более эффективный подход, заслуживающий внимания.

🖥 Читать статью

📱 @dev_notes_ru

#JavaScript
Please open Telegram to view this post
VIEW IN TELEGRAM
Вcё ещё трекаете? Почему контроль часов мешает работе команды (и что с этим делать) / Хабр
https://habr.com/ru/articles/902390/
🧨 ESLint - умное подавление ошибок

В 9 версии появилась такая штуковина, что мы теперь можем не бояться включать строгие правила в действующем проекте.
Ранее у нас было триллион ошибок в консоли, поэтому ты их либо все фиксишь и тратишь кучу времени, либо не добавляешь полезное правило, которое может помочь в работе

Теперь все проще. ESLint добавил систему подавления нарушений:

👉🏻 Сохраняет текущие ошибки в отдельный файл
👉🏻 Применяет правило только к новому коду
👉🏻 Позволяет устранять старые ошибки постепенно
👉🏻 Работает с --fix, --cache и поддерживает команду --prune-suppressions для очистки

🛠️ Обновляйтесь и тестируйте:
https://eslint.org/blog/2025/04/introducing-bulk-suppressions/

P.S. Файл с ошибками будет лежать в корне проекта, но флагом `--suppressions-location` можно изменить локацию этого файлика
👍1
Даже не влезайте в Kubernetes без этого / Хабр
https://habr.com/ru/companies/h3llo_cloud/articles/902188/
Избавляемся от any в проектах на TS

any отключает многие проверки типов и снижает безопасность кода. Заметка о том, какие правила линтинга использовать, чтобы сделать ваш код более надежным.

https://typescript-eslint.io/blog/avoiding-anys/
Команда Docker выпустила плагин Docker DX для VS Code / Хабр
https://habr.com/ru/news/903890/
Паттерны проектирования Composable в Vue / Хабр
https://habr.com/ru/articles/904818/
🔥1
✨ Нативные Observable уже в Chrome

В Chrome 135 появился Observable API — удобный способ обработки асинхронного потока событий. Это не просто альтернатива RxJS, а полноценная интеграция в Web API.

Главное преимущество — интеграция с EventTarget: метод when() возвращает Observable, который представляет собой улучшенную версию addEventListener().

С ним обработка событий в DOM выглядит так:

el.when('click').subscribe(console.log)


Больше подробностей можно прочитать здесь, а RxJS 8 теперь будет двигаться вперед с учетом этих изменений.

👉 https://dev.to/this-is-angular/ng-news-2515-native-observables-3ea7
🔥1
Перемещение элементов в DOM при помощи moveBefore

moveBefore позволяет перемещать элементы без первоначального удаления их из DOM, что добавляет удобства, т.к. в случае iframe - нет перезагрузки содержимого, активные элементы остаются в фокусе и т.д. Более подробно - по ссылке.

https://www.bram.us/2025/01/16/move-elements-around-the-dom-while-preserving-their-state-with-movebefore/
🔥1
Кортежи в TS

Большой сборник примеров работы с кортежами.

https://2ality.com/2025/01/typescript-tuples.html
🔥1
"В сущности, хотя ИИ предлагает мощные инструменты для разработки программного обеспечения, он также усиливает важность фундаментальных знаний. Чтобы эффективно и ответственно использовать эти инструменты, вы должны понимать основные принципы, чтобы руководить процессом разработки, а не становиться пассивными наблюдателями"

Хорошая статья одного из наших подписчиков, про вайбкодинг, крайне сходимся в понимании роли LLM, его слабых сторон и пользы для разработчиков

https://habr.com/ru/articles/905710/
👩‍💻 Error.isError(): Лучший способ проверки типов ошибки в JavaScript

Руководство по новому методу `Error.isError()` в JavaScript: почему он лучше `instanceof`, как решает проблемы кросс-контекстных ошибок и типизации в TypeScript.

Система обработки ошибок JavaScript долгое время оставалась слепым пятном при работе с ошибками в разных контекстах исполнения. Новый метод Error.isError() устраняет это ограничение, предоставляя разработчикам более надёжный способ идентификации объектов ошибок.

🖥 Читать статью

📱 @dev_notes_ru

#JavaScript
Please open Telegram to view this post
VIEW IN TELEGRAM
Конспект LLM.pdf
38 MB
Один из лучших конспектов по LLM, что я видел — в 50 страницах вся инфа про большие языковые модели:

— История: от допотопных алгоритмов до моделей с ризонингом;
— Вся база по математике;
— Механизмы влияния и трансформеры;
— Понятное объяснение процесса претрейна;
— Гайд «Как самостоятельно затюнить модель»;
— RL – с нуля до ризонинга;
— С КАРТИНКАМИ!

Годное чтиво под утреннее кофе.
Веб-разработка на ванильном HTML, CSS и JavaScript / Хабр
https://habr.com/ru/companies/ruvds/articles/909390/
ИИ всех заменит

17 лет в IT, глазами уставшего, но бодрого инженера:

Каждые несколько лет ко мне прибегал кто-то не из разработки с горящими глазами и фразой:

«Нам нужно срочно встроить вот это. Все уже делают! Мы отстаём!»


И вот что это было за «это», по годам:

🧱 2007–2009 — Мобилки и революция App Store

Мы переписывали сайты под iPhone, делали «иконки на экран», и даже логотип компании пытались втиснуть в 114x114 пикселей.

«Где наше мобильное приложение?! У всех уже есть! Давай, Ваня уже скриншот сайта в айфон вставил и мы на сайте выложили»


⸻

👥 2010–2011 — Соцсети и лайки

Каждый второй питч: «Это как ВКонтакте, только для… [вставь нишу]».
Продакт ставил задачи вроде:

«Теперь мы не студия, а соцсеть для заказчиков! Добавьте логин через LJ, TW, FB, TW и кнопку «расшарить в ВКонтакте». Конверсия вырастет на 400%».


⸻

📶 2012 — Big Data

«У нас 500 мегабайт логов — это биг дата? Ну поищите где-нибудь бигдату, мы хотим машинное обучение!»


Мы ставили Hadoop-кластеры ради графиков в Excel. Связывались по доисторическим протоколам с самим адом, чтобы получить исторические данные. Бизнес не понимал, зачем, но было модно.

⸻

🛠 2014 — Интернет вещей

«А можно чайники, которые мы перепродаем встроить в интернет вещей? Как нет, а давайте разработаем сами тогда, да, да, свою сеть IoT, начнем с чайников...»


К нам приходили стартапы с идеями вроде: «Умная вилка считает, сколько ты съел».
Мы молча писали прошивки на C.

⸻

🧬 2016 — Блокчейн

«А можно наш мессенджер перенести в блокчейн? Да и вообще остальное тоже бы туда перевести. Заведём токен, продадим остальным и всё будет быстрее!»


Разработчики страдали. ICO-шники летали на Бали. Все были довольны. Недолго.

⸻

🎧 2018 — Голосовые ассистенты

«Сделаем скилл для чат-ботов, чтобы заказывать наш трубопрокат голосом. Нам нужен NLP чтобы повысить конверсию работы с отказами!»


Мы писали if-else деревья на 10 000 строк и называли это AI.

⸻

🖼 2020 — NFT

«Генерируем 10 000 пиксельных картинок с нашими шкафами, приклеим к ним историю и продаём за эфир»


Художники рисовали обезьян. Маркетологи — легенды. Инженеры — скрипты минтинга.

⸻

📱 2023 — Тапалки и кликеры

«Короче делаем тапалку, дизайн уже рисуется, пофигу вообще зачем, будут, я не знаю, по нашим компрессорам тапать. А дальше — биржа!»


Уже было похоже на симуляцию стартапов внутри симуляции.

⸻

🧠 2024 — Нейросети и агенты

«Быстро встраиваем GPT во всё! У нас должен быть AI-ассистент! Даже в кофемашине!»


Каждый стартап — «GPT, но для…». Каждая задача — «а давайте сделаем агента».

⸻

Я не жалуюсь. Это весело.
Мы каждый раз что-то учим, пробуем, экспериментируем. Иногда — даже что-то полезное получается.

Но знаете, что я понял за все эти годы?

Настоящий инновационный прорыв — это когда проект хотя бы запускается.

А бигдату, кстати, так и не впихнули.
Да и не нужна она нам была, если честно. Просто звучало круто.
Forwarded from CodeCamp
Красивое: шпаргалка-инфографика, показывающая типы временной сложности алгоритмов.

O(1) — Constant Time (Константное время):
— Время выполнения не зависит от размера входных данных.
— Пример: доступ к элементу массива по индексу.


O(n) — Linear Time (Линейное время):
— Время выполнения растет линейно с увеличением размера входных данных.
— Пример: поиск максимального элемента в неотсортированном массиве.


O(log n) — Logarithmic Time (Логарифмическое время):
— Время выполнения увеличивается логарифмически с ростом размера входных данных.
— Пример: бинарный поиск в отсортированном массиве.


O(n^2) — Quadratic Time (Квадратичное время):
— Время выполнения увеличивается квадратично.
— Пример: алгоритмы сортировки, такие как сортировка вставками или пузырьковая сортировка.


O(n^3) — Cubic Time (Кубическое время):
— Время выполнения растет кубически.
— Пример: умножение плотных матриц.


O(n log n) — Linearithmic Time (Линейно-логарифмическое время):
— Комбинирует линейный и логарифмический рост времени выполнения.
— Пример: алгоритм быстрой сортировки (Quick Sort).


O(2^n) — Exponential Time (Экспоненциальное время):
— Время выполнения удваивается с каждым новым элементом входных данных.
— Пример: решение задачи о путешествующем торговце (TSP) методом полного перебора.


O(n!) — Factorial Time (Факториальное время):
— Время выполнения растет факториально.
— Пример: задачи перестановок.


O(√n) — Square Root Time (Квадратный корень времени):
— Время выполнения пропорционально квадратному корню размера входных данных.
— Пример: алгоритмы поиска в ограниченном диапазоне.