Итак, на этой неделе я проводил консультацию по работе с базой данных и услышал небольшую страшилку от владельца сайта.

Обратите внимание: у владельца сайта практически нет опыта программирования. Единственный опыт, который у них есть, — это иметь дело с кодом, который они изначально продали.

Владелец сайта связался со мной, потому что чувствовал, что должен быть другой способ справиться с этой конкретной ситуацией. Проблема сводилась к тому, что у них была 1 большая таблица с более чем 256 столбцами! И что еще лучше, столбцы, которые действительно были необходимы, на 100% зависели от «более раннего» содержимого таблицы (то есть первых нескольких столбцов). Лично я сразу увидел эту таблицу и ужаснулся. Я подумал про себя, что, очевидно, это должна быть таблица сопоставления, и относиться к ней следует соответственно.

Поговорив немного с владельцем, очевидно, это тоже было их первое подозрение. Однако программист «клялся всем телом, что это можно сделать только так». Услышав это, я немного огорчился.

Теперь вам может быть интересно, почему этот пост в блоге называется «Мой путь или шоссе». Это потому, что за годы программирования я усвоил одну вещь: на самом деле не существует «одного правильного ответа». На самом деле, каждый раз, когда я работаю над проблемой программирования, я сам придумываю 3–5 альтернатив, прежде чем сузить проблему до того решения, которое я собираюсь принять.

Чтобы разрабатывать приложения, вам нужно принять во внимание несколько вещей и, самое главное, оставить эго у входной двери. На мой взгляд, это относится не только к упражнениям по программированию. Кто-то еще, от кого можно поделиться идеями, может помочь вам увидеть проблему таким образом, о котором вы даже не думали раньше, что может привести к улучшению общего приложения.

Изучив код еще немного, я понял, что причина, по которой «это был единственный способ сделать это», заключалась в том, что они хотели быть ленивыми при обработке доступа в других частях кода. Все, что им действительно нужно было сделать, чтобы сделать этот беспорядок управляемым, — это обернуть вызов базы данных каким-то уровнем доступа к данным. Когда они это сделают, они смогут обрабатывать любые необходимые обновления/вставки и по-прежнему отправлять обратно все данные, необходимые для обработки данных, а затем и многое другое.

Короче говоря, при программировании старайтесь сохранять непредвзятость и сосредоточиться на других альтернативах, и, пожалуйста, не берите решение, которое «сделано быстрее», потому что это обычно приводит к проблемам и трате ресурсов в будущем.

Если бы этот программист сделал то, что владелец, который говорил исходя из того, что имело для них логический смысл, выслушал их и переоценил их заявление, то мне, вероятно, вообще не понадобилось бы вовлекаться в эту дискуссию.

Я программирую уже много лет и до сих пор понимаю, что знаю лишь малую часть того широкого спектра, который предоставляет кодирование. Вот почему я всегда спрашиваю мнение других и оставляю свое эго за дверью, потому что, в конце концов, я хочу получить лучший продукт. Не приличный продукт, наполненный пластырями, скрепленный пластырями и жевательной резинкой. Вы получите только тот солидный результат, если углубитесь в глубины опыта программирования, который был у вас и у всех остальных, чтобы получить наилучшие результаты!

Спасибо за чтение!