Новые статьи Создаём бесплатный сайт на GitHub Pages при помощи JekyllВ этой статье я расскажу как быстро и бесплатно создать сайт для своего блога, используя GitHub Pages и Jekyll. Для примера я создам клон своего же сайта, где можно будет размещать не только статьи, но и полезные коды, а также комментировать их. Пример сайта. Продолжить Рейтинг: 8 (За: 8 | Против: 0) Добавлено: 12.04.2017 от aNNiMON Комментарии (9) Обобщения в Java (Java Generics)![]() Дженерики появились в Java 1.5 и призваны обезопасить код от неправильной типизации. Параметризируя класс, интерфейс или метод, можно добиться гибкости в переиспользовании алгоритмов, строгой проверки типов и упростить написание кода. Без использования дженериков в код может пробраться ошибка типов:
Здесь мы случайно добавили в список число 3, а затем берём из списка строки. Код скомпилируется, но вот при запуске будет выдан ClassCastException на последней строке. Перепишем с использованием дженериков:
Продолжить Рейтинг: 10 (За: 10 | Против: 0) Добавлено: 30.03.2017 от aNNiMON Комментарии (15) Плагин javac или добавляем Extension Methods в Java![]() В Java 8 появилась возможность писать плагины к компилятору javac. С их помощью можно получать управление на нужном этапе компиляции и производить дополнительные проверки или изменения. Каждый плагин имеет название и может принимать аргументы для настройки своей работы. Если сравнивать с процессорами аннотаций, то плагины к компилятору более гибкие и простые в использовании. Они не вызывают перекомпиляцию, если был сгенерирован какой-то класс, получить управление можно практически на любом этапе компиляции, вплоть до кодогенерации. Настройка Для реализации плагина нужно добавить в зависимости tools.jar, который находится в составе JDK.
Продолжить Рейтинг: 4 (За: 4 | Против: 0) Добавлено: 22.03.2017 от aNNiMON Комментарии (3) Оптимизация запросов MySQLВчера я решил заняться оптимизацией запросов на сайте. После перехода с устаревшего модуля mysql на PDO скорость работы снизилась, а после обновления MySQL с версии 5.5 до 5.7 производительности не прибавилось. Это явно говорило о том, что с нашими таблицами и с запросами что-то не так. Прощай, MyISAM Первым делом я решил посмотреть на саму структуру базы данных. Оказалось, половина таблиц была на движке MyISAM, а половина на InnoDB. MyISAM хорош для тех таблиц, в которых данные в основном читаются, а не пишутся. Например, наш раздел Категории или правила сайта. Если в таблицу часто делается запись, это снижает производительность, потому что MyISAM на время добавления блокирует всю таблицу Продолжить Рейтинг: 10 (За: 10 | Против: 0) Добавлено: 25.02.2017 от aNNiMON Комментарии (17) Различие между arr и &arr – как в C определить размер массива без sizeofHey folks, Long time no C. Обычно в C мы находим длину массива arr так:
Здесь мы получаем размер массива в байтах; затем происходит деление этого размера на размер каждого элемента в массиве. Давайте попробуем избавиться от sizeof. Никто из вас никогда не задавался вопросом насчёт разницы между arr и &arr? Это не одно и то же. ![]() ![]() [pr=Теперь Продолжить Рейтинг: 4 (За: 6 | Против: 2) Добавлено: 13.02.2017 от kalterfx Комментарии (9) |