" title="Написать письмо">Написать письмо

Статьи по дате (многие всегда актуальны)

Статистика

Пользователи : 1
Статьи : 1700
Просмотры материалов : 6496441
 
О чокнутых программистах (30.01.2023). Печать E-mail
2023 - Январь
30.01.2023 21:12
Save & Share
Минутка ненависти.


Был в отделе программист. Сошел с ума - уволили в психушку. Но его слабоумие по общим понятиям было силоумием по профессии системного архитектора. Ядро написанной им программы отличается продуманной модульностью. Однако внутренности функций, выполняющих свои прямые обязанности, - это трындец.

Сначала был единичный случай. Функция, проверяющая, есть на жестком диске 1 файл или 2, - состояла более чем из 50 строк кода, достаточно запутанного.

Но далее появился второй. Функция ядра, занимающая простым поиском файлов по фильтру расширения, - занимает строк 200 с 3 циклами в цикле. И ладно объем кода - вывернутая наизнанку, перевернутая вверх тормашками, витиеватая и алогичная - вход через жопу, выход через рот.

В итоге, эта функция вместо 7000 файлов порождала с дубликатами ~100млн записей в одном списке - что не просто крайне медленно работало, а стало приводить к переполнению оперативной памяти (не хватало 34ГБ).

А уж пользователи как намучились за годы, в ожидании конца работы данной функции.

Решение задачи выглядит просто: написать свою или добавить .removeDuplicates() в существующую. Но так как функция входит в состав ядра и используется везде - закрадываются страх и сомнения. А, вдруг, так надо? Вдруг, каком-то одном случае важно, чтобы были миллионы записей - для последующего использования в другом участке кода?

А времени на парное тестирование всех ее вызовов - нет. Итог - костыль: если функция вызывается от меня - .removeDuplicates(). Как только освободится время, переписать эту функцию с нуля или позаимствовать хорошие примеры из интернета - резко ускорив всю программу в целом. Теоретически, все решится десятком строк с QFileSystemModel.

Не берите психов в программисты.
 
 

Последние новости


©2008-2023. All Rights Reserved. Разработчик - " title="Сергей Белов">Сергей Белов. Материалы сайта предоставляются по принципу "как есть". Автор не несет никакой ответственности и не гарантирует отсутствие неправильных сведений и ошибок. Вся ответственность за использование материалов лежит полностью на читателях. Размещение материалов данного сайта на иных сайтах запрещено без указания активной ссылки на данный сайт-первоисточник (ГК РФ: ст.1259 п.1 + ст.1274 п.1-3).

Много статей не имеет срока устаревания. Есть смысл смотреть и 2011, и даже 2008 год. Политика сайта: написать статью, а потом обновлять ее много лет.
Открыта карта ВТБ для материальной поддержки сайта: 5368 2902 0040 0838.

Рекламодателям! Перестаньте спамить мне на почту с предложениями о размещении рекламы на этом сайте. Я никогда спамером/рекламщиком не был и не буду!
Top.Mail.Ru