У меня 2 вопроса:
1. Стоят ли все эти усилия того, чтобы просто внимательно отработать на get/set методах при создании объекта (при код ревью или самопроверке)?
2. Не является ли такой подход более многословным, нежели JUnit тест мест создания таких объектов?
Спасибо.
Я спрашиваю, просто очень много на хабре пишут про билдере в ключе создания объектов, но вот в моей 8 летней практике я ни разу не встречал проблем при работе с такими объектами (get/set).
Тем не менее сам патерн билдер я использовал немного в другом ключе — создание PrepareStatement для разных версий и типов АБС при интеграции данных.
Для меня лично способом снизить риск вхождения в СХУ являются 2 вещи:
— наличие большой светлой цели (мой мотиватор с бесконечным ресурсом)
— наличие положительных эмоций (и наверное не важно отчего я их получаю, от работы, сна, прогулок или физических упражнений)
Для меня, самая близкая аналогия — состояние, после публикации статьи на хабре, когда ты понимаешь, что затраченные усилия оказались ненапрасными, бонусом — разноцветный букет эмоций!
У меня добрый случай был на собеседовании лет 7 назад: Очередной вопрос от интервьюера по java: 'Чем отличаются checked exceptions от unchecked?
Я ему честно — 'Узнал про термины checked/unchecked сегодня, но ответ знаю… бла бла бла'. Он мне в ответ: — ' Я тоже этим утром, когда узнал что пойду собеседовать вместо начальника'
Мы вместе посмеялись.
Когда провожу собеседование всегда обращаю на потенциал человека, сделал для себя вывод, что это ключевое при принятии решения.
На втором месте — навыки программирования, которые говорят о возможной должности кандидата в компании.
«Баловаться с переменным током – пустая трата времени. Никто никогда не будет им пользоваться.» — Томас Эдисон
Здесь вообще стоит отдельно сказать о противостоянии Эдисона и Тесла, чтобы контекст был понятен
«В то время, как с теоретической и технической точек зрения, телевидение выглядит реалистично, я не верю в его коммерческий и финансовый успех.»
К сожалению не смог найти первоисточник, но вроде как между Зворыкиным и XXX бизнесменом завязался разговор, в те далекие, суть которого можно передать фразами:
XXX — 'И что, каждая домохозяйка сможет увидеть рекламу моего товора вот так просто, стоя на кухне?'
Зворыкиным — 'Да'. Я это о фразе: коммерческий и финансовый успех
тестовый PostgreSQL 9.5.5 с таким синтаксисом не согласен и считает недопустимым
Да, а это уже мой серьезный косяк. Я уже как nth лет использую фронт для работы с СУБД в eclipse и пример c ts примелькался. С Вашего позволения внесу корректив в статью
Согласен, сам себе противоречу. Но прежде чем запоститься, опробовал перечисленные кейсы на своей фокус группе. К большому удивлению подзапрос в секции FROM оказался мало известным фактом.
Кое-что пропустил из предыдущего комментария:
EXCEPT и INTERSECT — постгресовые расширения стандарта, что надо учитывать, говоря про sql.
С чего Вы это взяли? Все в той же доке EXCEPT/EXCEPT ALL и INTERSECT/INTERSECT ALL присутствуют. Да, например, в ORACLE есть MINUS vs EXCEPT.
И чтобы больше не халиварить, спрашиваю для себя — 'Вы все указанные примеры знали до прочтения статьи?'
Спасибо
Самое банальное, что умеет даже mysql? Подзапрос? Редкий SQL?
Разве я написал обратное? >> Пожалуй самый известный факт
Хотя стандартная, необязательная часть аж SQL-92.
Вы можете подтвердить свои слова?
Вот отрывок из BNF Grammars for SQL-92(ссылка внизу): |table value constructor| ::= VALUES |table value constructor list|
Сравнение блоков данных… Аналогично работает и in: (foo, bar) in ((1,2), (3,4))
Хорошо бы сказать что входит в стандарт SQL, а что в синтаксис конкретной СУБД
Когда я впервые познакомился с BNF Grammars for SQL-92, я не нашел там возможности указывать двойные кавычки (N1) и ничего про {ts/d/t} (N4), все остальное и из него. Однако: в последней версии (может быть редакции?) использование двойных кавычек там есть. Про ts/d/t встречал часто в литературе, форумах — что это стандарт.
Не понял про двойные кавычки, чем они лучше, чем одинарные?
В первом случае — это алиас, во втором данные.
Пример 1
SELECT name "Алиас колонки" FROM goods WHERE id = 1
public enum LanguageUtils {
SYNCH_OBJECT;
/** java-doc */
public static void doWork1() {
// много код здесь, а потом
synchronized (SYNCH_OBJECT) {
// doSomeReadWriteOperation1 - внутри изменение/чтение общего объект N1
}
}
/** java-doc */
public static String doWork2(String name) {
// много код здесь, а потом
synchronized (SYNCH_OBJECT) {
// doSomeReadWriteOperation2 - внутри изменение/чтение общего объект N1
}
return "";
}
}
1. Стоят ли все эти усилия того, чтобы просто внимательно отработать на get/set методах при создании объекта (при код ревью или самопроверке)?
2. Не является ли такой подход более многословным, нежели JUnit тест мест создания таких объектов?
Спасибо.
Я спрашиваю, просто очень много на хабре пишут про билдере в ключе создания объектов, но вот в моей 8 летней практике я ни разу не встречал проблем при работе с такими объектами (get/set).
Тем не менее сам патерн билдер я использовал немного в другом ключе — создание PrepareStatement для разных версий и типов АБС при интеграции данных.
— наличие большой светлой цели (мой мотиватор с бесконечным ресурсом)
— наличие положительных эмоций (и наверное не важно отчего я их получаю, от работы, сна, прогулок или физических упражнений)
Для меня, самая близкая аналогия — состояние, после публикации статьи на хабре, когда ты понимаешь, что затраченные усилия оказались ненапрасными, бонусом — разноцветный букет эмоций!
Я ему честно — 'Узнал про термины checked/unchecked сегодня, но ответ знаю… бла бла бла'. Он мне в ответ: — ' Я тоже этим утром, когда узнал что пойду собеседовать вместо начальника'
Мы вместе посмеялись.
Когда провожу собеседование всегда обращаю на потенциал человека, сделал для себя вывод, что это ключевое при принятии решения.
На втором месте — навыки программирования, которые говорят о возможной должности кандидата в компании.
Здесь вообще стоит отдельно сказать о противостоянии Эдисона и Тесла, чтобы контекст был понятен
К сожалению не смог найти первоисточник, но вроде как между Зворыкиным и XXX бизнесменом завязался разговор, в те далекие, суть которого можно передать фразами:
XXX — 'И что, каждая домохозяйка сможет увидеть рекламу моего товора вот так просто, стоя на кухне?'
Зворыкиным — 'Да'. Я это о фразе: коммерческий и финансовый успех
Да, а это уже мой серьезный косяк. Я уже как nth лет использую фронт для работы с СУБД в eclipse и пример c ts примелькался. С Вашего позволения внесу корректив в статью
Согласен, сам себе противоречу. Но прежде чем запоститься, опробовал перечисленные кейсы на своей фокус группе. К большому удивлению подзапрос в секции FROM оказался мало известным фактом.
Кое-что пропустил из предыдущего комментария:
С чего Вы это взяли? Все в той же доке EXCEPT/EXCEPT ALL и INTERSECT/INTERSECT ALL присутствуют. Да, например, в ORACLE есть MINUS vs EXCEPT.
И чтобы больше не халиварить, спрашиваю для себя — 'Вы все указанные примеры знали до прочтения статьи?'
Спасибо
Разве я написал обратное? >> Пожалуй самый известный факт
Вы можете подтвердить свои слова?
Вот отрывок из BNF Grammars for SQL-92(ссылка внизу): |table value constructor| ::= VALUES |table value constructor list|
Спасибо за новые знания, этого я не знал.
мне кажется Вы пропустили END.
Так и есть, поэтому я собственно и написал, про одинарные кавычки, что результат будет совершенно иной. И конкретно в моем случае — он такой.
Да, Вы опять правы. Но мне пример с timestamp кажется менее интересным, чем с {ts ...}
Отвечаю на вопросы:
Когда я впервые познакомился с BNF Grammars for SQL-92, я не нашел там возможности указывать двойные кавычки (N1) и ничего про {ts/d/t} (N4), все остальное и из него. Однако: в последней версии (может быть редакции?) использование двойных кавычек там есть. Про ts/d/t встречал часто в литературе, форумах — что это стандарт.
В первом случае — это алиас, во втором данные.
Алиас колонки
Тапочки
name
Это данные
Вы часто спрашивали — чем заняться?
Можно подкину Вам идею — напишите книгу, мне кажется писать у Вас хорошо получается.
В этом тоже определенный сарказм, до точки с запятой в LanguageUtils, неожиданно:
Ясно, что это апофеоз тупости, но все же, конструтор-смотрелка, все сделает как надо :)