Допустим, у нас в бегущем приложении есть экземпляр следующего класса:
public class AssignmentOrderMatter {
private Supplier<String> firstSupplier;
private Supplier<String> lastSupplier;
public AssignmentOrderMatter() {
this.lastSupplier = () -> "Farewell!";
this.firstSupplier = () -> "Hallo!";
}
public String getFirstValue() {
return firstSupplier.get();
}
public String getLastValue() {
return lastSupplier.get();
}
}
Мы замечаем опечатку в строке "Hello!", исправляем её, попутно меняем порядок присвоения полей в конструкторе т.к. ну некрасиво же первых инициализировать последними. Скорее всего даже не сразу вспомним потом про эту правку.
Применяем шаманство «Hot Code Replace» и, внезапно, последние стали первыми и getFirstValue() начинает возвращать строку "Farewell!".
Зачем какой-то 8080? Прошлый век!
Оформить центр управления в виде игры в самих Одноклассниках, как всякие «весёлые фермы» там сделаны. Желающий пропатчить production-сервер разработчик покупает ОК-и и заливает фикс.
У меня серьёзные сомнения в том, что человек может продержаться 12 лет на хоть сколь-нибудь интеллектуальной работе без отпуска. Уже через пару-тройку лет встанет дилемма «или длительный отпуск или увольнение ПСЖ».
В своё свободное время люди, как правило, стремятся заниматься теми делами, которые им интересны («интернет-сёрфинг и просмотр фильмов») и не заниматься тем, что не интересно («я не занимаюсь программированием дома»).
Добавлять при переписывании комментарии, вводящие в заблуждение — сомнительная идея.
Т.к. (ch >= 0x0FF10 && ch <= 0x0FF19) это не 0..9, а FULLLWIDTH DIGIT 0 .. FULLLWIDTH DIGIT 9, аналогично с остальными диапазонами.
Логика тоже понятна — ни один производитель не будет говорить про свой продукт что-то плохое. Если бы Apple выдавали предупреждение о необходимости замены аккумулятора их бы обвинили в вытягивании денег за замену (тем более когда она стоила дороже).
В качестве контрпримера.
Sony, пока они ещё занимались выпуском ноутбуков, совершенно не стеснялись показывать при каждой перезагрузке ОС окно «Ваша батарея работает отлично/хорошо/удовлетворительно/никак, несите ваши денежки» и при достижении определённого порога полностью блокировать зарядку старой батареи.
за каждым днём года закрепляется постоянный день недели
Не знаю, что там с религиозниками, но за такие предложения нужно больно бить ногами. До полного просветления внёсшего предложение. Празничные дни, ползающие по дням недели — это та маленькая радость, которой такой календарь лишает.
Как интересно!
«Model» у нас «Модел», переводить же ни-ни. Кстати, почему не «Модэл» тогда?
А вот «Jaguar», внезапно, «Ягуар», его переводить можно.
Он, вероятно, недостаточно собственный.
П — последовательность.
Тот замечательный доклад, который он изначально предложил, был с сильным фокусом на слушателей, которые глубоко разбираются в деталях виртуальной машины.
…
Поэтому мы с Иваном поработали и он добавил некоторое количество примеров, которые будут действительно полезны.
В рекламных проспектах конференции кричат про хардкор-хардкор, а под капотом тем временем разбавляют хардкор смузями :)
Вы после того, как текст от переводчика получили, хотя бы вычитку делайте. Ещё лучше — подготовьте ему глоссарий. Это же форменная дичь, переводить «implemented interfaces» как «встроенные интерфейсы» вместо «реализованные».
Как из фразы «For example, if we wanted to invoke a method String m(int i) directly on a class foo.Bar» при переводе можно было получить «Например, если мы хотим включить метод String m(int i) непосредственно в класс foo.Bar, необходим следующий байт-код» — вообще загадка. Речь в оригинале идёт о вызове метода, а не о включении его куда-либо.
По теме: для экспериментов по созданию нестандартных class-файлов удобнее использовать asmtools. Как пример, исходник класса с реализацией интерфейсов из статьи становится намного читаемее:
package edio/java/experiments;
public class SV
implements S, V
version 51:0
{
public Method "<init>":"()V"
stack 1 locals 1
{
aload_0;
invokespecial Method java/lang/Object."<init>":"()V";
return;
}
public Method m:"(I)Ljava/lang/String;"
stack 2 locals 2
{
getstatic Field java/lang/System.out:"Ljava/io/PrintStream;";
ldc String "String";
invokevirtual Method java/io/PrintStream.println:"(Ljava/lang/String;)V";
aconst_null;
areturn;
}
public Method m:"(I)V"
stack 2 locals 2
{
getstatic Field java/lang/System.out:"Ljava/io/PrintStream;";
ldc String "void";
invokevirtual Method java/io/PrintStream.println:"(Ljava/lang/String;)V";
return;
}
} // end Class SV
Декомпилировать *.class-файл в 2018 году можно просто открыв его в IntelliJ IDEA, старичок JAD не обязателен.
Чисто из любопытства, зачем вы заходите на помоечные сайты типа qaru?
Все материалы там взяты cо StackOverflow и подвергнуты автоматическому переводу.
К примеру, вот оригинал второй ссылки на SO: https://stackoverflow.com/questions/45745336/vs2017-and-missing-api-ms-win-core-rtlsupport-l1-2-0-dll-on-win7-xp
Допустим, у нас в бегущем приложении есть экземпляр следующего класса:
Мы замечаем опечатку в строке
"Hello!", исправляем её, попутно меняем порядок присвоения полей в конструкторе т.к. ну некрасиво же первых инициализировать последними. Скорее всего даже не сразу вспомним потом про эту правку.Применяем шаманство «Hot Code Replace» и, внезапно, последние стали первыми и
getFirstValue()начинает возвращать строку"Farewell!".apangin, возможен ли в вашей системе такой сценарий или его поймают по дороге в продакшн?
У меня получилось воспроизвести такое поведение: https://github.com/Maccimo/BreakingLambdaBody
Оформить центр управления в виде игры в самих Одноклассниках, как всякие «весёлые фермы» там сделаны. Желающий пропатчить production-сервер разработчик покупает ОК-и и заливает фикс.
Во имя защиты детей от пропаганды гномов-социопатов, конечно же.
Но вы, конечно же, из числа тех самых «вменяемых»?
Эта искромётная шутка протухла как минимум лет пять тому назад. Бросьте бяку!
Вас не затруднит указать, какую конкретно сову нужно для этого натянуть на глобус?
Может ли программист, которому не интересно программирование, быть хорошим специалистом?
У меня есть некоторые сомнения в последнем.
Зависит от значения
х.Установим значение
хравным-38и вот уже и для 42-летнего это норма.Добавлять при переписывании комментарии, вводящие в заблуждение — сомнительная идея. , аналогично с остальными диапазонами.
Т.к.
(ch >= 0x0FF10 && ch <= 0x0FF19)это не0..9, аFULLLWIDTH DIGIT 0 .. FULLLWIDTH DIGIT 9В качестве контрпримера.
Sony, пока они ещё занимались выпуском ноутбуков, совершенно не стеснялись показывать при каждой перезагрузке ОС окно «Ваша батарея работает отлично/хорошо/удовлетворительно/никак, несите ваши денежки» и при достижении определённого порога полностью блокировать зарядку старой батареи.
Не знаю, что там с религиозниками, но за такие предложения нужно больно бить ногами. До полного просветления внёсшего предложение. Празничные дни, ползающие по дням недели — это та маленькая радость, которой такой календарь лишает.
Слишком длинно и непонятно.
Назовём его просто, «защитником животных».
«Model» у нас «Модел», переводить же ни-ни. Кстати, почему не «Модэл» тогда?
А вот «Jaguar», внезапно, «Ягуар», его переводить можно.
Он, вероятно, недостаточно собственный.
П — последовательность.
«Модел»?
Вам мягкий знак в конце слова религия не позволяет поставить?
В рекламных проспектах конференции кричат про хардкор-хардкор, а под капотом тем временем разбавляют хардкор смузями :)
Вы после того, как текст от переводчика получили, хотя бы вычитку делайте. Ещё лучше — подготовьте ему глоссарий. Это же форменная дичь, переводить «implemented interfaces» как «встроенные интерфейсы» вместо «реализованные».
Как из фразы «For example, if we wanted to invoke a method String m(int i) directly on a class foo.Bar» при переводе можно было получить «Например, если мы хотим включить метод String m(int i) непосредственно в класс foo.Bar, необходим следующий байт-код» — вообще загадка. Речь в оригинале идёт о вызове метода, а не о включении его куда-либо.
По теме: для экспериментов по созданию нестандартных class-файлов удобнее использовать asmtools. Как пример, исходник класса с реализацией интерфейсов из статьи становится намного читаемее:
Декомпилировать
*.class-файл в 2018 году можно просто открыв его в IntelliJ IDEA, старичок JAD не обязателен.