Возник такой вопрос, после прочтения AN4151ru.pdf по вашей ссылке: ваша схема эквивалентна рисунку 1 (Полумостовой последовательный LC), а для LLC там добавляется еще один дроссель параллельно первичной обмотке трансформатора (рис 2). Так у вас все таки LC или LLC? И если второе, то как без дросселя? UPD: вдумчиво перечитав документ, вопрос снят... шунтирующим дросселем выступает индуктивностью намагничивания самого трансформатора, который надо хитро намотать
Через ВПН он работает. Там я проблемы не увидел. Но для теста другими рекомендую хоть кого то из собеседников добавить, что бы было 24/7. Например просто держать клиента в постоянном подключении, пусть хоть стену или вид из окна транслирует...
Слегка сыроват. Попробовал зайти - из Украины не открывается, ладно есть впн. на компе поиск не работает, веб консоль показывает что код падает если нет камеры. Ок, беру телефон... Заполняю форму фильтра - по кнопке "сохранить и начать поиск" форма не закрывается и не видно что поиск начался))
Сразу в глаза бросилось, что вы 2 раза вычитываете файл, для определение кодировки и потом для чтения. Зачем? читайте сразу в массив байтов или тот же ByteArrayOutputStream, скармливая данные декодеру пока не определит, дальше дочитываете до конца файла и возвращаете new String(bytes, charset) Так же, возможно, можно упростить работу с картинками, без необходимости их сохранять в файлы, если вы используете html view. Тег img, позволяет это, в такой формате: <img src="data:image/gif;base64,R0lG....
Нет, я там заметил описание кода реализации сканирования по пакетам, в примере самописного (упрощенного) IoC и подумал, что PqDn это может быть интересно.
А на спринг вы местами сами ссылаетесь в тексте. И взять какое то промышленное решение и сделать более удобную для себя имплементацию, сохраняя частичную привычность использования и понимания, имхо более правильный подход, чем увековечивание своего "имени" в паблик апи аннотаций)))
Совсем недавно была статья по этому поводу: "Реализация Spring Framework API с нуля. Пошаговое руководство для начинающих. Часть 1", (https://habr.com/post/419679/) с разбором как оно работаем и примером кода, а-ля свой упрощенный спринг.
А по поводу своего велосипеда из этой статьи, в первую очередь бросаются в глаза аннотации. Что помешало взять JSR-330 и реализовать тот же @ Inject & компанию? если уж спринговые не нравятся....
По поводу динамических шаблонов — вообще не проблема. У нас шаблоны хранятся в базе (+кеш) и чудненько в процессе работы перегенерируются. Причем используются именно html, т.е. с экранированием тоже проблем нет. Соответственно вообще можно построить логику, что будет по нужным звездам разные шаблоны подаваться, делая ветвление в java логике или же if-ами.
С бинами проблем тоже нет. Через точку можно обращаться к свойства любой глубины вложенности. Там есть реализация бин обработчика (BeansWrapperBuilder), Map-у мы вообще не используем
Мне в этом плане очень понравился MyBatis. Особенно когда используется не JdbcTemplate, а какой то ORM типа Hibernate, JPA, spring-data…
Если что то сильно выходит за границы CRUDа — плачешь, колешься пишешь на соответствующем фремворке и думаешь, как было бы проще если бы сам накидывал структуру таблиц и выгребал это все SQLем (а местами так и делаю, через native query)
Жесть… как минимум добавить какой то ключ (пароль) что бы любое сканирование портов не запускало эту чудо команду и не выключало комп.
Да и не мешало бы добавить в параметры shutdown (для windows) добавить еще ключик "f", что бы перезагрузка не уперлась, в какой то не сохраненный файл / подтверждение
Конечно же правильно вынести переменную вне цикла.
Можно даже сделать её полем класса (но это не самый лучший вариант, т.к. код становиться не многопоточным).
Проблема в том, что соединение строк — это всегда создание нового объекта в джаве и соответствующие копирование памяти 2х строк, в новый буфер.
Я джавист, поэтому выделять переменную, да и еще и генерить несколько строк в результате их соединения, для меня лютый оверхед, если можно просто вынести их как константы)))
Интересно, мне одному глаза режет двойная проверка условия и лишние соединения строк? Почему то никто не предложил чуть более оптимизированный вариант внутреннего цикла:
Возник такой вопрос, после прочтения AN4151ru.pdf по вашей ссылке: ваша схема эквивалентна рисунку 1 (Полумостовой последовательный LC), а для LLC там добавляется еще один дроссель параллельно первичной обмотке трансформатора (рис 2). Так у вас все таки LC или LLC? И если второе, то как без дросселя?
UPD: вдумчиво перечитав документ, вопрос снят... шунтирующим дросселем выступает индуктивностью намагничивания самого трансформатора, который надо хитро намотать
Через ВПН он работает. Там я проблемы не увидел. Но для теста другими рекомендую хоть кого то из собеседников добавить, что бы было 24/7. Например просто держать клиента в постоянном подключении, пусть хоть стену или вид из окна транслирует...
Да. Я тоже посмотрел недолго как он никого не может найти и закрыл. Про это уже писать не стал))
Слегка сыроват. Попробовал зайти - из Украины не открывается, ладно есть впн. на компе поиск не работает, веб консоль показывает что код падает если нет камеры. Ок, беру телефон... Заполняю форму фильтра - по кнопке "сохранить и начать поиск" форма не закрывается и не видно что поиск начался))
Жаль что вы не добавили Executors.newVirtualThreadPerTaskExecutor в тесты. Было бы интересно сравнить
Сразу в глаза бросилось, что вы 2 раза вычитываете файл, для определение кодировки и потом для чтения. Зачем? читайте сразу в массив байтов или тот же ByteArrayOutputStream, скармливая данные декодеру пока не определит, дальше дочитываете до конца файла и возвращаете new String(bytes, charset)
Так же, возможно, можно упростить работу с картинками, без необходимости их сохранять в файлы, если вы используете html view. Тег img, позволяет это, в такой формате: <img src="data:image/gif;base64,R0lG....
Если я правильно помню, NordicEnergy не удалился, а переименовался. И сейчас он IlyaGalkin
Нет, я там заметил описание кода реализации сканирования по пакетам, в примере самописного (упрощенного) IoC и подумал, что PqDn это может быть интересно.
А на спринг вы местами сами ссылаетесь в тексте. И взять какое то промышленное решение и сделать более удобную для себя имплементацию, сохраняя частичную привычность использования и понимания, имхо более правильный подход, чем увековечивание своего "имени" в паблик апи аннотаций)))
Совсем недавно была статья по этому поводу: "Реализация Spring Framework API с нуля. Пошаговое руководство для начинающих. Часть 1", (https://habr.com/post/419679/) с разбором как оно работаем и примером кода, а-ля свой упрощенный спринг.
А по поводу своего велосипеда из этой статьи, в первую очередь бросаются в глаза аннотации. Что помешало взять JSR-330 и реализовать тот же @ Inject & компанию? если уж спринговые не нравятся....
попадалась презенташка, в которой был кусочек сравнения https://www.slideshare.net/alexeymigutsky/jsp-thymeleaf-20
По поводу динамических шаблонов — вообще не проблема. У нас шаблоны хранятся в базе (+кеш) и чудненько в процессе работы перегенерируются. Причем используются именно html, т.е. с экранированием тоже проблем нет. Соответственно вообще можно построить логику, что будет по нужным звездам разные шаблоны подаваться, делая ветвление в java логике или же if-ами.
С бинами проблем тоже нет. Через точку можно обращаться к свойства любой глубины вложенности. Там есть реализация бин обработчика (BeansWrapperBuilder), Map-у мы вообще не используем
Мне в этом плане очень понравился MyBatis. Особенно когда используется не JdbcTemplate, а какой то ORM типа Hibernate, JPA, spring-data…
Если что то сильно выходит за границы CRUDа — плачешь, колешься пишешь на соответствующем фремворке и думаешь, как было бы проще если бы сам накидывал структуру таблиц и выгребал это все SQLем (а местами так и делаю, через native query)
В большинстве случаев уже предпочитают использовать Java Native Access (JNA). С ней все становиться попроще.
Жесть… как минимум добавить какой то ключ (пароль) что бы любое сканирование портов не запускало эту чудо команду и не выключало комп.
Да и не мешало бы добавить в параметры shutdown (для windows) добавить еще ключик "f", что бы перезагрузка не уперлась, в какой то не сохраненный файл / подтверждение
Конечно же правильно вынести переменную вне цикла.
Можно даже сделать её полем класса (но это не самый лучший вариант, т.к. код становиться не многопоточным).
Проблема в том, что соединение строк — это всегда создание нового объекта в джаве и соответствующие копирование памяти 2х строк, в новый буфер.
Результаты:
# 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
а вообще, прекрасная новость. Спасибо))