По литературе — 5, но цитаты из учебника для младшей школы не проясняют вашу мысль (если она есть, разумеется). Имейте уважение к чтателям и объясняйте все для конкретного использования. А негативные эмоции можно сливать в другом месте, Хабр не помойная яма…
Жалко ваших коллег, но какое отношение их судьба имеет к глобальным переменным не очень понятно… себя показать можно и в другом месте, Хабр для этого не очень подходит…
Алексей, небольшое дополнение. Было бы здорово, если бы вы написали небольшую статью с примером оптимальной с вашей точки зрения реализации. От этой статьи было бы больше пользы, чем от в общем-то пустых словопрений кто быстрее, кто экономичнее и тд. Спасибо.
Мы уже писали в передыдущем комментарии, что не всегда "быстрее" и уж точно не всегда "читабельней". Повторю наше мнение — идеальных решений не бывает, бывают оптимальные. Если вы считаете, что решение с помощью циклов лучше, мы думаем читатели с удовольствием ознакомятся с вашей статьей по этому вопросу. Спасибо.
Алексей, цель этой маленькой статьи — показать как ПРОСТО реалзовать удаление лишних символов из строки с помощью регулярных выражений. Это все. Цели показать ВСЕ варианты решения этой задачи мы не ставили, поскольку СЛОЖНО не всегда хорошо. Если бы статья описывала реализацию с использованием циклов, обязательно появился бы комментарий, что это не здорово, потому, что… и так далее. С вашими рассуждениями никто не спорит они имеют право на жизнь, так же как и многие другие. Если написать решение этой задачи в машинном коде, то, скорее всего, работать будет еще быстрее, но сам код разрастется до чудовищный размеров, несопоставимых с решаемой задачей.
И тут мы подошли к важной, на наш взгляд мысли — для решения каждой задачи существуют оптимальные средства. Именно оптимальные, а не идеальные. Идеальных попросту не бывает, так как если где-то что-то хорошо, то обязательно где-то что-то плохо.
Что касается библиотеки, то все действительно, решается одним вызовом. НО цель статьи не показать как пользоваться библиотекой, а совсем другая — как использовать регулярные выражения для удаления лишних символов. Эта задача решена.
Спасибо за комментарий, Алексей! Не совсем с вами согласен.
Самое простое решение может быть не самым удачным только в двух случаях — если оно не полностью решает поставленную задачу или если имеет негативные побочные эффекты, но чаще всего именно самое простое решение — самое удачное. Если же задача не решена в полной мере или задача как раз и состоит в том, чтобы неворотить побольше кода, то, конечно, можно подумать и найти способ усложнить жизнь...
Что касается "ужасно ресурсоемкого процесса", то я нигде не видел реальной статистики, сравнивающей использование регулярных выражений или, как вы выразились, "фильтров по таблице". Общепринято считать, что парсинг регулярного выражения относительно ресурсоемкий процесс. И здесь ключевые слова — "общепринято" и "относительно". Обычно когда "общепринято" — никто ни за что не отвечает. А что касается "относительно", то при работе с небольшими строками, а в данном случае чаще всего речь идет о небольших строках (логины, пароли, адреса и тд), а не романах объема "Войны и мира", вообще говорить о производительности довольно странное занятие.
И третье, опытному программисту, скорее всего, эта статья не откроет новые горизонты, но остальным, мы надеемся, сэкономит драгоценные минуты их личной жизни.
Добрый день! Спасибо за вопрос, мы и не пытались сказать, что наша библиотека чем-то лучше стандартных методов Apple. У каждого инструмента свое предназначение… Задача статьи показать подход к решению конкретной задачи. Регулярные выражения, приведенное во второй части статьи (надеемся выложить ее сегодня), абсолютно прозрачны и удовлетворяют поставленным условиям. Говоря проще, используя его разработчик знает что получит в результате и каким стандартам удовлетворяет его продукт. В случае же с NSTextCheckingType мы можем только догадываться о том, почему получаем YES, а почему NO… То есть мы верим Aplle… Что же касается самой библиотеки, то по сравнению с инструментами Aplle, в частности классом NSTextCheckingType объем кода, требуемый для решения данной задачи в разы меньше, а это, естественно, позволяет сократить сроки разработки и дать разработчикам чуть-чуть личной жизни...
И тут мы подошли к важной, на наш взгляд мысли — для решения каждой задачи существуют оптимальные средства. Именно оптимальные, а не идеальные. Идеальных попросту не бывает, так как если где-то что-то хорошо, то обязательно где-то что-то плохо.
Что касается библиотеки, то все действительно, решается одним вызовом. НО цель статьи не показать как пользоваться библиотекой, а совсем другая — как использовать регулярные выражения для удаления лишних символов. Эта задача решена.
Самое простое решение может быть не самым удачным только в двух случаях — если оно не полностью решает поставленную задачу или если имеет негативные побочные эффекты, но чаще всего именно самое простое решение — самое удачное. Если же задача не решена в полной мере или задача как раз и состоит в том, чтобы неворотить побольше кода, то, конечно, можно подумать и найти способ усложнить жизнь...
Что касается "ужасно ресурсоемкого процесса", то я нигде не видел реальной статистики, сравнивающей использование регулярных выражений или, как вы выразились, "фильтров по таблице". Общепринято считать, что парсинг регулярного выражения относительно ресурсоемкий процесс. И здесь ключевые слова — "общепринято" и "относительно". Обычно когда "общепринято" — никто ни за что не отвечает. А что касается "относительно", то при работе с небольшими строками, а в данном случае чаще всего речь идет о небольших строках (логины, пароли, адреса и тд), а не романах объема "Войны и мира", вообще говорить о производительности довольно странное занятие.
И третье, опытному программисту, скорее всего, эта статья не откроет новые горизонты, но остальным, мы надеемся, сэкономит драгоценные минуты их личной жизни.