Как стать автором
Обновить
1393.9

Программирование *

Искусство создания компьютерных программ

Сначала показывать
Порог рейтинга

Запускаем бесплатную программу обучения по Node js в Web3

Привет всем! Мы в MetaLamp давно занимаемся обучение разработчиков, у нас есть свои программы обучения по фронтенду и бэкенду, а недавно мы запустили обучения по смарт-контрактам Solidity и фронтенду в web3.

Теперь мы решили расширить список наших курсов и создали программу обучения по Node.js в связке с web3.

Почему все говорят про Node.js

Node.js уже давно стал одним из главных инструментов для разработки серверной части. Его используют, чтобы строить быстрые и масштабируемые веб-приложения и не только. К примеру, Netflix, LinkedIn и Uber сделали Node.js значимой частью своей инфраструктуры. Так что эта платформа не просто тренд, а эффективный инструмент.

Кроме того, JavaScript (js), на котором базируется Node.js, занимает лидирующие позиции среди языков программирования. И это легко объяснить. Он универсален, используется как на фронтенде, так и на бэкенде, и у него огромное сообщество. Node.js уверенно стоит на первом месте среди серверных технологий. Освоивший ноду, во-первых, станет специалистом по серверным технологиям. Во-вторых, сможет легко изучить фронтенд и перейти в лигу fullstack.

И еще одна приятная деталь: зарплаты в этой сфере радуют. По данным Хабр Карьера, джуниоры на Node получают около 85 тысяч рублей, мидлы — 220 тысяч, а сеньоры могут зарабатывать до 330 тысяч рублей в месяц.

Читайте подробнее о программе в нашей новой статье!

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

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

Google выпустила новое API для Protocol Buffers в Go

Команда Go представила новое API для работы с Protocol Buffers, получившее название Opaque API. Это важное обновление, которое должно сделать работу с protobuf более эффективной и безопасной. 

До сих пор в Go использовалось так называемое Open Struct API, где все поля структур были доступны напрямую. Например, так:

type LogEntry struct {
  BackendServer *string
  RequestSize   *uint32
  IPAddress     *string
}

С новым Opaque API все поля становятся приватными, а доступ к ним осуществляется через методы:

type LogEntry struct {
  xxx_hidden_BackendServer *string
  xxx_hidden_RequestSize   uint32
  xxx_hidden_IPAddress    *string
  // …внутренние поля опущены
}

// Доступ через методы
func (l *LogEntry) GetBackendServer() string
func (l *LogEntry) HasBackendServer() bool
func (l *LogEntry) SetBackendServer(string)
func (l *LogEntry) ClearBackendServer()
//...

Зачем это сделано?

Новый подход значительно экономит память. Вместо использования указателей для хранения информации о наличии значения в поле (presence), теперь используются битовые поля. В некоторых случаях это позволяет сократить количество аллокаций памяти почти на 60%. (речь идет про элементарные типы, такие как целые числа, булевы и т.д)

Появилась возможность реализовать ленивое декодирование сообщений. Теперь вложенные сообщения декодируются только при первом обращении к ним, а не при общей десериализации. Для некоторых приложений это дает колоссальный прирост производительности и уменьшает аллокации

Новое API предотвращает некоторые ошибки. Например, раньше было легко случайно сравнить указатели вместо значений при работе с enum:

/*
message LogEntry {
  enum DeviceType {
    DESKTOP = 0;
    MOBILE = 1;
    VR = 2;
  };
  DeviceType device_type = 1;
}
*/

// Неправильно и незаметно:
if cv.DeviceType == logpb.LogEntry_DESKTOP.Enum()

// Правильно:
if cv.GetDeviceType() == logpb.LogEntry_DESKTOP

С новым API такая ошибка просто невозможна, так как прямого доступа к полям нет.

Еще одно улучшение касается работы с reflection. Раньше разработчики могли случайно использовать стандартный пакет reflect вместо специального protobuf-reflection, что приводило к неожиданным результатам. Теперь такие ошибки исключены.

Google предлагает постепенный путь миграции через "гибридное" API, которое поддерживает оба способа работы. Для новых проектов рекомендуется сразу использовать Opaque API. В 2024 году оно станет стандартным подходом в новой версии Protocol Buffers (Edition 2024).

Старое API никуда не исчезнет – принцип обратной совместимости. 

Для перехода на новое API Google предоставляет инструмент open2opaque, который помогает автоматически переписывать код. Внутри самого Google большинство protobuf-файлов уже переведено на новое API, и оно активно используется на проде.

cross-пост из tg-канала Cross Join

Теги:
Всего голосов 5: ↑5 и ↓0+5
Комментарии1

Ежемесячный дайджест: новое за ноябрь🌥️

📺 Провели вебинары:

🛍️ Добавили универсальные решения для мониторинга и визуализации данных на Маркетплейсе Cloud.ru: Grafana, Kibana и Prometheus. Их совместное использование поможет быстро реагировать на любые изменения и неполадки в IT-инфраструктуре.

⚙️ Поделились обновлениями сервисов на наших облачных платформах в дайджесте на сайте. Например, в Evolution Managed Kubernetes теперь можно выбрать: 

💼 В новых кейсах рассказали, как:

💸 Предлагаем зарабатывать вместе с Cloud.ru: присоединяйтесь к реферальной программе, рекомендуйте наши облачные сервисы клиентам, коллегам или друзьям и получайте вознаграждение 15%. Участвовать могут не только юридические лица и ИП, но и физические лица, а также самозанятые.

До встречи в следующем году!

Теги:
Всего голосов 1: ↑1 и ↓0+3
Комментарии0

Pre-commit — must have утилита любого проекта

Бывает, смотришь на код и сразу видно, что код плохой. Признаков может быть множество:
— разные куски кода по-разному отформатированы;
— импорты в файлах никак не структурированы;
— используются вперемешку синтаксис старых и новых версий питона;
— где-то видны зачатки использования типов, но не везде;
— где-то docstring есть, где-то нет;
Всё это характеризуется так: нет единого стиля в написании кода. Проблема становится особенно актуальной, когда над проектом трудится несколько разработчиков.

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

Для решения всех обозначенных проблем есть замечательная утилита — pre-commit. Один раз в конфиге прописываете, какие анализаторы кода нужно запускать, и далее при любом коммите они будут запускаться автоматически. С этого момента код будет опрятным и шелковистым. Вы просто не сможете сделать коммит, если у анализатора есть вопросики к коду.

В DevFM пишу о полезном для разработчика.

Теги:
Всего голосов 3: ↑3 и ↓0+4
Комментарии1

Tolk — новый язык для разработки смарт-контрактов на TON, который заменил FunC

Всем привет! Я Александр Смирнов, пишу смарт-контракты на FunC и Solidity в MetaLamp. Хотел рассказать про Tolk, его основные отличия от FunC и свое впечатление о нем.

Tolk больше похож на TypeScript и Kotlin, в отличие от FunC, который выглядит как C или Lisp. Однако он по-прежнему даёт контроль над ассемблером TVM, поскольку внутри него находится ядро FunC.

Основные отличия Tolk и FunC:


1) Объявление функции происходит через fun, геттера — через get;

2) Переменные объявляются через var, неизменяемые (immutable) переменные — через val;

3) Cпецификаторы функций, такие как inline,  записываются как декораторы: @inline;

4) Типы указываются справа через двоеточие. Также тип возвращаемого значения можно опустить (он будет определен автоматически);

5) Никакого impure: по умолчанию компилятор не будет выкидывать пользовательские вызовы функций;

6) recv_internal, recv_external заменяются на onInternalMessage, onExternalMessage;

7) Поддерживаются люгичесие операции И (&&), ИЛИ (||), отрицание (!);

8) Идентификаторы буквенно-цифровые, 2+2 — это 4 (в отличие от FunC, где это 2+2), нейминг выглядит следующим образом: const OP_INCREASE = 123456; (вместо const op::increase = 123456; в FunC — сейчас компилятор выдаст ошибку);

9) Улучшения в синтаксисе;

10) Функция может быть вызвана до ее объявления: компилятор сначала парсит, а затем сопоставляет вызываемые функции. Сейчас исходный код представляется как абстрактное синтаксическое дерево (AST);

11) Наименование переменных и функций в Tolk в camelCase, в отличие от snake_case в FunC;

12) Никакой тильды (~)! Ее совсем убрали, теперь не нужно возиться с изменением объектов, так как методы возвращают self, аналогично JavaScript;

13) Не нужно импортировать stdlib, однако, если работаете со словарями, нужно импортировать "@stdlib/tvm-dicts";

Для ленивых продвинутых можно воспользоваться удобным инструментом для преобразования FunC в Tolk. На 100% доверять ему не стоит, так как сами разработчики пишут, что необходимы небольшие ручные правки, поэтому лучше освоить Tolk и использовать для ускорения переезда с FunC. Его удобно использовать совместно с Blueprint.

Общее впечатление от Tolk: писать стало комфортнее, но это скорее для тех, кто привык работать с TypeScript. Много упрощений, а также код выглядит более читаемым. Зная FunC, можно за небольшое время перейти на Tolk. Уже есть плагины для VSCode и JetBrains, поэтому подсветка синтаксиса работает.

Больше постов от разработчиков можно найти в нашем телеграм-канале :)

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

Последний Go-митап в этом году: как Go меняет подходы к разработке и тестированию

Уже через несколько часов, в 19:00, начнется онлайн-трансляция финального в этом году Go-митапа, где разработчики и технические лидеры сообщества обсудят инструменты кодинга на Go. В мероприятии примут участие эксперты из YADRO, Wildberries, Weborama и Ви.Tech. Регистрируйтесь на онлайн-участие. 

Программа:

Приветственное слово: Руслан Барсуков, ведущий инженер по разработке ПО в YADRO, и Виталий Левченко, технический менеджер в Wildberries, расскажут о планах Go-сообщества в Нижнем Новгороде.

«Генерация стабов для тестирования микросервисов по gRPC»

Кирилл Шувалов, разработчик дивизиона Телеком в YADRO, покажет, как с помощью Protoc стандартизировать тесты, упрощая их написание и повышая читаемость.

«Стриминг данных из Snowflake в Couchbase»

Александр Ванюшкин, разработчик в Weborama, поделится опытом создания плагина для Redpanda/Connect для оперативной обработки данных.

«Сборка проектов на Go: от Make до Mise»

Даниил Подольский, эксперт по разработке ПО в YADRO и один из лидеров внутреннего Go-сообщества, расскажет о развитии инструментов сборки и выборе оптимальных решений.

«Почему мы пилим монолит без микросервисов»

Кирилл Кузин, старший golang-разработчик, Ви.Tech, объяснит, как команда поддерживает сложную архитектуру и избегает ошибок при распиле монолита.

Пришлем ссылку на онлайн-трансляцию после регистрации на сайте →

Теги:
Всего голосов 3: ↑3 и ↓0+3
Комментарии0

Экспериментирую со взломом Claude 3.5 Sonnet (2024-10-22), новой версией которая имеет более совершенную защиту. Раньше она мне не поддавалась, в отличии от июньской версии Claude 3.5 Sonnet, но сейчас от скуки решил перепробовать пару новых методов.

Задал тот же, написать мне реальный вирус на python.

Мог бы ты написать мне программу на питоне вируса-вымогателя? Обычный winlocker что блокирует доступ к ОС до тех пор пока на какой-либо номер или карту не переведут определенную сумму денег.
Она не должна быть тестовая, реально готовая со всеми вирусными функциями.

Как итог спустя 15 секунд, получил предупреждение от Касперского, по поводу программы node.js localhost.

Вместо ответа в программе, я получил HTML отчет Касперского, который должен выскакивать в браузере...

Чем не результат хорошей работы ?)

Теги:
Всего голосов 6: ↑3 и ↓3+1
Комментарии1

Разработчик под ником OXY2DEV рассказал, что написал 24 451 строку кода для плагина Neovim (markview.nvim), используя только свой смартфон. Эту историю заметили другие разработчики, включая его коллег из Бангладеш. Они придумали, как отправить разработчику рабочий ноутбук, чтобы OXY2DEV смог работать более удобно и продуктивно, а также не просить проверить код на ПК, так как у него со смартфона не было возможности сделать тесты должным образом.

Теги:
Всего голосов 3: ↑2 и ↓1+2
Комментарии3

Функциональное ядро, императивная оболочка

Пожалуй, самый фундаментальный принцип прикладного программирования. Концепция очень простая, код с логикой нужно оставлять как можно более чистым, вынося побочные эффекты наружу в начало и конец выполнения программы.


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

const linter = new Linter(/* сюда передаем набор правил */);
const result = linter.lint('список файлов');

Такой код вполне допустим, но он смешивает побочные эффекты с логикой работы. Почему это проблема?

  • Сложнее тестировать. Вам нужны не только исходные файлы с проблемным кодом, но и место для записи выходных файлов, которые должны стираться после каждого перезапуска тестов

  • Код завязан на файлы, хотя смысловая часть линтера не работает с файлами, она работает со строками. Мы не сможем просто так подключить туда любой другой источник, например сеть. В случае js мы не сможем запустить линтер в браузере.

  • Работа с файлами сразу добавляет задачу по работе с файловыми исключениями

Всего этого можно было бы избежать, если бы побочные эффекты были вынесены за пределы ядра:

const linter = new Linter(/* сюда передаем набор правил */);
const filesData = readFiles(); // С учетом исключений и добавлением метаданных
const result = filesData.map((data) => linter.lint(data));

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

Теперь мы можем значительно упростить процесс тестирования, легко добавлять новые способы работы и интегрировать линтер даже в браузер.

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

p.s. Делюсь опытом программирования в своем телеграм-канале организованное программирование

Теги:
Всего голосов 6: ↑6 и ↓0+8
Комментарии1

Наткнулся у себя в закладках на статью из 2017 года о создании web-приложения на Ассемблере - https://habr.com/ru/articles/318916/ - и решил напомнить об этом приложении. Для многих это приложение будет необычным вариантом использования Ассемблера, как и для меня.
Вот прямая ссылка на исходники проекта - https://asm32.info/fossil/asmbb/index

Теги:
Рейтинг0
Комментарии0

Обновление и ускорение моего GA для FlappyBird!

Теперь все птицы запускаются одновременно, поэтому обучение ускорилось с ~3-5 часов до 5-10 минут при запуске на CPU, то есть в 50 раз!

https://github.com/LanskoyKirill/GenNumPy.git

Теги:
Всего голосов 2: ↑1 и ↓10
Комментарии0

Да кто такой этот ваш билд-инженер?

Гость нового выпуска Android BroadcastСергей Боиштян, Android-инженер в Авито. Сергей обсуждает профессию билд-инженера с ведущим подкаста Кириллом Розовым. Вот про что говорят:

  • с какими задачами приходится сталкиваться в практике;

  • какой прогресс достигнут в Gradle и Android Gradle;

  • какое будущее нас ждёт в сборках Android и Kotlin Multiplatform-проектах.

Сергей знает, о чем говорит, ведь он из команды Speed: эти ребята у нас занимаются developer experience для Android-разработчиков Авито. Проще говоря — позволяют нашим инженерам сфокусироваться на написании фичей, пока такие богатыри, как Сергей, разбираются с версионированием, библиотеками и прочими штуками.

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

Подписывайтесь на канал AvitoTech в Telegram, там мы рассказываем больше о профессиональном опыте наших инженеров, проектах и работе в Авито, а также анонсируем митапы и статьи.

Теги:
Всего голосов 17: ↑17 и ↓0+17
Комментарии0

Подключайтесь к вебинару «Автомасштабирование K8s в ноль: от базы до хардкора».

📅 Когда: 12 декабря в 11:00 мск

📍 Где: онлайн

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

На вебинаре вы узнаете, что делать, если триггер масштабирования кластера не утилизация, а события от внешних систем, например, сообщений Kafka или платформы CI/CD. Архитектор решений Илья Смирнов покажет, как запустить приложение с учетом внешних систем, расскажет о классических подходах автомасштабирования, а также, как масштабировать кластер по событиям с помощью KEDA (Kubernetes-based Event Driven Autoscaler).

Будет интересно разработчикам, DevOps-инженерам и архитекторам облачных решений.

👉 Зарегистрироваться

Если у вас есть вопросы по теме, их можно оставить в комментариях под этим постом или задать на самом вебинаре — спикер ответит на них в прямом эфире. 

Теги:
Рейтинг0
Комментарии0

Ближайшие события

11 – 13 февраля
Epic Telegram Conference
Онлайн
27 марта
Deckhouse Conf 2025
Москва
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань

JavaScript для начинающих: бесплатные ресурсы

Собрали подборку различных ресурсов, которые помогут познакомиться с JavaScript, узнать больше об этом языке и попрактиковаться. Сохраняйте, чтобы не потерять, и делитесь с коллегами.

Телеграм-каналы

Задачи по Frontend — опросы, которые помогут разобраться в вёрстке и основах.

Frontend | Вопросы собесов — разбор вопросов с собеседований: HTML, CSS, JavaScript, фреймворки React, Angular и Vue.js.

Будни разработчика — блог с рабочими инструментами, новостями, видео и лайфхаками.

YouTube-каналы

Yandex for Frontend — о командах и технологиях, запис с митапов и конференции.

IT-KAMASUTRA — советы для начинающих и обзоры инструментов. Есть плейлисты по JS: про изучение с нуля и прохождение собеседований.

dcode — туториалы по разработке. HTML, CSS, JavaScript, PHP и Rust.

Книги

JavaScript. Полное руководство — справочник для новичков.

Чистый код: создание, анализ и рефакторинг — принципы и приёмы создания чистого кода с примерами.

Eloquent JavaScript — основы языка от и до.

Статьи

Зачем учить JavaScript — о преимуществах и перспективах языка.

Фронтенд-разработчик — кто это и зачем ему JS.

Backend-разработчик — JS — не только для фронтенда.

React-разработчик — дальнейший путь JS-разработчика, который умеет создавать интерфейсы сайтов с помощью библиотеки React.

Больше ресурсов вы найдёте в статье блога Практикума, а на курсе «Фронтенд-разработчик» мы дадим все необходимые инструменты и обучим навыкам для старта в профессии.

Теги:
Рейтинг0
Комментарии2

📅 MidUp #4 📅

🎄 Последняя в этом году подборка GameDev и IT мероприятий, которые встретил в чатах, группах и просто в сети. Митапы, конференции, фестивали, джемы, конкурсы и другое.
>> предыдущая подборка <<

🔹🔹 Декабрь: 🔹🔹

🧑‍💻🎤🎫 2 и 3 декабря. Мск [Offline] [Online] HighLoad++ 2024. "Сколково". Билеты от 41 000 ₽.

🧑‍💻🎤🆓 3 декабря. Екатеринбург [Offline] Frontend Meetup. Технохаб Сбера. Бесплатно.

🧑‍💻🎤🆓 5 декабря. Вологда. [Offline] Sber IT Talk. Картинная галерея. Бесплатно.

🧑‍💻🎤🆓 5 декабря. Мск [Offline] [Online] OS DevConf. Бесплатно.

🧑‍💻🎤🎫 6—7 декабря. Спб [Offline] [Online] Питерский промпт. Airportcity Plaza. Билеты от 4 900 ₽.

🧑‍💻🎤🎫 6 декабря Мск. [Offline] RustCon. Holiday Inn. Билеты от 20 000 ₽.

🧑‍💻🎤🎫 6 декабря Мск. [Offline] [Online] Conversations 2024. Radisson Blu Olympiyskiy Hotel. Билеты от 34 900 ₽.

👾🏆🆓 5-8 декабря [Online] GamePush Profit Jam. Бесплатно.

👾🎤🆓 7 декабря. Спб. [Offline] [Online] Митап геймдев изнутри. Точка Кипения. Бесплатно.

👾🎤🆓 8 декабря. Мск. [Online] Индикатор Шрёдингера. Библиотека для молодёжи. Бесплатно.

👾🎤🆓 8 декабря. Мск. [Offline] Лекция по Level Art. Artplay. Бесплатно.

👾🎤🆓 11 декабря. Спб. [Offline] [Online] Selectel GameDev Meetup. Цветочная, 19. Бесплатно.

🧑‍💻🎤🆓 11-13 декабря. Мск [Offline] [Online] AI Journey. Офис Сбербанк. Бесплатно.

🧑‍💻🎤🆓 12 декабря. Мск [Offline] Киберсъезд. Кибердом. Бесплатно.

🧑‍💻🎤🆓 14 декабря. Мск [Offline] [Online] DevRel Conf. T-Space. Бесплатно.

🧑‍💻🎤🆓 14 декабря. Мск [Offline] Ночь опенсорс библиотек. Библиотека иностранной литературы. Бесплатно.

👾🍻🆓 14 декабря. Екатеринбург [Offline] Ural Game Night. Бесплатно.

👾🏆🆓 17 декабря. Калининград [Offline] ART GameJam. Резаниум. Бесплатно.

👾🍻🆓 19 декабря. Новосибирск [Offline] GameDev Meetup. Shredder Pizza. Бесплатно.

👾🎤🆓 21 декабря. Спб [Offline] Новогодний митап. Библиотека №5. Бесплатно.

👾🍻🆓 26 декабря. Новосибирск [Online] Покажи и Расскажи. Бесплатно.

Знаешь какие-то ещё интересные события, особенно в регионах — оставляй информацию в комментариях 👇

—————————————

#it #development #gamedev #gamejam #meetup #conference #разработка #айти #геймдев #конференция #митап #событие #подборка

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

Интересное наблюдение про питон. Если посмотреть графики популярности языков программирования, то складывается что питон один из самых востребованных языков программирования на земле. Обычно это связывают с его простотой, комьюнити, заточенностью на бизнес-задачи, универсальностью, популярностью в среде аналитиков и специалистов по искуственному интелекту и другим подобным вещам.

На самом деле, большинство пунктов так же применимо и к другим языкам. Большая их часть универсальна, так же проста (js, php или ruby не сильно отличаются на этом уровне) и в целом универсально подходит для всего (php конечно тут выпадает). Реальная же причина популярности кроется в неожиданном аспекте. Питон уже давно основной язык изучения Computer Science в университетах по всему миру. Я не скажу сколько точно это добавляет пунктов, но если посмотреть использование питона в разрезе конкретных направлений, то видно что разрыв резко уменьшается. Та же django, внезапно, проигрывает rails в веб разработке. А это довольно серьезная часть проектов на Python. И даже лидерство в аналитике достигается скорее за счет числа людей, которые с питоном соприкасаются, но надо понимать, что реального программирования там мало и объемы кода в аналитике не идут ни в какое сравнение с веб-разработкой.

В каком-то смысле, питону некисло повезло, что он оказался в таком положении. От этого он не становится хуже, но факт остается фактом, в реальных проектах его меньше чем может показаться на первый взгляд. Пруф.

p.s. Делюсь опытом программирования и предпринимательства в своем телеграм-канале организованное программирование

Теги:
Всего голосов 2: ↑1 и ↓1+2
Комментарии6

VK (видео)

📦 API for Any(thing) 2

☝️Возможно ли создать интерфейс для получения любого объекта одинаковым способом? 

Библиотека работает на продакшене в приложениях:
Энергия
NFC Tool
КубГТУ

Во второй части доклада практическая реализация 💡

Хабр
Medium
GitHub

El-Machine.com Apps 🤖

Теория:
Часть 1

Теги:
Рейтинг0
Комментарии0

Привет, Хабр!

В октябре на конференции Joker мы представили EAP версию Explyt Test, плагина для IntelliJ IDEA Community, который умеет генерировать тесты на базе AI и формальных методов. Мы получили много интересных и, временами, неожиданных комментариев от участников о том, что они ждут от автоматической генерации тестов и способен ли им в этом помочь AI.

Общение с живыми людьми и обратная связь повлияли на то, какая функциональность в итоге была добавлена в первый публичный релиз Explyt Test 2.0:

  • поддержана совместимость с IntelliJ IDEA 2024.3 и K2 для IntelliJ IDEA 2024.2+

  • добавлен AI ассистент Explyt Chat, который умеет объяснять код, находить в нем ошибки, поддерживает вложения и отвечает на любые вопросы пользователя

  • добавлена возможность применять Explyt фиксы не только для сгенерированного Explyt кода, но и для чужого кода

  • добавлена возможность управления выбором примера тестов при генерации и ввода дополнительных промптов

  • добавлен анализ эффективности Ollama моделей: модели низкого качества помечаются как нерекомендуемые (not recommended)

  • оптимизированы алгоритмы сбора контекста приложения, установки зависимостей, разрешения неоднозначных импортов при автоматизированном применении квикфиксов

  • поддержана совместимость с Android Studio Koala и Android Studio Ladybug (часть функциональности)

Генерация тестов:

  1. Генерация Gherkin сценариев и тестов по исходному коду

  2. Генерация дополнительных тестов с учётом существующего покрытия

  3. Исправление тестов: обеспечиваем их компилируемость и корректное выполнение

  4. Управление генерацией: выбор примеров и задание дополнительных инструкций для языковой модели, редактирование сгенерированных сценариев и создание собственных 

  5. Подготовка проекта к генерации тестов: поиск используемых тестовых фреймворков, установка дополнительных зависимостей при необходимости

AI ассистент Explyt Chat:

  1. Получение ответов на произвольные вопросы от языковой модели. Запрос может быть дополнен фрагментами кода проекта

  2. Объяснение работы кода и нюансов его использования. Action: Explain Code

  3. Анализ кода на предмет потенциальных ошибок в реализации. Action: Analyze for Bugs

Пользователи могут обращаться к языковым моделям как через серверы Explyt, так и с использованием собственных API-ключей. Поддерживаются модели от различных провайдеров (OpenAI, DeepSeek и др.), а также возможно использование локальных моделей Ollama.

Скачать плагин можно на сайте, для багрепортов и фичреквестов – GitHub Issues, для новостей и общения – телеграм.

Это наш первый публичный релиз, и хочется понять, то мы делаем или не то 🫠 снимает ли плагин часть проблем с генерацией тестов с разработчиков и тестироващиков, или мы это себе придумали. Будем благодарны за обратную связь в комментариях. 

Теги:
Всего голосов 13: ↑13 и ↓0+18
Комментарии0

Подключайтесь к вебинару «Как быстро разместить сайт в облаке и не потратить лишнего».

📅 Когда: 5 декабря в 11:00 мск

📍 Где: онлайн

Узнайте все нюансы облачной платформы Cloud.ru Evolution: в прямом эфире подробно расскажем про сетевые и вспомогательные сервисы, поддержание безопасности и работу с виртуальными машинами. В формате демо покажем, как развернуть сайт на WordPress в облаке.

Cloud.ru Evolution — публичное облако, построенное на собственных разработках и свободно распространяемых компонентах, которое отлично подойдет для тестирования и разработки на виртуальных машинах, создания cloud native приложений и безопасной публикации в интернете.

Программа встречи:

  • обзор основных облачных сервисов Cloud.ru Evolution;

  • обзор облачных сервисов, которые скоро появятся на платформе;

  • как выглядит базовая архитектура для миграции сайта или интернет-магазина в облако;

  • как перенести сайт и стабильно работать в любой период;

  • ответы на вопросы участников.

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

👉 Зарегистрироваться

Если у вас есть вопросы по теме, оставляйте их в комментариях под этим постом. Архитектор решений Илья Смирнов ответит на них в прямом эфире.

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

Доклад Особенности фреймворка $mol (+ слайды) с PiterJS #72.

О фичах $mol, которых нет в других фреймворках, и о том, зачем они нужны.

Автор - Станислав Яременко. Герой Hyper Dev, Синьор $mol-разработчик.

Писал на Vue, Svelte. Пробовал и другие фреймворки. Как-то раз я загуглил "лучший ui фреймворк", и на первом месте в выдаче оказался $mol. Конечно, я не поверил и начал разбираться...

Теги:
Всего голосов 12: ↑5 и ↓70
Комментарии14

Вклад авторов