Наши проекты

Статьи, которые добавил aNNiMON:

Пример использования функционального программирования во избежание дублирования кода


Допустим, перед нами стоит задача загрузить конфиг приложения. Есть внутренний конфиг, который хранится в файле app.properties внутри jar-файла, и есть внешний — хранится в пользовательской директории ~/.config/app.conf.
Приложение при запуске читает внешний конфиг. Если какого-то параметра в нём нет, будет браться значение из внутреннего. Если внешнего конфига вообще нет — читается внутренний.

Для чтения внутреннего конфига используется класс ResourceBundle и его метод getString(String key), для внешнего — Properties
Продолжить

Рейтинг:  7  (За: 8 | Против: 1)
Добавил: aNNiMON

Комментарии (2)

Оптимизация в языках программирования


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

С последнего 14-го урока в предыдущей серии, язык OwnLang заметно улучшился, поэтому для начала я предлагаю ознакомиться с изменениями.


Все оптимизации делаются после парсинга, в момент, когда у нас уже сформировано дерево AST. Дальше нам поможет Visitor, с его помощью удобно обходить дерево и заменять узлы.
OptimizationVisitor - базовый класс, который может заменить один узел (Statement или Expression) на другой,
Продолжить

Рейтинг:  6  (За: 6 | Против: 0)
Добавил: aNNiMON

Комментарии (3)

Сборка apk из Android-приложения


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


Процесс сборки Android-приложения
Для начала о самом процессе сборки apk.

Когда вы запускаете сборку, первым делом читается AndroidManifest.xml, в нём есть важные параметры, такие как package (например, com.example.app) и targetSdkVersion.

Затем вызывается программа aapt (Android Asset Packaging Tool), которой передаётся AndroidManifest.xml, папка с ресурсами res/, assets/, путь к android.jar нужной target-версии. aapt проверяет ресурсы и компилирует их, создавая
Продолжить

Рейтинг:  12  (За: 14 | Против: 2)
Добавил: aNNiMON

Комментарии (5)

java.util.concurrent ScheduledThreadPoolExecutor как замена классу Timer


Класс Timer существует в Java уже очень давно и многие по привычке продолжают использовать его по сей день. Однако, у него есть некоторые неприятные особенности и ограничения. Об этом, а также о классе ScheduledThreadPoolExecutor, который служит заменой классу Timer я и расскажу.
Продолжить

Рейтинг:  6  (За: 6 | Против: 0)
Добавил: aNNiMON

Комментарии (4)
Всего: 60
1 2 3 ... 12 >>
Категории

Мы в соцсетях

vk tw tg yt

Пожертвования

Аноним2850 р.
Freddy1700 р.
NaruTrey800 р.
vlavolk637 р.
riseremi500 р.
  © aNNiMON (Melnik Software)
 
Яндекс.Метрика