Извините, а можно я встряну? Долго следил за вашими комментариями — и не могу понять: в какой отрасли вы работаете, что реально используете свои знания о внутреннем устройстве ConcurrentHashMap? И почему так уверены, что они нужны каждому программисту в вашей команде?
Класс, сделали аудит «на триггерах», потому что скорость IUD настолько мизерная, что триггер — не bottleneck.
Эт понятно как его делать, было бы интереснее посмотреть, как проходил ваш поиск, какие решения рассматривали. Какие были бизнес-требования (хотели параметры «до» и «после» или достаточно было SQL запросов — по ним и так понятно, что было до, а что стало)?
С позиции «нужно рассудить и решить здесь и сейчас» вы правы, но есть подвох.
Если встретите кандидата, который не может написать физбаз, спросите его номер телефона, день рождения или что-нибудь еще, что он вроде «должен» знать. И удивитесь…
Люди разные. У кого-то собеседование вызывает заметный стресс и с каждым случаем нужно разбираться. Времени ровно час. Мы все куда-то спешим.
Вот я — на бумажке не смогу написать ничего — ни физбаз, ни пузырька. Ни на одном языке программирования. Уверяю с честными глазами, что знаю их три, а основной — один.
Давайте обсудим:
1. с какой стороны меня это характеризует как специалиста?
2. чем плохо для компаний меня нанимать?
К примеру, реальная задача: есть легаси REST сервис, который крутится на Tomcat и есть HTTP-клиент для этого сервиса. Вместо русского текста: сервис возвращает краказябры, клиент возвращает краказябры, в логах краказябры. Поэтому нужно начать везде использовать UTF-8 и проверить, что это действительно так.
Как решал бы здоровый человек — убедился бы, что:
1. БД использует правильный collation (ага, гуглим какой для кириллицы: Cyrillic_General_CI_AS);
2. JDBC-драйвер использует UTF-8 (ага, гуглим параметры инициализации: useUnicode=true;characterEncoding=UTF-8);
3. установил кодировку сервлета в параметрах Tomcat (снова гуглим, выясняется: URIEncoding="UTF-8" в настроечном файле);
4. на этом этапе сервис начинает работать нормально, гуглим про клиента. По умолчанию он общается с сервисом в Latin1, документация подсказывает второй параметр в конструкторе про кодировку. ОК.
5. и вишенка на торте — ставим везде UTF-8 в логах:
<encoder>
<charset>UTF-8</charset>
<encoder>
На все ушло порядка 10 минут, с проверкой на каждом этапе. А вы здесь говорите про «бездумное гугление». Я понимаю, для кого-то не проблема переключить в голове пять разных технологий, но блин. Кто-то пишет калькуляторы, а кто-то — компиляторы. Это нормально.
А мне вчера эта задача не зашла: я посмотрел, как в интернетах решают такие задачи, методом ленинского прищура нашел в каждом (серьезно) таком решении по багу разной степени замороченности, и в какой-то момент понял, что не стоит так убиваться ради того, чтобы сделать арифметическую операцию с двумя числами.
Ради спортивного интереса: можно пожалуйста в студию ваш код?
Если серьёзно, то первый пример самый крутой (из-за простоты и ясности), а что касается последних двух — я даже не подозревал, что где-то есть люди, которым хватит силы воли написать такое.
Что касается искусства: второй и третий пример хорошо воспринимают строку
calc("ыы5*2");
Сколько времени понадобится здоровому человеку, чтобы среди этой прекрасной лапши исправить причину?
Я всё жду, что здесь повторят ситуацию на SO, когда набежали уважаемые господа и начали предлагать паттерны, а потом рассказывать про лексеры, парсеры и абстрактные синтаксические деревья :)
TLDR: По мнению автора, как исследуют сейчас:
1. много копипаста из старых источников;
2. новые материалы в интернет так и не выкладывают (странно: вы из какого века пишете?);
3. нет денег на R&D;
4. нет внедрений;
5. левая рука не знает, что делает правая нога.
Что делать, чтобы было лучше:
1. развести еще больше бюрократии в процессах
2. запросить больше бабла
Ужас. И по форме — редкостная хрень. Как вы это читаете?
несколько существительных подряд: «обобщение текущего состояния и структуры», «решения по оптимизации организации развития науки в масштабах Государства». Как шилом резать поросёнка: визгу много, толку — мало.
Мне доводилось работать, когда выход в интернет запрещен. Как правило, на таких предприятиях стек технологий стабилен, не меняется годами, есть собственные разработки, которые не гуглятся, и там проблемы вообще другого порядка:
— ужасная документация (канцелярский язык по пять-десять существительных подряд, нет структуры, нет хороших примеров, давно не обновлялась, и т.п.);
— разработчики, которые проработали там десяток лет и помнят все возможные случаи и их решения наизусть, не хотят делиться знаниями (со стороны кажется, что это job security у них такая, но я бы не стал утверждать наверняка и за всех сразу).
И да, не знаешь, откуда начинать копать. Чувствуешь себя при этом, мягко скажем, неловко.
Я избегаю этих предприятий, благо такая возможность есть.
Господа! Я не понимаю, почему у всех внутри начало так яростно бомбить от этой статьи. Обращаясь к большинству: признайтесь сами себе, что если бы на работе отключили интернет, вы полезли бы за интернетом в телефон. Потому что вы не знаете досконально того языка (технологии, фреймворка и т.п.), с которыми сейчас работаете. Да-да, это дань сегодняшнему времени: характер задач меняется чаще, чем блудницы у Есенина. Памяти не хватает все это удержать в голове. И это нормально.
Как добыта информация — из головы или из Stack Overflow — вы не поверите, абсолютно неважно, если итоговый результат технологически верен. А фундаментальные знания — да, расширять и углублять надо, никто не спорит. Они помогают быстрее и правильнее гуглить :)
Эт понятно как его делать, было бы интереснее посмотреть, как проходил ваш поиск, какие решения рассматривали. Какие были бизнес-требования (хотели параметры «до» и «после» или достаточно было SQL запросов — по ним и так понятно, что было до, а что стало)?
Кстати, https://github.com/pgaudit/pgaudit/blob/master/README.md — не смотрели или не подошел?
Если встретите кандидата, который не может написать физбаз, спросите его номер телефона, день рождения или что-нибудь еще, что он вроде «должен» знать. И удивитесь…
Люди разные. У кого-то собеседование вызывает заметный стресс и с каждым случаем нужно разбираться. Времени ровно час. Мы все куда-то спешим.
Давайте обсудим:
1. с какой стороны меня это характеризует как специалиста?
2. чем плохо для компаний меня нанимать?
К примеру, реальная задача: есть легаси REST сервис, который крутится на Tomcat и есть HTTP-клиент для этого сервиса. Вместо русского текста: сервис возвращает краказябры, клиент возвращает краказябры, в логах краказябры. Поэтому нужно начать везде использовать UTF-8 и проверить, что это действительно так.
Как решал бы здоровый человек — убедился бы, что:
1. БД использует правильный collation (ага, гуглим какой для кириллицы:
Cyrillic_General_CI_AS
);2. JDBC-драйвер использует UTF-8 (ага, гуглим параметры инициализации:
useUnicode=true;characterEncoding=UTF-8
);3. установил кодировку сервлета в параметрах Tomcat (снова гуглим, выясняется:
URIEncoding="UTF-8"
в настроечном файле);4. на этом этапе сервис начинает работать нормально, гуглим про клиента. По умолчанию он общается с сервисом в Latin1, документация подсказывает второй параметр в конструкторе про кодировку. ОК.
5. и вишенка на торте — ставим везде UTF-8 в логах:
На все ушло порядка 10 минут, с проверкой на каждом этапе. А вы здесь говорите про «бездумное гугление». Я понимаю, для кого-то не проблема переключить в голове пять разных технологий, но блин. Кто-то пишет калькуляторы, а кто-то — компиляторы. Это нормально.
Если вы считаете иначе — либо у вас феноменальная память, либо слишком простая работа.
Лучшая иллюстрация пользы от изучения классических алгоритмов.
Ради спортивного интереса: можно пожалуйста в студию ваш код?
Что касается искусства: второй и третий пример хорошо воспринимают строку
Сколько времени понадобится здоровому человеку, чтобы среди этой прекрасной лапши исправить причину?
TLDR: По мнению автора, как исследуют сейчас:
1. много копипаста из старых источников;
2. новые материалы в интернет так и не выкладывают (странно: вы из какого века пишете?);
3. нет денег на R&D;
4. нет внедрений;
5. левая рука не знает, что делает правая нога.
Что делать, чтобы было лучше:
1. развести еще больше бюрократии в процессах
2. запросить больше бабла
Ужас. И по форме — редкостная хрень. Как вы это читаете?
— ужасная документация (канцелярский язык по пять-десять существительных подряд, нет структуры, нет хороших примеров, давно не обновлялась, и т.п.);
— разработчики, которые проработали там десяток лет и помнят все возможные случаи и их решения наизусть, не хотят делиться знаниями (со стороны кажется, что это job security у них такая, но я бы не стал утверждать наверняка и за всех сразу).
И да, не знаешь, откуда начинать копать. Чувствуешь себя при этом, мягко скажем, неловко.
Я избегаю этих предприятий, благо такая возможность есть.
Как добыта информация — из головы или из Stack Overflow — вы не поверите, абсолютно неважно, если итоговый результат технологически верен. А фундаментальные знания — да, расширять и углублять надо, никто не спорит. Они помогают быстрее и правильнее гуглить :)