Java is a joke

33 отговора 0 прегледа
#1

Java is a joke

В php съм си направил една чудесна функция var_debug(), която приема произволен параметър и го дъмпва във файл с таймстамп и допълнителна информация. Като й подам стринг или число, просто го изписва, ако е обект или редица - прави му прити-принт и пак го дъмпва.
На пръв поглед функцията е примитивна и безполезна, обаче на когото съм я показал, се е пристрастил към нея, едно хлапе даже беше си помислило, че е вградена в пхп. Ползваме я освен за дъмпване на обекти, JSON и XML, също за сглобка на ПДО кюърита, за проверка дали кода изобщо стига до някакъв ред, за логване на AJAX заявки и много други.

Подобна съм си направил и в C# и пак я ползвам за всичко. Просто е малко по-голяма заради типовете.

Опитах се обаче да направя някаква такава и в шармантната Жава и опа - греда! Оказва се, че Жавата няма тип var, нито приема уайлкард тип като променлива. Стака препоръчва да се пишел отделен toString метод за всеки тип или да се пъхат променливите в някакъв кълекшън с единствен член, така обаче се обезсмисля идеята на дъмпването - да е бързо, лесно и с половин ред код.

Явно няма да стане с рого, така че имате ли някакви идеи за уъркараунд на проблема?

Отговор
в отговор на croesus #2

Re: Java is a joke

Не знам как и дали се решава проблемът ти, но си мрънкало в случая.

Отговор
в отговор на croesus #3

Re: Java is a joke

Колко години си вече в тая професия -10, 15,20 ??Дава странични ефекти, не си ли мислил за смяна на амплоато, примерно в земеделието има земеделски програми, отделно Сливен изнася висок клалифицирани кадри за офисите в De Wallen, Амстердам, може да се помисли в тая посока



jeffty - най насраната Путка на форума
Отговор
в отговор на croesus #4

Re: Java is a joke

Защо в 4 сутринта, колега? За .НЕТ за такива работи има едни много добър JSON сериализатор, освен вградения - NewtonSoft.JSON - даваш му каквото ти скимне и с един ред го десериализира до JSON и го логваш

[линк]

В джавата не може да няма нещо подобно - не знам, нямал съм щастието да си имам взимане даване с Джава, но нещо такова

[линк]

--
One day it will make sense.
Отговор
в отговор на croesus #5

Re: Java is a joke

Тва малко ми звучи като "Хей аз по разбиране и по душа съм ПХП дев и искам да пренеса този подход и култура на програмиране във всички останали езици".

Гуру ти го каза. Има поне десетки начини и походи в жава за решаване на казусите, за които в ПХП ти се налага да ползваш тая твоя функция.

Отговор
в отговор на croesus #6

Re: Java is a joke

Оказва се, че Жавата няма тип var
Променливите се дефинират, представи си! За разлика от ебаното PHP.
Нямаш ли си истински дебъгер, чак не ти разбирам какво точно искаш. PHP кодерите сте виц, не Жавата.

┌∩┐(◣_◢)┌∩┐
Отговор
в отговор на croesus #7

Re: Java is a joke

малиии тук селския ерген че те счупи като сутрешна злобарка деба. само да спре му го целува на зейфодя.

Ако е писано - може и да се задомя, но не на всяка цена.
Отговор
в отговор на jeffty #8

Re: Java is a joke

Измет, ганглият ти дори не сгря за какво ебавам Зефодя. Да ти еба майката малоумна!

┌∩┐(◣_◢)┌∩┐
Отговор
в отговор на croesus #9

Re: Java is a joke

Явно няма да стане, благодаря на всички за милите думи.

Най-добре май ще е наистина променливите да се пращат пакетирани в ArrayList<Object>. Като няма риба и рака е риба.

Отговор
в отговор на croesus #10

Re: Java is a joke

тва е шото Джавата има генерации сигурно. иначе нема как очакваш смислен отговор на това според мен.

Ако е писано - може и да се задомя, но не на всяка цена.
Отговор
в отговор на savoyclub-56458 #11

Re: Java is a joke

В петък вечер 4 през нощта е съвсем нормално. Ненормално е в събота в 8 сутринта.

Благодаря за информацията за NewtonSoft.JSON! Ползвам техния nuget пакет от известно време и съм много щастлив. Дано имат и други подобни неща, ще ги прегледам подробно.

При Джава по-важното ми е как се принтят масиви. Защото там ако например имаш ArrayList X (1,3,5,7,9,11,13,15)
После някъде пишеш
X.get(2) = null;
X.get(5) = null;
То противно на всякаква логика X.size() все още е 8, а индексите са с "дупки".

Отговор
в отговор на jeffty #12

Re: Java is a joke

Мисля, че няма смислен отговор, просто защото в Жава това е невъзможно. Забавно е, че езика, пословичен с мемъри лийковете си, няма някакъв "свободен" тип за всичко.

Иначе нямам някакви тежнения към конкретен език - пиша на 5 и преценявам всеки според полезността му в конкретния случай.

Отговор
в отговор на rabin #13

Re: Java is a joke

Хубав дебъгер е важно, но все пак ти като джава сенсей, можеше да покажеш някой номер с генерици, а

I have sold less books on sex than Stephen Hawking has on physics -- Madonna
Отговор
в отговор на croesus #14

Re: Java is a joke

Ако си хардкор, може да ползваш command line дебъгера - [линк]

I have sold less books on sex than Stephen Hawking has on physics -- Madonna
Отговор
в отговор на evlampi_popdimitrov #15

Re: Java is a joke

На пръв поглед jdb май ще свърши работа. Трябва само да видя как се дъмпва във файл.

Идеята ми е да разкарам тегавото Android Studio. Взема ми по 1.3 Г РАМ, без да се броят емулатора и разни уъркъри. Затова ползвам Комодо за редактор и през 3-4 конзолки компилирам и следя какво става.

Лог файл обаче си остава прайслес. Често ми се случва нещо да върви при мен, а при клиента - не. Затова към всяка бета прикачам и един логер. Ако нещо не върви - клиента просто ми праща лога и готово. Възможно е за всеки проект да се пише конкретен логер, но много по-умно е да има един унифициран и централна в него е такава функция, каквато съм описал тук.

Отговор
в отговор на croesus #16

Re: Java is a joke

Това? - [линк]

I have sold less books on sex than Stephen Hawking has on physics -- Madonna
Отговор
в отговор на evlampi_popdimitrov #17

Re: Java is a joke

Благодаря ти евлампи! Колегата, който не пиша на Жава, най-много се впрегна в проблема ми

Аз все пак намерих решение.

public class Var<T> {
private T element;
public String type;

public T get() {
return element;
}

public void set(T elem) {
this.element = element;
}

public Var(T val) {
this.element = val;
this.type = val.getClass().toString();
}
}


Променливата за дъмп се пъха вътре например така:
Var<Number> temp1 = new Var<Number>(123.456);
Var<String[][]> temp2 = new Var<String[][]>(new String[][] {{"a", "b"}, {"c", "d"}});

Функцията за дъмп се задава с този тип. Вътре в него се пази информация и за оригиналния тип.

Отговор
в отговор на croesus #18

Re: Java is a joke

Колегата, който не пиша на Жава, най-много се впрегна в проблема ми
Каква точно помощ очакваше с такова заглавие и неясно мнение? Има 100 начина да изпринтиш/прегледаш обект в Жава.

┌∩┐(◣_◢)┌∩┐
Отговор
в отговор на rabin #19

Re: Java is a joke

Дай твоя любим.

Коя логер библиотека ползваш и кои са ти любимите дебъгинг туулс/техники?

Примерно - ползвам логфорджей две и имам топ-левъл ексепшън хендлър и пиша в лога бектрейса и после дебъгвам с тоя и тоя дебъгер.

Чудесна тема да блеснеш с джава знания, а ти пак мърмориш.

Ерген селски

I have sold less books on sex than Stephen Hawking has on physics -- Madonna
Отговор
в отговор на evlampi_popdimitrov #20

Re: Java is a joke

Kaзах ти, че на мен не ми е ясно какво точно бори. Прекалено тривиално се решава ако е каквото аз си мисля. Бате гол свир!


┌∩┐(◣_◢)┌∩┐
Отговор