Форум программистов, компьютерный форум, киберфорум
Java
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.68/19: Рейтинг темы: голосов - 19, средняя оценка - 4.68
2 / 2 / 0
Регистрация: 11.02.2015
Сообщений: 16

CodeReview

16.03.2017, 12:33. Показов 4018. Ответов 30
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пожалуйста, сделайте ревью кода, приведенного ниже, для методов в классе и предложите варианты решений для проблем, которые вы увидите.
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
 
 public   class   CodeReview
{
 /// <summary>
 /// This method returns integer parsed from the source.  /// If parsing fails it should return zero.
 /// </summary>
 /// <param name="o">Object with data to parse.</param>  /// <returns>Parsed value</returns>
 public   int   Parse ( object  o)
{
 return   int . Parse ( o . ToString ()); }
 /// <summary>
 /// This method returns concatenated string from the array of the strings.
 /// </summary>
 /// <param name="lines">Array of strings with lines.</param>  /// <returns>Concatenated string.</returns>
 public   string   Concat ( string []  lines)
{
 string  result;
 for ( int  i  =   0 ;  i  <  lines . Length ;  i ++)
{
result  +=  lines [ i ];
}
 return  result; 
}
}
1
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
16.03.2017, 12:33
Ответы с готовыми решениями:

Codereview для моего гитхаба
Извините, если пишу не в тот форум, но мне интересно мнение участников данного раздела. Но хочу спросить совет. У меня есть гитхаб...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
30
 Аватар для reisal78
944 / 687 / 230
Регистрация: 28.04.2013
Сообщений: 1,925
17.03.2017, 17:41
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от DreamexX Посмотреть сообщение
что именно советуете посмотреть
Невозможно научиться читать, не выучив алфавит. Смотрите все. В любом случае вам придется посмотреть и разобрать все основы.
0
 Аватар для we2seek
84 / 84 / 42
Регистрация: 25.01.2010
Сообщений: 386
17.03.2017, 19:36
Цитата Сообщение от DreamexX Посмотреть сообщение
что именно советуете посмотреть
http://www.oracle.com/technetw... 36057.html
0
 Аватар для FatNinja
82 / 82 / 32
Регистрация: 17.02.2016
Сообщений: 226
18.03.2017, 15:18
Бегло почитал комментарии, но признаться сути решения я не уловил.

DreamexX, первая и основная проблема этого кода в том, что это код на C#, а не на джава.
Почему вы опубликовали это в топике по Java - для меня абсолютная загадка.

Вторая проблема - метод Parse. В нём нет смысла.

Третья проблема - метод Concat. В C#, как и в Java, нельзя так работать со строками в цикле, так как они immutable. Нужно использовать StringBuilder или StringBuffer.
2
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
18.03.2017, 16:51
FatNinja, с чего вы взяли что код не на Джава?
0
 Аватар для FatNinja
82 / 82 / 32
Регистрация: 17.02.2016
Сообщений: 226
18.03.2017, 17:43
KEKCoGEN,
1. Используются xml-комментарии для "автодокументации" кода - они начинаются с ///, подсвечиваются IntelliSense, грубо говоря аналог javaDoc в ДотНете. Вот статья обзорная: https://habrahabr.ru/post/41514/;
2. Используется дотнетовский CodeConvension - именование методов с аппер-кейса: Parse, Concat, ToString;
3. Используются дотнетовские "методы расширения" для примитивных типов (int.Parse), в джава вообще ничего подобного нет (хвала создателям );
4. Используется дотнетовское объявление строк и объектов с ловеркейса (string, object);
5. Используются дотнетовский, а не джаванский стиль расстановки скобок;
6. Используется дотнетовский стиль получения свойства объекта (lines.Length), в джаве такого также нет.
3
18.03.2017, 18:13

Не по теме:

:rofl:

0
2 / 2 / 0
Регистрация: 11.02.2015
Сообщений: 16
18.03.2017, 18:47  [ТС]
FatNinja, все верно.
Цитата Сообщение от FatNinja Посмотреть сообщение
что это код на C#, а не на джава
Я их попросил повторно отправить задание, но на джава.
Вот что они написали:
Попробуйте адаптировать код для джава. Смысл задания не в синтаксисе.
А что вы можете предложить сделать?
0
 Аватар для FatNinja
82 / 82 / 32
Регистрация: 17.02.2016
Сообщений: 226
18.03.2017, 19:59
Лучший ответ Сообщение было отмечено DreamexX как решение

Решение

DreamexX, я уже написал выше (в своём первом сообщении) о проблемах, которые вижу - добавить нечего.
Если нужно именно переписать, отрефакторить и отправить результат на джава, а не просто описать:
- исправь указанные ранее проблемы;
- поменяй описание методов на javaDoc;
- используй джаванский code convension(именование, скобки);
- укажи нормальное название класса, вроде Common или Helper - текущее CodeReview не говорит ровным счётом ни о чём.

Добавлено через 59 минут
DreamexX, вот моя версия результата: parse не имеет смысла, так как он уже есть в стандартной библиотеке.
То описание, которое приложено в исходном коде на C# (возвращать 0 в случае неверного значение) - говнокод, который добавляет к методу сайд-эффект. Имхо, это плохо и не стоит так делать - лучше отлавливать это в catch, как у меня.
ps: Да - это задание для самых начинающих.

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
/**
 * @author FatNinja
 */
public class Runner {
 
    public static void main(String[] args) {
        
        // demo parse 1
        System.out.println(Integer.valueOf("42"));
        
        // demo parse 2 
        try {
            System.out.println(Integer.valueOf(" 42"));
        } catch (NumberFormatException ex) {
            System.out.println("Parse error: " + ex.getMessage());
        }
        
        // demo concat
        String[] lines = { "1", "st ", "2", "nd ", "3", "rd"};
        System.out.println(new Common().concat(lines));
        
    }
}
 
class Common {
    
    // TODO method Parse doesn't make sense
    // use Integer.valueOf()
    
    /**
     * This method returns concatenated string from the array of the strings.
     * @param lines array of strings with lines.
     * @return concatenated string.
     */
    public String concat(String[] lines) {
        StringBuilder builder = new StringBuilder();
        for (String current : lines) {
            builder.append(current);
        }
        return builder.toString();
    } 
}
2
2 / 2 / 0
Регистрация: 11.02.2015
Сообщений: 16
18.03.2017, 20:54  [ТС]
FatNinja, спасибо большое!
Цитата Сообщение от FatNinja Посмотреть сообщение
ps: Да - это задание для самых начинающих.
Значит учиться и учиться!
Удачи Вам и успехов!!!
1
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
18.03.2017, 23:58
Цитата Сообщение от FatNinja Посмотреть сообщение
parse не имеет смысла, так как он уже есть в стандартной библиотеке.
так String.join тоже есть
1
 Аватар для FatNinja
82 / 82 / 32
Регистрация: 17.02.2016
Сообщений: 226
19.03.2017, 00:08
xoraxax, и вправду, спасибо, не знал - нововведения 8 java пока глубоко не изучал.
Но в контексте именно этой задачи - метод всё-таки может имеет смысл, как как сигнатура метода join подразумевает разделитель, а здесь просто контенкация. Да и код может быть легаси, 7-ка или старше
А метод parse - полностью дублирует вызов метода valueOf.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Ответ Создать тему
Новые блоги и статьи
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru