Самые глупые вещи, которые я сделал будучи программистом
Раздел:
Programming /
Java
@
26.08.2009 |
Ключевые слова: java ошибки на java
Автор: sedovmik
Источник: habrahabr
Оригинальное название статьи: «The * stupidest things I’ve done in my programming job», поэтому перевод названия статьи не очень точен, однако то, что автор имел ввиду под "*" мы опустим — мы ведь не знаем наверняка :)
Я больше не стыжусь своих грешков, так что — вперед:
1. ORM
Глупость
Создал собственную ORM (Object Relational Mapping) библиотеку
Следствие
Неразбериха в проекте после двух лет поддержки, в следствие хаков-обходов моей ORM библиотеки для запуска прямых SQL запросов
Что я должен был сделать
Использовать Hibernate, iBATIS, Cayenne или нечто подобное.
2. EAV
Глупость
Использование модели Entity-attribute-value
Следствие
Отсутствие масштабируемости (scalability) и полная невозможность запускать нужные запросы на уровне базы данных.
Что я должен был сделать
Использовать процедуру нормализации БД.
3. Database Access
Глупость
Последовательный доступ к базе данных с использованием одного общего соединения для всех пользователей.
Следствие
Нулевая масштабируемость. Очень большое время отклика для 10 и более пользователей, работающих с приложением.
Что я должен был сделать
Не делать этого и использовать пул соединений. Например c3p0, чтобы повторно использовать соединения.
4. IDE
Глупость
Избегал IDE (Integrated development environment), отказывался изучать и использовать
Следствие
Невозможность быстро строить, тестировать и развертывать (deploy) приложения.
Что я должен был сделать
Изучать IDE: NetBeans, Eclipseт.д.
5. Транзакции
Глупость
Не использовал вообще.
Следствие
Поврежденные данные в приложениях, в том числе повреждение функциональности.
Что я должен был сделать
Использовать транзакции
6. Prepared Statements
Глупость
Использование Statement, конкатенация строк и наивные преобразования запросов в «безопасные».
Следствие
Возможны SQL инъекции.
Что я должен был сделать
Использовать Prepared Statements, составление валидного запроса в зависимости от драйвера JDBC, который используется в приложении.
7. Бизнес-логика
Глупость
Вся логика заключена в шаблоне вывода (JSP).
Следствие
Беспорядочный код, неудобный для сопровождения
Что я должен был сделать
Использовать шаблон MVC или Front Controller. Ещё лучше использовать MVC в рамках таких open-source продуктов как Struts, Spring MVC, других.
Это интересно:
Распечатать статью
Вернуться в раздел:
Programming /
Java
Реклама: