Как стать автором
Обновить
6
Карма
0
Рейтинг
Ераков Валерий @evkin

Java програмист

  • Подписчики
  • Подписки 5

Как сделать самодельный электрический багги с мощным мотором

Если я правильно помню, NordicEnergy не удалился, а переименовался. И сейчас он IlyaGalkin

Реализация своего IoC контейнера

Нет, я там заметил описание кода реализации сканирования по пакетам, в примере самописного (упрощенного) IoC и подумал, что PqDn это может быть интересно.
А на спринг вы местами сами ссылаетесь в тексте. И взять какое то промышленное решение и сделать более удобную для себя имплементацию, сохраняя частичную привычность использования и понимания, имхо более правильный подход, чем увековечивание своего "имени" в паблик апи аннотаций)))

Реализация своего IoC контейнера

Совсем недавно была статья по этому поводу: "Реализация Spring Framework API с нуля. Пошаговое руководство для начинающих. Часть 1", (https://habr.com/post/419679/) с разбором как оно работаем и примером кода, а-ля свой упрощенный спринг.
А по поводу своего велосипеда из этой статьи, в первую очередь бросаются в глаза аннотации. Что помешало взять JSR-330 и реализовать тот же @ Inject & компанию? если уж спринговые не нравятся....

FreeMarker шаблоны

попадалась презенташка, в которой был кусочек сравнения https://www.slideshare.net/alexeymigutsky/jsp-thymeleaf-20

FreeMarker шаблоны

По поводу динамических шаблонов — вообще не проблема. У нас шаблоны хранятся в базе (+кеш) и чудненько в процессе работы перегенерируются. Причем используются именно html, т.е. с экранированием тоже проблем нет. Соответственно вообще можно построить логику, что будет по нужным звездам разные шаблоны подаваться, делая ветвление в java логике или же if-ами.
С бинами проблем тоже нет. Через точку можно обращаться к свойства любой глубины вложенности. Там есть реализация бин обработчика (BeansWrapperBuilder), Map-у мы вообще не используем

Почему я ненавижу Spring

Мне в этом плане очень понравился MyBatis. Особенно когда используется не JdbcTemplate, а какой то ORM типа Hibernate, JPA, spring-data…
Если что то сильно выходит за границы CRUDа — плачешь, колешься пишешь на соответствующем фремворке и думаешь, как было бы проще если бы сам накидывал структуру таблиц и выгребал это все SQLем (а местами так и делаю, через native query)

JNI: Подружим Java и C++

В большинстве случаев уже предпочитают использовать Java Native Access (JNA). С ней все становиться попроще.

Выключение PC в любой точке мира (JAVA)

Жесть… как минимум добавить какой то ключ (пароль) что бы любое сканирование портов не запускало эту чудо команду и не выключало комп.
Да и не мешало бы добавить в параметры shutdown (для windows) добавить еще ключик "f", что бы перезагрузка не уперлась, в какой то не сохраненный файл / подтверждение

Почему программисты не могут программировать

Конечно же правильно вынести переменную вне цикла.
Можно даже сделать её полем класса (но это не самый лучший вариант, т.к. код становиться не многопоточным).
Проблема в том, что соединение строк — это всегда создание нового объекта в джаве и соответствующие копирование памяти 2х строк, в новый буфер.

Почему программисты не могут программировать

Ну, давайте попробуем:
Код теста
package test;

import org.openjdk.jmh.annotations.*;
import org.openjdk.jmh.infra.Blackhole;

import java.util.concurrent.TimeUnit;

@State(Scope.Thread)
@BenchmarkMode(Mode.AverageTime)
@OutputTimeUnit(TimeUnit.NANOSECONDS)
public class MyBenchmark {

    @Benchmark
    public void testOptMethod(Blackhole bh) {
        for (int y = 0; y < 100; y++) {
            if (y % 3 == 0) {
                bh.consume(y % 5 == 0 ? "MissKiss" : "Miss");
            } else {
                bh.consume(y % 5 == 0 ? "Kiss" : Integer.toString(y));
            }
        }
    }

    @Benchmark
    public void testMethod(Blackhole bh) {
        for (int y = 0; y < 100; y++) {
            String outStr =  "";
            if ((y % 5) == 0) outStr="Miss";
            if ((y % 3) == 0) outStr=outStr + "Kiss";
            bh.consume(outStr.isEmpty() ? Integer.toString(y) : outStr);
        }
    }
}


Результаты:
# Run complete. Total time: 00:13:27

Benchmark _______________ Mode _ Cnt __ Score ___ Error __ Units
MyBenchmark.testMethod ____ avgt _ 200 _ 1755,979? 22,389 _ ns/op
MyBenchmark.testOptMethod _ avgt _ 200 _ 1415,720? 14,703 _ ns/op

Почему программисты не могут программировать

Я джавист, поэтому выделять переменную, да и еще и генерить несколько строк в результате их соединения, для меня лютый оверхед, если можно просто вынести их как константы)))

Почему программисты не могут программировать

мне тяжело воспринять фразу «сложнее воспринимать код», который состоит из 5 строчек))))

Почему программисты не могут программировать

Интересно, мне одному глаза режет двойная проверка условия и лишние соединения строк? Почему то никто не предложил чуть более оптимизированный вариант внутреннего цикла:
if (y % 3 == 0) {
    console.log((y % 5 == 0) ? "MissKiss" : "Miss");  
} else {
    console.log((y % 5 == 0) ? "Kiss" : y);
}

Открываем доступ к видеозаписям HighLoad++ за последние пять лет

Вот так вот, вы выложили, а людям потом по ночам не спать — смотреть)))
а вообще, прекрасная новость. Спасибо))

Простая ошибка при кодировании — не значит нестрашная ошибка

А с помощью чего вы анализируете/проверяете JAVA проекты? (Как разовый, так и регулярный аудит вашего кода (C, C++, C#, Java).)

Топ инструментов разработки для PostgreSQL

Присоединюсь)) По 64 битную винду качнул бы с удовольствием

Топ инструментов разработки для PostgreSQL

А есть у кого то опыт использования pgModeler (pgmodeler.com.br). Какие у кого впечатления?
У проекта лицензия GPL v3 и все исходники доступны. Но собранные (бинарные) версии программы автор продает по подписке от 10$ на пол года. Есть смысл заморачиваться и собирать его из исходников?

Топ инструментов разработки для PostgreSQL

Ну как сказать не работает. При подключении, предупреждающий месседж + иногда вываливают сообщения про ошибки, если по свойствам таблиц лазить/править, которые не мешают вносить изменения.
Так что совсем не критично. После ознакомления с pgAdmin4, остался на тройке и работаю с 9.6 нормально

Своевременная оптимизация

В доступе есть презентация этого доклада — http://assets.contentful.com/oxjq45e8ilak/7K1D4OReesK0mmyM6sQKUK/6b3d90c447c9ee1de83702acea0a7d05/joker-Oct2016-perf-keynote.pdf

Инженер VS Программист. Или куда уходят инженеры

Только по моему опыту не делать свой бизнес, на программировании)) Вложения человеко часов в нормальный продукт много, а выстреливает 1н из сотни, который потом фейсбук/гугель заметит и купит. С программными бизнесами, без участия всяких «ангелов» можно еще меньший доход чем гос. инженер поиметь;-)

Информация

В рейтинге
Не участвует
Откуда
Киев, Киевская обл., Украина
Дата рождения
Зарегистрирован
Активность