ast

  • ХабрахабрФото Минифицируем приватные поля в TypeScript. Доклад Яндекса

    Минифицируем приватные поля в TypeScript. Доклад Яндекса

    Меня зовут Лёша Гусев, я работаю в команде разработки видеоплеера Яндекса. Если вы когда-нибудь смотрели фильмы или трансляции на сервисах Яндекса, то использовали именно наш плеер. Я сделал небольшую оптимизацию размера бандла — минификацию приватных полей. В докладе на Я.Субботнике я рассказал об использовании Babel-плагинов, трансформеров TypeScript и о том, насколько в итоге уменьшился размер продакшен-сборки проекта. [embedded content] Конспект…

    Читать далее »
  • СофтФото gogrep: структурный поиск и замена Go кода

    gogrep: структурный поиск и замена Go кода

    gogrep — это одна из моих любимых утилит для работы с Go. Она позволяет находить код по синтаксическим шаблонам, фильтровать результаты по типам выражений, а также выполнять замену (тоже по шаблону). В этой заметке я расскажу как использовать gogrep, а также о VS Code расширении для более удобной работы с gogrep прямо из редактора. Зачем нужен gogrep Если в тезисах,…

    Читать далее »
  • ХабрахабрФото Парсеры Пратта для чайников

    Парсеры Пратта для чайников

    Рекурсивный спуск работает идеально, когда вы можете принимать решение относительно разбираемого куска кода с помощью текущего контекста и токена. Картину портят выражения: постфиксные, инфиксные и прочие. Проблема: вы не можете понять, какого типа выражение вы обрабатываете до тех пор, пока не разберёте его первую половину. Зачастую для вас также важны приоритет операции и её ассоциативность, чтобы построенное AST имело правильную…

    Читать далее »
  • ХабрахабрФото [Перевод] Реализуем преобразования кода на Python

    [Перевод] Реализуем преобразования кода на Python

    Привет, Хабр. Сегодня мы предлагаем вам перевод статьи, затрагивающей не самую обсуждаемую тему: компиляцию кода в Python, а именно: работу с абстрактным синтаксическим деревом (AST) и байт-кодом. Притом, что Python является интерпретируемым языком, такие возможности в нем чрезвычайно важны с точки зрения оптимизации. О них мы сегодня и поговорим.Вы когда-нибудь задумывались, как именно компилятор оптимизирует ваш код, чтобы он работал…

    Читать далее »
  • ХабрахабрФото Компьютерные бренды 90-х

    Компьютерные бренды 90-х

    Некоторые компании, работавшие на рынке компьютеров в 90-х годах, известны и поныне. Однако лет 25 назад их было значительно больше. Cloud4Y предлагает немножко поностальгировать и вспомнить компьютерные бренды, популярные в 90-х годах. Осторожно, будет много фото. Acer Компьютеры Acer 1990-х годов были типичным середнячком. В них не было ничего выдающегося или новаторского, но средняя надёжность при цене ниже средней оказалась…

    Читать далее »
  • ХабрахабрФото Компьютерные бренды 90-х

    Компьютерные бренды 90-х

    Некоторые компании, работавшие на рынке компьютеров в 90-х годах, известны и поныне. Однако лет 25 назад их было значительно больше. Cloud4Y предлагает немножко поностальгировать и вспомнить компьютерные бренды, популярные в 90-х годах. Осторожно, будет много фото. Acer Компьютеры Acer 1990-х годов были типичным середнячком. В них не было ничего выдающегося или новаторского, но средняя надёжность при цене ниже средней оказалась…

    Читать далее »
  • ХабрахабрФото Как заставить машину написать тесты из кода за тебя

    Как заставить машину написать тесты из кода за тебя

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

    Читать далее »
  • ХабрахабрФото [Перевод] Внутренности Go: оборачиваем переменные цикла в замыкании

    [Перевод] Внутренности Go: оборачиваем переменные цикла в замыкании

    В дополнение вы узнаете о том, как Go пытается автоматически определить, нужно ли использовать указатель/ссылку или значение в разных случаях. Сегодня я решил перевести для вас небольшую статью о внутренностях реализации так называемых замыканий или closures. Да и просто все эти внутренности чертовски интересны, как мне кажется! Понимание этих вещей позволит избежать ошибок. Я член программного комитета конференции, и мы…

    Читать далее »
  • ХабрахабрФото Жизнь до рантайма. Доклад Яндекса

    Жизнь до рантайма. Доклад Яндекса

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

    Читать далее »
  • ХабрахабрФото Пример разбора C++ кода с помощью libclang на Python

    Пример разбора C++ кода с помощью libclang на Python

    В C++ есть встроенный механизм Run-Time Type Information (RTTI), и конечно же первая мысль была использовать именно его, но я решил написать свою реализацию, потому что не хотел тянуть весь встроенный механизм, ведь мне нужна была лишь малая часть его функционала. На одном личном проекте на C++ мне потребовалось получать информацию о типах объектов во время выполнения приложения. А еще…

    Читать далее »


Кнопка «Наверх»