Изящнее, изящнее, господа программисты
				
				
							
					В поисках решений при написании программ на языке Java попадаются иногда удивительные перлы. 
Нет, в целом код работающий и вполне подходящий, за что хочется сказать зарубежным коллегам искреннее спасибо. Однако давайте попробуем слегка оптимизировать вот этот конкретный метод.
Во-первых, зачем заводить логическую переменную, если она используется всего один раз? Отказываемся:
Во-вторых, зачем нам пустой блок после if? Может лучше применить инверсию, чем плодить фигурные скобки?
Вот, так можно было бы и оставить. Однако на мой вкус фигурных скобок всё еще много. Я обычно считаю, что если какое-то условие не выполнено, то и делать здесь больше нечего:
Если после if() идет всего один оператор, то фигурные скобки можно не ставить. Хотя во многих учебных заведениях требуют от студентов, чтобы ставили и в таких случаях, т.к. с этим связан ряд ошибок у начинающих программистов. Я же за свою практику сталкивался с такими ошибками всего один раз (кстати, недавно) и считаю, что не ставить фигурные скобки в таких случаях — большое удобство. К тому же тратить на короткий оператор return целую строку кода тоже, по-моему, роскошь. «Лохматость» нужно снижать, а не повышать:
Так-то гораздо понятнее. А еще я бы переименовал метод checkDataBase(), из названия которого непонятно, проверяется ли наличие базы данных или ее целостность и при каких условиях возвращается true, в dataBaseExists(). Тогда программа получилась бы практически на обычном английском языке:
Добила меня еще одна строка в конце той страницы:
Видимо, просто сказать
религия (Индуизм?) не позволяет
				
				
								
				
			
			
  public void createDataBase() throws IOException{
  	boolean dbExist = checkDataBase();
 
    	if(dbExist){
    		//do nothing - database already exist
    	}else{
                // Многа букаф кода...
        }
 }
Нет, в целом код работающий и вполне подходящий, за что хочется сказать зарубежным коллегам искреннее спасибо. Однако давайте попробуем слегка оптимизировать вот этот конкретный метод.
Во-первых, зачем заводить логическую переменную, если она используется всего один раз? Отказываемся:
  public void createDataBase() throws IOException{
 
    	if(checkDataBase()){
    		//do nothing - database already exist
    	}else{
                // Многа букаф кода...
        }
 }
Во-вторых, зачем нам пустой блок после if? Может лучше применить инверсию, чем плодить фигурные скобки?
  public void createDataBase() throws IOException{
 
    	if(!checkDataBase()){
                // Многа букаф кода...
        }
 }
Вот, так можно было бы и оставить. Однако на мой вкус фигурных скобок всё еще много. Я обычно считаю, что если какое-то условие не выполнено, то и делать здесь больше нечего:
  public void createDataBase() throws IOException{
  	if(checkDataBase()){
              return;
        }
        // Многа букаф кода...
 }
Если после if() идет всего один оператор, то фигурные скобки можно не ставить. Хотя во многих учебных заведениях требуют от студентов, чтобы ставили и в таких случаях, т.к. с этим связан ряд ошибок у начинающих программистов. Я же за свою практику сталкивался с такими ошибками всего один раз (кстати, недавно) и считаю, что не ставить фигурные скобки в таких случаях — большое удобство. К тому же тратить на короткий оператор return целую строку кода тоже, по-моему, роскошь. «Лохматость» нужно снижать, а не повышать:
  public void createDataBase() throws IOException{
  	if(checkDataBase()) return;
        // Многа букаф кода...
 }
Так-то гораздо понятнее. А еще я бы переименовал метод checkDataBase(), из названия которого непонятно, проверяется ли наличие базы данных или ее целостность и при каких условиях возвращается true, в dataBaseExists(). Тогда программа получилась бы практически на обычном английском языке:
  public void createDataBase() throws IOException{
  	if(dataBaseExists()) return;
        // Многа букаф кода...
 }
Добила меня еще одна строка в конце той страницы:
return checkDB != null ? true : false;Видимо, просто сказать
return checkDB != null;религия (Индуизм?) не позволяет
				
Комментарии (2)
RSS свернуть / развернутьSergei_T
Markony
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.