IF Developer
52 subscribers
2 photos
6 videos
91 links
Тут я делюсь своими мыслями, решениями насущных проблем, полезными ссылками, заметками и юморком.

Сам прожжен девелоперским 10+ лет опытом в frontend/backend и частично в mobile/desktop направлениях

P.S. Обратная связь со мной: @if_devlpr_feedback_bot
Download Telegram
Наверно слоупок, но недавно открыл для себя tabnine и оказался максимально доволен. Пока мне хватает и бесплатной версии, но подумываю о Pro-версии, но ее отличие лишь в количество слов автодополняемого кода и возможности писать код "текстом” (автогенерация кода на основе человекопонятного текста).

До этого пробовал GitHub Copilot и Amazon CodeWhisperer, но они оказались довольно громоздкими для моих необходимостей и задач. Tabnine как раз закрывает то чего мне не хватает больше всего - автодополнения кода на базе текущего. Действительно чувствуется помощь AI при написании кода 👨‍💻

P.S. Можете подкинуть ссылочек в комментарии на другие AI-тулзины которыми пользуетесь при написании кода. Будет полезно
Please open Telegram to view this post
VIEW IN TELEGRAM
2
Задача сборки фронтенда стара как мир. С давних времен стандартом для этого служит webpack. Он используется практически повсеместно, во много известном софте. Но его основная проблема - медлительность. На сегодня есть достойные конкуренты в лице Vite, Parcel.js, Rollup.js и т.д, но проблема общая - проблема переезда существующего приложения с webpack на альтернативу. Такая задача может отнять неподъемное количество времени и быть скорее в тягость, нежели в удовольствие. Но, что если появится быстрый сборщик совместимый с webpack-конфигурацией?

И такой нашелся! Встречайте rspack:

➡️ https://blog.stackademic.com/rust-port-of-webpack-rspack-the-new-kid-on-the-block-c3a3de569bfb

Да, пока мажорная версия 0 намекает на "сырость", но потенциал огромен. rspack написан на Rust, что дает огромный буст в скорости сборки по сравнению с JS-овским webpack. Если бегло гуглить статьи от переезжающих с webpack на rspack, то загвоздки хоть и есть, но они решаются. Поэтому, если задаетесь целью соскачить с медленного webpack на что-то более современное, то rspack может стать отличным вариантом
👍7
Если ответы бесплатных версий ChatGPT / Bard вас не устраивают или надоело платить дяде, то есть бесплатная альтернатива от HuggingFace 🤗 :

➡️ https://huggingface.co/chat

Чат использует различные готовые open-source модели (в настройках можете выбрать нужную). Скорость ответа впечатляет. К сожалению, нет возможности сгенерировать API-ключик для стороннего использования, но было бы жирновато 😅
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥1
Как вызвать черную дыру на практике:
Немного чтива на выходные:

➡️ https://tontinton.com/posts/database-fundementals/

Человек решил осознать как работает внутрянка баз данных… через написание своей с веселым названием. В статье поднимает и раскрывает многие вопросы по работе различных частей базы данных со ссылками для углубленного изучения каждой
🔥2👌1
Иногда в декораторе nestjs нужно заинжетить какой-то из сервисов. Рецепта из коробки нет, увы, но добрые люди придумали способ как это сделать:

➡️ https://liftoffllc.medium.com/nestjs-clean-code-with-decorators-85b124eb13b1

Решение немного сумбурное, но рабочее (успешно применил в своем проекте). Поэтому пользуйтесь в случае необходимости
👍3
Хорошая, достаточно подробная статья по работе с изображениями в HTML. Пояснено и прояснено много нюансов:

➡️ https://kurtextrem.de/posts/modern-way-of-img
🤓2👨‍💻1
JetBrains проводит ежегодное большое исследование состояния айтишки:

➡️ https://surveys.jetbrains.com/s3/developer-ecosystem-survey-2024-sh?pcode=24918498197270551

Если есть желание, то можете пройти и попробовать выиграть один из призов (призы неплохие). Сам один раз смог выиграть Amazon Gift card на их исследовании - вдруг повезет и вам 😄
🔥2
Немного философии о сложности разрабатываемого ПО и систем:

➡️ https://olano.dev/blog/a-note-on-essential-complexity/

Пересказывать не хочется, т.к текст можно понять по разному исходя из своего опыта. Но основной посыл - не усложняйте себе жизнь, придумывая решения для несуществующих проблем. Это действительно частая проблема.

Общий пример такой ситуации - это реализация чего-либо «на будущее». Например, добавление не используемой сейчас, но перспективной опции в параметры метода. В итоге будет потрачено время на ее реализацию, будет потрачено время на исправление ошибок и главное будет потрачено время на поддержку этой опции другими разработчиками, которые могут и не знать о благом намерении коллеги. Но «в продакшене» опция так никогда и не проявит себя, а ценное время ушло.

Поэтому, всегда помнить, что будущее может не наступить - и это происходит чаще, чем его наступление. Не бегите впереди паровоза 😅

#systemthinking #software
3👍1
Хорошая статья, которая поможет погрузиться в автотестирование кода:

➡️ https://blog.codepipes.com/testing/software-testing-antipatterns.html

Автор рассказывает про основные анти-паттерны при организации и написании любых типов тестов и поясняет, как не допускать этих известных ошибок. Статья универсальная для любого языка и крайне полезная
👍1
Хотите выжать максимум из ваших AI помощников? Статья ниже про то, как получать желаемые ответы от чата, задавая «правильные» вопросы:

➡️ https://www.infoq.com/articles/large-language-models-llms-prompting/

Авторы рассказывают про несколько научнодоказанных техник формирования вопроса/задачи чату, которые хорошо привязывает его формируемый ответ к запросу. Применяя техники, будет гораздо легче добиться корректного ответа

#ai
10👍3
Один из прекраснейших циклов статей, которые читал за последнее время. Decathlon рассказал и показал всю цепочку принятия технических архитектурных решений (от постановки задачи до документирования конечного решения) у них в компании:

➡️ https://medium.com/@tahar.raphael/software-architecture-making-decisions-f04cdd2cb3cf

Прелесть и ценность статей в абсолютной универсальности подхода - можно смело перенимать и пробовать на своих проектах.

Особенно полезна часть про документирование архитектуры посредством кода и ADR. Фиксируя изменения архитектуры, вы помогаете и себе, и новым коллегам понять и принять выбранное решение. Обстоятельства размываются в памяти и, описывая контекст проблемы, восстановить картину гораздо легче.

#architecture #systemthinking
3
Крайне подробная статья про ускорение загрузки страниц в Next.js:

➡️ https://www.toptal.com/next-js/nextjs-rendering-types-page-speed-optimization

Автор рассказывает про все типы рендеров (SSR, SSG и гибридный вариант с CSR) и показывает техники для ускорения под каждый тип. Полезная статья, если столкнулись с проблемой.

Хотя на своем примере с next.js основной затык в «перфоменсе» - это время ответа источника данных для рендеринга страницы 😅

#nextjs
3
Крайне любопытная статья про различные способы оптимизации скорости исполнения JS кода:

➡️ https://romgrk.com/posts/optimizing-javascript

Пунктов немного, но некоторые из них крайне любопытны и неоднозначны на первый взгляд.

Также всегда помните, что оптимизация скорости работы за счет ухудшения читаемости кода дело крайне тонкое. Никогда не разбрасывайтесь курочкам слишком много зернышек когда они и так достаточно сыты - будет весь двор в 💩
👍3
В дополнении к данному посту (тыц), статья ниже расскажет разницу между Message Queues и Event Streaming:

➡️ https://thenewstack.io/choosing-between-message-queues-and-event-streams/

Для пояснения разницы используют два наиболее популярных сервиса: RabbitMQ и Kafka.

От себя:
Kafka - гораздо более сложная для понимания и развертывания, поэтому нужно четко осознавать необходимость ее использования и какие задачи будут решены, т.к затраченные усилия и последующие инфраструктурные расходы могут легко не окупиться.
Из плюсов - перфоменс (тыц) огромен, но настраивать сложно (тыц).
Альтернативы: тут всё сложно, т.к Kafka фактически не имеет полноценных альтернатив :) Можно рассмотреть AWS Kinesis, но нужно понимать что вам нужно от этого сервиса. Так же можно рассмотреть Redpanda - будет дешевле (тыц), или Redis Streams - будет проще в использовании (тыц). Ну или моя любимая изотерическая альтернатива на AWS S3 (тыц). В любом случае, прямой альтернативы нет, а лишь некоторой части функциональности Kafka, но зачастую этого достаточно.

RabbitMQ - хорошая, бодрая платформа, но не сильно производительная по сравнению с Kafka (тыц). Расстраиваться не стоит, т.к у нее другая задача - обеспечивать гарантированную доставку сообщений различными методами с чем справляется отлично.
Альтернативы: очереди от вашего облачного провайдера (например SQS для AWS), LavinMQ, ZeroMQ, ActiveMQ, BullMQ (это не отдельный сервис как предыдущие, а просто npm пакет. Идеально, как первая очередь в nodejs-проект) и т.д

#kafka #mq
🤔1😱1
Если хотите открывать порталы в другие миры с помощью TS, то YouTube-канал ниже вам в помощь:

➡️ https://youtube.com/@typed-rocks

Автор канала вытворяет нереальные вещи с типами - определенно есть чему поучиться и забрать себе в проекты
4
Интересная статья - Microsoft Edge мигрирует компоненты с React на Web Components (помните такие? 😄):

➡️ https://thenewstack.io/how-microsoft-edge-is-replacing-react-with-web-components/

Вообще, сейчас есть ряд статей о представлениях будущего frontend без React (тыц как пример). Поэтому статья выше хороша на подумать если вы эксперт только лишь в React. Может имеет смысл изучать/интегрировать другие библиотеки/фреймворки?
🔥3
Современный способ отмены запросов (и не только) в статье ниже:

➡️ https://kettanaito.com/blog/dont-sleep-on-abort-controller

Про AbortController четко и лаконично
👍3🔥1