Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Java Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 4 5 6 [7] 8 9 10 11 .. 134   вперед  Ctrl
 Re: Где взять опыт?)  [new]
asv79
Member

Откуда: Тверь
Сообщений: 2735
mayton
asv79, твоя задача не в том чтобы критиковать код. А в том чтобы разобраться в
"новой магии" которую ты не знал и приспособить для себя как тебе удобно.

А магии этой много. Тебе предлагали code-review
и объясняли преимущества. Бери. Думай. Применяй.

дак не работает магия то))) от слова вообще
даже к базе нет коннекта
27 мар 19, 01:02    [21844405]     Ответить | Цитировать Сообщить модератору
 Re: Где взять опыт?)  [new]
mayton
Member

Откуда: loopback
Сообщений: 43286
Ну ты разобрался почему не работает?
27 мар 19, 01:15    [21844409]     Ответить | Цитировать Сообщить модератору
 Re: Где взять опыт?)  [new]
asv79
Member

Откуда: Тверь
Сообщений: 2735
Озверин
asv79, дык я ж не рабочий код даю(так как мне даже проверить его не на чем), а предлагаю, с чего начать рефакторинг и объясняю, почему я это так делаю. Я ошибки не проверяю как бе.

да я это понял,но BaseDate в твоей вариации то должен был работать - а он сlose делает при запуске бота,даже если ничего не нажимать сразу валится.
27 мар 19, 01:20    [21844410]     Ответить | Цитировать Сообщить модератору
 Re: Где взять опыт?)  [new]
asv79
Member

Откуда: Тверь
Сообщений: 2735
mayton
Ну ты разобрался почему не работает?

нет,там слишком много ошибок .я просто снес это ,проще с нуля написать заново)
1.целиком нерабочий BaseDate
2.метод getUpdate- тоже не рабочий судя по всему-отсюда все методы BotStart не рабочие
половина методов принимает в качестве аргументов не те параметры ,в свиче смешано и getText и CallBackQuery соотвественно там тоже ничего не рабоает ,даже мейн класс ругается на неправильную инициализацию обьекта ВotStart
начинаешь фиксить в одном месте - плывет все в другом-клевые эти шаблоны проектиорования))) в ифах одну строчку переписал и все
Наверно для таких небольших программ простые решения в виде ифов предпочтительней и наверняка быстрей чем предложенный вариант
27 мар 19, 01:31    [21844417]     Ответить | Цитировать Сообщить модератору
 Re: Где взять опыт?)  [new]
Luchok
Member

Откуда:
Сообщений: 201
так где взять опыт то? на чем порешили?
27 мар 19, 08:18    [21844506]     Ответить | Цитировать Сообщить модератору
 Re: Где взять опыт?)  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
Luchok
так где взять опыт то? на чем порешили?
Быть или не быть, вот в чем вопрос (с)
27 мар 19, 08:54    [21844534]     Ответить | Цитировать Сообщить модератору
 Re: Где взять опыт?)  [new]
Озверин
Member

Откуда: Ростов-на-Дону
Сообщений: 5183
asv79, я взял ваш код и слегка причесал. Если он до этого не работал, то и в причесанном виде работать не начнет.
27 мар 19, 08:56    [21844538]     Ответить | Цитировать Сообщить модератору
 Re: Где взять опыт?)  [new]
Luchok
Member

Откуда:
Сообщений: 201
Petro123
Luchok
так где взять опыт то? на чем порешили?
Быть или не быть, вот в чем вопрос (с)

это без 6 страниц дискуса понятно
27 мар 19, 09:01    [21844543]     Ответить | Цитировать Сообщить модератору
 Re: Где взять опыт?)  [new]
asv79
Member

Откуда: Тверь
Сообщений: 2735
Озверин
asv79, я взял ваш код и слегка причесал. Если он до этого не работал, то и в причесанном виде работать не начнет.

Он прекрасно работал до этого)мало того им успешно пользуются люди по его прямому назначению.
Понимаете как выглядит ваша прическа-стоят жигули ,да с виду не казистые и внутри не очень,но они едут и свою функцию исполняют и тут хозяин этих жигулей приезжает на автосалон,где с важным видом ему каждый второй сообшает-ну и гавно у тебя,а не машина и название говно и внутри салон отстой .говорят давай шас мы ее улучшим)
Проходит время хозяин приходит за машионой-а там обалдеть вместо 4х колес 25 стало,4 руля ,шильдик ламборджини .ну он заводит а она не заводится)открывает капот а там вместо мотора -модный унитаз(интерфейс autoclosable)))хозяин голову почесал пошел к тюнерам -говорит ну ребят не хочет с унитазом ехать,нужен двигатель-ему говорят ну тебе дали концепцию,так что не морочь голову)пошел хозяин и выкинул унитаз -поставил движок обратно-завелась машина,но не едет колес много и рулей)убрал он все обратно и поехала машина а из тининга тока шильдик остался)
У меня опыта нет в работе пргером но выглядит это именно так)
Чем вас не устраивала рабочая сзема ифоф неясно-один из аргуметов был слишком много кода-в вагем случае его стало на четверть больше и он перестал работать)
Так и вопрос может в простых программах не нужны эти паттерны ,от которых машина ехать перестает?)
27 мар 19, 09:24    [21844567]     Ответить | Цитировать Сообщить модератору
 Re: Где взять опыт?)  [new]
Озверин
Member

Откуда: Ростов-на-Дону
Сообщений: 5183
asv79, в таком случае, конечно же, код надо бе покрыть тестами, чтобы при рефакторинге ничего не сломалось. Ну и само собой про важный вид и все остальное - значит так работал на честном слове.

Но я думаю, что вы что-то путаете..для примера, baseRead вызывается с sql на insert, к примеру, именено в вашем коде, мой лишь повторяет.


Насчет аналогии, она выглядит примерно так: вы днем в +5 залили в бачок омывателя воду, ночью она замерзла и все треснула, а после этого вы в сервис центре объясняете всем (с важным видом) какой вы классный парень. В сервис центре смеются в усы, но вида не подают.
27 мар 19, 09:32    [21844579]     Ответить | Цитировать Сообщить модератору
 Re: Где взять опыт?)  [new]
asv79
Member

Откуда: Тверь
Сообщений: 2735
Озверин
asv79, в таком случае, конечно же, код надо бе покрыть тестами, чтобы при рефакторинге ничего не сломалось. Ну и само собой про важный вид и все остальное - значит так работал на честном слове.

Но я думаю, что вы что-то путаете..для примера, baseRead вызывается с sql на insert, к примеру, именено в вашем коде, мой лишь повторяет.


Насчет аналогии, она выглядит примерно так: вы днем в +5 залили в бачок омывателя воду, ночью она замерзла и все треснула, а после этого вы в сервис центре объясняете всем (с важным видом) какой вы классный парень. В сервис центре смеются в усы, но вида не подают.

Ладно это все полемика,скажите почему ваш BaseDate падает при запуске программы,она сразу рвет конект.посмотрите выше я стак трейс ерорр выложил.
У вас baseRead baseWrite изменены полностью ,в одном случае вы используете мапу непонятно для чего ,чтобы положить туда и сразу отдать пользователю ,во втором случае вы вообще используете неверный метод executeQueey
27 мар 19, 09:57    [21844619]     Ответить | Цитировать Сообщить модератору
 Re: Где взять опыт?)  [new]
asv79
Member

Откуда: Тверь
Сообщений: 2735
Ну и про саму концепцию программы из всего написанного метод SendMesege только подходит ,чтобы убрать огромное количество try/catch.

ExecuteComand не будет работать потому что некоторые команды приходят в виде текста из чата,некотррые ввтягиваютчя из Callback,вы это все положили в один метод

Ну и самое главное чем 100500 методов и простыня из свичкейсов лучше чем иф елсе?
Я думаю что это малочитабельно,сложноподдердиваемо и работать будет медленней.
Для добавления новой команды я добавлю 5 строчек ифов а вам прилется менять полпрограммы
27 мар 19, 10:06    [21844636]     Ответить | Цитировать Сообщить модератору
 Re: Где взять опыт?)  [new]
Озверин
Member

Откуда: Ростов-на-Дону
Сообщений: 5183
asv79, просто исправьте ошибки и все, в чем проблема?
Почему мапу я передаю - я написал, чтобы вовремя закрывать ресурсы. Я уже написал, что в статичных переменных хранить ресурсы и инициализировать их там, обращаться к ним напрямую из других классов - сулит огромные проблемы.

ExecuteCommand - это не панацея, но суть в том, что при разборе логики "основной" метод должен быть легко читаем программистом. Если же там миллион if вложенных, понять, что там происходит - просто невозможно. А раз понять невозможно, то и исправить\модифицировать логику - тоже сложно. Можете вынести логику в отдельный класс или разнести так, как вам будет удобно.
27 мар 19, 10:21    [21844670]     Ответить | Цитировать Сообщить модератору
 Re: Где взять опыт?)  [new]
asv79
Member

Откуда: Тверь
Сообщений: 2735
Озверин
asv79, просто исправьте ошибки и все, в чем проблема?
Почему мапу я передаю - я написал, чтобы вовремя закрывать ресурсы. Я уже написал, что в статичных переменных хранить ресурсы и инициализировать их там, обращаться к ним напрямую из других классов - сулит огромные проблемы.

ExecuteCommand - это не панацея, но суть в том, что при разборе логики "основной" метод должен быть легко читаем программистом. Если же там миллион if вложенных, понять, что там происходит - просто невозможно. А раз понять невозможно, то и исправить\модифицировать логику - тоже сложно. Можете вынести логику в отдельный класс или разнести так, как вам будет удобно.

Проблема в том что если их исправлять то будет ровно то что и было до рефакторинга.)тоесть старый бейс дейт ,два старых метода read write ,констукция из ифов )
27 мар 19, 10:30    [21844683]     Ответить | Цитировать Сообщить модератору
 Re: Где взять опыт?)  [new]
Озверин
Member

Откуда: Ростов-на-Дону
Сообщений: 5183
asv79, значит оставьте рабочий вариант и не мучайтесь - он же рабочий ;)
27 мар 19, 10:34    [21844688]     Ответить | Цитировать Сообщить модератору
 Re: Где взять опыт?)  [new]
andreykaT
Member

Откуда:
Сообщений: 2443
ТС, советую почитать (ОЧЕНЬ СОВЕТУЮ) книшку "Чистый код". а еще почитать что такое TDD. тебе сейчас что то объясняют а ты как маленький мальчик упёрся типа у меня всё правильно я этакий бунтарь мне мои 3 строчки кода приносят денег (сомневаюсь). прочти книжку и многое для себя откроешь. утилизировать опыт предыдущих поколений - это хорошая и правильная привычка. наступать на все те грабли на которые наступали до тебя - тебе и жизни не хватит.

чистый код очень хорошая книжка и читается легко. там конечно много банальщины но много и тех вещей на которые СЛЕДУЕТ обратить внимание, и которые для тебя уже не будут банальщиной.

после "Чистого кода" можешь пойти на "Чистая архитектура". тоже неплохая книжка, но сугубо практически менее интересная (ИМХО).
и в ней чот как то много примеров из Си и упора на тему типа вот раньше было плохо но потом пришло ООП. эээ на дворе 2017й год, модны уже иные плюшки :)
27 мар 19, 10:34    [21844690]     Ответить | Цитировать Сообщить модератору
 Re: Где взять опыт?)  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 16874
asv79
Ну и самое главное чем 100500 методов и простыня из свичкейсов лучше чем иф елсе?
это можно просто заменить на рефлексию
27 мар 19, 10:35    [21844691]     Ответить | Цитировать Сообщить модератору
 Re: Где взять опыт?)  [new]
Озверин
Member

Откуда: Ростов-на-Дону
Сообщений: 5183
вадя
asv79
Ну и самое главное чем 100500 методов и простыня из свичкейсов лучше чем иф елсе?
это можно просто заменить на рефлексию


нельзя. Рефлексия используется только там, где уж очень необходимо, например во фреймворках.
Рефлексия - медленная, непонятная, ошибки ловятся только в рантайме. Нельзя использовать в простых бизнес приложениях.
27 мар 19, 10:39    [21844697]     Ответить | Цитировать Сообщить модератору
 Re: Где взять опыт?)  [new]
asv79
Member

Откуда: Тверь
Сообщений: 2735
andreykaT
ТС, советую почитать (ОЧЕНЬ СОВЕТУЮ) книшку "Чистый код". а еще почитать что такое TDD. тебе сейчас что то объясняют а ты как маленький мальчик упёрся типа у меня всё правильно я этакий бунтарь мне мои 3 строчки кода приносят денег (сомневаюсь). прочти книжку и многое для себя откроешь. утилизировать опыт предыдущих поколений - это хорошая и правильная привычка. наступать на все те грабли на которые наступали до тебя - тебе и жизни не хватит.

чистый код очень хорошая книжка и читается легко. там конечно много банальщины но много и тех вещей на которые СЛЕДУЕТ обратить внимание, и которые для тебя уже не будут банальщиной.

после "Чистого кода" можешь пойти на "Чистая архитектура". тоже неплохая книжка, но сугубо практически менее интересная (ИМХО).
и в ней чот как то много примеров из Си и упора на тему типа вот раньше было плохо но потом пришло ООП. эээ на дворе 2017й год, модны уже иные плюшки :)


Я не уперся)я понимаю прекрасно суть того что хотел сделать озверин.и в больших и сложных приложениях бещ сомнений нужно так и делать,но вот относится ли это утверждение к с проостым приложениям из двух трех классов и 100 строчек кода?в попытке облегчить код -усложниить и увеличить его в несколько раз?это типо как написать хелло ворлд из программы управоения орбитальной станцией-вот я к чему веду
27 мар 19, 10:43    [21844703]     Ответить | Цитировать Сообщить модератору
 Re: Где взять опыт?)  [new]
andreykaT
Member

Откуда:
Сообщений: 2443
Озверин
asv79, значит оставьте рабочий вариант и не мучайтесь - он же рабочий ;)

я вот как то работал на одном коммерческом продукте (бабло оно приносило от юзеров не очень, но зато инвесторы ёпали туда лямы)
там примерно так же говорили. но имхо, тут главное так сказать, соблюсти баланс между совсем говно и пока можно жить. основная задача продуктов - обслуживать хотелки заказчика и приносить в итоге бабло. если эти два пункта он выполняет, то это вполне себе хороший код.
27 мар 19, 10:48    [21844709]     Ответить | Цитировать Сообщить модератору
 Re: Где взять опыт?)  [new]
andreykaT
Member

Откуда:
Сообщений: 2443
asv79
andreykaT
ТС, советую почитать (ОЧЕНЬ СОВЕТУЮ) книшку "Чистый код". а еще почитать что такое TDD. тебе сейчас что то объясняют а ты как маленький мальчик упёрся типа у меня всё правильно я этакий бунтарь мне мои 3 строчки кода приносят денег (сомневаюсь). прочти книжку и многое для себя откроешь. утилизировать опыт предыдущих поколений - это хорошая и правильная привычка. наступать на все те грабли на которые наступали до тебя - тебе и жизни не хватит.

чистый код очень хорошая книжка и читается легко. там конечно много банальщины но много и тех вещей на которые СЛЕДУЕТ обратить внимание, и которые для тебя уже не будут банальщиной.

после "Чистого кода" можешь пойти на "Чистая архитектура". тоже неплохая книжка, но сугубо практически менее интересная (ИМХО).
и в ней чот как то много примеров из Си и упора на тему типа вот раньше было плохо но потом пришло ООП. эээ на дворе 2017й год, модны уже иные плюшки :)


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

у тебя есть возможность вылизать и выстроить код максимально хорошо, и потом именно эти бест практиз тащить за собой в новые уже большие и непет проекты. а так ты не думай что раз пришел на большой проект и два - научился писать не говно. начинают обычно с малого. так общую картину увидать проще.
ты попадешь не на говнопроект и просто тебя оттуда выгонят потому что ты не сможешь доставлять. а возиться с тобой никто не захочет.
27 мар 19, 10:50    [21844712]     Ответить | Цитировать Сообщить модератору
 Re: Где взять опыт?)  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 16874
Озверин
Рефлексия - медленная, непонятная,
медленная она была лет 15 назад.
тут уже было обсуждение рефлексии и привели одно выступление, в котором на числах развеян миф о медленности рефлексии.
Озверин
ошибки ловятся только в рантайме.
???
Озверин
Нельзя использовать в простых бизнес приложениях.
не слишком ли резкое высказывание?
27 мар 19, 10:55    [21844719]     Ответить | Цитировать Сообщить модератору
 Re: Где взять опыт?)  [new]
andreykaT
Member

Откуда:
Сообщений: 2443
имхо рефлексия это или ты если делаешь какое то очень дженерик решение архитектурного или там системного уровня, если ты делаешь фреймворк свой, или же если у тебя полная жопа надо пофиксить еще вчера, заткнуть дырку а то всё пропало, и ничего другого в принципе нет что решило бы твою проблему.
27 мар 19, 11:06    [21844734]     Ответить | Цитировать Сообщить модератору
 Re: Где взять опыт?)  [new]
Андрей Панфилов
Member

Откуда: Москва > Melbourne
Сообщений: 3367
asv79
Андрей Панфилов
пропущено...
Разве что удалить все и написать заново:
- классы без пакетов - это зашквар, их нельзя инстанциировать из классов с пакетами
- Key и KeyBoard - какая-то каша, нужно было хранить все это в каком-нить json/xml/csv и читать оттуда
- BaseDate - ресурсы текут как только можно
- BotStart - паттерном Command там и не пахло, куча SQL-инъекций

На счет пакетов согласен ,исправлю.
На счет key и keyboard что вам не нравится?первый интерфейс с одним методом и набором констант,второй его имплементация с одним методом.зачем городить огород в виде хмл если мне нужен набор контстант и с их храненением отлично справляется интерфейс.
Про ботстарт и команд,если вы не заметили все иньекции инкапсулированы а класс basedate является ресивером.да может выглядит не много не по феншую но это издержки интерфейса в виде диалога с пользователем.
На счет ресурсов что имеено куда течет поясните.


Это п##дец, вам говорят как нужно делать, а вы упираетесь рогом и настаиваете на своей правоте - это даже не уровень джуниора, последние хотя бы послушные и бегают спрашивать правильно они выполнили или нет. Здесь даже Озверин повелся, потратил свое время и несколько отрефакторил код - вы ему тупо плюете в лицо.

Биндинги клавиатуры имеют очевидное продолжение в виде поддержки интернационализации и локализации, поэтому они должны быть описаны декларативно, а не "интерфейс с одним методом и набором констант"

куда там инкапсулированы SQL-инъекции увы, я понять не в состоянии:

BaseDate.baseRead("update  users set UserName ='" + name + "' where userId=" + chat_id + " ");


пользователь обозвался "'; --" как по вашему, что дальше произойдет? Да фиг с ним, пусть пользователь не какер, а просто у него в имени одинарная кавычка.
27 мар 19, 11:06    [21844735]     Ответить | Цитировать Сообщить модератору
 Re: Где взять опыт?)  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 16874
andreykaT
имхо рефлексия это или ты если делаешь какое то очень дженерик решение архитектурного или там системного уровня, если ты делаешь фреймворк свой, или же если у тебя полная жопа надо пофиксить еще вчера, заткнуть дырку а то всё пропало, и ничего другого в принципе нет что решило бы твою проблему.
ну не надо так критично...
это только твоё мнение.
неужели множество case и if это бест практик?
27 мар 19, 11:14    [21844748]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 4 5 6 [7] 8 9 10 11 .. 134   вперед  Ctrl
Все форумы / Java Ответить