LINUX.ORG.RU

Сообщения by_zero

 

Инициализация бина с заданными опциями

Форум — Web-development

Прошу совета как правильно сделать то, что мне нужно. Чую что что-то не так в написанном коде.

Итак. Изначально была необходимость в функции фильтрации. Фильтрация происходит разными способами, основные методы и зависимости описаны в абстрактном классе. Было что-то вроде:

public abstract class AbstractFilter implements Filter
{
   //beans definitions
   @Override
   public boolean filter(String color)
   {
      //implementation
   }
   public boolean isWarm(String color)
   {
      //implementation
   }
   public boolean isDark(String color)
   {
      //implementation
   }
   public boolean isNeon(String color)
   {
      //implementation
   }
}
И соответственно была куча классов типа:
public class WarmDarkFilter extends AbstractFilter
{
   @Override
   public boolean filter(String color)
   {
      return super.filter(color)&&isWarm(color)&&isDark(color);
   }
}
public class NeonBrightFilter extends AbstractFilter
{
   @Override
   public boolean filter(String color)
   {
      return super.filter(color)&&isNeon(color)&&!isDark(color);
   }
}
...

Когда пришла необходимость добавить еще пару классов в таком же стиле было принято решение отрефакторить и упростить эту структуру. Переделано так:

public class ColorFilter extends AbstractFilter
{
   private Function<String, Boolean> filteringFunction;

   ProductFilter(FilteringFunction filteringFunctionEnum)
   {
      this.filteringFunction = getFilteringFunction(filteringFunctionEnum);
   }

   @Override
   public boolean filter(String color)
   {
      return filteringFunction.apply(color);
   }

   private Function<String, Boolean> getFilteringFunction(final FilteringFunction filteringFunction)
   {
      Function<String, Boolean> function = null;
      if (WARM_DARK.equals(filteringFunction))
      {
         function = (String color) -> super.filter(color)&&isWarm(color)&&isDark(color);
      }
      else if (NEON_BRIGHT.equals(filteringFunction))
      {
         function = (String color) -> super.filter(color)&&isNeon(color)&&!isDark(color);
      }
...
      else
      {
         throw new BeanInitializationException("Filtering function can't be null");
      }
      return function;
   }

   public enum FilteringFunction
   {
      WARM_DARK, NEON_BRIGHT,...;
   }

Соответственно вместо объявления 100500 бинов теперь просто указывается нужная опция в конструкторе.

        <property name="colorFilter">
            <bean class = "com.lor.ColorFilter" parent="abstractFilter">
                <constructor-arg value="WARM_DARK"/>
            </bean>
        </property>

Как можно улучшить этот код? вернуться к подходу 100500 классов? Создать factoryMethod? Discuss please.

 , ,

by_zero
()

Интересные каналы о науке

Форум — Talks

Посоветуйте плз интересные каналы о науке. Отлично если это будут дайджесты о том что происходит в мире науки, если на английском - тоже неплохо. Подойдет начальный(но не совсем примитивный) уровень - особых знаний ни по чему нет. Совсем шикарно будет если кто-то подскажет видосики по топологии - она вообще завораживает.

 ,

by_zero
()

Термобелье на каждый день

Форум — Talks

Специалистам по всему - какое посоветуете термобелье на каждый день? Чтобы не мерзнуть на улице и при этом не упариваться в офисе. Гляжу на https://www.robinzon-ua.com.ua/rus/catalog/closes/cholovch-shtani-fuse-merino... , но может есть варианты получше?

Кто пользуется термобельем в повседневной жизни, напишите ваши впечатления и советы если можно.

 ,

by_zero
()

Переезжать в Нидерланды или нет

Форум — Talks

Всем привет. Нежданно-негаданно пришел оффер в Нидерланды. В линкедине предложили собеседование, собственно все три этапа были легкие, собеседование с эйчаром, собеседование с менеджером проекта и собеседование с техлидом. Если первые два еще куда не шло, то техлид(индус(ка)? к слову) спросил что такое эксепшены, как работает jsp и был ли опыт работы со struts. И это все за 15 минут, собеседование вроде бы как на синьорскую позицию. Теперь говорят хотим вас брать.

И вот я думаю - а стоит ли? Нынешняя работа радует и проектом и менеджментом, работа удаленная, что позволяет жить время от времени в европе и в принципе без проблем путешествовать. Ну и переезжать планировали в Канаду, там паспорт получить быстрее. С другой стороны Нидерланды мне близки по духу, велосипедирование вот это все. Но работа достаточно скучная ожидается, плюс переезд это гемор.

Решение понятное дело буду принимать самостоятельно, но хотелось бы услышать мнение других людей. Дискасс.

 ,

by_zero
()

Генерация джава кода - что использовать, с чего начать

Форум — Development

Привет! Нужно сгенерить джава код по шаблону, нужно распарсить существующие джава классы(DTO) и на их основе сгенерить новый класс, который будет использовать существующие методы. Кто сталкивался с такой задачей - какие подводные камни, какие инструменты лучше использовать, есть ли примеры(быстрый гуглинг удобоваримых примеров не дал)?

В принципе можно быстро написать парсер на питоне, но вдруг есть более подходящие инструменты?

Задача как я ее вижу: 1) Распарсить геттеры/сеттеры класса и принимаемые значения 2) Сгенерить свои методы основываясь на этой инфе(имя и возвращаемые значения) 3) Если встречаем в field тип из нашего пакеджа - рекурсивно генерим еще один класс

 , ,

by_zero
()

Как нужно проводить собеседования

Форум — Talks

Волею судеб скоро буду проводить собеседования на работу. Джава если что. И вот тут встает вопрос - какой лучший подход к собеседованиям?

1) Мне не важно что вы знаете, я хочу чтобы вы за*бались.

Берем кучу узкоспециализированных вопросов с которыми сталкивались по работе или вычитали в книгах и начинаем грузить кандидата. Все знают единицы, поэтому наш потенциальный джун или мидл понимает что попал к неадекватам и сваливает, если не мазохист. Самый смак - просим перечислить все методы какой-то библиотеки, спрашиваем тонкости фронтенд разработки у бекенд дева, гоняем по мультипоточности и алгоритмам кандидата на легаси-проект где многопоточности не было испокон веков. Короче воплощаем свои самые нежные фантазии по интеллектуальному унижению и доминированию.

2) Проверяем адекватность кандидата.

Не особо задрачиваясь на сложных вопросах проверяем какой-то адекватный минимум по знанию языка, затем задаем кандидату вопросы, которые будут встречаться ему на работе и смотрим за ходом его рассуждений. Если у человека все нормально с головой - нанимаем.

Какой путь вам близок? почему?

 , , ,

by_zero
()

Годных ютуб каналов тред

Форум — Talks

Привет, ЛОР!

Недавно открыл для себя ютуб как средство масс-медиа, а не только просмотрщик роликов с котиками, в связи с чем ищу интересные каналы. Проблема ютуба в том, что в топе обычно каналы детсадовского возраста, а действительно годный контент обычно находится случайно. Поделитесь интересными каналами.

 

by_zero
()

Собаки, клумбы и автомобили

Форум — Talks

Добрый день, лор! Пишу, потому как полыхает адским пламенем и не могу уже держать в себе этот хаос.

Суть в чем - имел неосторожность уехать на месяц в цивилизованную страну(нет чтобы выбрать Индию там, или Зимбабве), и теперь не могу ходить по улицам. Будто заново увидел отсутствие пешеходных зон, развалившийся асфальт и плитку на дорогах, отсутствие какого-либо общего стиля в застройке улиц, кучу машин на тротуарах. Пару раз меня уже чуть не сбивали машины за то, что имел неосторожность идти по пешеходному переходу, а не бежать, пропуская величеств, которые достигли успеха и купили себе лексусы или другие железные корыта.

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

Вот вопрос - как утихомирить полыхание?

 

by_zero
()

Macbook pro 13 vs Dell xps 13 vs Whatever

Форум — Talks

Мой старый макбук начинает тупить при работе(8 гигов оперативки это курам на смех), нужно думать что брать.

По цене в принципе особых ограничений нет.

Нужно: 13 дюймов, металический корпус(карбон тоже можно), долгоиграющая батарея(7-8 часов при кодинге), от 16 гб оперативки и обязательно SSD(размер не имеет значения), по поводу ОС - чтоб что-то Unix-подобное работало без проблем и танцев с бубном.

Новые макбуки стоят 3к баксов в такой комплектации и при этом особых улучшений я не вижу.

Может у кого-то есть Dell xps 13, расскажите как батарея держит. Или Thinkpad Carbon. Или может есть что-то еще хорошее? Или ждать осени?

 , ,

by_zero
()

Случайные поверхности

Форум — Talks

Кто-то сталкивался с темой случайных поверхностей? Это поверхность, которая строится случайным образом. Как я понимаю, генерирование ландшафтов это не совсем то - там ограничены точки каким-то диапазоном.

 ,

by_zero
()

Стилус для индуктивного экрана

Форум — Talks

У меня есть читалка вот такой модели - http://www.pocketbook-int.com/ua/products/pocketbook-912. В нем индуктивный сенсорный дисплей позади экрана. Разбирающиеся в электронике люди - реально ли сделать самодельный стилус для такого экрана?

 , ,

by_zero
()

Выбор принтера

Форум — Linux-hardware

Подскажите плз модель принтера, требования такие:

1) Не запредельная цена

2) Возможность самому заправлять картридж

3) Печать черным цветом

4) Чтобы можно было его оставлять на полгода выключенным и он потом работал без проблем

Перемещено Klymedy из talks

 ,

by_zero
()

Выбор робота-пылесоса

Форум — Talks

Подскажите, кто использовал модели данных роботов, колеблюсь перед покупкой. Нужен пылесос, чтобы втягивал мелкую пыль и волосы(кучу волос) с глянцевой бежевой плитки. Две комнаты.

Сейчас выбираю между xiaomi-mi-robot-vacuum и iRobot Roomba 651. Что лучше будет убирать, как думаете?

 ,

by_zero
()

Двое беспроводных наушников к одному ноутбуку

Форум — Linux-hardware

Кто знает, возможно ли и если возможно, то как подключить двое блютус наушников к одному ноутбуку? Ноутбук ThinkPad t560, наушники Sony mdr-xb950bt, Ubuntu 16

 ,

by_zero
()

Регулярка не матчит

Форум — General

Есть строка типа: col1|col2|col3|col4|col5|col6|col7|col8|col9|col10|col11

и есть регулярка:

ggrep -e '|[A-Za-z0-9]*|[0-9]+|[A-Za-z0-9]*|[A-Za-z0-9]*|[A-Za-z0-9.]*|[A-Za-z0-9]*|[A-Za-z0-9]*|[A-Za-z0-9]*|[A-Za-z0-9]*|[A-Za-z0-9]*$' my_file.txt

Мне надо найти строки у которых столбец col3 не пустой. В столбцах могут быть цифры, буквы и кавычки. Патерн на поиск пустых строк вроде работает:

ggrep -e '|[A-Za-z0-9]*||[A-Za-z0-9]*|[A-Za-z0-9]*|[A-Za-z0-9.]*|[A-Za-z0-9]*|[A-Za-z0-9]*|[A-Za-z0-9]*|[A-Za-z0-9]*|[A-Za-z0-9]*$' my_file.txt

Подскажите плз что упускаю

 

by_zero
()

Книги по проектированию компьютерных систем

Форум — Talks

Какие есть годные книги по проектированию, паттернам? Помню были Распределенные системы Таненбаума, насколько он актуален в плане описания абстракций на данный момент. Фаулер еще с его энтерпрайз паттернами был. Может что-то новое годное вышло?

 , , ,

by_zero
()

Regexp для матчинга файлов с запятой

Форум — Development

Имеется список разделенных запятой имен файлов: Images_MY_fucking images/498579485ddsjfb Mushroom-Head, 1 3 8 inch dia., Illuminated.jpg,498579485ddsjfb Mushroom-Head, 1 3 8 inch dia., Illuminated.tif

Подскажите как составить регулярку чтобы разделить этот список

тут какбы два файла:

Images_MY_fucking images/498579485ddsjfb Mushroom-Head, 1 3 8 inch dia., Illuminated.jpg

498579485ddsjfb Mushroom-Head, 1 3 8 inch dia., Illuminated.tif

 ,

by_zero
()

Распределить на равные группы

Форум — Development

Есть Set<List<String>> listSet. Листы в сете могут быть произвольной длинны. Нужно распределить листы на две группы, чтобы получилось почти одинаковое кол-во по list.size() в левой и правой группе.

Ткните носом в формулу, плз

 

by_zero
()

Галеры

Форум — Talks

Парни, а что вы делаете если просрали эстимейты в спринте? Работаете по ночам и выходным?

 ,

by_zero
()

RDP client

Форум — Desktop

Подскажите плз, как подконнектиться по RDP в Remmina или другой аппликухе имея следующие креды:

PCname, Gateway, Username & Password.

В реммине PCname и Gateway нету в настройках.

 

by_zero
()

RSS подписка на новые темы