anonymous@RULINUX.NET~# | Last login: 2024-11-05 16:30:54 |
Регистрация Вход | Новости | Разметка | Пользователи | Галерея | Форум | Статьи | Неподтвержденное | Трекер | Правила форума | F.A.Q. | Ссылки | Поиск |
Форум - Talks | [RSS] |
Вот такое счастье приключилось на днях, уважаемые товарищи.
Есть на свете одна фирма, занимается, скажем так, доставкой еды. Занимается этим довольно масштабно, отчего, по словам её руководителей, имеет чуть ли не 40%-ную долю рынка в одном городе. Также в наличии пара оффлайновых ресторанов, в нормальных местах. По всем показателям - локальный ынтерпрайз. Значительная часть заказов приходит через интернет-сайт.
Сайт, соответственно, тоже весь такой серьёзный, огромная куча свистоездящих скриптов, анимации, фотографий и прочего. Несмотря на всё это обилие, пользоваться им можно. Сайт, как и всегда в таких случаях бывает, на энтерпрайзном PHP.
Но вот в один прекрасный момент оказывается, что страница с корзиной на сайте перестаёт открываться. А заказы идут массово, отчего каждые 10 минут простоя влетают в не очень большую, но всё же реальную сумму денег. И, по ужасному стечению обстоятельств, единственным, кто может попробовать что-то сделать, оказываюсь я (к этой фирме и к этому сайту я не имею никакого отношения). Код я мельком уже видел, знаю, что там что-то самописное. После выслушивания панических криков в телефонную трубку, я, взяв емакс с tramp-ом в руки, влезаю на сервер и пытаюсь понять, что в этом крутом и прекрасном движке пошло не так.
Движок представляет из себя настоящий энтерпрайз - кучу php с подобием самодельных шаблонов. Найдя на глаз нужный шаблон и закомментировав пару строк, была обнаружена проблема, из-за которой страница перестала работать. Запрос к БД с картинками выдавал фатал еггог из-за перерасхода памяти. И вот, внезапно. я осознал суть того кода.
В базе есть много таблиц, но в данном случае интересными были две - товары и изображения к ним. Просто две таблицы, у товаров есть колонка с id изображения. Профессиональные разработчики, делавшие этот энтерпрайз, делали следующее: доставали все картинки из БД в запросе, а потом, выводя N товаров в корзине, проходились циклом каждый раз по массиву со всеми картинками, делая проверку вроде $img['id'] == $item['image_id']. Товаров же в корзине было в среднем штуки по две на клиента. То есть, условных операций было N_товаров_в_корзине * количество_всех_картинок. Картинок же было очень много. Кроме того, был ещё один неиспользуемый запрос, который доставал ещё около 10к строк из БД, которые потом нигде не использовались.
Я, конечно, всё это поправил, сделал нормальный запрос с простым JOIN-ом, убрал лишнее - всё завелось и стало прям таки летать. Но блин, как такое может быть? Делала сайт солидная фирма, которая в своём портфолио имеет очень толстых и богатых клиентов. У них, небось, зарплата одного программиста больше месячного дохода всего моего предприятия. Модный сайт, офис в дорогом месте, куча манагеров и все дела. При этом код на уровне человека, недочитавшего учебник "пхп за 24 часа", глупые орфографические ошибки в комментариях и в названиях переменных, тормоза на пустом месте, глюки и кривота.
А ведь потом такая фирма срубит контракт на какую-нибудь платёжную систему, и мои персональные данные будут легко попадать в руки всем желающим, потому что кто-то написал вместо программы говно. Куда катится мир?
SystemV(*) (2011-11-24 23:46:54)
Emacs-w3m/1.4.414 w3m/0.5.3
|
|
|
Скрыть
Re:Веб-программисты, чтоб их> А ведь потом такая фирма срубит контракт на какую-нибудь платёжную систему, и мои персональные данные будут легко попадать в руки всем желающим..
|
Скрыть
Re:Веб-программисты, чтоб ихМеня больше всего смущает то, что людям умудряются впаривать откровенный хлам. Причем сайтостроительство этим очень часто грешит, в отличие от других отраслей народного хозяйства. |
Скрыть
Re:Веб-программисты, чтоб их>Каким раком они будут легко попадать в руки всем желающим если их ПО скорее сдохнет, чем сделает что-нибудь?
|
Скрыть
Re:Веб-программисты, чтоб ихВеб-разработка как ынтырпрайз давно скатилась в УГ, это всем понятно. |
Скрыть
Re:Веб-программисты, чтоб их> А баги там не мелкие, там весь код такой. Везде, где нужно делать те же JOIN-ы, люди просто достают всё из базы. Тот же движок лорнг, хоть и не шедевр архитектуры, в разы красивее сделан.
|
Скрыть
Re:Веб-программисты, чтоб их> Наверное сказываются какие-нибудь исторические корни упирающиеся в веб-магазин на мускуле, который торговал(ет) небольшой номенклатурой, но при этом покупатели набирали большое количество разных наименований.
Bod(*)(2011-11-25 00:40:37)
Mozilla/5.0 (X11; Linux i686; rv:8.0) Gecko/20100101 Firefox/8.0 Iceweasel/8.0 |
Скрыть
Re:Веб-программисты, чтоб их> У них, небось, зарплата одного программиста больше месячного дохода всего моего предприятия
|
|
|
|
Этот тред читают 4 пользователя: |
Анонимных: 4 Зарегистрированных: 0 |
Re:Веб-программисты, чтоб их
> При этом код на уровне человека, недочитавшего учебник "пхп за 24 часа", глупые орфографические ошибки в комментариях и в названиях переменных, тормоза на пустом месте, глюки и кривота.
Наглядный пример соответствия размера оплаты качеству работы в справедливом капиталистическом обществе..
> А ведь потом такая фирма срубит контракт на какую-нибудь платёжную систему, и мои персональные данные будут легко попадать в руки всем желающим, потому что кто-то написал вместо программы говно. Куда катится мир?
С пробуждением, Нио..
Mozilla/5.0 (X11; Linux i686; rv:8.0) Gecko/20100101 Firefox/8.0 Iceweasel/8.0