powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / рефакторинг
25 сообщений из 107, страница 3 из 5
рефакторинг
    #39335242
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяни чуть не хуже.
если учесть во что транслирется jsp страница .
ничего нового ты уже не скажешь. Всё как 5 лет назад. Удачи!
...
Рейтинг: 0 / 0
рефакторинг
    #39336063
Музаффар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
:) Вас всех собрать в одну контору и надо перед вами поставить задачу и чтоб Вы решили совместно...

интересно что будет... :)
...
Рейтинг: 0 / 0
рефакторинг
    #39336091
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Музаффар,
)) известный спор - программизм это творчество или рутина)
...
Рейтинг: 0 / 0
рефакторинг
    #39336152
Музаффар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

просто основные мемберы этого форума заходит читать именно Ваши споры... в том числе я тоже т.к. много полезного можно изъять :)
за это спасибо знатокам (Вам и Ваде и Блазговичу и другим...)

а насчет совместной работы могу предположить что первый проект будет скорей всего не в срок но после получится крутые проекты... хотя ИМХО.
...
Рейтинг: 0 / 0
рефакторинг
    #39336175
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Музаффармогу предположить что первый проект будет скорей всего не в срок
если РП - Железный Феликс, то в срок).
...
Рейтинг: 0 / 0
рефакторинг
    #39336221
lleming
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Музаффармогу предположить что первый проект будет скорей всего не в срок
если РП - Железный Феликс, то в срок).

Если РП железный феликс то не только проект будет сдан в срок.
Но и население обеспечено предметами первной необходимости, продовольствие не менее через на неделю вперед.
...
Рейтинг: 0 / 0
рефакторинг
    #39336233
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторесли РП - Железный Феликс, то в срок).

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

тут много факторов но самый главный из них это Ваши споры... если согласованно будете работать то точно в срок без железного феликса
...
Рейтинг: 0 / 0
рефакторинг
    #39336261
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OFF
Музаффартут много факторов но самый главный из них это Ваши споры... если согласованно будете работать то точно в срок без железного феликса
А кто по вашему Согласователь?))
...
Рейтинг: 0 / 0
рефакторинг
    #39336271
Музаффар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123А кто по вашему Согласователь?))

это и есть больщущий вопрос :)
...
Рейтинг: 0 / 0
рефакторинг
    #39336276
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МузаффарPetro123А кто по вашему Согласователь?))
это и есть больщущий вопрос :)
Тогда это в топике Религия или ПТ.
Тут обычные технари - инженеры.
...
Рейтинг: 0 / 0
рефакторинг
    #39336588
liberum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Начал переписывать..
На данный момент столкнулся с несколькими проблемами.
Сделал отдельно класс с датами. Класс умеет:
getEndWeek() - возвращать последний день текущей недели
getStartWeek() - возвращать первый день текущей недели
getThisDayPromo() - возвращать текущую дату если уже больше 10 часов дня, и вчерашнюю если меньше
getDateFormatMDY() - превращать дату в строку стандартного формата
getDateFormatWeek() - превращать дату в строку с указанием дня недели
getStartThisDay() - возвращать новый объект даты округленный до начала суток

DifferentDates
Код: 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.
package modules.util;

import org.joda.time.DateTime;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;

public class DifferentDates {
    private String dateFormatMDY = "MMM dd, YYYY";
    private String weekFormat = "EEEEE / MMM dd";

    public Date getEndWeek(){
        DateTime startWeek = new DateTime(getStartWeek());
        return startWeek.plusDays(6).toDate();
    }

    public Date getStartWeek(){
        DateTime thisDay = new DateTime(getStartThisDay());
        return thisDay.minusDays(thisDay.getDayOfWeek()).toDate();
    }

    public Date getThisDayPromo(){
        Date thisDay = getStartThisDay();
        Calendar c = Calendar.getInstance();
        c.setTime(thisDay);
        if(Calendar.getInstance().get(Calendar.HOUR_OF_DAY) < 10)
            c.add(Calendar.DATE, -1);
        return c.getTime();
    }

    public String getDateFormatMDY(Date date){
        return new SimpleDateFormat(dateFormatMDY, Locale.ENGLISH).format(date);
    }

    public String getDateFormatWeek(Date date){
        return new SimpleDateFormat(weekFormat, Locale.ENGLISH).format(date);
    }

    public Date getStartThisDay(Date date){
        return  new Date(new SimpleDateFormat(dateFormatMDY, Locale.ENGLISH).format(date));
    }
}



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

Пример моего теста:

TestDifferentDates
Код: 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.
package util;

import modules.util.DifferentDates;
import org.junit.Test;
import static junit.framework.Assert.assertEquals;

public class TestDifferentDates {

    @Test
    public void testGetStartWeek(){
        DifferentDates dates = new DifferentDates();
        long exp = dates.getStartWeek().getTime();;
        long act = 1477170000000l;
        assertEquals(exp, act);
    }

    @Test
    public void testGetEndWeek(){
        DifferentDates dates = new DifferentDates();
        long exp = dates.getEndWeek().getTime();
        long act = 1477688400000l;
        assertEquals(exp, act);
    }
}




Часть css перенес, получилось примерно так:

таблица заголовок
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
  <table  class="table_week_main">
        <thead>
        <tr class="table_week_heat_tr">
            <th class="table_week_head"><%=sdf2.format(cl.getTime()) %></th>
            <%cl.add(Calendar.DATE, 1);%>
            <th class="table_week_head"><%=sdf2.format(cl.getTime()) %></th>
            <%cl.add(Calendar.DATE, 1);%>
            <th class="table_week_head"><%=sdf2.format(cl.getTime()) %></th>
            <%cl.add(Calendar.DATE, 1);%>
            <th class="table_week_head"><%=sdf2.format(cl.getTime()) %></th>
            <%cl.add(Calendar.DATE, 1);%>
            <th class="table_week_head"><%=sdf2.format(cl.getTime()) %></th>
            <%cl.add(Calendar.DATE, 1);%>
            <th class="table_week_head"><%=sdf2.format(cl.getTime()) %></th>
            <%cl.add(Calendar.DATE, 1);%>
            <th class="table_week_head"><%=sdf2.format(cl.getTime()) %></th>
        </tr>
        </thead>



таблица данные
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
            <td>
                <div class="table_week_data_div">
                    <input class="table_week_data" title="<%=  title %>" ondblclick=openBook('<%=asin%>') readonly="" value="<%= title %>">
                </div>
                <%  }};  %>
            </td>

<script>
    function openBook(asin){
        window.open('https://www.amazon.com/dp/'+asin, '_blank');
    }
</script>



Заголовок таблицы можно вынести в цикл, это сделаю когда буду переделывать с помощью JSTL, сейчас читаю о нем, вроде не сложно. Так же там переделаю мои ужасные условия, для них планирую сделать 7 вызовов с БД по 1 на каждый день недели, вместо 1 вызова за всю неделю и 7 циклов с условиями для выбора нужной даты. На данный момент больше интерисует рефакторинг css и js

ответ Вадивадяliberum,
Код: html
1.
      <tr valign="top">


https://webref.ru/html/td/valign

Код: html
1.
2.
3.
 <div style="width:100%;overflow:hidden;">
                    <input type="text" style="width: 100%; background: #f1f1f1;" title=" <%= bookKDP.getBookAuthorsWriter().getBook().getTitle() %> " ondblclick="window.open('https://www.amazon.com/dp/<%=bookKDP.getAsin()%>','_blank')" readonly="" value=" <%= bookKDP.getBookAuthorsWriter().getBook().getTitle() %>">
                </div>



Код: html
1.
title  

- https://webref.ru/html/title

Код: html
1.
input

- https://webref.ru/html/input

вообще инпут в div непонятно для чего, ondblclick можно назначить и самому div.

https://webref.ru/css
https://webref.ru/html
http://frontender.info/a-guide-to-flexbox/
https://learn.javascript.ru/
http://jquery.page2page.ru/index.php5/Заглавная_страница

по логике js
https://www.amazon.com/dp/<%=bookKDP.getAsin() лучше вынести в div
Код: html
1.
2.
3.
<div class='vvv' ondblclick="window.open('https://www.amazon.com/dp/<%=bookKDP.getAsin()%>','_blank')">
<%= bookKDP.getBookAuthorsWriter().getBook().getTitle() %>">
</div>



но ещё лучше
Код: html
1.
2.
3.
<div class='vvv' ondblclick="fff(%=bookKDP.getAsin()%>);')">
<%= bookKDP.getBookAuthorsWriter().getBook().getTitle() %>">
</div>



Код: javascript
1.
2.
3.
4.
5.
<script>
function fff(p){
window.open('https://www.amazon.com/dp/'+p,'_blank');
}
</script>




Код: java
1.
<tr valign="top">


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

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

Повторюсь, почему не дата из java8, одна из задач в этом проекте, ознакомление с hibernate, его я поставил 4,2 версии, которая не работает с временем из java8, попытка поменять версию hibernate вылилась в жесткий краш, и необходимость переписывать много кода. В связи с этим, переход на java8 и hibernate 5, я решил сделать когда начну переписывать этот проект с использованием Spring.

Спасибо еще раз всем за ответы, рефакторю медленно, много приходится читать..
...
Рейтинг: 0 / 0
рефакторинг
    #39336637
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: html
1.
<tr valign="top">


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

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

не правильно используешь стили.
использование здесь инпута и есть говнокод.
а именно использование элемента не по назначению
это надо исключить.

Код: plaintext
 title для того, что бы видеть полное название когда наводишь мышку
странно в доках не нашёл такого :(
...
Рейтинг: 0 / 0
рефакторинг
    #39336641
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторак же там переделаю мои ужасные условия, для них планирую сделать 7 вызовов с БД по 1 на каждый день недели, вместо 1 вызова за всю неделю и 7 циклов с условиями для выбора нужной даты.
рекомендую обратить внимание на использование хранимых процедур, в частности они могут возвращать множественный результсет
...
Рейтинг: 0 / 0
рефакторинг
    #39336643
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
liberum,
если используешь mysql - рекомендую https://www.devart.com/ru/dbforge/mysql/studio/
...
Рейтинг: 0 / 0
рефакторинг
    #39336644
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
рефакторинг
    #39336649
liberum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вадя,
Спасибо, по поводу говнокода понял, перепишу.

dbforge есть, использую.
по работе с БД, как уже писал, на этом проекте учу hibernate, он умеет кешировать с коробки.. И подумаю еще о оптимизации..
...
Рейтинг: 0 / 0
рефакторинг
    #39336650
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
liberum,
вот что тебя спасет от инпута http://htmlbook.ru/blog/obrezaem-dlinnuyu-stro
...
Рейтинг: 0 / 0
рефакторинг
    #39336654
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторпо работе с БД, как уже писал, на этом проекте учу hibernate, он умеет кешировать с коробки.. И подумаю еще о оптимизации..
если только для обучения.....
потому как хорошей оптимизации с ним не добиться.
он не заменить голову программиста, и не сможет поддержать все его возможности(правда если программист умеет работать с базами...)
...
Рейтинг: 0 / 0
рефакторинг
    #39336671
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяавторак же там переделаю мои ужасные условия, для них планирую сделать 7 вызовов с БД по 1 на каждый день недели, вместо 1 вызова за всю неделю и 7 циклов с условиями для выбора нужной даты.
рекомендую обратить внимание на использование хранимых процедур, в частности они могут возвращать множественный результсет
угу. Пусть до кучи хранимки в БД выучит и множественные результсеты.
Помнится у тебя код меньше от них не стал).
...
Рейтинг: 0 / 0
рефакторинг
    #39336677
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторугу. Пусть до кучи хранимки в БД выучит и множественные результсеты.
Помнится у тебя код меньше от них не стал).
это не верное замечание, код стал меньше , не на много , но меньше
повысиласть простота - одно обращение к базе и совершенно разные результсеты в ответ.
...
Рейтинг: 0 / 0
рефакторинг
    #39336683
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,
1. А зачем ОДНО обращение к базе? )
В андроиде вон, модно делать много многопотоковых обращений)).
2. Тебе сравнить твой код с тем что в хибере?
Через день уже ТС джуниор сравнит твою работу и свою в хибере.
А мы посмотрим).
...
Рейтинг: 0 / 0
рефакторинг
    #39336689
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123вадя,
1. А зачем ОДНО обращение к базе? )
В андроиде вон, модно делать много многопотоковых обращений)).
2. Тебе сравнить твой код с тем что в хибере?
Через день уже ТС джуниор сравнит твою работу и свою в хибере.
А мы посмотрим).
1 иногда бывает очень и очень удобно и очень много упрощает.
2 то что я могу сделать не используя хибер - он не сделает.мне не требуется обрабтка данных прокладкой, мне база выдает данные уже максимально нужном виде. мне остаётся только отправить клиенту добавив немного html разметки и то не всегда
да, хибер может зарать данные с сервера из хранимки, которые не ужно сильно обрабатывать, но тогда зачем хибер?
у меня юзер изменид цифирь в таблице в браузере, -она отправилась на сервер , пару строк java и она уже в базе.
...
Рейтинг: 0 / 0
рефакторинг
    #39336705
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,
мы тут твой код уже обсуждали. Вроде все сошлись, что его тоже надо рефакторить.
Так что не начинай по новой. Дело ведь не в моей критике.
Удачи!
...
Рейтинг: 0 / 0
рефакторинг
    #39336884
liberum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Итог рефакторинга по css и html, всплывающим текстом решил пожертвовать, в целом внешний вид стал даже немного лучше..

css
Код: css
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.
.table_week_main{
    table-layout:fixed;
    width: 100%;
    align: center;
    frame: void;
}
.table_week_head {
    width:14.3%;
    border: 1px solid #888888;
    text-align: center;
}

.table_week_head_tr{
    background: black;
    color: white;
    align: center;
}

.table_week_data_div{
    color: #0f1225;
    cursor: pointer;
    white-space: nowrap;
    overflow: hidden;
    background: #f9f9f9;
    padding: 2px;
    border: 1px dashed #888888;
    outline: 1px solid #d1d1d1;
}
.table_tr_top{
    vertical-align: top;
}




html
Код: html
1.
2.
3.
4.
5.
6.
7.
        <tr class="table_tr_top">
            <td>
                <div class="table_week_data_div" onclick=openBook('<%=asin%>')>
                    <%=title%>
                </div>
                <%  }};  %>
            </td>


...
Рейтинг: 0 / 0
25 сообщений из 107, страница 3 из 5
Форумы / Java [игнор отключен] [закрыт для гостей] / рефакторинг
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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