Философия, за которой мы следуем на работе, должна сохранить соединительную линию в состоянии, где можно продвинуть в любое время без решительного вреда сайту. Нельзя сказать, что соединительная линия всегда будет в идеальном состоянии. Конечно, будут ошибки в нем. Но точка никогда не должна оставлять поврежденным решительно.
, Если у Вас есть функция для добавления, перейти. Конструктивное изменение, ответвление. Были так много раз, где я думал, "о, я могу просто сделать это в соединительной линии, она не собирается занимать у этого много времени", и затем 5 часов спустя, когда я не могу выяснить ошибку, которая повреждает вещи, мне действительно было жаль, что я не перешел.
, Когда Вы сохраняете соединительную линию чистой, Вы позволяете возможности быстро применяться и выставить исправления ошибок. Вы не должны волноваться о поврежденном коде, у Вас есть это, Вы удобно отклонились.
Обновление: Я написал расширение PHP под названием php_ssdeep для API ssdeep C, чтобы облегчить нечеткое хеширование и сравнение хешей в PHP изначально. Более подробную информацию можно найти в моем блоге . Я надеюсь, что это будет полезно для людей.
Я нашел программу, которая делает то, что ее создатель, Джесси Корнблюм, называет «нечетким хешированием». По сути, он создает хэши файла, которые можно использовать для обнаружения похожих файлов или идентичных совпадений.
Теория, лежащая в основе этого, задокументирована здесь: Идентификация почти идентичных файлов с помощью кусочного хеширования, запускаемого контекстом
ssdeep это имя программы, и ее можно запускать в Windows или Linux. Он был предназначен для использования в криминалистических вычислениях, но кажется достаточно подходящим для наших целей. Я провел короткий тест на старом компьютере Pentium 4, и мне потребовалось около 3 секунд, чтобы просмотреть хэш-файл размером 23 МБ (хэши чуть менее 135 000 файлов) в поисках совпадений с двумя файлами. Это время включает создание хэшей для двух файлов, которые я искал.
Я работаю над аналогичной проблемой в web2project и, поспрашивая и покопавшись, пришел к выводу, что «пользователю все равно». Наличие дубликатов документов не имеет значения для пользователя, пока они могут найти свой собственный документ по его собственному имени.
При этом я использую следующий подход:
На протяжении всего этого мы не говорим пользователю, что это был дубликат ... они этого не делают. т забота. Это мы (разработчики, администраторы баз данных и т. Д.), Которые заботятся.
И да, это работает, даже если они загружают новую версию файла позже. Сначала вы удаляете ссылку на файл, а затем, как и при сборке мусора, удаляете только старый файл, если на него нет ссылок.
могут быть важные причины, по которым пробелы или заглавные буквы изменены;На протяжении всего этого мы не говорим пользователю, что это был дубликат ... им все равно. Это мы (разработчики, администраторы баз данных и т. Д.), Которые заботятся.
И да, это работает, даже если они загрузят новую версию файла позже. Сначала вы удаляете ссылку на файл, а затем, как и при сборке мусора, удаляете только старый файл, если на него нет ссылок.
могут быть важные причины, по которым пробелы или заглавные буквы изменены;На протяжении всего этого мы не говорим пользователю, что это дубликат ... им все равно. Это мы (разработчики, администраторы баз данных и т. Д.), Которые заботятся.
И да, это работает, даже если они загружают новую версию файла позже. Сначала вы удаляете ссылку на файл, затем, как и при сборке мусора, вы удаляете только старый файл, если на него нет ссылок.
На протяжении всего этого мы не говорим пользователю, что это дубликат ... они пофиг. Это мы (разработчики, администраторы баз данных и т. Д.), Которые заботятся.
И да, это работает, даже если они загружают новую версию файла позже. Сначала вы удаляете ссылку на файл, затем, как и при сборке мусора, вы удаляете только старый файл, если на него нет ссылок.
На протяжении всего этого мы не говорим пользователю, что это дубликат ... они все равно. Это мы (разработчики, администраторы баз данных и т. Д.), Которые заботятся.
И да, это работает, даже если они загрузят новую версию файла позже. Сначала вы удаляете ссылку на файл, а затем, как и при сборке мусора, удаляете только старый файл, если на него нет ссылок.