powered by simpleCommunicator - 2.0.30     © 2024 Programmizd 02
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / нужен реинжиниринг короткого кода на java
249 сообщений из 249, показаны все 10 страниц
нужен реинжиниринг короткого кода на java
    #40055734
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет всем, я начинающий в java, написал тестовую задачу, но в голове прочно сидит стиль функционального программирования, а не ООП. Соответственно код получился индийский. Нужен реинжиниринг кода в соответствии с условиями изложенными тут https://habr.com/ru/post/464731/ или чьих то других понятий правильного стиля ООП.
200 строк - половина строк скобки фигурные.

Подскажите, плиз, сколько это ориентировочно может стоить ?
понимаю, что вопрос веселый, но времени у меня маловато..
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40055744
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pesets
Подскажите, плиз, сколько это ориентировочно может стоить ?

2 страницы глумления и издевательств.
Выкладывай свой код в /java . 200 строк. Было бы что смотреть.
Но говорю сразу. Правильного ООП нет и ваш тред по итогу скатится в срач. Последних холивар закрыли недавно и люди там еще желали высказаться.
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40055748
Фотография П.С.М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
crutchmaster

2 страницы глумления и издевательств.



pesetsно времени у меня маловато.
Тестовое задание?
Лабораторная работа?
Так у собеседующего, потом доп.вопросы появятся: "почему сделано так, а не иначе?".

Допустим, Вам переделают Ваши 200 строк, под тот или иной шаблон. Вы то сами потом ответить на вопросы по коду сможете?
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40055771
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
crutchmaster,

Глумления и издевательства )))) эт ерунда , поверьте.

а вот когда вас под полтос (не дай бог конечно) "оптимизируют" на улицу после 15 лет работы руководителем среднего звена не IT,
с двумя детями и ипотеками поневоле вспомнишь свой давний стаж функционального программера.
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40055774
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
П.С.М.,

тестовое задание,
ну само собой проанализирую изменения, что бы не плавать
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40055798
13-й Пилигрим
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pesets,

ох.. начните, что ли, с Java Code Conventions

Модератор: Тема перенесена из форума "Работа".
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40055836
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pesets
Глумления и издевательства )))) эт ерунда , поверьте.

Ну, тогда вам нечего в интернете бояться.
Код: java
1.
2.
        if (System.getProperty("os.name").toLowerCase().contains("windows")){
            FoolOperPath = HomePath + "\\OPER\\";


Там есть кроссплатформенная хрень, которая работает с фс на любой ос. Завтра или вечером лучше посмотрю.
В целом там кодерам с подворотами ничего такого не нужно, нужно, чтобы ооп, спринг бут, аннотации и rest.
Скинь еще тз, чтобы понятно было, что от тебя хотели.
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40055839
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pesets,

Дак вам что надо?
Вы трудолюбивый и сами тут в он лайн режиме правите код. Или ждете что вам поправят?
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40055840
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
crutchmaster
pesets
Глумления и издевательства )))) эт ерунда , поверьте.

Ну, тогда вам нечего в интернете бояться.
Код: java
1.
2.
        if (System.getProperty("os.name").toLowerCase().contains("windows")){
            FoolOperPath = HomePath + "\\OPER\\";


Там есть кроссплатформенная хрень, которая работает с фс на любой ос. Завтра или вечером лучше посмотрю.
В целом там кодерам с подворотами ничего такого не нужно, нужно, чтобы ооп, спринг бут, аннотации и rest.
Скинь еще тз, чтобы понятно было, что от тебя хотели.


первая задача,
от души спасибо
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40055843
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Windows API принимает оба варианта разделителей пути.
Поэтому не надо бояться использовать пути вида:
Код: plaintext
1.
2.
 относительный/путь
 /абсолютный/путь
 //сетевой/ресурс/путь

Ограничение, конечно, есть: "только в пределах текущего диска".
В хрюниксах "текущего диска" нет и доступна вся иерархия путей, у винды - есть и доступна (только) иерархия текущего диска.
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40055846
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
[quot PetroNotC Sharp#22298193]pesets,

Дак вам что надо?
"сами тут в он лайн режиме правите код "
не совсем понял это..

Я спросил у людей сколько может стоить моя проблема - читайте первый пост.
Человек сказал, что может посмотреть..
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40055850
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pesets,
Для той ветки форума ваш вопрос уместен.
Для данной ветки не уместен.
Или корректируйте вопрос или просите модератора чтобы не переносил.
Логично?
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40055863
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
склонен согласиться с Петром - если вам не нужны советы, а нужно чтоб кто-то код переделал за деньги, то этому топику не место здесь.
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40055903
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что бы "переделывать", должны быть четкие критерии "как". А их нет. Есть только непонятный "правильного стиля ООП". Т.ч. разбираться, что же имеется в виду под "правильного стиля" или читать какой-то бред на хабр, это __очень__ дорого стоит.

А с учетом, что одно из требований хабра "писали код сами" и прочее, то даже не выполнима в принципе ))).

В общем, за 1-2 тыс. вечнозеленых можно повалятся в гуано... но дешевле - это себя не уважать. Ну и деньги вперед. Т.к. итог такой работы гарантирован - все в дерь... гуано, работа выполнена успешно, положительный результат не достигнут
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40055905
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp
pesets,
Для той ветки форума ваш вопрос уместен.
Для данной ветки не уместен.
Или корректируйте вопрос или просите модератора чтобы не переносил.
Логично?


я поступил еще логичней - я не просил никого ничего никуда переносить.
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40055907
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leonid Kudryavtsev
Что бы "переделывать", должны быть четкие критерии "как". А их нет. Есть только непонятный "правильного стиля ООП". Т.ч. разбираться, что же имеется в виду под "правильного стиля" или читать какой-то бред на хабр, это __очень__ дорого стоит.

А с учетом, что одно из требований хабра "писали код сами" и прочее, то даже не выполнима в принципе ))).

В общем, за 1-2 тыс. вечнозеленых можно повалятся в гуано... но дешевле - это себя не уважать. Ну и деньги вперед. Т.к. итог такой работы гарантирован - все в дерь... гуано, работа выполнена успешно, положительный результат не достигнут


а вы это гуано уже смотрели ? и валяние в нем оценили в 1-2 американских килорубля ?
если бы у меня были четкие критерии я бы сам и сделал задачу по этим четким критериям логично ?

и то , что я сделал я сам сделал
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40055909
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pesets


Код работает? Проверяли?

Народная_истиннаСидит программист глубоко в отладке.
Подходит сынишка:
- Папа, почему солнышко каждый день встаёт на востоке, а садиться на западе?
- Ты это проверял?
- Проверял.
- Хорошо проверял?
- Хорошо.
- Работает?
- Работает.
- Каждый день работает?
- Да, каждый день.
- Тогда ради бога, сынок, ничего не трогай и не меняй.


Все остальное - проблемы с самооценкой, это к психологу или психотерапевту (х.з. к кому конкретно)

IMHO
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40055910
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pesets

а вы это гуано уже смотрели ?

код что-то считывает из файла и что-то делает с датами
что именно и зачем - разумеется не разбирался

pesets

если бы у меня были четкие критерии я бы сам и сделал задачу по этим четким критериям логично ?

и то , что я сделал я сам сделал


почему Вы считаете, что при отсутвие критериев, кто-то другой сделает __значительно__ лучше?
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40055912
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leonid Kudryavtsev
pesets


Код работает? Проверяли?

Народная_истиннаСидит программист глубоко в отладке.
Подходит сынишка:
- Папа, почему солнышко каждый день встаёт на востоке, а садиться на западе?
- Ты это проверял?
- Проверял.
- Хорошо проверял?
- Хорошо.
- Работает?
- Работает.
- Каждый день работает?
- Да, каждый день.
- Тогда ради бога, сынок, ничего не трогай и не меняй.


Все остальное - проблемы с самооценкой, это к психологу или психотерапевту (х.з. к кому конкретно)

IMHO

разумется работает и выдает правильный результат

а этот анекдот я уже лет 20 если не больше слушаю )))

просто это тестовая задача - по ней возможно.. да я уже все в первом посте написал
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40055917
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leonid Kudryavtsev
pesets

а вы это гуано уже смотрели ?

код что-то считывает из файла и что-то делает с датами
что именно и зачем - разумеется не разбирался

pesets

если бы у меня были четкие критерии я бы сам и сделал задачу по этим четким критериям логично ?

и то , что я сделал я сам сделал


почему Вы считаете, что при отсутвие критериев, кто-то другой сделает __значительно__ лучше?


потому что самые четкие критерии у принимающего тест.
и эти критерии я изложил в первом посте - там была ссылка.
Я думаю, что человек, изложивший эти критерии написал правильные вещи - для того, что бы потом задачу легко мог сопровождать
другой сотрудник.
,
так что с психиатрами и психологами - мимо. Там у них кто первый халат надел тот и доктор.
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40055918
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pesets
PetroNotC Sharp
pesets,
Для той ветки форума ваш вопрос уместен.
Для данной ветки не уместен.
Или корректируйте вопрос или просите модератора чтобы не переносил.
Логично?


я поступил еще логичней - я не просил никого ничего никуда переносить.
))))
Двойка по логике.
Вас вместе со стулом перенесли с рынка на галеры. Знаете такие?
А вы продолжаете сидеть с умным видом дальше как будто ничего не произошло)))).
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40055942
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По коду.

1. ООП тут не причем. Функции и процедуры появились задолго до него. Весь код в одной простыне - можно конечно, но смотрится крайне коряво

2.
Код оборачивают в main обычно для проверки. Отстутсвие хоть какой-то выделенной __рабочей__ процедуры демонстрирует полное отсутвие навыков и привычки делать нормальные интерфейсы (хоть как interface в понятие Java, хоть как вменяемые api в виде процедур).
Т.к. единственный способ использовать данный код не в тестовой задаче, а в реальном проекте - Copy Past черти чего и из разных мест.
Рабочий код должен быть выделен с четко понятным интерфейсом / API, точкой входа и возратом ошибок.

3.
Код: java
1.
            if (ErrCount == 0) { // если  ошибок не обнаружено выполняем программу


и все остальное, где встречается ErrCount - на мой взгляд на выброс

при том, что автор или сам ))) или тот, кому он заплатил до этого ))) конструкцию try ... catch знает и даже знает и использует try для ресурсов.

честно говоря, при взгляде на код начинаются подозрения, что у автора данного кода раздвоение личности.

То с помощью исключений, то с помощью малопонятного ErrCount

4.
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
                switch (ErrCount) {
                    case 1:
                        System.out.println("Отсутствует файл с точками продаж (Параметр 1)");
                        break;
                    case 12:
                        System.out.println("Неправильный формат параметра №2");
                        System.out.println("Параметр №2 - положительное целое число больше 0, без десятичных знаков, без разделителей");
                        break;
                    case 1234:
                        System.out.println("Не удалось создать каталог " + FoolOperPath);
                        break;



Это вообще выглядит как легкий стеб наподобии "тут я устала и пошла спать" посередине дипломной работы )))
Интересная система счисления: 1, 12, 1234.... что далее?

5.
слово "count" обычно используется в совершенно другом значении. Почему переменная, б#$%, называется Err Count ?

хотя, это вопрос риторийческий....

т.к. название другой переменной Fool OperPath - все объясняет )))

p.s.
пока писал пункты 1-4, это были цветочки
но пункт 5 - вот лично я бы такого юмориста и вруна (я начинающий, написал, я сам сделал) рекомендовал бы начальству сразу послать подальше.
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40055943
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev,

>Интересная система счисления: 1, 12, 1234.
===)))))))))
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40055961
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leonid Kudryavtsev
По коду.

1. ООП тут не причем. Функции и процедуры появились задолго до него. Весь код в одной простыне - можно конечно, но смотрится крайне коряво

2.
Код оборачивают в main обычно для проверки. Отстутсвие хоть какой-то выделенной __рабочей__ процедуры демонстрирует полное отсутвие навыков и привычки делать нормальные интерфейсы (хоть как interface в понятие Java, хоть как вменяемые api в виде процедур).
Т.к. единственный способ использовать данный код не в тестовой задаче, а в реальном проекте - Copy Past черти чего и из разных мест.
Рабочий код должен быть выделен с четко понятным интерфейсом / API, точкой входа и возратом ошибок.

3.
Код: java
1.
            if (ErrCount == 0) { // если  ошибок не обнаружено выполняем программу


и все остальное, где встречается ErrCount - на мой взгляд на выброс

при том, что автор или сам ))) или тот, кому он заплатил до этого ))) конструкцию try ... catch знает и даже знает и использует try для ресурсов.

честно говоря, при взгляде на код начинаются подозрения, что у автора данного кода раздвоение личности.

То с помощью исключений, то с помощью малопонятного ErrCount

4.
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
                switch (ErrCount) {
                    case 1:
                        System.out.println("Отсутствует файл с точками продаж (Параметр 1)");
                        break;
                    case 12:
                        System.out.println("Неправильный формат параметра №2");
                        System.out.println("Параметр №2 - положительное целое число больше 0, без десятичных знаков, без разделителей");
                        break;
                    case 1234:
                        System.out.println("Не удалось создать каталог " + FoolOperPath);
                        break;



Это вообще выглядит как легкий стеб наподобии "тут я устала и пошла спать" посередине дипломной работы )))
Интересная система счисления: 1, 12, 1234.... что далее?

5.
слово "count" обычно используется в совершенно другом значении. Почему переменная, б#$%, называется Err Count ?

хотя, это вопрос риторийческий....

т.к. название другой переменной Fool OperPath - все объясняет )))

p.s.
пока писал пункты 1-4, это были цветочки
но пункт 5 - вот лично я бы такого юмориста и вруна (я начинающий, написал, я сам сделал) рекомендовал бы начальству сразу послать подальше.

за конструктив спасибо, а на все остальное отвечать лениво, хотя... проявлю терпение и уважение
с 1997 по 2005 программер СУБД , FoxPro 2.6 по Visual Foxpro 9., в нефтегазе и региональном банке.
далее 5 лет руководил процессингом этого регионального банка
коллектив - 15 человек айтишников, каждый из которых по совместительству непризнанный гений, со своими прибамбасами.
потом 10 лет руководитель бизнес-подразделения в филиале банка топ5 в стране.
Сейчас оптимизирован, как я и писал ранее и хочу вернуться в разработку , для чего изучаю java
так что в java я действительно начинающий и этот какой никакой код писал сам.
ну а насчет вруна - да как изволите.. - как хотите так и считайте.
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40055962
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp
Leonid Kudryavtsev,

>Интересная система счисления: 1, 12, 1234.
===)))))))))


да это просто нереализованная задумка - сначала хотел извратиться, но потом решил не усложнять
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40055966
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leonid Kudryavtsev,

если есть интерес все таки выяснить врун я или нет - задайте вопросы, отвечу что делает каждая строчка.
но, правду говоря, тратить время на какие то доказательства - это в моем положении роскошь.
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40055969
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp
pesets
пропущено...


я поступил еще логичней - я не просил никого ничего никуда переносить.
))))
Двойка по логике.
Вас вместе со стулом перенесли с рынка на галеры. Знаете такие?
А вы продолжаете сидеть с умным видом дальше как будто ничего не произошло)))).


никто не умрет )) ну поищу помощи в другом месте
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40055973
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leonid Kudryavtsev
По коду.

То с помощью исключений, то с помощью малопонятного ErrCount



касательно исключений - согласен полностью, но уперся в ситуацию, которую пока не смог победить.
всплывало исключение от java.NIOException, а когда пытался перехватить конкретно данное исключение
всплывало unreported exceprion от java.IOException и рекомендация системы перехватывать самый общий тип исключений, а не конкретное. Разорвать этот круг пока не получилось.
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40055974
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pesets

задайте вопросы, отвечу

Почему переменная называется Err Count ?
название другой переменной Fool OperPath ?
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40055978
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leonid Kudryavtsev
pesets

задайте вопросы, отвечу

Почему переменная называется Err Count ?
название другой переменной Fool OperPath ?


потому что первоначально я хотел ErrCount помещать просто количество ошибок при проверке. Count - от Counter, to count - считать ))
FoolOperPath - тут переменная - полный путь к каталогу OPER, в который я помещаю файлы с сгенерированными операциями POS (Point Of Sail) - т.е. точек продаж.

ну а то, что вместо Fool нужно Full - тупанул )))
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40055985
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Из критического (на мой взгляд)

1. Отсутсвие вынесенной процедуры/класса который собственно выполняет рабочее действие
note: что есть "рабочее действие" нам не понятно, т.к. задания, что должен делать код и не приложили

2. Из-за этого спагетти код с System.out.println который безумно режит глаза. Всякий ввод-вывод, вопросы пользователей и все остальные мухи - отдельно, код который выполняет бизнес дествие - должен быть отдельно

3. Насколько много должно быть процедур, насколько мельчить - это вопрос вкуса и ТЗ (его мы не видели).

всплывало исключение от java.NIOException, а когда пытался перехватить конкретно данное исключение
всплывало unreported exceprion от java.IOException и рекомендация системы перехватывать самый общий тип исключений, а не конкретное. Разорвать этот круг пока не получилось.

Ничего не понятно.
Т.к. java.NIOException при работе с файлами возникать не должно. Это сетевое исключение. По крайне мере, насколько я знаю и по доке/смыслу.
Что-то Вы не договариваете.

pesets
PetroNotC Sharp
Leonid Kudryavtsev,
>Интересная система счисления: 1, 12, 1234.
===)))))))))

да это просто нереализованная задумка - сначала хотел извратиться, но потом решил не усложнять


HabrПункт 9....
Не пишите спагетти код. Разложите все по классам, пакетам. Создайте где нужно интерфейсы, вынесите перечисления в ENUM , если необходимо.

"обычные разработчики" ( TM ) обычно ошибки кодируют без затей 1,2,3,4.... и так далее (лучше Enum)
Такую систему счисления 1,123,123456789 - вижу первый раз
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40055987
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leonid Kudryavtsev,
да кидал я задачу - 9ый пост на первой странице - огромная блин фотка получилась аж неудобно, но исправить не могу
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40055990
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Разорвать этот круг пока не получилось.

разбейти на процедуры.

В комментариях напишите:

Что данная процедура делает
Входные параметры
Выходные параметры
Какие ошибки и как процедура возврашает (раз мы про ООП, то лучше exceptions).
(хотя вариант с возвратом кода ошибки так же никто не отменял и он вполне законнен IMHO, но если про ООП - то лучше exceptions)

Почитайте как оформляются комментарии для JavaDoc. Можно даже JavaDoc сгенерить. Смысла нет, но поклонникам ООП может быть приятно.

Скорее всего жить станет легче ))) т.к. где там может возникнуть "круг" - мне вообще не представить.
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40056000
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leonid Kudryavtsev,

try { // создаем папку для файлов операций OPER
Files.createDirectory(Path.of(FoolOperPath));
} catch (IOException e) {
e.printStackTrace();
}

всплыло:

java.nio.file.FileAlreadyExistsException: D:\MyProjects\task1\OPER
at java.base/sun.nio.fs.WindowsException.translateToIOException(WindowsException.java:87)
at java.base/sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:103)

а когда перехватываю
try { // создаем папку для файлов операций OPER
Files.createDirectory(Path.of(FoolOperPath));
} catch (FileAlreadyExistsException e) {
e.printStackTrace();
}
получаю
D:\MyProjects\task1\src\com\home\Main.java
Error:(85, 42) java: unreported exception java.io.IOException; must be caught or declared to be thrown
Information:java: /D:/MyProjects/task1/src/com/home/Main.java uses unchecked or unsafe operations.
Information:java: Recompile with -Xlint:unchecked for details.
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40056015
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev,
+1
Код: java
1.
2.
3.
4.
5.
main(){
    читаемПараметры() ;
    создатьПапку() 
  ...... 
   
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40056025
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С одной стороны - идиотское задание
С другой стороны - желание сделать хорошую программу для пользователя
в целом получилось - смесь ежа и колючей проволоки

IMHO
Разбить на процедуры (в обратном порядке)
1. Ф-ция генерирующая одну операцию, возврашает String

Код: java
1.
DateTimeFormatter formatDate = DateTimeFormatter.ofPattern("dd-MM-uuuu   hh:mm:ss:ms");


форматтер требуется между запусками, т.ч. код лучше вынести в отдельный класс и глобальные (в рамках класса) переменные/константы, типа форматера, создавать один раз в конструкторе/методе инициализации

2. Процедура генерирующая один файл

3. Процедура генерирующая набор файлов по списку ArrayList<String>

4. соответственно - процедура преобразующая конец командой строки args в список ArrayList<String>

ну и дальше, по необходимости

==============
По коду:

Код: java
1.
        if (System.getProperty("os.name").toLowerCase().contains("windows")){


Как уже сказали:

https://docs.oracle.com/javase/7/docs/api/java/io/File.html
File classstatic String pathSeparator
The system-dependent path-separator character, represented as a string for convenience.
static char pathSeparatorChar
The system-dependent path-separator character.
static String separator
The system-dependent default name-separator character, represented as a string for convenience.
static char separatorChar
The system-dependent default name-separator character.


NOTE: Только сейчас заметил, что используется класс File s , вместо нормального File. Похоже, поэтому, и NIO ошибка вылезает. Меньше знаний - меньше печали (что такое Files и как с ним работать - вот лично я не знаю)

Код: java
1.
2.
3.
4.
5.
            // проверка 1го параметра, существует ли файл, который указан в 1ом аргументе
            // должен существовать в каталоге запуска программы
            if (Files.notExists((Paths.get(FoolPathOfficesTxt)))) {
                ErrCount = 1;
            }


Вас это просили?
В задание про необходимость проверки ничего нет - в топку
Нет кода - нет ошибок

Ошибка и так будет, когда попытаемся открыть файл, которого нет.

Нечего переусложнять тестовая (б#$%) задание проверками и ф-ционалом о котором не просили. IMHO

Код: java
1.
2.
3.
                if (IsDigit <= 0) {
                    ErrCount = 12;
                } else {


Ну отрицательное - ну и пофиг. Тогда ничего и не создастся.
Правила проверки параметров в задании были? не было? - в топку

Код: java
1.
2.
3.
4.
5.
6.
            if (Files.notExists((Paths.get(FoolOperPath)))) {// если не существует папка OPER пытаемся ее создать
                try { // создаем папку для файлов операций OPER
                    Files.createDirectory(Path.of(FoolOperPath));
                } catch (IOException e) { // тут непонятно - то IOException? то NIOException?
                }
            }


В задании ничего про папку OPER не увидел.
Про необходимость ее создавать, если ее нет - так же.
Туда же. Т.е. - в топку

Код: java
1.
            if (ErrCount == 0) { // если  ошибок не обнаружено выполняем программу



if и простыня текста - за гранью добра и зла.

название переменной:
1. с большой буквы
2. с Count
за гранью добра и зла

Код: java
1.
                try { //начало читаем файл Offices.txt


Try знаем... это хорошо

Код: java
1.
2.
                } catch (IOException q) {
                }


ошибки тупо игнорируем?
даже не хочу думать, почему так
но просто игнорировать ошибки - лучше бы ее вообще не обрабатывали

Кроме того, дальше по коду будет try for resource. Почему здесь тогда просто try?

Или Вы знаете / умеете try с ресурсами, тогда его всюду и впихиваете. Или не умеете или не любите - тогда нафиг он вообще где-то. Делаете одностильно. Пусть ужасно, но однообразно

Файл в случае ошибки НЕ закрывается. (а вот это уже не предирка, а реальный косяк)

Чтение PosArrayList - явно напрашивается на отдельную процедуру/ф-цию

Нужна ли внутри нее обработка ошибок, вообще под вопросом. Ну не обработали ошибку, ну пролезет exception на уровень выше. Если использовать try с ресурсами, то все нормально (но у Вас тут не так)

IMHO Если код можно не писать - лучше его не писать. Нет кода - нет ошибок программиста. IMHO чисто мое

Код: java
1.
                Charset DefCharsetOper = Charset.forName("windows-1251");


Нигде про кодировки в задании ничего не было. Почему windows-1251 ?
Туда же - в топку

Код: java
1.
2.
                    if (Files.exists((Paths.get(FoolPathOperFiles)))) {
                        System.out.println("Измените параметр.Файл уже существует " + FoolPathOperFiles);


Или эту ситуацию мы считаем ошибкой - выдаем исключение и пошли все нафиг
Или это не ошибка. Вроде стандартное поведение - просто перезатираем файл. Чем оно не устраивает? Отличное от стандартного поведение в задание указано?

Туда же - в топку

Код: java
1.
IsDigit



Бл№;%.
Почему переменная Is Digit ?
И с заглавной буквы.

Код: java
1.
                            WriterOper.close();


Вроде же
try for resource
мне кажется в этом случае .close() лишний
поменять close на комментарий, что закрывать файл не нужно, т.к. try for resource

Note: проверить по документации! Я не уверен

Код: java
1.
2.
3.
                        } catch (IOException x) {
                            x.printStackTrace();
                        }


Вывели простыню на экран.... и ПРОИГНОРИРОВАЛИ ошибку
Замечательно
Или ошибки НЕ обрабатываем и просто их отправляем автоматом на уровень выше. Или как-то нужно обрабатывать. Раз в задании ничего не сказано - можно ничего и не делать.

При нормальном течении процесса - пытались закрыть файл. При ошибке - закрытия файла делать не стали. Опять раздвоение личности.

Туда же - в топку

Код: java
1.
2.
3.
WriterOper.flush();
                                String Progress = String.format("%d \r", i);
                                System.out.print(Progress);


Зачем flush?
System.out в рабочем коде? Вы серьезно?

Туда же - в топку


проще самому написать, чем пытаться чужой код перелопачивать.
половину делать не просили, не зачем было и делать.

IMHO & AFAIK

Обработка ошибок за гранью добра и зла. Лучше бы ее не было. Ну есть ошибка, ну выскочит стандарное сообщение в консоль. Обрабатывать ошибки в задании же не просили.

В main можно вообще было без всякого errCode обойтись. Отругаться в консоль и return.

IMHO

много знаний - много печали
не забывайте, что все "суета сует"

Проще надо быть. Особенно с тестовыми заданиями. Которые расчитаны на уровень студента/школьника.

IMHO
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40056050
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leonid Kudryavtsev,

спасибо, буду прорабатывать замечания.

"Правила проверки параметров в задании были? не было? - в топку"

теперь об излишествах.

само собой это ИМХО. ничего личного ))

как человек, который сам принимал на работу и программистов и админов,
а еще как пользователь софта разного уровня могу по своему опыту резюмировать следующее -
программер, который не проверяет пользовательский ввод и манкирует подобными мелочами - в результате добавляет себе и пользователям(клиентам) и снова себе отложенных во времени проблем по экспоненте.
Подобный подход в итоге привел к тому, что в банковском софте за невменяемо дикие для меня деньги поиск ничего не ищет, потому что лишний пробел затесался в конец строки ввода.
Кто то не сделал что то вроде alltrim () потому что это не было указано в техзадании? (тут у меня наливаются кровью глаза, а рука ищет парабеллум.)
Инкрементный поиск %;$#@ по справочнику не делается, потому что в тех задании нет, КАРЛ!!. А у юзера кровища из глаз хлещет просматривать простыни выпадающих списков в поиске нужного элемента.
(я щас инфаркт первый схвачу).

Так вот лично я бы принял на работу среднего медленного, но ОТВЕТСТВЕННОГО за свой код программера, чем очередного гения, которому лениво подумать о тех, кто будет пользоваться его софтом.

поэтому я и постарался продумать ошибки ввода параметров

Но, должен признать, что времена изменились. Когда я писал софт с 1997 по 2005
у меня было достаточно времени на написание софта и проработку многих "лишних" нюансов. Мне ставили сроки которые декларировал я. А сейчас сроки обозначает бизнес.
Когда тупо копируют западные методы менеджемента типа Agile и прочего прочего,
у разработчика часто нет времени на написание годного софта. Всеобщая тенденция успеть выпустить гуано(продадим сначала потом, если что, доработаем) вперед конкурента привела к тому, что мы все покупаем гуано во всех сферах, которое не дорабатывается.

еще раз спасибо за замечания
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40056051
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leonid Kudryavtsev,

растащило меня ))))

мой нач когда то давно давно давно сказала мне, что если пользователь один раз ввел какие то данные в систему, то если я что то напишу такое, что ему придется второй раз вводить одни и те же данные, то она лично меня повесит за сараем.
и я считаю, что она права уже полтора десятка лет.

и когда я вижу как жена в страховой компании (не мелкой) работает в двух системах вводя одни и те же данные и у них это называется миграцией мне просто хочется самому повеситься.
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40056055
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leonid Kudryavtsev,

просьба не счесть за наглость, можно еще вопрос ?
по второй задаче не подскажете какой лучше компонент/коллекцию выбрать с точки зрения того, что бы запихнуть в него файл с операциями из первой задачи и с малой кровью сделать нужные группировки и подсчеты сумм в разрезе групп ?


я могу это сделать парой строк на sql, но тут sql не предполагается ))).
когда то были красивые дрова ODBC , которые позволяли писать sql запросы к плоским структурированным тхт файлам и это было здорово. Сейчас ничего такого не смог найти.

а еще даже в самых ранних версиях фокспро была так называемая макроподстановка - переменной присваивались строки кода, которые потом выполнялись как код. Можно было связать переменную с полем в БД, писать в рантайме код в текстовых полях ДБ, менять его и выполнять без перекомпиляции приложения.
увидел в Java лямбда выражения - это попытка сделать что то аналогичное ?
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40056060
olegeos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да не нужен здесь sql.
Зачем так много static???
Это зачем?
Класс вроде Main называется.
Код: java
1.
2.
3.
  static class linedata {

    }


Уже несколько раз порекомендовали вынести все действия по методам.
В
Код: java
1.
2.
3.
 public static void main(String[] args ){
// здесь вызвать главный метод (или рабочий)
}



Чисто предположение, задание это то что прописано в комментариях(вывод в консоль)?
Каждое действие в отдельный метод, так легче все это отладить/изменить/доработать/перехватить исключения и т.д.
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40056062
Фотография Сергей Лалов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pesets
Leonid Kudryavtsev,

по второй задаче не подскажете какой лучше компонент/коллекцию выбрать с точки зрения того, что бы запихнуть в него файл с

а еще даже в самых ранних версиях фокспро была так называемая макроподстановка - переменной присваивались строки кода, которые потом выполнялись как код.
Можно было связать переменную с полем в БД, писать в рантайме код в текстовых полях ДБ, менять его и выполнять без перекомпиляции приложения.

увидел в Java лямбда выражения - это попытка сделать что то аналогичное ?


Берите ArrayList, работает быстро.
Для работы с парсингом текстового файла можете использовать тот же самый Scanner.
Создайте класс типа pojo (класс с тем минимумом полей , которые нужны вам для расчета сумм. Так как вы долго и упорно писали
на SQL представьте себе какую нибудь итоговую таблицу с столбцами из которой вам наиболее удобно будет делать группировку и сортировку. Представили? Теперь создавайте класс java с таким же типами и набором полей.)
При обработке текстового файла, снимайте значение каждой строки и передавайте в соответствующие поля pojo.
Его (экземпляр класса pojo c спарсенными данными) и запихивайте в ArrayList как будто бы это одна строка таблицы /строка из текстового файла .

После наполнения коллекции ,все что угодно, хоть в хвост, хоть в гриву. Сортируйте пузырьком к примеру, циклом можно посчитать суммы ,среднее, и проч.

лямбда это не попытка, это уже давно реализованная функция языка:)
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40056065
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
olegeos,
задача на первой странице 9-ый пост
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40056066
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
[quot Сергей Лалов#22298499]
pesets
Leonid Kudryavtsev,

лямбда это не попытка, это уже давно реализованная функция языка:)


ну вот чесслово - слабое подобие левой руки по сравнению с фоксовской макроподстановкой бородатых годов.
но я понимэ - фокс все таки интерпретатор
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40056067
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сергей Лалов
pesets
Leonid Kudryavtsev,

по второй задаче не подскажете какой лучше компонент/коллекцию выбрать с точки зрения того, что бы запихнуть в него файл с

а еще даже в самых ранних версиях фокспро была так называемая макроподстановка - переменной присваивались строки кода, которые потом выполнялись как код.
Можно было связать переменную с полем в БД, писать в рантайме код в текстовых полях ДБ, менять его и выполнять без перекомпиляции приложения.

увидел в Java лямбда выражения - это попытка сделать что то аналогичное ?


Берите ArrayList, работает быстро.
Для работы с парсингом текстового файла можете использовать тот же самый Scanner.
Создайте класс типа pojo (класс с тем минимумом полей , которые нужны вам для расчета сумм. Так как вы долго и упорно писали
на SQL представьте себе какую нибудь итоговую таблицу с столбцами из которой вам наиболее удобно будет делать группировку и сортировку. Представили? Теперь создавайте класс java с таким же типами и набором полей.)
При обработке текстового файла, снимайте значение каждой строки и передавайте в соответствующие поля pojo.
Его (экземпляр класса pojo c спарсенными данными) и запихивайте в ArrayList как будто бы это одна строка таблицы /строка из текстового файла .

После наполнения коллекции ,все что угодно, хоть в хвост, хоть в гриву. Сортируйте пузырьком к примеру, циклом можно посчитать суммы ,среднее, и проч.

лямбда это не попытка, это уже давно реализованная функция языка:)


искренний сенкс хоть понял куда двигать
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40056071
Фотография Сергей Лалов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pesets

ну вот чесслово - слабое подобие левой руки по сравнению с фоксовской макроподстановкой бородатых годов.
но я понимэ - фокс все таки интерпретатор


В основе лямбды лежат замыкания. В sql замыканий нет. (имею в виду не циклические ссылки с ошибкой, а то сейчас пойдёт описание возможных традиционных коротышей ) а именно понятие замыкание. Наверное это в интерпретации sql что то близкое к оконным функциям. Да, наверное так.

Из всех ЯП java и sql это пожалуй самые диаметрально противоположные друг к другу)
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40056076
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev,

Это олдовый кодер из тех времён, когда во всю юзали битовые маски. Он вам, ребятишкам, всем еще покажет!
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40056077
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
>Интересная система счисления: 1, 12, 1234.
===)))))))))

Это битовая маска на минималках.
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40056080
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pesets,

Итак из обещанных двух страниц глумления не набралось и половины, что само по себе не плохо.
Продолжаем:)


Код: 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.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
PosName = PosName.replaceAll("[^\\da-zA-Zа-яёА-ЯЁ ]", "").trim();
//По этой регулярке сразу видно - тёртый калач.

System.out.println("Краткая справка:");
//Такое лучше засунуть в массив, потом перебрать его в цикле и выплюнуть по строчке 
(сделать соответствующий метод) чтобы у эстетов не страдало чувство прекрасного

if (Files.notExists((Paths.get(FoolPathOfficesTxt)))) {
                ErrCount = 1;
}

//В общем-то можно сразу выругаться и сделать return. Дальнейшая работа 
не имеет смысла в этом и остальных случаях.

if (ErrCount == 0) { // если  ошибок не обнаружено выполняем программу
//и в итоге вот этот if можно убрать

//вместо
PosArrayList = new ArrayList();
//сделать
PosArrayList = new ArrayList<String>();
И это будет массив строк, а не массив чего-то (не придётся делать касты).


PosArrayList.removeAll(Arrays.asList(null, ""));
//Перебирать готовый массив на обязательно. Можно проверять, что строчка 
пустая еще на этапе заполнения массива.

LocalDateTime CurrDateTimeLow = LocalDateTime.of(CurrDateTime1.getYear(), 1, 1, 0, 0, 0, 0).minusYears(1);
//надо или комментарий или заюзать какой-нибудь SimpleDateFormat как советовали выше.
Long CHisloMinSecLow = CurrDateTimeLow.toEpochSecond(TimeZone);
//Слишком разухабистое название, я бы назвал просто timeStampMin и timeStampMax

Charset DefCharsetOper = Charset.forName("windows-1251");
//такое лучше выносить в параметры или константы

for (int countArgs = 2; countArgs < NumParams; countArgs++) {
//Вот это - лучше разбить на две стадии - создание файлов и заполнение. Может быть 
так, что файл уже есть/занят и тогда код свалится доработав частично. Переписывать 
файл или нет по дефолту - вопрос отдельный, лучше тоже вынести в константу
int Count1 = NumsOper;
//Count1 - в общем-то не нужен.

DateTimeFormatter formatDate = DateTimeFormatter.ofPattern("dd-MM-uuuu   hh:mm:ss:ms");
//Будет постоянно происходить реюз и вызов фабрики со сборкой, лучше вынести за цикл.

double RandomSumOper = Math.random() * (AmountUp - AmountLow) + 1 + AmountLow;
//Чем каждый раз это делать, лучше сделать метод типа double rng(from, to)

LineData = String.format("%d; %s; %s ; %s; %.2f; \n", i + 1, POS, RandomDate, NomerOper, RandomSumOper);
//Даа. Молодые так не умеют. Они просто скалывают строку:)
//\n - разделитель не видновый (хоть кодеровка и вендовая). Надо или использовать System.lineSeparator() 
или куда-то явно это вынести

WriterOper.flush();
//Делать, наверное, не обязательно в цикле.

String Progress = String.format("%d \r", i);
//Тут лучше сделать общий прогресс в процентах, а не записей по файлу. 
//(а еще сделать полоску и скорость и сколько времени осталось, но это уже шик)
//В мануал надо добавлять рабочие примеры. 



В целом по коду:
1. Как сказали выше прочитать жабее соглашение по написанию кода - назавния класса с заглавной буквы, полей и переменный со строчной.
2. Кучу когда разбить на мелкие методы
Для данного ТЗ этого хватит. Городить что-то с ООП ради ООП я считают тут излишне. Хотели бы оопоты дали бы тз, где это уместно.

По поводу самого ООП (и ради наброса) у каждого своё мнение не только относительно его нужности, но и (о ужас) относительно того, как правильно выстраивать иерархию классов. Одни будут считать, что квадрат должен наследоваться от ромба, а другие, что ромб от квадрата. И пока ты 10 раз перепишешь свой лапшекод они еще будут сраться.

Кстати вообще не понимаю, что на дядку наехали. Ладно, бы очередной студень, который нихрена не хочет делать, а хочет сдать лабу или работу за 100500 денег.
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40056081
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pesets,

По второй задаче, видимо хотят, велик, который будет делать sum с group by.
Напрашивается суммирование в HashMap<String, HashMap<Integer, BigDecimal> (за double для денег тут шкуру спустят) Первый ассоц. массив - по точкам, в нём массивы по дням (от начала Эпохи) с суммой или pojo с точкой, днём и суммой (чтобы легче было делать сортировку). Потом map перегнать в какой-нибудь arrayList и отсортировать.
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40056093
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Лалов,
pojo +1
crutchmaster
PetroNotC Sharp
>Интересная система счисления: 1, 12, 1234.
===)))))))))

Это битовая маска на минималках.
))) я боялся этого.
Очень сексуально))))
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40056094
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
crutchmaster,
Про ООП (тема топика) пусть хотя бы один постулат из трех сделает - ИНКАПСУЛЯЦИЯ
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40056095
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
crutchmaster
Leonid Kudryavtsev,

Это олдовый кодер из тех времён, когда во всю юзали битовые маски. Он вам, ребятишкам, всем еще покажет!
в IT все меняется за 5 лет. Он опоздал. И его опыт вреден. Мозг замусорен.
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40056096
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Неужели мы тут про замыкания начали?
Значит уже все пьяные))
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40056097
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
crutchmaster,

Парни, можете ржать скока хотите ))))). могу еще повеселить ))

в моем 9 классе я в школе комп кодировал на перфорированных текстолитовых пластинах. 8 штук пластин размером 12"-13" с дырками диаметром миллиметров 7-8.
комп выглядел так - тогда это был письменный стол с врезанной в него печатной машинкой (монитор по модному).
сбоку ящик (читай - системный блок) в который вставлялись перфорированные текстолитовые пластины, в круглые дырки которых специальным хз как его назвать инструментом я заталкивал медные цилиндрики. Надеваешь цилиндрик на этот инструмент и впрессовываешь его в текстолит. Если не в ту дырку запихнул - ошибка, так сказать, компилятора кхе... выпрессовываешь обратно. включаешь дебаггер в башке. Потом трудно выключался кстати (тупил перед дверью в хату - думал какую команду нужно впечатать, что бы позвонить в дверь).
каких то 8 часов и я напечатал знаком "х" ну как бы икс - симпатичную ракетку. Забыл про еду и родителей. ...зды они мне дали потом. 1986 год был ))
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40056099
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pesets
crutchmaster,

Парни, можете ржать скока хотите ))))). могу еще повеселить ))

в моем 9 классе я в школе комп кодировал на перфорированных текстолитовых пластинах. 8 штук пластин размером 12"-13" с дырками диаметром миллиметров 7-8.
комп выглядел так - тогда это был письменный стол с врезанной в него печатной машинкой (монитор по модному).
сбоку ящик (читай - системный блок) в который вставлялись перфорированные текстолитовые пластины, в круглые дырки которых специальным хз как его назвать инструментом я заталкивал медные цилиндрики. Надеваешь цилиндрик на этот инструмент и впрессовываешь его в текстолит. Если не в ту дырку запихнул - ошибка, так сказать, компилятора кхе... выпрессовываешь обратно. включаешь дебаггер в башке. Потом трудно выключался кстати (тупил перед дверью в хату - думал какую команду нужно впечатать, что бы позвонить в дверь).
каких то 8 часов и я напечатал знаком "х" ну как бы икс - симпатичную ракетку. Забыл про еду и родителей. ...зды они мне дали потом. 1986 год был ))


и еще раз всем спасибо, пойду курить ваши корректировки
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40056100
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pesets,
Если любите юмор, то не все потеряно.
Удачи!
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40056101
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp
crutchmaster
Leonid Kudryavtsev,

Это олдовый кодер из тех времён, когда во всю юзали битовые маски. Он вам, ребятишкам, всем еще покажет!
в IT все меняется за 5 лет. Он опоздал. И его опыт вреден. Мозг замусорен.


вот я и пытаюсь себе его очистить . ну и я еще помню зато как не делать гуано для юзера.
и поверьте - три закона диалектики всегда во всем работали, даже до того как их сформулировали... в данном случае это закон отрицания отрицания - все повторяется просто на другом витке спирали. иначе - новое - это хорошо забытое старое.
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40056105
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp,

Да ничего не потеряно. По крайней мере с UI и юзерами те же самые грабли, что и всегда. Пойдёт QA/тестировщиком будет молодым хипсторам мозги делать с их говнореактами.
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40056118
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
crutchmaster,
Пример лишних целей мешающих жить
авторпрограммер, который не проверяет пользовательский ввод и манкирует подобными мелочами - в результате добавляет себе и пользователям(клиентам) и снова себе отложенных во времени проблем по экспоненте.
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40056123
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp,

Ну так это, а что? Надо херак-херак и в продакшон? Конечно, то, что введено корявыми руками надо фильтровать и как-то обрабатывать.
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40056126
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
crutchmaster,
Надо
1 разделить валидацию на фронт, бэк, субд
2 инкапсулировать в функции по ООП
3 не парится если задание НЕ ПРО ВВОД
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40056127
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
crutchmaster,

Обычно пенсионеры копаются в мелочах неделю и не видят главное что нужно руководителю проекта у которого сроки
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40056132
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
3 не парится если задание НЕ ПРО ВВОД

Так оно и не про фронт, бек, субд и ооп.
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40056133
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
Обычно пенсионеры копаются в мелочах неделю и не видят главное что нужно руководителю проекта у которого сроки

Вот будешь пенсионером тоже будешь копаться. За сроками бегать есть молодые

До ума доводить эти ваши проекты тоже кому-то надо.
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40056152
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
crutchmaster
PetroNotC Sharp
3 не парится если задание НЕ ПРО ВВОД

Так оно и не про фронт, бек, субд и ооп.

Он в первом посте два раза твердил про ООП.
А потом послал... меня... его перечитать.
))))
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40056197
Фотография Сергей Лалов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pesets
crutchmaster,
а вот когда вас под полтос (не дай бог конечно) "оптимизируют" на улицу после 15 лет работы руководителем среднего звена не IT,
с двумя детями и ипотеками поневоле вспомнишь свой давний стаж функционального программера.


Это на самом деле национальная проблема, сочувствую. Реально по ситуации - сможете вписаться в ближайшее время только по знакомству. К полтиннику по идее должны быть какие то знакомые, которые войдут в ситуацию и смогут помочь.
А что с самим SQL? Админом SQL не? У вас большой опыт.

Посмотрите вопросы для джунов по Java, вы из этого на сколько сможете примерно дать ответ?
Там же есть краткие и развернутые ответы на каждый из вопросов. Это реальный , боевой список.
А не такой ,как на курсах , где вешают лапшу на уши.

https://jsehelper.blogspot.com/2016/08/java-junior-interview-questions.html
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40056256
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp
crutchmaster,
Пример лишних целей мешающих жить
авторпрограммер, который не проверяет пользовательский ввод и манкирует подобными мелочами - в результате добавляет себе и пользователям(клиентам) и снова себе отложенных во времени проблем по экспоненте.


а еще жить мешают глупости, которые люди иногда говорят, пардон конечно.
но то что вы сейчас сказали - это быстроденьги - срубил и свалил.
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40056260
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp
crutchmaster,

Обычно пенсионеры копаются в мелочах неделю и не видят главное что нужно руководителю проекта у которого сроки


а еще пенсионеры бывают как раз руководителями таких проектов

и уверяю - красивым и стройный кодом можно запросто сделать гуано продукт в целом, не уделяя внимание каким то мелочам.
о значении которых пенсионеры помнят и знают в силу своего опыта.
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40056263
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сергей Лалов
pesets
crutchmaster,
а вот когда вас под полтос (не дай бог конечно) "оптимизируют" на улицу после 15 лет работы руководителем среднего звена не IT,
с двумя детями и ипотеками поневоле вспомнишь свой давний стаж функционального программера.


Это на самом деле национальная проблема, сочувствую. Реально по ситуации - сможете вписаться в ближайшее время только по знакомству. К полтиннику по идее должны быть какие то знакомые, которые войдут в ситуацию и смогут помочь.
А что с самим SQL? Админом SQL не? У вас большой опыт.

Посмотрите вопросы для джунов по Java, вы из этого на сколько сможете примерно дать ответ?
Там же есть краткие и развернутые ответы на каждый из вопросов. Это реальный , боевой список.
А не такой ,как на курсах , где вешают лапшу на уши.

https://jsehelper.blogspot.com/2016/08/java-junior-interview-questions.html


за ссылочку спасибо

для тех кому это интересно - всеобщая тенденция оптимизации бизнеса выглядит следующим образом :
Все бабло консолидируют в столице. На периферии оставляют продажников, бегунков по полям. вся поддержка, бэкофис, андеррайтинг, и прочая... консолидируются по хабам, которые располагают в регионах с низкой зарплатой. Остальных на улицу. Все очень логично - с точки зрения большого бизнеса. Насчет точки зрения на эту ситуации правительства не осведомлен.
Это уже произошло и процесс набирает обороты во ВСЕХ областях по всем мультифилиальным компаниям.
так что те, кому за 40 и живет на периферии есть о чем задуматься.
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40056269
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pesets
PetroNotC Sharp
crutchmaster,
Пример лишних целей мешающих жить
пропущено...


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

Я сказал это 22298605
А вы пришли оффтопить про жизнь?
Тут уже были такие по молодости. Рассуждали про зарплаты и про жизнь.
Все пропали. Так как в java единственое место где не оффтопят.
Прекращайте.
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40056282
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp
pesets
пропущено...


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

Я сказал это 22298605
А вы пришли оффтопить про жизнь?
Тут уже были такие по молодости. Рассуждали про зарплаты и про жизнь.
Все пропали. Так как в java единственое место где не оффтопят.
Прекращайте.


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

Всем сорри и спасибо!
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40056287
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pesets,
Я работал и сделал перекур. А у вас как то наоборот)))
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40056308
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp
crutchmaster
пропущено...

Так оно и не про фронт, бек, субд и ооп.

Он в первом посте два раза твердил про ООП.
А потом послал... меня... его перечитать.
))))


как говорится
не хотел никого обидеть, случайно просто повезло.

возможно я как то коряво выразился в первом посте - да, я понял, что задача не про ООП. но я и не это имел в виду.
причина моего поста была в том, я сам видел, что софтинка хоть и правильно работает - но коряво написана.
мне нужно было понять - увидеть как это должно было быть правильно (ну или оптимально для понимания кода) с точки зрения стиля java написано. Ну , например, что именно нужно вывести в отдельные классы, может разбить по разным package. Я получил ответы на эти вопросы.

я ночью чаще работаю, когда все спят кроме котов.
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40056342
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pesets,
Стиль кода очень зависит от фреймворка платформы.
Он определяет как писать.
Это если по грубому.
Поэтому в java нужно сразу тут же сидеть у компа и писать.
Вот как сядешь за комп, так и приходи.
Выше говорил, что ночей мало. Нужно 8 часов в день писать. А не говорить.
Кому счас легко (с)
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40056431
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp
pesets,
Вот как сядешь за комп, так и приходи.
Выше говорил, что ночей мало. Нужно 8 часов в день писать. А не говорить.
Кому счас легко (с)

Вот без обид - если конструктив кончился, то остальные слова явно лишние, чесслово.
ничье мнение сколько мне писать и сколько говорить меня не интересовало.
это слегка выпрыгивает за рамки воспитания элементарного.
еще раз без обид.
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40056443
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pesets,
Добро пожаловать в публичный форум.
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40056489
Фотография Сергей Лалов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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.
public class Sales { // этот класс содержит поля, которые полностью совпадают с полями из текстового файла
    private int sale_id; // код продажи
    private Date sale_date; // дата продажи
    private double sale_summ; // сумма продажи
    private String product; // продукт
    private boolean sale_confirmation; // продажа подтверждена

    public int getSale_id() {
        return sale_id;
    } //метод для получения значения кода продажи
    public void setSale_id(String sale_id) {  //метод для вставки значения кода продажи, текст преобразуется в число
        this.sale_id = Integer.parseInt (sale_id);
    }
    public Date getSale_date() {
        return sale_date;
    } //метод для получения значения даты продажы
    public void setSale_date(String sale_date) throws ParseException { //метод для вставки значения даты продажи, текст преобразуется в дату
        SimpleDateFormat format = new SimpleDateFormat();
        format.applyPattern("dd.MM.yyyy");
        Date docDate= format.parse(sale_date);
        this.sale_date = docDate;
    }
    public double getSale_summ() {
        return sale_summ;
    } //метод для получения значения суммы продажи
    public void setSale_summ(String sale_summ) { //метод для вставки значения даты продажи, текст преобразуется в double
        this.sale_summ = Double.parseDouble(sale_summ);
    }
    public String getProduct() {
        return product;
    } //метод для получения названия товара
    public void setProduct(String product) { //метод для вставки названия товара, он и так текст, особо писать ничего не надо
        this.product = product;
    }
    public boolean isSale_confirmation() { //метод для получения значения подтверждения продажи
        return sale_confirmation;
    }
    public void setSale_confirmation(String sale_confirmation) { //метод для вставки значения подтверждения продажи, текст преобразуется в boolean
        this.sale_confirmation = Boolean.parseBoolean(sale_confirmation);
    }
}



Все, класс создан, и он в дальнейшем будет играть роль элемента 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.
public class ParseTxt { // основной класс, в котором реализован парсинг данных с текстовых файлов ,с последующей закруткой их в ArrayList
    //Методы приведения типов из текста в нужный тип (дата,число,текст,булевы реализованы в сеттерах класса pojo - Sales
    //думаю так каноничней и по феншую, потому что приведение в принципе можно организовать и тут при помощи nextInt,nextDouble итд
  private  ArrayList<Sales> saleslist = new ArrayList<Sales>();
  public ParseTxt setListFromFile(String filePath) throws FileNotFoundException, ParseException {
    Scanner s = new Scanner(new File(filePath));// та фигня ,которая будет бегать от слова к слову по выбранной строке
    // PS делиметер для сканнера обычно пробел
    s.nextLine(); //!!!! переходим на вторую строку текстового файла , чтобы заголовки таблицы из файла не попали в парсинг
    while (s.hasNextLine()) { // для каждой строки в текстовом файле
           Sales sales = new Sales(); // создаем новый экземпляр класса Sales , в него мы будем запихивать текстовое значение
        //элемента строки текстового файла , где каждый элемент это значение отдельного столбца
        sales.setSale_id(s.next()); //снимаем первое значение в строке - это у нас КодПродаж и передаем в экземпляр класса Sales
        sales.setSale_date(s.next()); //переходим при помощи next ко второму значению в строке - ДатаПродажи и передаем в экземпляр класса Sales
        sales.setSale_summ(s.next()); //переходим при помощи next к третьему значению в строке - СуммаПродаж и передаем в экземпляр класса Sales
        sales.setProduct(s.next()); //переходим при помощи next к 4му значению в строке Продукт  и передаем в экземпляр класса Sales
        sales.setSale_confirmation(s.next()); //переходим при помощи next к 5му значению в строке ПродажаВыполнена  и передаем в экземпляр класса Sales
        saleslist.add(sales); //пихаем в коллекцию заполненный экземпляр класса Sales и переходим на новую строку текстового файла
        }
    s.close();// закрываем текстовый файл, он нам больше не нужен
    return this; //возвращаем текущий экземпляр текущего класса  ParseTxt, это нужно чтобы можно было в одном выражении при вызове указать любое количество
      //текстовых файлов, которые будут загружаться в один общий список типа ArrayList<Sales> saleslist
    }
public ArrayList<Sales> getListFromClass (){ //метод ,который возвращает заполненный список
    return saleslist;
    }
}



Все, вуаля, можно пользоваться, получить результирующий список из нескольких файлов очень просто .
Он очень лаконичен.

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
.....
public static void main (String[] args) throws FileNotFoundException, ParseException {
        ArrayList<Sales> мойСуперСписок = new ParseTxt() //инициализируем класс парсер
                .setListFromFile("C:\\Users\\SL\\Desktop\\sales1.txt") //закручиваем в список данные из первого текстового файла
                .setListFromFile("C:\\Users\\SL\\Desktop\\sales2.txt")  //закручиваем в список данные из второго текстового файла
                .getListFromClass();// присваиваем переменной мойСуперСписок значение переменной типа список из класса ParseTxt 
    }
.....



После вызова, вы можете делать с ним что угодно, он полностью соответствует структуре таблицы, как по списку полей, так и по типам данных. И усё. Дальше можно складывать, вычитать, группировать.
Либо циклом по старинке. Либо использовать Stream API. Что ближе, и что больше знакомо.
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40056492
Фотография Сергей Лалов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сами файлы.
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40056527
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сергей Лалов,
огромное спасибо, чужой опыт самое ценное. Курю ваш пример.
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40056528
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
[quot Сергей Лалов#22299164]
pesets

из базовых возможностей джавы, на подножном корму так сказать .


Сергей, а если выходить за пределы базовых возможностей java, что бы вы сами использовали из java-фреймворков / доп библиотек каких нибудь для решения аналогичных задач ? я имею в виду ту часть задачи, которая не связана с БД

Лично я само собой решал бы все через JDBC и БД.
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40056529
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pesets
Лично я само собой решал бы все через JDBC и БД.

Надо просто осилить рефлексию и писать всё линейно станет сразу лень. Захочется чтобы "я сказал и оно сделалось, а не перечислять 100500-й раз всё эти элементарные шаги".
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40056537
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
crutchmaster,
можно как то тебе написать в личку ?
Хочу сказать личное спасибо в виде подгона хорошей уже сейчас, а в перспективе очень хорошей темы )
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40056538
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
crutchmaster
pesets
Лично я само собой решал бы все через JDBC и БД.

Надо просто осилить рефлексию и писать всё линейно станет сразу лень. Захочется чтобы "я сказал и оно сделалось, а не перечислять 100500-й раз всё эти элементарные шаги".


спрошу не так завуалированно - не хотелось говорить возможно явные глупости. ))

какими бы сторонними библиотеками ты сам бы воспользовался для решения подобных БД задач без БД ?
или сам что используешь (фреймы , сторонние библиотеки) для решения своих задач ?

может эту задачу (или подобные) проще делать я не знаю ну там может спринг что то особо уютное в этом плане предлагает или еще что .
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40056539
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pesets
кими бы сторонними библиотеками ты сам бы воспользовался для решения подобных БД задач без БД ?

Всё сильно зависит от конкретной задачи. Если там rest, тупой curd и работодатель платит за жабку - то как все - спринг бут, хибер. Для если надо чего-то много считать из кучи цифер делать еще кучу цифер, то я никогда бы не взял этот сраный хибер и страдал бы с mybatis/jdbi. Без бд, ну делал я обёртку для rabbitmq, там была библиотека для связи с рабитом, да спринг.

pesets
может эту задачу (или подобные) проще делать я не знаю ну там может спринг что то особо уютное в этом плане предлагает или еще что .

Конкретно для такой задачи спринг ничего не предлагает, она слишком маленькая, чтобы его туда тащить. Спринг он соединяет кучу сторонних библиотек, чтобы тебе не создавать и не тащить все эти сраные фабрики фабрик руками в свою иерархию классов, а тупо наставить везде @Autowired, фреймворк сделает где надо new и всё заведётся (пусть не с первого раза и будет долго гатить стектрейсами при запуске)
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40056541
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сергей Лалов,

я вам письмо послал на мыло в профиле. с моим ником в теме . не отмахивайтесь )))
в нем мой телефон, по которому я в мессенджерах
это мое личное так сказать спасибо.
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40056543
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leonid Kudryavtsev,

отправил вам письмо на мыло , которое в профиле с моим ником в теме.
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40056615
Фотография Сергей Лалов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pesets
Сергей Лалов,

я вам письмо послал на мыло в профиле. с моим ником в теме . не отмахивайтесь )))
в нем мой телефон, по которому я в мессенджерах
это мое личное так сказать спасибо.


За номер телефона конечно спасибо)). Но мы ждем от вас тут ваших выкладок, по вашему заданию. Что вы успели сделать на текущий момент)
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40056617
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pesets
можно как то тебе написать в личку ?

jabber на jabber.ru или мыло на яндексе с таким же ником, как на форуме.
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40056628
Фотография Сергей Лалов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pesets

Сергей, а если выходить за пределы базовых возможностей java, что бы вы сами использовали из java-фреймворков / доп библиотек каких нибудь для решения аналогичных задач ? я имею в виду ту часть задачи, которая не связана с БД
Лично я само собой решал бы все через JDBC и БД.


JDBC и БД это само собой. Но это слишком низкоуровневое точечное решение. Наверное сейчас мало кто пишет отдельные решения с нуля для обслуживания определённой бд, пула бд с сети. Для общего образования разве что.

Как и сказал ранее crutchmaster, сейчас основные фреймворки, востребованные на рынке труда это hibernate - для взаимодействия с sql сервером. И spring для написания веб решений и опять же для взаимодействия с sql сервером. Только под другим углом.
Без практики прорваться и изучить сложно. Изучите базовые вещи на Java. Основные понятия. И только потом туда.

PS. И да, ждём ваш код, надеюсь коллективная помощь не прошла даром.
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40056709
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сергей Лалов
pesets
Сергей Лалов,

я вам письмо послал на мыло в профиле. с моим ником в теме . не отмахивайтесь )))
в нем мой телефон, по которому я в мессенджерах
это мое личное так сказать спасибо.


За номер телефона конечно спасибо)). Но мы ждем от вас тут ваших выкладок, по вашему заданию. Что вы успели сделать на текущий момент)


мой номер для того, что бы вкратце по быстрому ввести в тему, которую я прислал )). что бы вам не курить уже прокуренное
пока сделал вот что (архив)

еще курю тесты. по той ссылке что прислали - ну примерно 40 % расскажу, по JDBC 100 % , вспомнил все ))
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40056710
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
crutchmaster,
на яндекс написал
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40056713
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сергей Лалов,


подчистил немного
ребилдился проект без ругани

рабочий класс еще не оформил в отдельный
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40056715
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pesets,

блин не тот архив привязался

вот последний
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40056716
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pesets,

v3_home.zip
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40056727
Фотография Сергей Лалов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pesets,

Ну кстати нормальный объем кода. Единственно как понимаю вы на тестовый период все запихнули в метод main . Чет не запускается у меня. На 41 строке вылетает. У вас генерация текстовых файлов ,согласно первой части задания выполняется?
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40056729
SpringMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ИМХО лучше вообще не стало.
1) Начать надо с того, что посоветовали Leonid Kudryavtsev и PetroNotC, разбить код на логические блоки по разным функциям:
PetroNotC Sharp
Leonid Kudryavtsev,
+1
Код: java
1.
2.
3.
4.
main(){
    читаемПараметры() ;
    создатьПапку() 
  ...... 


У кода вообще нет структуры. Это очень длинная лапша, которую не понять, пока не прочитаешь целиком.
2) Имена переменных/функций не соответствуют конвенциям
3) Есть такое правило для хорошего кода: если внутри функции хочется написать коммент, то или переменные названы непонятно, или надо разбить код на более мелкие функции с понятными названиями. От такого избытка комментов становится чуть-чуть больно.
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40056730
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сергей Лалов,

ну да, рабочую функцию в отдельный класс не выделил
Вы из последнего архива смотрите код v3_home.zip ?
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40056731
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сергей Лалов
pesets,

Ну кстати нормальный объем кода. Единственно как понимаю вы на тестовый период все запихнули в метод main . Чет не запускается у меня. На 41 строке вылетает. У вас генерация текстовых файлов ,согласно первой части задания выполняется?


да, рабочую функцию пока в отдельный класс не выделил - в процессе
вы смотрите код из последнего архива ? v3_home.zip ?

у меня 41 строка fullPathOfficesTxt = homePath + "\\" + args[0].toLowerCase(); - это планирую убрать и найти
что то кроссплатформенное, о чем говорил crutchmaster
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40056733
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SpringMan
ИМХО лучше вообще не стало.
1) Начать надо с того, что посоветовали Leonid Kudryavtsev и PetroNotC, разбить код на логические блоки по разным функциям:
PetroNotC Sharp
Leonid Kudryavtsev,
+1
Код: java
1.
2.
3.
4.
main(){
    читаемПараметры() ;
    создатьПапку() 
  ...... 


У кода вообще нет структуры. Это очень длинная лапша, которую не понять, пока не прочитаешь целиком.
2) Имена переменных/функций не соответствуют конвенциям
3) Есть такое правило для хорошего кода: если внутри функции хочется написать коммент, то или переменные названы непонятно, или надо разбить код на более мелкие функции с понятными названиями. От такого избытка комментов становится чуть-чуть больно.


пытаюсь сделать структуру архив v3_home.zip последний

2. многое поправил по именам - теперь переменные начинаются с маленькой буквы
а вообще ИМХО блин ну должен же быть какой либо плагин для , который выровняет и предложит наименования в соответствии с конвенцией... найду
при слове конвенция Ильф и Петров в уме щас всплывает "Золотой теленок" ))

3. ну я комментирую с той позиции много комментов лучше чем без них - больше для себя, я не предполагал, что придется отчитываться )))))), но я не против совершенно.
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40056780
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pesets,

Не распыляйтесь и не отвлекайтесь. Выделите функции потом приходите.
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40057031
Фотография fixxer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сделайте в гитхабе репозиторий. Будет удобнее следить.
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40057112
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
+1 к гитхабу.
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40057136
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы думаете он тут появится?
По ночам писать это плохо. Днем надо.
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40057152
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp,

как знал! как знал!

я появится обязательно.
вчера просто реальное предложение поступило по работе - sql с тестом
вынужден переключиться

вот что успел пока сделать
что то не учел из предписанного, потому что пока не получилось
но на отдельные функциональные модули разнес
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40057153
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
наверняка еще не совсем по java- феншую
то что сделал билдится без ругани и работает правильно

жду пинков добра
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40057157
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pesets,
Названия классов с большой буквы.
Инфа 100%
Приходи еще.
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40057158
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp
pesets,
Названия классов с большой буквы.
Инфа 100%
Приходи еще.



я щас туго иносказательный сарказм понимаю башка от перегрева кипит
классы нельзя с большой буквы ?
а насчет остального ?
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40057159
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pesets,

Оооочень неудобно.
ClassName className = new ClassName()
Понял?
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40057161
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pesets,
У нас тоже башка болит. Мы на работе.
Переделаешь - приходи
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40057162
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp
pesets,

Оооочень неудобно.
ClassName className = new ClassName()
Понял?

если ты показал как надо, то понял,
а если как не надо, то не понял
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40057165
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pesets,
У меня переменная от имени класса отличается регистром. Первой буквой.
Заканчивай флуд. Работаем.
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40057232
SpringMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
1) названия классов пишут с большой, переменные - с маленькой, методы - с маленькой
2) авторfullPathOfficesTxt = (homePath + "\\" + args0).toLowerCase();
- есть Path.of(homePath, args0, "bla", "bla2")
- toLowerCase - зачем?
3) авторstatic void setSeparator (String args0)
Метод делает не то, как он называется. args0 - какой смысл у этой переменной? Если это путь или название файла, так и назовите так, а не args0
4) авторnumOperFies = numParams - 2; Что 2? Почему 2? - не понятна суть. Нужна переменная с нормальным названием
5) авторimport static com.home.Main.fullPathOfficesTxt;
...
try (FileReader readOfficeTxt = new FileReader(fullPathOfficesTxt)) {

Это очень плохо. Если функция зависит от какой-то динамической, статической переменной, то ее нельзя никак переиспользовать. Нужно переделать на аргумент функции.
6) verifyArgs не останавливает программу
7) и еще куча всего аналогичного
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40057249
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SpringMan
1) названия классов пишут с большой, переменные - с маленькой, методы - с маленькой
2) авторfullPathOfficesTxt = (homePath + "\\" + args0).toLowerCase();

- есть Path.of(homePath, args0, "bla", "bla2")
- toLowerCase - зачем?

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

3) авторstatic void setSeparator (String args0)
авторМетод делает не то, как он называется. args0 - какой смысл у этой переменной? Если это путь или название файла, так и назовите так, а не args0

не смог передать в метод args[0], система все время ругалась, поэтому передал как строку.
метод устанавливает разделитель в пути к файлу. как он еще должен называться ?
я попытался использовать System.lineSeparator, но он возвращает строку не просто с разделителем, а с дополнительными символами в конце. Если их убирать регуляркой, то получается сложнее..

4) авторnumOperFies = numParams - 2; авторЧто 2? Почему 2? - не понятна суть. Нужна переменная с нормальным названием
ну и как мне ее назвать ? " второй параметр, после которого все остальные считаются наименованием файлов для вывода" ?

5) авторimport static com.home.Main.fullPathOfficesTxt;
...
try (FileReader readOfficeTxt = new FileReader(fullPathOfficesTxt)) {

Это очень плохо. Если функция зависит от какой-то динамической, статической переменной, то ее нельзя никак переиспользовать. Нужно переделать на аргумент функции.

я вроде понял , что это серьезно, спасибо, но можно поподробней ?

6) verifyArgs не останавливает программу
тут кажется я уже пойду по кругу.. не совсем понял..

7) и еще куча всего аналогичного
пардон, но "-2" намного понятней, чем "и еще куча всего аналогичного"
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40057256
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pesets,
>пардон, но "-2" намного понятней, чем "и еще куча всего аналогичного"
= все просто - исправляешь все выше, выкладываешь, и опять смотрим.
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40057259
SpringMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pesets

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

Есть файловые системы, где путь регистрозависимый и это не будет работать
pesets

не смог передать в метод args[0], система все время ругалась, поэтому передал как строку.
метод устанавливает разделитель в пути к файлу. как он еще должен называться ?
я попытался использовать System.lineSeparator, но он возвращает строку не просто с разделителем, а с дополнительными символами в конце. Если их убирать регуляркой, то получается сложнее..

Метод не устанавливает разделитель, а находит значение fullPathOfficesTxt. Путь можно составить так , без всяких условий об операционной системе.
pesets

ну и как мне ее назвать ? " второй параметр, после которого все остальные считаются наименованием файлов для вывода" ?

Ну вообще как вариант) Скорее всего сможете короче придумать
pesets

я вроде понял , что это серьезно, спасибо, но можно поподробней ?

Такая сигнатура:
Код: java
1.
public ArrayList<String> ReadFileArgs1(String filePath) throws FileNotFoundException {


Вообще оставьте только final static переменные, обычных static не должно быть. К пример setSeparator не должен менять static переменную, а должен возвращать значение. И это значение получить в main и прокинуть, куда надо
pesets

тут кажется я уже пойду по кругу.. не совсем понял..

Код: java
1.
2.
3.
        // проверяем аргументы командной строки
        verifyArgs myVerifyArgs = new verifyArgs(args);
        myVerifyArgs.verifyArgs(args);


Этот кусок кода только написал в консоль. И программа пошла дальше выполняться с неверными параметрами
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40057330
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
[quot SpringMan#22300531]
pesets

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

[quot Есть файловые системы, где путь регистрозависимый и это не будет работать[/quot


в моем случае я это не доделал, поэтому уберу.
но в целом,
я все таки пока думаю, что приведение пользовательского ввода к одному регистру и сравнение с шаблоном в коде в том же регистре
будет работать на любых системах.
может мне просто не приходит в голову нужного примера, который вы имеете в виду
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40057331
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pesets,
Различайте основной функционал ИС по ГОСТ и плюшечки украшательства.
Не думаю что валидация ввода и исправление больших букв на маленькие это основная фича системы.
Не распыляйтесь. Много говорите о данной ерунде.
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40057333
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SpringMan
Код: java
1.
2.
3.
        // проверяем аргументы командной строки
        verifyArgs myVerifyArgs = new verifyArgs(args);
        myVerifyArgs.verifyArgs(args);


Этот кусок кода только написал в консоль. И программа пошла дальше выполняться с неверными параметрами

я правильно понимаю, что именно на catch (NumberFormatException e) прога пошла выполнять дальше ?
именно тут я забыл return сделать
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40057334
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp
pesets,
Различайте основной функционал ИС по ГОСТ и плюшечки украшательства.
Не думаю что валидация ввода и исправление больших букв на маленькие это основная фича системы.
Не распыляйтесь. Много говорите о данной ерунде.



Не подстрекайте на флуд плиз.
не флудите сами и не отфлудены будете.

"Не думаю что валидация ввода " - а я думаю и ЗНАЮ, что неотвалидировванный пользовательский ввод четкий признак говнопродукта, каким бы красивым он внутри не был.
я так понимаю вы тут модер? если мне так сказать будет позволено, я приведу реальный случай "на производстве", когда отсутствие защиты от дурака и от уставшего пользователя привела к тому, что пострадало около 13 тысяч клиентов.
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40057335
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pesets
SpringMan
Код: java
1.
2.
3.
        // проверяем аргументы командной строки
        verifyArgs myVerifyArgs = new verifyArgs(args);
        myVerifyArgs.verifyArgs(args);



Этот кусок кода только написал в консоль. И программа пошла дальше выполняться с неверными параметрами


я правильно понимаю, что именно на catch (NumberFormatException e) прога пошла выполнять дальше ?
именно тут я забыл return сделать
Вам два профи сказали исправить говнокод
verifyArgs myVerifyArgs = new verifyArgs(args);
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40057336
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pesets
PetroNotC Sharp
pesets,
Различайте основной функционал ИС по ГОСТ и плюшечки украшательства.
Не думаю что валидация ввода и исправление больших букв на маленькие это основная фича системы.
Не распыляйтесь. Много говорите о данной ерунде.



Не подстрекайте на флуд плиз.
не флудите сами и не отфлудены будете.

"Не думаю что валидация ввода " - а я думаю и ЗНАЮ, что неотвалидировванный пользовательский ввод четкий признак говнопродукта, каким бы красивым он внутри не был.
я так понимаю вы тут модер? если мне так сказать будет позволено, я приведу реальный случай "на производстве", когда отсутствие защиты от дурака и от уставшего пользователя привела к тому, что пострадало около 13 тысяч клиентов.

Вы подтвердили тезис что в возрасте прогеров не берут
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40057337
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp
pesets
пропущено...



Не подстрекайте на флуд плиз.
не флудите сами и не отфлудены будете.

"Не думаю что валидация ввода " - а я думаю и ЗНАЮ, что неотвалидировванный пользовательский ввод четкий признак говнопродукта, каким бы красивым он внутри не был.
я так понимаю вы тут модер? если мне так сказать будет позволено, я приведу реальный случай "на производстве", когда отсутствие защиты от дурака и от уставшего пользователя привела к тому, что пострадало около 13 тысяч клиентов.

Вы подтвердили тезис что в возрасте прогеров не берут


ну разве что такие как вы не берут конечно
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40057340
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pesets
я все таки пока думаю, что приведение пользовательского ввода к одному регистру и сравнение с шаблоном в коде в том же регистре будет работать на любых системах
Не надо думать, что вы умнее тех, кто годами делал кросплатформенное файловое API. У них тупо было больше реальных проблем, чем умозрительных сценариев, которые вы сможете придумать.
Сравнение относительных и абсолютных путей (в любых комбинациях), ньюансы смены регистра, учёт "мягких" и "жёстких" ссылок, и "вот это вот всё".
В общем, изучайте то, что есть в Java SE API и не выёживайтесь.
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40057357
SpringMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pesets

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

Вы потом по этому пути в lowerCase ищите и открываете файл. И вот хотя бы тут не найдется
pesets

я правильно понимаю, что именно на catch (NumberFormatException e) прога пошла выполнять дальше ?
именно тут я забыл return сделать

Без обид, у вас уже слишком много пробелов. Мы исправим один - на его место придут еще 10. Лучше взять любую книгу/курс "java для самых маленьких" и спокойно все пройти от начала до конца. Если даже вы с нашей помощью сделаете это тестовое задание, то вы не пройдете интервью. Так что начать надо с чтения
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40057359
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Basil A. Sidorov
pesets
я все таки пока думаю, что приведение пользовательского ввода к одному регистру и сравнение с шаблоном в коде в том же регистре будет работать на любых системах
Не надо думать, что вы умнее тех, кто годами делал кросплатформенное файловое API. У них тупо было больше реальных проблем, чем умозрительных сценариев, которые вы сможете придумать.
Сравнение относительных и абсолютных путей (в любых комбинациях), ньюансы смены регистра, учёт "мягких" и "жёстких" ссылок, и "вот это вот всё".
В общем, изучайте то, что есть в Java SE API и не выёживайтесь.


давайте, плиз, без хамства, даже вежливого.
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40057362
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SpringMan
pesets

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

Вы потом по этому пути в lowerCase ищите и открываете файл. И вот хотя бы тут не найдется
pesets

я правильно понимаю, что именно на catch (NumberFormatException e) прога пошла выполнять дальше ?
именно тут я забыл return сделать

Без обид, у вас уже слишком много пробелов. Мы исправим один - на его место придут еще 10. Лучше взять любую книгу/курс "java для самых маленьких" и спокойно все пройти от начала до конца. Если даже вы с нашей помощью сделаете это тестовое задание, то вы не пройдете интервью. Так что начать надо с чтения


никаких обид
на нормальную конструктивную критику не может быть обид

и все таки
я правильно понимаю, что именно на catch (NumberFormatException e) прога пошла выполнять дальше ?
Если не помните, то я не буду настаивать на вопросе[/quot]
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40057368
SpringMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pesets,

Да, после ошибки падает в catch блок, и дальше своим ходом
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40057372
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pesets
и
и все таки, мы ждем от вас код. За 6 страниц вы дали код два раза.
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40057428
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp
pesets
и
и все таки, мы ждем от вас код. За 6 страниц вы дали код два раза.

однозначно дам код, вопрос чести, просто чуть в запарках конкретных
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40057429
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pesets
PetroNotC Sharp
пропущено...
и все таки, мы ждем от вас код. За 6 страниц вы дали код два раза.

однозначно дам код, вопрос чести, просто чуть в запарках конкретных, ну не давать же код только после переименования переменных
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40057432
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pesets,
>ну не давать же код только после переименования переменных
= вы так часто решаете за других, прийдя на учебу с вопросами))
Вас могут запомнить только по данной фиче - 8 страниц не мог поправить имена.
Вам решать.
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40057657
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp
pesets,
>ну не давать же код только после переименования переменных
= вы так часто решаете за других, прийдя на учебу с вопросами))
Вас могут запомнить только по данной фиче - 8 страниц не мог поправить имена.
Вам решать.


очень скоро постараюсь выдать, делал тестовую работу sql по реальному неплохому предложению по работе.

я просто в этом ява лесу - как рыба в лесу. поправишь одно все связи к черту текст полыхает красным.
работаю над этим
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40057670
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pesets,
В IDE поставить курсор на переменную, меню-рефакторинг-переименовать.
Всё. Ничего не поплывет и не будет красным.
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40057685
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pesets
поправишь одно все связи к черту текст полыхает красным.
работаю над этим

Радуйся этому. Это свойство статически типизированных языков. Они предупреждают
о возможных ошибках на самых ранних этапах.

Гораздо хуже вариант - молчаливого согласия как в Python/JavaScript где изменение
почти не вызывает реакции компиллятора зато ты получаешь "русскую рулетку"
где-то уже в фазе эксплуатации работающей системы. Там и ошибки ловить сложнее
и уже поздно...
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40057701
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Там и ошибки ловить сложнее
и уже поздно...

Там надо не ловить ошибки, а думать про это заранее. На динамическом языке нельзя писать как на жабке.
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40057727
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
crutchmaster,
Если думать заранее, то это не ошибка" (с)
)))
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40057749
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
(обреченно) вот :
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40057752
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
это просто синтаксическое гестапо какое то...
можете потирать лапки , и креативить с новыми формами глумления :-)
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40057755
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pesets
это просто синтаксическое гестапо какое то...
можете потирать лапки , и креативить с новыми формами глумления :-)

Ты знаешь, когда первый раз лиды посмотрели мой код (лет 20 назад) и написали в почте фидбек - я встал с офисного
стула и пошёл полный решимости биться до конца. Мои кулаки сжимались. Из глаз летели молнии.
Я был подобен Тору! Как они посмели ругать и глумиться над моим прекрасным кодом?

Шли годы. Я подуспокоился. И теперь мне на код-ревью вообще-то почти пофиг.
Код-ревью отражает некую среднюю линию принятия твоего кода в саппорт командой.
И если команда решит делать фигурные скобочки в С++ style вместо Egypt-Style
то я спокойно соглашусь.
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40057757
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pesets
это просто синтаксическое гестапо какое то...
можете потирать лапки , и креативить с новыми формами глумления :-)
это работа вася)))
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40057769
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton
pesets
это просто синтаксическое гестапо какое то...
можете потирать лапки , и креативить с новыми формами глумления :-)

Ты знаешь, когда первый раз лиды посмотрели мой код (лет 20 назад) и написали в почте фидбек - я встал с офисного
стула и пошёл полный решимости биться до конца. Мои кулаки сжимались. Из глаз летели молнии.
Я был подобен Тору! Как они посмели ругать и глумиться над моим прекрасным кодом?

Шли годы. Я подуспокоился. И теперь мне на код-ревью вообще-то почти пофиг.
Код-ревью отражает некую среднюю линию принятия твоего кода в саппорт командой.
И если команда решит делать фигурные скобочки в С++ style вместо Egypt-Style
то я спокойно соглашусь.


на свою первую работу программером меня принимали так (1998, я в это время с СУБД вообще не был знаком, только немного паскаль):
условие было такое - напишешь за две недели решение для отдела останешься, не напишешь - на улицу. Какой там кодстайл..
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40057777
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pesets
на свою первую работу программером меня принимали так (1998, я в это время с СУБД вообще не был знаком, только немного паскаль):
условие было такое - напишешь за две недели решение для отдела останешься, не напишешь - на улицу. Какой там кодстайл..


главное больше никому эту дичь про 1998 год и пр. не рассказывать, хотябы до конца испытательного срока
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40057786
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pesets
mayton
пропущено...

Ты знаешь, когда первый раз лиды посмотрели мой код (лет 20 назад) и написали в почте фидбек - я встал с офисного
стула и пошёл полный решимости биться до конца. Мои кулаки сжимались. Из глаз летели молнии.
Я был подобен Тору! Как они посмели ругать и глумиться над моим прекрасным кодом?

Шли годы. Я подуспокоился. И теперь мне на код-ревью вообще-то почти пофиг.
Код-ревью отражает некую среднюю линию принятия твоего кода в саппорт командой.
И если команда решит делать фигурные скобочки в С++ style вместо Egypt-Style
то я спокойно соглашусь.


на свою первую работу программером меня принимали так (1998, я в это время с СУБД вообще не был знаком, только немного паскаль):
условие было такое - напишешь за две недели решение для отдела останешься, не напишешь - на улицу. Какой там кодстайл..

Обычно такое бывает на олимпиадах по информатике. Но в современной разработке - нельзя
говнокодить. Вариант написал на "0тъе6ись" - сегодня уже НЕ-вариант. Разве что фриланс да и то
наверное там есть ограничители.
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40057788
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pesets,

Ну вот, а счас все по другому.
Например, нафига работодателю твои голые файлы java?
Даже в паскале были fdm/pas/dpr....
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40057790
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Панфилов
pesets
на свою первую работу программером меня принимали так (1998, я в это время с СУБД вообще не был знаком, только немного паскаль):
условие было такое - напишешь за две недели решение для отдела останешься, не напишешь - на улицу. Какой там кодстайл..


главное больше никому эту дичь про 1998 год и пр. не рассказывать, хотябы до конца испытательного срока
))))
Он все не верит, что с возрастом это отрицательный багаж.
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40057798
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pesets,
Зачем у абстрактного статического класса создавать объект через new?
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40057800
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТС, не занимай наше время.
Дай скрин с IDE с варнингами для программиста. И поясни, как ты их исправил.
ЗЫ
Дельфи программисты так не пишут.
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40057803
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp
Андрей Панфилов
пропущено...


главное больше никому эту дичь про 1998 год и пр. не рассказывать, хотябы до конца испытательного срока
))))
Он все не верит, что с возрастом это отрицательный багаж.


а вы уверены , что эта дичь больше не повторится, только под другой обложкой ?? )))))))
я уже вижу повторы )))

хорошая обработка пользовательского ввода и защита от дурака это тоже отрицательный опыт ? а вот это уже для меня дичь несусветная.. и я могу аргументировать реальными примерами.
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40057810
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pesets,
"в бане все равны" (с)
Тебя "судят" по коду и по твоим постам.
Конретный пост оффтоп выше был глупость.
Есть хорошие люди, компанейские и отлично рассказывают анекдоты. Но не профи в java.
Я работал с дельфи. И не гони пургу.
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40057812
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pesets
а вы уверены , что эта дичь больше не повторится, только под другой обложкой ?? )))))))
я уже вижу повторы )))

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


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

вот у вас код:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
        // проверяем аргументы командной строки
        VerifyArgs myVerifyArgs = new VerifyArgs(args);
        myVerifyArgs.verifyArgs(args,numParams);
        // читаем файл с точками продаж - первый аргумент командной строки


public class VerifyArgs {

    private static final int MIN_ARGS = 3;  //минимальное количество аргументов
    private static final int MAX_ARGS = 10; // максимальное количество аргументов
    // не придумал как по другому сделать так, что бы number , был виден в главном классе
    static int number;
    public static void verifyArgs(String[] args,int numParams){

...

}



то что написано - это тихий ужас:
- классы в которых только static-методы - это утильные классы, у них не должно быть конструкторов
- verifyArgs в качестве параметров принимает только String[], по какой причине оно делает предположение о том, что запущено в консоли? про консоль знает только Main, все остальное про консоль знать не должно
- flow в программе совершенно ни к черту

т.е. вы решили упоминанием про возраст подпустить какого-то дешевого понта, однако текущие ваши знания даже на джуна не тянут.
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40057816
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Панфилов
т.е. вы решили упоминанием про возраст подпустить какого-то дешевого понта, однако текущие ваши знания даже на джуна не тянут.


ой... я в обратную сторону почитал, вам на эту дичь еще три дня назад указали, а вы вместо этого включаете шарманку про возраст.... я прямо так и представил: ревьювер выдает замечания, а ему в ответ: "так еще диды писали".
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40057821
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Панфилов,
Он за возраст скидку просит)
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40057896
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp
Андрей Панфилов,
Он за возраст скидку просит)


Ну вот черт .. да какие блин скидки вы вообще о чем ? вы мне что то продаете ?
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40057899
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Андрей Панфилов
Андрей Панфилов
т.е. вы решили упоминанием про возраст подпустить какого-то дешевого понта, однако текущие ваши знания даже на джуна не тянут.


ой... я в обратную сторону почитал, вам на эту дичь еще три дня назад указали, а вы вместо этого включаете шарманку про возраст.... я прямо так и представил: ревьювер выдает замечания, а ему в ответ: "так еще диды писали".


не обижайтесь, прочитайте с первого поста. а не на 3 страницы назад .. я и не тянул на джуна.. но вы поленились почитать
да возможно не все сразу проработал..
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40057903
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pesets,
1. Это юмор был.
2. Медленно _исправляете_ ошибки. Я вас предупреждал. Тут люди каждый день пишут код.
Java не паскаль он требует полной отдачи или... к вечеру новая версия.
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40057905
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp
pesets,

Ну вот, а счас все по другому.
Например, нафига работодателю твои голые файлы java?
Даже в паскале были fdm/pas/dpr....


да не знаю. есть задача на первой странице, и я пытаюсь ее сделать.
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40057907
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pesets,
Вот это вашу мысль вы слишком часто повторяется.
авторхорошая обработка пользовательского ввода и защита от дурака это тоже отрицательный опыт ? а вот это уже для меня дичь несусветная.. и я могу аргументировать реальными примерами.
Топик не про ввод. Топик про то как это делать правильно и приоритете ввода перед ФУНКЦИОНАЛОМ.
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40057909
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pesets
PetroNotC Sharp
pesets,

Ну вот, а счас все по другому.
Например, нафига работодателю твои голые файлы java?
Даже в паскале были fdm/pas/dpr....


да не знаю. есть задача на первой странице, и я пытаюсь ее сделать.

Без IDE? В В Notepad.exe?
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40057916
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp
pesets,
1. Это юмор был.
2. Медленно _исправляете_ ошибки. Я вас предупреждал. Тут люди каждый день пишут код.
Java не паскаль он требует полной отдачи или... к вечеру новая версия.


1. оценил.
2. задача на Java это для меня учеба и я искренне всем благодарен за замечания.
пытаюсь все учесть, ну блин не успеваю черт.
мне ее дал потенциальный работодатель. Может это щас будет смешно - но большой работодатель ). Поверьте.
этот тест для меня ничего не решает, но я хочу, нет не так , я ХОЧУ его сделать правильно. но курить всю литературу..,
если бы у меня было это время, я бы сюда не пришел.
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40057918
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp
pesets
пропущено...


да не знаю. есть задача на первой странице, и я пытаюсь ее сделать.

Без IDE? В В Notepad.exe?


в смысле ..& в intellij
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40057921
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pesets
PetroNotC Sharp
пропущено...

Без IDE? В В Notepad.exe?


в смысле ..& в intellij
тогда 2 вопроса
1. Где скрин варнингов от IDE
2. Где файлы от IDE?
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40057922
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp
pesets,
Зачем у абстрактного статического класса создавать объект через new?

я отлично знаю, что я щас глупость скажу.
IDE потребовала.
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40057923
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pesets,
Какое обучение если постоянно отвлекаетесь на пустые разговоры? А кода мало.
Вот и принимайте критику мемберов спокойно.
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40057924
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pesets
PetroNotC Sharp
pesets,
Зачем у абстрактного статического класса создавать объект через new?

я отлично знаю, что я щас глупость скажу.
IDE потребовала.
я в эклипсе пишу. Покажи как потребовала.
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40057929
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp,
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40057931
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pesets,
Картинки надо описывать. Где потребовала?
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40057934
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pesets,

У меня эклипс варнинг покажет на данной строке.
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40057935
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp
pesets
пропущено...

я отлично знаю, что я щас глупость скажу.
IDE потребовала.
я в эклипсе пишу. Покажи как потребовала.


мне кажется я вру. попутал.
IDE требовала у меня создание конструкторов.
а new я сделал по аналогии.
Покажите как это должно быть правильно, если это возможно.
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40057936
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp
pesets,
Какое обучение если постоянно отвлекаетесь на пустые разговоры? А кода мало.
Вот и принимайте критику мемберов спокойно.


да я же запостил сегодня архив
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40057937
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
[quot PetroNotC Sharp#22301599]
pesets
пропущено...


2. Где файлы от IDE?


так я же их я их и запостил сегодня..

дико извиняюсь я на сегодня убит. спать.
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40057938
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pesets
PetroNotC Sharp
pesets,
Какое обучение если постоянно отвлекаетесь на пустые разговоры? А кода мало.
Вот и принимайте критику мемберов спокойно.


да я же запостил сегодня архив
тяжелый случай. Надо на каждой сРанице архив)))
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40057939
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pesets,
Спокойной ночи!
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40057942
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp,
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40057945
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pesets,
Завтра разберитесь где варнинги в IDE
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40057998
Фотография Сергей Лалов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я что-то то загорелся, и сделал первую часть задания. Там по сути то, создать класс-генератор, и класс контроллер . В классе генераторе выполняется основная работа .
В классе контроллере все проверки перед запуском класса генератора. (В большей степени защита от дурака.)

Класс генератор:

Код: 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.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
public class CreateTextFile {
    private final static  String PATH_TO_FOLDER=ControllerMain.PATH_TO_FOLDER;//путь до папки, где будут генерится текстовые файлы исходники и результирующие текстовые файлы
    private final static  double MIN_SUM = ControllerMain.MIN_SUM;//минимальное значение суммы продажи
    private final static  double MAX_SUM = ControllerMain.MAX_SUM; //максимальное значение суммы продажи
    private final static String BEGIN_DATE_STRING= ControllerMain.BEGIN_DATE_STRING; //// январь прошлого года dd.MM.yyyy HH:mm
    private final static String FINISH_DATE_STRING= ControllerMain.FINISH_DATE_STRING;// декабрь прошлого года dd.MM.yyyy HH:mm
    private final ArrayList<String> listOffices=new ArrayList<>(); //используем много  раз по задаче,для генерации случайных точек продаж
    private String fileOffices;

    public void createFile(String fileOffices,int rowQuantity,String fileName)  {
        this.fileOffices=fileOffices;

        File file = new File(PATH_TO_FOLDER+fileName);
        try {
            if (file.createNewFile()) {
                System.out.println("Файл с именем " + fileName + " ,благополучно создан!");
            } else {
                System.out.println("Файл с таким именем уже существует по указанному пути, мы перезаписали его новыми значениями!");
            }

            BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(PATH_TO_FOLDER+fileName), StandardCharsets.UTF_8));


            for (int i = 0; i <rowQuantity; i++){

                writer.write(getRandomDateTimeAsText()+" "+getRandomOfficeAsText()+" "+ i + " "+getRandomSumAsText());
                writer.newLine();
            }
            writer.close();

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    private String getRandomDateTimeAsText(){ // возвращает рандомную дату и время в текстовом формате dd.MM.yyyy HH:mm
        SimpleDateFormat format = new SimpleDateFormat();
        format.applyPattern("dd.MM.yyyy HH:mm");
        try {
            Date  beginDate = format.parse(BEGIN_DATE_STRING);
            Date  finishDate = format.parse(FINISH_DATE_STRING);
            long random = ThreadLocalRandom.current().nextLong(beginDate.getTime(), finishDate.getTime());
            Date randomDate =new Date(random);
            return new SimpleDateFormat("dd.MM.yyyy HH:mm").format(randomDate);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return null;
    }
private String getRandomSumAsText (){ // возвращает рандомную сумму продажи в формате text
    double randomSum = ThreadLocalRandom.current().nextDouble(MIN_SUM, MAX_SUM);
    return String.format("%1.2f", randomSum); //выводит double в виде текста с запятой, к примеру 128,36
}
private String getRandomOfficeAsText () { // возвращает рандомную точку продаж , к примеру название города - Барнаул
    if (listOffices.size() > 0) {
        return listOffices.get(ThreadLocalRandom.current().nextInt(listOffices.size()));
    } else {
             try {
            Scanner s = new Scanner(new File(PATH_TO_FOLDER + fileOffices));
            s.nextLine();
            while (s.hasNext()) {
                listOffices.add(s.next());
            }
            s.close();
            return listOffices.get(ThreadLocalRandom.current().nextInt(listOffices.size()));
             } catch (Exception e) {
                     e.printStackTrace();
        }
        return null;
    }
}
}



Класс контроллер:

Код: 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.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
public class ControllerMain {
    public final static  String PATH_TO_FOLDER="C://Users//SL//Desktop//";
    public final static  double MIN_SUM = 10000.12;//минимальное значение суммы продажи
    public final static  double MAX_SUM = 100000.50; //максимальное значение суммы продажи
    public final static String BEGIN_DATE_STRING= "01.01."+(Calendar.getInstance().get(Calendar.YEAR)-1)+ " 00:00"; // январь прошлого года dd.MM.yyyy HH:mm
    public final static String FINISH_DATE_STRING= "31.12."+(Calendar.getInstance().get(Calendar.YEAR)-1)+ " 00:00"; // декабрь прошлого года dd.MM.yyyy HH:mm
    public static void main (String[] args){
        // Дальше что то на индусском))
        if(args.length < 5)
        {
            System.out.println("Вы ввели мало параметров, а именно "+args.length+" из 5ти. Введите правильное количество параметров, равное 5!");
            System.exit(0);
        }
        if(args.length > 5)
        {
            System.out.println("Вы ввели слишком много параметров, а именно "+args.length+" из требумых 5ти. Введите правильное количество параметров, равное 5!");
            System.exit(0);
        }
        String fileNameWithOffices = args[0];
        String totalRowsQuantity = args[1];
        String outputFileName1 = args[2];
        String outputFileName2 = args[3];
        String outputFileName3 = args[4];
        if (!fileNameWithOffices.endsWith(".txt")||!outputFileName1.endsWith(".txt")||!outputFileName2.endsWith(".txt")||!outputFileName3.endsWith(".txt")){
            System.out.println("Так, давайте определимся, первый, третий,четвертый и пятый параметр это название текстовых файлов, которые должны заканчиваться" +
                    "на *.txt ,давайте еще разок!");
            System.exit(0);
        }
        File theDir = new File(PATH_TO_FOLDER); //проверяем ,есть ли вообще папка или доступ к ней
        if (!theDir.exists()){
            System.out.println("Каталога по пути "+PATH_TO_FOLDER+"не найдено. Проверьте правильность пути и доступ к указанному каталогу!");
            System.exit(0);
    }

        File theFileOffices = new File(PATH_TO_FOLDER+fileNameWithOffices); //проверяем есть ли там текстовый файл offices.txt
        if (!theFileOffices.canRead()||!theFileOffices.canWrite()) {
            System.out.println("Файла под названием " + theFileOffices + " в директории " + PATH_TO_FOLDER + " не обнаружено. Проверьте наличие файла offices.txt " +
                    " или если он там есть проверьте разрешения в данной папке. Должны обязательно быть также разрешения на чтение и запись!:))");
            System.exit(0);
        }
        boolean checkIsNumber;
        try {
            Integer.parseInt(totalRowsQuantity);
            checkIsNumber=true;
        } catch (NumberFormatException e) {
            checkIsNumber=false;
        }
        if (!checkIsNumber){
            System.out.println("То что вы ввели вторым параметром это вообще то не целое число, как вы представляете себе количество строк в таблице к " +
                    "примеру равное 123,45 или 3434акЦЦУ давайте еще разок!");
            System.exit(0);
        }
        if (Integer.parseInt(totalRowsQuantity)<3){
            System.out.println("Согласитесь , что нельзя поместить меньше трех строк ( две, или -8) таблицы в три файла. Давайте еще разок!");
            System.exit(0);
        }
        if (Integer.parseInt(totalRowsQuantity) % 3 != 0){
            System.out.println("Да штошь такое, вы ввели число некратное трём. По условию задачи должно создаваться три файла с одинаковым количеством строк))!");
            System.exit(0);
    }
        // наконец то добрались до генерации
        CreateTextFile createTextFile = new CreateTextFile();
        int rowQuantityInWhichFile = Integer.parseInt(totalRowsQuantity)/3;
        createTextFile.createFile(fileNameWithOffices ,rowQuantityInWhichFile,outputFileName1);
        createTextFile.createFile(fileNameWithOffices ,rowQuantityInWhichFile,outputFileName2);
        createTextFile.createFile(fileNameWithOffices ,rowQuantityInWhichFile,outputFileName3);
        System.out.println("Процедура завершена успешно, поздравляем!");
        System.exit(0);
    }
}




Запускается из командной строки Виндоуз (Win + R)

Туда просто вставить к примеру:

java -jar "C:\Users\SL\Desktop\Tests.jar" offices.txt 90000 ops1.txt ops2.txt ops3.txt

Путь соответственно в константах прописать свой, до нужной папки. Константы вынес в контроллер. Чтобы все было на виду. Путь до папки на вашем компе нужно менять там. Специально скрыл их в классе генераторе. Чтобы не трогали там.
И положить туда файл с со списком точек продаж offices.txt

Джарник запек на SDK 1.8, можно побаловаться.
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40058059
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Лалов,
Какое будет сообщение юзверю если путь ошибочный или прав нету или... 1500 случаев?
Код: java
1.
2.
3.
4.
5.
6.
7.
File file = new File(PATH_TO_FOLDER+fileName);
        try {
            if (file.createNewFile()) {
                System.out.println("Файл с именем " + fileName + " ,благополучно создан!");
            } else {
                System.out.println("Файл с таким именем уже существует по указанному пути, мы перезаписали его новыми значениями!");
            }


ЗЫ. Сообщения прикольные)))
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40058060
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
// наконец то добрались до генерации
))))
Вот весь код выше убрать из main функции.
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40058061
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Лалов,
Выше было предложение от мембера. Все параметры взять в pojo класс.
И потом по ООП и инкапсуляции, в отдельном пакете провалидировать.
И послать юзвера подальше при ошибке: "попробуйте ка еще разок"))
Имхо
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40058064
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Про валидацию входных.
Если в ТЗ сказано что конкретизировать ошибку юзверю, то выводить конкретную ошибку.
Если нет, то ограничится Одной фразой:
"параметры не соответствуют формату"
.....
Справка
...
...
...
Так делают большинство утилит в линукс
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40058204
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp
pesets,
Завтра разберитесь где варнинги в IDE


привет всем.
Сгенерировал варнинги в отдельный файл
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40058213
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pesets,
Доброе утро.
Сделай НАМ доброе дело.
Сюда скрин варнингов из твоего IDE
Window - show view - marrkers
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40058230
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp
pesets,
Доброе утро.
Сделай НАМ доброе дело.
Сюда скрин варнингов из твоего IDE
Window - show view - marrkers


оно?
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40058235
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
или это ?
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40058242
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне кажется топик пошел не туда. За деревьями не видно леса. Нет приоритетов и непонятно вообще где конечная цель.

Так code-review не делается.

Надо что-то менять.
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40058244
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
Как это.
У меня иклипс даст варнинг что вызывать статику у экземпляра гупость.
А у тебя кто это говорит? Попугай кеша?
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40058246
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pesets,
Ждем профи твоего IDE. У меня компактное окно с несколькими ошибками в твоем коде.
Их и надо исправлять.
А потом уже смотрит профи.... За 100 баксов в час
)))
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40058247
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp
mayton,
Как это.
У меня иклипс даст варнинг что вызывать статику у экземпляра гупость.
А у тебя кто это говорит? Попугай кеша?


изменил в main
String [] argumentsForVerify = args;
number = verifyArgs(argumentsForVerify,numParams);

по соглашению наименованиям теперь нормально или нет ?

сделал verifyArgs функцией, потому что не смог ранее сделать number видимой в main
почему сделать статическую переменную в main это неправильно ?
пусть неправильно , но почему ?
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40058248
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
Где окно ошибок внизу у него?
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40058249
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pesets
PetroNotC Sharp
mayton,
Как это.
У меня иклипс даст варнинг что вызывать статику у экземпляра гупость.
А у тебя кто это говорит? Попугай кеша?


изменил в main
String [] argumentsForVerify = args;
number = verifyArgs(argumentsForVerify,numParams);

по соглашению наименованиям теперь нормально или нет ?
первая строка - да. Вторая непонятен возврат..
Имхо
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40058253
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
if (! classVerify.isOK())
exit(-1)
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40058254
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
numParams зачем если массив имеет размер?
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40058256
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp,
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40058257
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
pesets,
Ждем профи твоего IDE. У меня компактное окно с несколькими ошибками в твоем коде.
Их и надо исправлять.
А потом уже смотрит профи.... За 100 баксов в час
)))

Вообще не имеет значения что говорит IDE. Сначала должны быть зелеными модульные тесты.
И как-то вручную хотя-бы раз проверить что софт работает.

А то за этими рефакторингами можно безконтрольно просидеть неделю и сломать то что уже работало.
Учитывая нулевую подготовку автора - сломанный код после рефакторинга - это очень даже реально.
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40058258
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
Какие тесты если у него первый урок. И по ТЗ они есть?
Говорил работодатель - за написание лишнего на работу не берут.
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40058259
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
Как ты ВРУЧНУЮ проверишь варнинги.
Автор errors прошел 5 страниц назад
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40058260
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp
pesets
пропущено...


изменил в main
String [] argumentsForVerify = args;
number = verifyArgs(argumentsForVerify,numParams);

по соглашению наименованиям теперь нормально или нет ?
первая строка - да. Вторая непонятен возврат..
Имхо


мне нужно как то вернуть из verifyArgs количество операций number , которое содержит 2ой аргумент командной строки, который проверяется в verifyArgs

если объявить static number тогда можно не возвращать, но статик переменную в main жестко забраковали
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40058261
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pesets
PetroNotC Sharp,

а я тебя хвалил.
Поехали сначала.
Все Errors решай сам.
У тебя работало всё?
Как решишь - приходи.
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40058262
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pesets
PetroNotC Sharp
пропущено...
первая строка - да. Вторая непонятен возврат..
Имхо


мне нужно как то вернуть из verifyArgs количество операций number , которое содержит 2ой аргумент командной строки, который проверяется в verifyArgs

если объявить static number тогда можно не возвращать, но статик переменную в main жестко забраковали
отвечаю.
Отдельный класс ВходныеАргументы осилишь?
Тогда создай и ему отдай все переменные скопом. Он все проверит.
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40058263
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
mayton,
Как ты ВРУЧНУЮ проверишь варнинги.
Автор errors прошел 5 страниц назад

Что он прошел? Он их снова заинтродьюсил.
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40058264
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>если объявить static number тогда можно не возвращать, но статик переменную в main жестко забраковали
Выше класс будет тебе давать все что надо. Без статик
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40058265
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
PetroNotC Sharp
mayton,
Как ты ВРУЧНУЮ проверишь варнинги.
Автор errors прошел 5 страниц назад

Что он прошел? Он их снова заинтродьюсил.
по русски плиз))))))
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40058269
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp

Отдельный класс ВходныеАргументы осилишь?
Тогда создай и ему отдай все переменные скопом. Он все проверит.


т.е. сделать отдельный класс ВходныеАргументы , присвоить ему все входные переменные
а саму проверку verifyArgs тоже в отдельном классе ?
и потом класс входных аргументов передать как параметр в verifyArgs на проверку ?

работало пока не убрал статик numbers из main. потом поплыло..
пришлось возвращать из verifyArgs number, тогда
среда стала ругаться отсутствие ретурнов в if поставил эти ретурны - , хотя не понял зачем из if что то возвращать
все равно ругается
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40058273
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pesets,
Можно из двух один класс.
По ООП класс это данные и поведение.
А ты сделал статик который Только поведение.
Выше код я дал. Будет две строки в main всего верификации.
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40058275
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pesets
PetroNotC Sharp,

прикольно
У меня эклипс группирует так
Ошибки - - > где она в исходниках.
Тут наоборот)))))
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40058276
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp
pesets,
Можно из двух один класс.
По ООП класс это данные и поведение.
А ты сделал статик который Только поведение.
Выше код я дал. Будет две строки в main всего верификации.


пошел осиливать
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40058445
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp

отвечаю.
Отдельный класс ВходныеАргументы осилишь?
Тогда создай и ему отдай все переменные скопом. Он все проверит.


не знаю осилил или не осилил или осилил опять через анус

вижу что main еще нужно разгружать и разгружать

все билдится и работает правильно

привет всем
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40058447
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pesets,
Выложи сюда прямо с форматированием и под спойлеры
2. Варнинги есть?
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40058448
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp
pesets,
Выложи сюда прямо с форматированием и под спойлеры
2. Варнинги есть?


варнингов нет или ну есть что то вроде иногда
"пододвиньте объявление переменной поближе к использованию"

выложить все 5 модулей под спойлеры ?
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40058451
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp,

main

package com.home;

import java.io.File;
import java.io.FileNotFoundException;
import java.nio.file.*;

import static com.home.ReadFileArgs1.*;

public class Main {
private static final int POINT_OF_START=2;
public static void main(String[] args) throws FileNotFoundException {

// начало : выдаем краткую справку об аргументах командной строки
MessagesToUsers myMessage1 = new MessagesToUsers();
myMessage1.ShotHelpToUser();

String [] argumentsForVerify = args;
//проверяем параметры запуска и получаем количество файлов для записи операций
InputParameters.goVerifyParameters(argumentsForVerify);

// определяем каталог запуска программы
Path currentPath = Paths.get("");
String homePath = currentPath.toAbsolutePath().toString();

// начало читаем файл с точками продаж - первый аргумент командной строки
ReadFileArgs1 myReadFileArgs1 = new ReadFileArgs1();
String fullPathOfficesTxt= Path.of(homePath, String.valueOf(File.separatorChar),
args[0]).toString();
myReadFileArgs1.readFileArgs1(fullPathOfficesTxt);
//конец

// начало получаем значения параметров quantityOfOperFiles - количество оперфайлов для записи
int quantityOfOperFiles = InputParameters.returnQuantityOfOperFiles(argumentsForVerify);
int quantityOfOperationsForOneFile =InputParameters.
returnQuantityOfOperationsForOneFile(argumentsForVerify,quantityOfOperFiles);
//конец

// начало наполняем оперфайлы сгенерированными записями
CreateWriteLineData createWriteLineDataInst = new CreateWriteLineData();
String fullPathOperFiles;
for (int countArgs = POINT_OF_START; countArgs < args.length; countArgs++) {
fullPathOperFiles = Path.of(homePath, String.valueOf(File.separatorChar),
args[countArgs]).toString();
createWriteLineDataInst.createWriteLineData(posArrayList,fullPathOperFiles,
quantityOfOperationsForOneFile);
}
//конец
}//end void main
} // конец главного класса

InputParameters

package com.home;

public class InputParameters<goVerifyArgs> {
public static final int NUMARGS = 5;
public static final int ARGUMENT2 = 2;//второй аргумент, после которого остальные аргументы являются
//именами файлов, в которые будут сгенерированы данные по операциям

public static int returnQuantityOfOperFiles(String[] args){
int quantityOfOperFiles = args.length -ARGUMENT2;
String allOperationsQuantity = args[1];
return quantityOfOperFiles;
}
public static void goVerifyParameters(String[] args){
String allOperationsQuantity = args[2];
//запускаем проверку параметров запуска
VerifyArgs goVerifyArgs = new VerifyArgs();
goVerifyArgs.verifyArgs(allOperationsQuantity,NUMARGS);
}
public static int returnQuantityOfOperationsForOneFile
(String[] args, int quantityOfOperFiles) {
int allOperationsQuantity = Integer.valueOf(args[1]);
// определяем количество операций, которые будут сгенерированы и записаны в каждый файл
int quantityOfOperationsForOneFile;
quantityOfOperationsForOneFile = allOperationsQuantity / quantityOfOperFiles;
return quantityOfOperationsForOneFile;
}
}



есть варнинги вот такие еще Static member 'com.home.VerifyArgs.verifyArgs(java.lang.String, int)' accessed via instance reference
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40058452
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Форматирование!
Все модули в порядке важности
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40058454
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp
Форматирование!
Все модули в порядке важности

не совсем понял
как это должно выглядеть ?
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40058455
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pesets,
Код на форуме форматируй.
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40058457
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pesets,
"ни одного статического метода без обоснования" (с) ООП
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40058458
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Автор почитай вот этот известный документ ко код-конвенциям от Оракла

https://www.oracle.com/java/technologies/javase/codeconventions-contents.html

А то складывается впечатление что мы все тут беднягу дурачим и толкаем в разные стороны.
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40058460
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Два вызова класса с передачей одного и того же оскорбляет класс в отсутствии памяти
Код: java
1.
2.
3.
InputParameters.goVerifyParameters(argumentsForVerify);
.... 
int quantityOfOperFiles = InputParameters.returnQuantityOfOperFiles(argumentsForVerify);
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40058462
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
Вроде 10 раз говорилось про статические методы но он упрямо не слышит))))))
Таким документация не помогает.
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40058465
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp,

Код: 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.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
package com.home;

import java.io.File;
import java.io.FileNotFoundException;
import java.nio.file.*;

import static com.home.ReadFileArgs1.*;

public class Main {
      
private static final int POINT_OF_START=2;
         public static void main(String[] args) throws FileNotFoundException {

         // начало : выдаем краткую справку об аргументах командной строки
              
         MessagesToUsers myMessage1 = new MessagesToUsers();
         myMessage1.ShotHelpToUser();
         
         // конец
         
         //начало : проверяем параметры запуска и получаем количество файлов для записи операций
     
         String [] argumentsForVerify = args;
         InputParameters.goVerifyParameters(argumentsForVerify);

         // конец
         
         // начало : определяем каталог запуска программы
         
         Path currentPath = Paths.get("");
         String homePath = currentPath.toAbsolutePath().toString();

         // конец

        // начало читаем файл с точками продаж Offices.txt- первый аргумент командной строки

        ReadFileArgs1 myReadFileArgs1 = new ReadFileArgs1();
        String fullPathOfficesTxt= Path.of(homePath, String.valueOf(File.separatorChar),args[0]).toString();                                                            
        myReadFileArgs1.readFileArgs1(fullPathOfficesTxt);

       //конец  чтения файла с точками продаж Offices.txt

       // начало получаем значения параметров quantityOfOperFiles - количество оперфайлов для записи
       
       int quantityOfOperFiles = InputParameters.returnQuantityOfOperFiles(argumentsForVerify);
       int quantityOfOperationsForOneFile =InputParameters.
       returnQuantityOfOperationsForOneFile(argumentsForVerify,quantityOfOperFiles);
    
       //конец

       // начало наполняем оперфайлы сгенерированными записями
      
       CreateWriteLineData createWriteLineDataInst = new CreateWriteLineData();
       String fullPathOperFiles;
               
               for (int countArgs = POINT_OF_START; countArgs < args.length; countArgs++) {
               fullPathOperFiles = Path.of(homePath, String.valueOf ( File.separatorChar ), args[countArgs]).toString();
               createWriteLineDataInst.createWriteLineData ( posArrayList,fullPathOperFiles, quantityOfOperationsForOneFile );
               }
       //конец : записали оперфайлы        
       
       }//end of void main

} // end of main class



так ?
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40058470
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp
mayton,
Вроде 10 раз говорилось про статические методы но он упрямо не слышит))))))
Таким документация не помогает.


я слышу, но я не понимаю.

все скажут двумя тремя словами я и не догоняю..
убрал же статические переменные из классов.
а с методами что не так ? их тоже быть не должно ? почему ?
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40058471
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp
Два вызова класса с передачей одного и того же оскорбляет класс в отсутствии памяти
Код: java
1.
2.
3.
InputParameters.goVerifyParameters(argumentsForVerify);
.... 
int quantityOfOperFiles = InputParameters.returnQuantityOfOperFiles(argumentsForVerify);



так я же вроде к разным методам обращаюсь ..
а как надо в этом случае ?
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40058474
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да пошарьте с ним онлайн скрин и сделайте за 5 минут. Ну этож не возможно. Тагямотина такая.....
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40058476
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pesets
PetroNotC Sharp
mayton,
Вроде 10 раз говорилось про статические методы но он упрямо не слышит))))))
Таким документация не помогает.


я слышу, но я не понимаю.

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


кажетсся понял, щас переделаю
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40058481
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
main


Код: 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.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
package com.home;

import java.io.File;
import java.io.FileNotFoundException;
import java.nio.file.*;

import static com.home.ReadFileArgs1.*;

public class Main {
    private static final int POINT_OF_START=2;
    public void main(String[] args) throws FileNotFoundException {

        // начало : выдаем краткую справку об аргументах командной строки
        MessagesToUsers myMessage1 = new MessagesToUsers();
        myMessage1.ShotHelpToUser();

        InputParameters inputParametersInstance;
        inputParametersInstance = new InputParameters();
        String [] argumentsForVerify = args;
        
        //проверяем параметры запуска и получаем количество файлов для записи операций
        
         inputParametersInstance.goVerifyParameters(argumentsForVerify);

       // определяем каталог запуска программы
        Path currentPath = Paths.get("");
        String homePath = currentPath.toAbsolutePath().toString();

        // начало читаем файл с точками продаж - первый аргумент командной строки
        ReadFileArgs1 myReadFileArgs1 = new ReadFileArgs1();
        String fullPathOfficesTxt= Path.of(homePath, String.valueOf(File.separatorChar),
                args[0]).toString();
        myReadFileArgs1.readFileArgs1(fullPathOfficesTxt);
        //конец

        // начало получаем значения параметров quantityOfOperFiles - количество оперфайлов для записи

        int quantityOfOperFiles = inputParametersInstance.returnQuantityOfOperFiles(argumentsForVerify);
        int quantityOfOperationsForOneFile =inputParametersInstance.
                returnQuantityOfOperationsForOneFile(argumentsForVerify,quantityOfOperFiles);
        //конец

        // начало наполняем оперфайлы сгенерированными записями
        CreateWriteLineData createWriteLineDataInst = new CreateWriteLineData();
        String fullPathOperFiles;
                 for (int countArgs = POINT_OF_START; countArgs < args.length; countArgs++) {
                 fullPathOperFiles = Path.of(homePath, String.valueOf(File.separatorChar), args[countArgs]).toString();
                 createWriteLineDataInst.createWriteLineData(posArrayList,fullPathOperFiles, quantityOfOperationsForOneFile);
                 }
        //конец заполнения орперационных файлов

    }//end void main
} // end class main





все методы InputParameters не static
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40058482
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
класс InputParameters

Код: 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.
package com.home;

public class InputParameters<goVerifyArgs> {
    public static final int NUMARGS = 5;
    public static final int ARGUMENT2 = 2;//второй аргумент, после которого остальные аргументы являются
    //именами файлов, в которые будут сгенерированы данные по операциям

    public int returnQuantityOfOperFiles(String[] args){
        int quantityOfOperFiles = args.length -ARGUMENT2;
        String allOperationsQuantity = args[1];
        return quantityOfOperFiles;
    }
    public void goVerifyParameters(String[] args){
        String allOperationsQuantity = args[2];
        //запускаем проверку параметров запуска
        VerifyArgs goVerifyArgs = new VerifyArgs();
        goVerifyArgs.verifyArgs(allOperationsQuantity,NUMARGS);
    }
    public int returnQuantityOfOperationsForOneFile
            (String[] args, int quantityOfOperFiles) {
        int allOperationsQuantity = Integer.valueOf(args[1]);
        // определяем количество операций, которые будут сгенерированы и записаны в каждый файл
        int quantityOfOperationsForOneFile;
        quantityOfOperationsForOneFile = allOperationsQuantity / quantityOfOperFiles;
        return quantityOfOperationsForOneFile;
    }
}


...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40058486
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pesets,
Все статическое в природе моветон. Классы, синглетоны, методы, переменные, жена одна и таже))
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40058488
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pesets
класс InputParameters

Код: 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.
package com.home;

public class InputParameters<goVerifyArgs> {
    public static final int NUMARGS = 5;
    public static final int ARGUMENT2 = 2;//второй аргумент, после которого остальные аргументы являются
    //именами файлов, в которые будут сгенерированы данные по операциям

    public int returnQuantityOfOperFiles(String[] args){
        int quantityOfOperFiles = args.length -ARGUMENT2;
        String allOperationsQuantity = args[1];
        return quantityOfOperFiles;
    }
    public void goVerifyParameters(String[] args){
        String allOperationsQuantity = args[2];
        //запускаем проверку параметров запуска
        VerifyArgs goVerifyArgs = new VerifyArgs();
        goVerifyArgs.verifyArgs(allOperationsQuantity,NUMARGS);
    }
    public int returnQuantityOfOperationsForOneFile
            (String[] args, int quantityOfOperFiles) {
        int allOperationsQuantity = Integer.valueOf(args[1]);
        // определяем количество операций, которые будут сгенерированы и записаны в каждый файл
        int quantityOfOperationsForOneFile;
        quantityOfOperationsForOneFile = allOperationsQuantity / quantityOfOperFiles;
        return quantityOfOperationsForOneFile;
    }
}



параметры args передать в конструкторе Один раз
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40058490
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Да пошарьте с ним онлайн скрин и сделайте за 5 минут. Ну этож не возможно. Тагямотина такая.....
прилежный ученик всяко лучше беспредельшиков стасов))))
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40058503
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Там какая-то гипер прилежность. Приводящая к полному бедламу. Чувства меры совершенно нет.

Выделили процедуры - хорошо.
Но зачем по пустым классам так мелко нарезать? Для чего?

IMHO

p.s.
Ну хоть метод main стал читабельным и комментированным.
p.p.s.
Но в целом - жесть.
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40058524
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev,
Люблю более умные классы и очень короткий main
Этого можно добится только заменив статический глупый класс на умный не статический.
Только он это вариант никак не сделает.
Вообще, так как он плавает в этом вопросе, то он должен оба варианта сделать. С утилитным тупым классом и с умным.
Непонятно как он на паскале писал. Начерно 20 лет перерыв стажа))
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40058525
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ок, я согласен, что бы сделать всем хорошо и избавить всех от этой жести без всяких обид.))

из того, что для всех звучит совершенно очевидно :
"параметры args передать в конструкторе Один раз"

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

никого, разумеется, не упрекаю , просто констатирую факт :
я думал обращение сюда поможет мне время сэкономить,
но в итоге получается , что тратишь его больше и еще всех раздражаешь.))
всем спасибо и сорри.
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40058528
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp
Leonid Kudryavtsev,
Люблю более умные классы и очень короткий main
Этого можно добится только заменив статический глупый класс на умный не статический.
Только он это вариант никак не сделает.
Вообще, так как он плавает в этом вопросе, то он должен оба варианта сделать. С утилитным тупым классом и с умным.
Непонятно как он на паскале писал. Начерно 20 лет перерыв стажа))


да не писал я нигде, что писал на паскале .
я писал, что к моменту устройства на первую работу немного знал паскаль от экономического института.
а на первой работе кинули в СУБД, foxPro. на фоксе я писал. 8-9 лет все были довольны, иначе выкинули бы на улицу без разговоров ибо нефтегаз.
потом сменил местожительство.
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40058536
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pesets,
>вроде как передал ему параметр, а ни один метод этот параметр не видит.
= где подробности?
...
Время деньги. Либо обучаешься сам либо плати
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40058540
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pesets,
Запомни. В java нужно очень много работать. По 5-8 часов.
Ты не верил.
Либо сходи с дистанции, либо продолжай делать.... Молча.
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40058543
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Опять таки, при всей гипер прилежности ))), как только начинаешь смотреть код, тут же вылезает масса мелочевки и ерундовых косяков. Возникает чувство, что человек к заданию совершенно наплевательски относился.

Это не с точки критики автора, а что бы было понятно, как код может восприниматься сторонним читателем.


double dateTimeOperTmP = (int) (Math.random() * (timeStampMax - timeStampMin) + 1)
+ timeStampMin;
long dateTimeOper = (long) dateTimeOperTmP;

int -> double -> long ? Понятно, что следы прошлого. Но не аккуратно.

int randNum = new Random().nextInt(iMax);// делаем случайный pos
...Math.random()...

1. "new Random()" в цикле
почему не создать объект один раз?
2. Почему в одном месте Random, а следом Math
две соседние строчки, два разных программиста?
fullPathOperFile s
W riterOperToFile

Переусложнение кода
writerOperToFile.write( lineData, 0, lineData.length() );

не проще ли просто writerOperToFile.write( lineData ) ?

Charset defCharsetOper = Charset.defaultCharset();
try (BufferedWriter writerOperToFile = new BufferedWriter(Paths.get(fullPathOperFile), defCharsetOper )) {

1. Дефолтный charset можно не указывать
2. Вообще есть сомнения, что данный код скомпилируется
(насколько я помню класс BufferedWriter)


Как лично я бы сделал главный класс (переназвал с CreateWriteLineData на DataGenerator). Не компилировал, не проверял. Возможны опечатки

Код: 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.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
package com.home;
// тут генерим данные для строки lineData заполняем файл операций
import java.io.BufferedWriter;
import java.io.IOException;
import java.nio.charset.Charset;
import java.nio.file.Paths;
import java.time.LocalDateTime;
import java.time.OffsetDateTime;
import java.time.ZoneOffset;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.Random;
import java.util.UUID;
import static com.home.ReadFileArgs1.posArrayList;
import static java.nio.file.Files.newBufferedWriter;

public class DataGenerator {
    private static final double AMOUNT_MAX = 100000.50; // верхний предел суммы операции
    private static final double AMOUNT_MIN = 10000.12; // нижний предел суммы операции

    // Переменные используемые в процессе работы
    ArrayList<String> posArrayList;
    int iMax; = posArrayList.size(); // количество элементов в posArrayList
    LocalDateTime CURRENT_DATE_TIME1;
    LocalDateTime CURRENT_DATE_TIME_MIN;
    LocalDateTime CURRENT_DATE_TIME_MAX;
    ZoneOffset timeZone;
    DateTimeFormatter formatDate;
    Long timeStampMin;
    Long timeStampMax;
    Random randomGenerator;

    // Конструктор - инициализируем
    public class DataGenerator( ArrayList<String> posArrayList ) {
      this.posArrayList = posArrayList;
      this.iMax = this.posArrayList.size();
      CURRENT_DATE_TIME1 = LocalDateTime.now();
      CURRENT_DATE_TIME_MIN = LocalDateTime.of(CURRENT_DATE_TIME1.getYear(), 1, 1, 0, 0, 0, 0).minusYears(1);
      CURRENT_DATE_TIME_MAX = LocalDateTime.of(CURRENT_DATE_TIME_MIN.getYear(), 1, 1, 0, 0, 0, 0).plusYears(1);
      timeZone = OffsetDateTime.now().getOffset();
      formatDate = DateTimeFormatter.ofPattern("dd-MM-uuuu   hh:mm:ss:ms");

      timeStampMin = CURRENT_DATE_TIME_MIN.toEpochSecond(timeZone);
      timeStampMax = CURRENT_DATE_TIME_MAX.toEpochSecond(timeZone);

      randomGenerator = new Random();
    }
    // Создаем одну строчку с данными
    public String createLine() {
      int randNum = randomGenerator.nextInt(iMax); // делаем случайный pos
      String pos = posArrayList.get(randNum).toString();
      // генерим случайное время операции
      long dateTimeOper = (long) (Math.random() * (timeStampMax - timeStampMin) + 1)
          + timeStampMin;
      // генерим случайную дату операции
      String randomDate = LocalDateTime.ofEpochSecond(dateTimeOper, 0, timeZone).format(formatDate).replace("   ", ";");
      // генерим случайную сумму операции (сменить double на bigDecimal ?)
      double randomSumOper = Math.random() * (AMOUNT_MAX - AMOUNT_MIN) + 1 + AMOUNT_MIN;
      // генерим уникальный идентификатор операции
      String nomerOper = UUID.randomUUID().toString();
      // склеиваем строку
      String lineData = String.format("%d; %s; %s ; %s; %.2f; \r\n",i + 1,pos,randomDate,
         nomerOper,randomSumOper);
      return lineData;
    }

    // Создаем один файл
    public void createFile( String fullPathOperFile, int numsOper ) throws IOException  {
       Charset defCharsetOper = Charset.defaultCharset();
       try (BufferedWriter writerOperToFile = newBufferedWriter(Paths.get(fullPathOperFile),
                        defCharsetOper)) {
          for (int i = 0; i < numsOper; i++) {
              String lineData = this.createLine();
               // записываем строку в файл - сменить конец строки
               writerOperToFile.write( lineData, 0, lineData.length() );
           }
           // т.к. используется try - for - resources явное закрытие не требуется
           // writerOperToFile.close();
       }
    }
}

...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40058544
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pesets
я думал обращение сюда поможет мне время сэкономить

у кого есть время тут зависать, тот, как правило, заинтересован в "поговорить", а не в максимально быстром решении чьей-то задачи, особенно если задача никакого практического интереса не представляет. Т.е. любой бы мог более менее хорошо написать за относительно короткий срок, но это не так интересно, как поучить кого-то жизни (что с педагогической точки зрения не так уж и плохо).
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40058546
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pesets

....
никого, разумеется, не упрекаю , просто констатирую факт :
я думал обращение сюда поможет мне время сэкономить,
но в итоге получается , что тратишь его больше и еще всех раздражаешь.))

Об этом сразу и написали, что бесмысленное занятие

Можно сделать по разному. Красивее? Но как известно Beauty is in the eye of the beholder
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40058547
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp
pesets,
Запомни. В java нужно очень много работать. По 5-8 часов.
Ты не верил.
Либо сходи с дистанции, либо продолжай делать.... Молча.


да хватит уже.. это уже больше чем КЭП очевидность, это уже адмирал Ясен Пень.
Как будто где то нужно мало работать, что бы научиться.
интересно, кто тебя таким жадным на нормальную помощь сделал..

время и для меня деньги тоже. а при способе обучения намеками толку мало.
поэтому пойду куда-нибудь еще )
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40058549
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pesets
PetroNotC Sharp
pesets,
Запомни. В java нужно очень много работать. По 5-8 часов.
Ты не верил.
Либо сходи с дистанции, либо продолжай делать.... Молча.


да хватит уже.. это уже больше чем КЭП очевидность, это уже адмирал Ясен Пень.
Как будто где то нужно мало работать, что бы научиться.
интересно, кто тебя таким жадным на нормальную помощь сделал..

время и для меня деньги тоже. а при способе обучения намеками толку мало.
поэтому пойду куда-нибудь еще )

Ты меня не удивил.
Я сразу поставил на то что ты сойдешь.
Удачи!
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40058554
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leonid Kudryavtsev
pesets

....
никого, разумеется, не упрекаю , просто констатирую факт :
я думал обращение сюда поможет мне время сэкономить,
но в итоге получается , что тратишь его больше и еще всех раздражаешь.))

Об этом сразу и написали, что бесмысленное занятие

Можно сделать по разному. Красивее? Но как известно Beauty is in the eye of the beholder


я сойду с ветки, но не с задачи
я могу где нибудь еще к вам обратиться вне этой ветки со своими вопросами?
если нет - я без обид, спасибо за пример
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40058567
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pesets

я могу где нибудь еще к вам обратиться вне этой ветки со своими вопросами?

Если в СПб, то вечером бар Твин-Пикс, Рок-Паб или любой другой )))

Есть почта, есть телефон.... Но тут chpasha совершенно правильно написал 22302543

Можно написать по почте, но любая заявка по работе и письмо уйдет в долгий ящик, со временем ответа приближающимся к бесконечности (((
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40058574
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chpasha
pesets
я думал обращение сюда поможет мне время сэкономить

у кого есть время тут зависать, тот, как правило, заинтересован в "поговорить", а не в максимально быстром решении чьей-то задачи, особенно если задача никакого практического интереса не представляет. Т.е. любой бы мог более менее хорошо написать за относительно короткий срок, но это не так интересно, как поучить кого-то жизни (что с педагогической точки зрения не так уж и плохо).
приходит к дегустаторам и поварам чел: "вот, испёк первый блин - зацените!"
После того как один из тестеров сказал что "не хватает соли" - пошли обиды и ожидания что ему тут испекут все свои блины и дадут свои бабушкины рецепты
))
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40058659
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leonid Kudryavtsev
pesets

я могу где нибудь еще к вам обратиться вне этой ветки со своими вопросами?

Если в СПб, то вечером бар Твин-Пикс, Рок-Паб или любой другой )))

Есть почта, есть телефон.... Но тут chpasha совершенно правильно написал 22302543

Можно написать по почте, но любая заявка по работе и письмо уйдет в долгий ящик, со временем ответа приближающимся к бесконечности (((


ну тогда , наверное , никак ))
я с периферии, за уралом ))
проработаю твои примеры однозначно

int -> double -> long ? Понятно, что следы прошлого. Но не аккуратно.

а как надо, в данном случае ?
и я понимаю, что chpasha правильно написал, но соотношение воспитание\полезность , от тех кто воспитывает как то совсем низкое
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40058667
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp
chpasha
пропущено...

у кого есть время тут зависать, тот, как правило, заинтересован в "поговорить", а не в максимально быстром решении чьей-то задачи, особенно если задача никакого практического интереса не представляет. Т.е. любой бы мог более менее хорошо написать за относительно короткий срок, но это не так интересно, как поучить кого-то жизни (что с педагогической точки зрения не так уж и плохо).
приходит к дегустаторам и поварам чел: "вот, испёк первый блин - зацените!"
После того как один из тестеров сказал что "не хватает соли" - пошли обиды и ожидания что ему тут испекут все свои блины и дадут свои бабушкины рецепты
))


а я бы дал бабушкины рецепты.. видимо это свойство пенсионеров
может поймешь, если им станешь.
бань меня вобщем )) иначе за каждый оскорбительный мессадж отдрюкаю квалифицированно
на мой век проксей и логинов хватит, но не буду )
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40058669
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pesets,
>воспитание\полезность , от тех кто воспитывает как то совсем низкое
= еще не хватало чтобы ученики оценивали учителей.
Когда я ТС, у меня не хватает наглости это делать.
Чтобы обелить свое "я" утопающий хватается за любую соломинку.
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40058671
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pesets,
Да брось. Тут много приходило и... На третий день кодинга пропадало.
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40058672
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp
pesets,
Да брось. Тут много приходило и... На третий день кодинга пропадало.


ну я так понимаю из за тебя ?
что такое TS ?
ты себя возомнил УЧИТЕЛЕМ ?
я даже всего один знак вопроса поставил, черт..
ну реально бань. я не остановлюсь
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40058676
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pesets
PetroNotC Sharp
pesets,
Да брось. Тут много приходило и... На третий день кодинга пропадало.


ну я так понимаю из за тебя ?
что такое TS ?
ну ты, например, не смог написать класс с полем внутри.
Я тут причем?))))
ТС это топик стартер.
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40058678
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
pesets,

Дак вам что надо?
Вы трудолюбивый и сами тут в он лайн режиме правите код. Или ждете что вам поправят?
?
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40058680
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp,
даже отредактировал мой последний пост )))
...
Рейтинг: 0 / 0
нужен реинжиниринг короткого кода на java
    #40058694
pesets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
извините, пропаду.
в пятницу собеседование
нужно готовиться
...
Рейтинг: 0 / 0
249 сообщений из 249, показаны все 10 страниц
Форумы / Java [игнор отключен] [закрыт для гостей] / нужен реинжиниринг короткого кода на java
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]