Jawa / Говнокод #230 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
private void setTims( String project )
{
    int endIndex = project.indexOf( "-" );
    boolean isNumber = false;
    if ( endIndex != -1 )
    {
        try
        {
            Integer.parseInt( project.substring( 0, endIndex ) );
            isNumber = true;
        }
        catch ( NumberFormatException e )
        {
            //ignore
        }
    }
    if ( isNumber )
    {
        runtimeContext.put( RuntimeContext.TIMS_NUMBER, project.substring( 0, endIndex ) );
    }
    else
    {
        runtimeContext.put( RuntimeContext.TIMS_NUMBER, project );
    }
}

Запостил: guest guest, (Updated )

Комментарии (3) RSS

  • funny-java.blogspot.com:
    Да, с одной стороны, вроде и выглядит криво.
    Но с другой стороны, а как это сделать лучше?
    Ответить
  • Дмитрий Левчук:
    Из видимых улучшений можно сказать только про убирание повторного вызова substring, да вынести проверку строки на формат в подфункцию.

    Функции, которая определяет интежер это или нет - вроде как в стандартной жаве не существует. А регулярные выражения, скорее всего, сольют по производительности. Так что код как код. Вполне неплохой, пусть и внешне не сияющий совершенством.
    Ответить
  • Лучше сделать так:

    private String getNumberStr(String str)
    {
    ... // тут все понятно, если не число - вернем null
    }

    private void setTims( String project )
    {
    String num = getNumberStr(project);
    String res = ( num != null ) ? num : project;
    runtimeContext.put( RuntimeContext.TIMS_NUMBER, res);
    }

    Достаточно вспомнить принцип ООП: "каждый метод должен выполнять ровно одну функцию и быть настолько простым, насколько это возможно, но не проще".

    А вообще советую почитать книжку "Совершенный код". После этого подобные решения видишь почти сразу )
    Ответить

Добавить комментарий

Помни, guest, за тобой могут следить!

    А не использовать ли нам bbcode?


    8