Как стать автором
Обновить

Самые глупые вещи, которые я сделал будучи программистом

Время на прочтение2 мин
Количество просмотров8.6K
Автор оригинала: Ioannis Cherouvim
Оригинальное название статьи: «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, других.
Теги:
Хабы:
Всего голосов 138: ↑115 и ↓23+92
Комментарии61

Публикации

Истории

Работа

Java разработчик
366 вакансий

Ближайшие события

7 – 8 ноября
Конференция byteoilgas_conf 2024
МоскваОнлайн
7 – 8 ноября
Конференция «Матемаркетинг»
МоскваОнлайн
15 – 16 ноября
IT-конференция Merge Skolkovo
Москва
22 – 24 ноября
Хакатон «AgroCode Hack Genetics'24»
Онлайн
28 ноября
Конференция «TechRec: ITHR CAMPUS»
МоскваОнлайн
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань