Изящнее, изящнее, господа программисты
В поисках решений при написании программ на языке 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
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.