|
нужен реинжиниринг короткого кода на java
|
|||
---|---|---|---|
#18+
pesets, Добро пожаловать в публичный форум. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2021, 19:47 |
|
нужен реинжиниринг короткого кода на java
|
|||
---|---|---|---|
#18+
pesets Вот без обид - если конструктив кончился, то остальные слова явно лишние, чесслово. Очередная порция конструктива, не поленился, наклацал пример из двух классов, из базовых возможностей джавы, на подножном корму так сказать . Один класс парсит значения из текстового файла и передает их в инстанс/экземпляр второго класса . В момент передачи данных ,во втором классе ,в методе ,который начинается со слов set происходит преобразование текстового значения в нужный по смыслу тип данных. 1) Итак, представьте, что у вас текстовый файл, который вы хотите спарсить (он у вас должен был появится после выполнения первой части задания ) содержит в себе структуру обычной таблицы (похожую по смыслу на обычную таблицу на SQL сервере) Я специально создал текстовый файл с идеей разных типов данных. Там по смыслу есть INTEGER,DATE, DOUBLE ,VARCHAR, BOOLEAN Все это можно посмотреть во вложенных текстовых файликах. Там вы увидите соответственно поля если откроете : КодПродажи ДатаПродажи СуммаПродажи Продукт Подтверждено. Какая наша задача - спарсить построчно данные из каждого файлика и поместить их в ArrayList таким образом, чтобы они находясь там имели уже свой тип данных, чтобы в дальнейшем можно было работать с этим списком как с обычной таблицей (SUM,GROUP BY, etc..) Что мы создаем в первую очередь? - мы создаем класс типа pojo, который полностью, на 100 процентов совпадает со структурой таблицы из текстового файлика. Пусть такой класс называется Продажи (назовем его Sales): Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41.
Все, класс создан, и он в дальнейшем будет играть роль элемента ArrayList, мы в этот список будем пихать по одному экземпляру ,каждый из которого идеологически соответствует одной строке в таблице. 2) Дальше - хранилище строк у нас уже организовано. Осталось написать класс парсер , который будет обходить выбранный текстовый файл/ы и закручивать данные из строк текстового файла в коллекцию типа ArrayList. Элементом коллекции будут являться экземпляры класса Sales. Каждый из которого будет содержать информацию одной строки таблицы. Пишем класс парсер: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26.
Все, вуаля, можно пользоваться, получить результирующий список из нескольких файлов очень просто . Он очень лаконичен. Код: java 1. 2. 3. 4. 5. 6. 7. 8.
После вызова, вы можете делать с ним что угодно, он полностью соответствует структуре таблицы, как по списку полей, так и по типам данных. И усё. Дальше можно складывать, вычитать, группировать. Либо циклом по старинке. Либо использовать Stream API. Что ближе, и что больше знакомо. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2021, 23:32 |
|
нужен реинжиниринг короткого кода на java
|
|||
---|---|---|---|
#18+
сами файлы. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2021, 23:37 |
|
нужен реинжиниринг короткого кода на java
|
|||
---|---|---|---|
#18+
Сергей Лалов, огромное спасибо, чужой опыт самое ценное. Курю ваш пример. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2021, 06:19 |
|
нужен реинжиниринг короткого кода на java
|
|||
---|---|---|---|
#18+
[quot Сергей Лалов#22299164] pesets из базовых возможностей джавы, на подножном корму так сказать . Сергей, а если выходить за пределы базовых возможностей java, что бы вы сами использовали из java-фреймворков / доп библиотек каких нибудь для решения аналогичных задач ? я имею в виду ту часть задачи, которая не связана с БД Лично я само собой решал бы все через JDBC и БД. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2021, 06:30 |
|
нужен реинжиниринг короткого кода на java
|
|||
---|---|---|---|
#18+
pesets Лично я само собой решал бы все через JDBC и БД. Надо просто осилить рефлексию и писать всё линейно станет сразу лень. Захочется чтобы "я сказал и оно сделалось, а не перечислять 100500-й раз всё эти элементарные шаги". ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2021, 06:38 |
|
нужен реинжиниринг короткого кода на java
|
|||
---|---|---|---|
#18+
crutchmaster, можно как то тебе написать в личку ? Хочу сказать личное спасибо в виде подгона хорошей уже сейчас, а в перспективе очень хорошей темы ) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2021, 07:38 |
|
нужен реинжиниринг короткого кода на java
|
|||
---|---|---|---|
#18+
crutchmaster pesets Лично я само собой решал бы все через JDBC и БД. Надо просто осилить рефлексию и писать всё линейно станет сразу лень. Захочется чтобы "я сказал и оно сделалось, а не перечислять 100500-й раз всё эти элементарные шаги". спрошу не так завуалированно - не хотелось говорить возможно явные глупости. )) какими бы сторонними библиотеками ты сам бы воспользовался для решения подобных БД задач без БД ? или сам что используешь (фреймы , сторонние библиотеки) для решения своих задач ? может эту задачу (или подобные) проще делать я не знаю ну там может спринг что то особо уютное в этом плане предлагает или еще что . ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2021, 07:47 |
|
нужен реинжиниринг короткого кода на java
|
|||
---|---|---|---|
#18+
pesets кими бы сторонними библиотеками ты сам бы воспользовался для решения подобных БД задач без БД ? Всё сильно зависит от конкретной задачи. Если там rest, тупой curd и работодатель платит за жабку - то как все - спринг бут, хибер. Для если надо чего-то много считать из кучи цифер делать еще кучу цифер, то я никогда бы не взял этот сраный хибер и страдал бы с mybatis/jdbi. Без бд, ну делал я обёртку для rabbitmq, там была библиотека для связи с рабитом, да спринг. pesets может эту задачу (или подобные) проще делать я не знаю ну там может спринг что то особо уютное в этом плане предлагает или еще что . Конкретно для такой задачи спринг ничего не предлагает, она слишком маленькая, чтобы его туда тащить. Спринг он соединяет кучу сторонних библиотек, чтобы тебе не создавать и не тащить все эти сраные фабрики фабрик руками в свою иерархию классов, а тупо наставить везде @Autowired, фреймворк сделает где надо new и всё заведётся (пусть не с первого раза и будет долго гатить стектрейсами при запуске) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2021, 08:03 |
|
нужен реинжиниринг короткого кода на java
|
|||
---|---|---|---|
#18+
Сергей Лалов, я вам письмо послал на мыло в профиле. с моим ником в теме . не отмахивайтесь ))) в нем мой телефон, по которому я в мессенджерах это мое личное так сказать спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2021, 08:34 |
|
нужен реинжиниринг короткого кода на java
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev, отправил вам письмо на мыло , которое в профиле с моим ником в теме. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2021, 08:45 |
|
нужен реинжиниринг короткого кода на java
|
|||
---|---|---|---|
#18+
pesets Сергей Лалов, я вам письмо послал на мыло в профиле. с моим ником в теме . не отмахивайтесь ))) в нем мой телефон, по которому я в мессенджерах это мое личное так сказать спасибо. За номер телефона конечно спасибо)). Но мы ждем от вас тут ваших выкладок, по вашему заданию. Что вы успели сделать на текущий момент) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2021, 12:26 |
|
нужен реинжиниринг короткого кода на java
|
|||
---|---|---|---|
#18+
pesets можно как то тебе написать в личку ? jabber на jabber.ru или мыло на яндексе с таким же ником, как на форуме. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2021, 12:46 |
|
нужен реинжиниринг короткого кода на java
|
|||
---|---|---|---|
#18+
pesets Сергей, а если выходить за пределы базовых возможностей java, что бы вы сами использовали из java-фреймворков / доп библиотек каких нибудь для решения аналогичных задач ? я имею в виду ту часть задачи, которая не связана с БД Лично я само собой решал бы все через JDBC и БД. JDBC и БД это само собой. Но это слишком низкоуровневое точечное решение. Наверное сейчас мало кто пишет отдельные решения с нуля для обслуживания определённой бд, пула бд с сети. Для общего образования разве что. Как и сказал ранее crutchmaster, сейчас основные фреймворки, востребованные на рынке труда это hibernate - для взаимодействия с sql сервером. И spring для написания веб решений и опять же для взаимодействия с sql сервером. Только под другим углом. Без практики прорваться и изучить сложно. Изучите базовые вещи на Java. Основные понятия. И только потом туда. PS. И да, ждём ваш код, надеюсь коллективная помощь не прошла даром. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2021, 13:28 |
|
нужен реинжиниринг короткого кода на java
|
|||
---|---|---|---|
#18+
Сергей Лалов pesets Сергей Лалов, я вам письмо послал на мыло в профиле. с моим ником в теме . не отмахивайтесь ))) в нем мой телефон, по которому я в мессенджерах это мое личное так сказать спасибо. За номер телефона конечно спасибо)). Но мы ждем от вас тут ваших выкладок, по вашему заданию. Что вы успели сделать на текущий момент) мой номер для того, что бы вкратце по быстрому ввести в тему, которую я прислал )). что бы вам не курить уже прокуренное пока сделал вот что (архив) еще курю тесты. по той ссылке что прислали - ну примерно 40 % расскажу, по JDBC 100 % , вспомнил все )) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2021, 19:53 |
|
нужен реинжиниринг короткого кода на java
|
|||
---|---|---|---|
#18+
crutchmaster, на яндекс написал ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2021, 20:07 |
|
нужен реинжиниринг короткого кода на java
|
|||
---|---|---|---|
#18+
Сергей Лалов, подчистил немного ребилдился проект без ругани рабочий класс еще не оформил в отдельный ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2021, 20:32 |
|
нужен реинжиниринг короткого кода на java
|
|||
---|---|---|---|
#18+
pesets, блин не тот архив привязался вот последний ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2021, 20:40 |
|
нужен реинжиниринг короткого кода на java
|
|||
---|---|---|---|
#18+
pesets, v3_home.zip ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2021, 20:42 |
|
нужен реинжиниринг короткого кода на java
|
|||
---|---|---|---|
#18+
pesets, Ну кстати нормальный объем кода. Единственно как понимаю вы на тестовый период все запихнули в метод main . Чет не запускается у меня. На 41 строке вылетает. У вас генерация текстовых файлов ,согласно первой части задания выполняется? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2021, 21:46 |
|
нужен реинжиниринг короткого кода на java
|
|||
---|---|---|---|
#18+
ИМХО лучше вообще не стало. 1) Начать надо с того, что посоветовали Leonid Kudryavtsev и PetroNotC, разбить код на логические блоки по разным функциям: PetroNotC Sharp Leonid Kudryavtsev, +1 Код: java 1. 2. 3. 4.
У кода вообще нет структуры. Это очень длинная лапша, которую не понять, пока не прочитаешь целиком. 2) Имена переменных/функций не соответствуют конвенциям 3) Есть такое правило для хорошего кода: если внутри функции хочется написать коммент, то или переменные названы непонятно, или надо разбить код на более мелкие функции с понятными названиями. От такого избытка комментов становится чуть-чуть больно. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2021, 21:55 |
|
нужен реинжиниринг короткого кода на java
|
|||
---|---|---|---|
#18+
Сергей Лалов, ну да, рабочую функцию в отдельный класс не выделил Вы из последнего архива смотрите код v3_home.zip ? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2021, 22:02 |
|
нужен реинжиниринг короткого кода на java
|
|||
---|---|---|---|
#18+
Сергей Лалов pesets, Ну кстати нормальный объем кода. Единственно как понимаю вы на тестовый период все запихнули в метод main . Чет не запускается у меня. На 41 строке вылетает. У вас генерация текстовых файлов ,согласно первой части задания выполняется? да, рабочую функцию пока в отдельный класс не выделил - в процессе вы смотрите код из последнего архива ? v3_home.zip ? у меня 41 строка fullPathOfficesTxt = homePath + "\\" + args[0].toLowerCase(); - это планирую убрать и найти что то кроссплатформенное, о чем говорил crutchmaster ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2021, 22:07 |
|
нужен реинжиниринг короткого кода на java
|
|||
---|---|---|---|
#18+
SpringMan ИМХО лучше вообще не стало. 1) Начать надо с того, что посоветовали Leonid Kudryavtsev и PetroNotC, разбить код на логические блоки по разным функциям: PetroNotC Sharp Leonid Kudryavtsev, +1 Код: java 1. 2. 3. 4.
У кода вообще нет структуры. Это очень длинная лапша, которую не понять, пока не прочитаешь целиком. 2) Имена переменных/функций не соответствуют конвенциям 3) Есть такое правило для хорошего кода: если внутри функции хочется написать коммент, то или переменные названы непонятно, или надо разбить код на более мелкие функции с понятными названиями. От такого избытка комментов становится чуть-чуть больно. пытаюсь сделать структуру архив v3_home.zip последний 2. многое поправил по именам - теперь переменные начинаются с маленькой буквы а вообще ИМХО блин ну должен же быть какой либо плагин для , который выровняет и предложит наименования в соответствии с конвенцией... найду при слове конвенция Ильф и Петров в уме щас всплывает "Золотой теленок" )) 3. ну я комментирую с той позиции много комментов лучше чем без них - больше для себя, я не предполагал, что придется отчитываться )))))), но я не против совершенно. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2021, 22:16 |
|
|
start [/forum/topic.php?fid=59&msg=40056617&tid=2120494]: |
0ms |
get settings: |
28ms |
get forum list: |
16ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
55ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
533ms |
get tp. blocked users: |
2ms |
others: | 295ms |
total: | 953ms |
0 / 0 |