Re[5]: О собеседованиях программистов
От: out-of-the-way США www.tehnoromantik.net
Дата: 21.02.11 14:26
Оценка:
Здравствуйте, Lloyd, Вы писали:

L>Здравствуйте, out-of-the-way, Вы писали:


OOT>>В ООП исходят из того что тип это набор того что можно с этим типом сделать, экземпляр класса реализующего IEnumerable имеет тип IEnumerable. Тип это интерфейс, а класс это его конкретная реализация. Возникает небольшая путаница на счёт классов которые не реализуют интерфейсов, но на практике проблем не возникает.


L>У вас каша в голове


Это почему?
Программа — мысли спрессованные в код.
Re[3]: О собеседованиях программистов
От: genre Россия  
Дата: 21.02.11 14:41
Оценка:
Здравствуйте, Vzhyk, Вы писали:

>> У тебя свое виденье системы тестирования или дизайна, у кандидата свое.

>> И дальше что?
V>И это очень хорошо, если у него есть видение.

И какие выводы ты собираешься из этого делать? Оценить правильность/неправильность для хоть мало мальски сложной проблемы просто не хватит никакого времени. А для простой у всех будет правильное.
Отсеивать-то как?


Обобщим проблему, для любителей порассуждать о вопросах на собеседовании.

Вот допустим есть у нас проект. Приложение, трехзвенка, база данных, какая-нибудь штука для бизнес-процессов например, пусть для большей определенности мы пишем конкурента 1С.
Нужен программист в команду гуя. Денег мы ему можем предложить 70% от максимума на нашем локальном рынке.

Какие вопросы про тестирование и дизайн надо ему задавать чтобы получить максимально эффективный результат?
... << RSDN@Home 1.2.0 alpha 4 rev. 1476>>
Re[21]: О собеседованиях программистов
От: samius Япония http://sams-tricks.blogspot.com
Дата: 21.02.11 14:46
Оценка: -1
Здравствуйте, Воронков Василий, Вы писали:

ВВ>Здравствуйте, samius, Вы писали:


S>>var, анонимные типы — это не синтаксис.


ВВ>Что характерно это и не Линк. В языках, где нет анонимных типов, но есть, скажем, тюплы, ВНЕЗАПНО оказывается, что тюплы могут выполнять эту функцию не хуже. Интересно, они после этого становятся "частью Линка"?

Может тогда в F# Seq.map является частью линка, потому как он выполняет функцию standard query operator-а?

S>>>>Это все равно что говорить о том что Generics — это не расширение платформы и язка, а классы в FCL.

ВВ>>>Нет, не все равно. Линк таки включает в себя библиотеку для работы с коллекциями в функциональном стиле, причем библиотека эта спокойно может использоваться и без синтаксиса.
S>>Не сильно спокойно.

ВВ>Спокойно, если не забывать, что экстеншин-методы и лямбды это все же синтаксические добавления в языке "общего назначения", а не строго привязанные к Линку. Если в языке есть хотя бы *аналогичные* механизмы, то Линк более чем юзабелен.

вот посмотрим на F#. за var — let. за экстеншн методы — пайпинг. За анонимные типы — туплы.
А линк не юзабелен, т.к. called standard query operator-ы F# не знает, хоть и может вызывать методы, их реализующие.

ВВ>>>У Линка свой компилятор выражений, если что.

S>>В FW 2 его нет, если что.

ВВ>В FW2 и Линка нет, если что.

Это определенно новость для меня. Об этом предлагаю подискутировать с авторами этого или этого.

ВВ>А что добавление нового синтаксиса — это единственная интеграция с языком, которую ты можешь представить?

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

ВВ>>>А я считаю, что методы из этого неймспейса — это часть Линка. Такая же, как и встроенный в C# синтаксис.

S>>Но тогда придется считать частью линка многие другие методы, которые к FW не имеют отношения:
S>>Maybe<U> Select<U>(Maybe<T>, Func<T, U>)

ВВ>Не понял — ни причинно-следственной связи, ни вывода.

Просто линк имеет отношение к методам System.Linq.Enumerable в точности то же самое, какое и к вышеописанному методу. И этот метод и System.Linq.Enumerable реализуют стандартный query оператор. Больше их с линком ничего не связывает.
Re[4]: О собеседованиях программистов
От: Vzhyk  
Дата: 21.02.11 14:52
Оценка: 16 (2)
21.02.2011 16:41, genre пишет:

> Отсеивать-то как?

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

>

> определенности мы пишем конкурента 1С.
Да я понял. Для вашей конторы лучший вариант собеседования — экзамен с
домашним заданием.
Posted via RSDN NNTP Server 2.1 beta
Re[22]: О собеседованиях программистов
От: Воронков Василий Россия  
Дата: 21.02.11 15:06
Оценка: +1 :)
Здравствуйте, samius, Вы писали:
ВВ>>Что характерно это и не Линк. В языках, где нет анонимных типов, но есть, скажем, тюплы, ВНЕЗАПНО оказывается, что тюплы могут выполнять эту функцию не хуже. Интересно, они после этого становятся "частью Линка"?
S>Может тогда в F# Seq.map является частью линка, потому как он выполняет функцию standard query operator-а?

Seq.map тут точно не причем.

ВВ>>Спокойно, если не забывать, что экстеншин-методы и лямбды это все же синтаксические добавления в языке "общего назначения", а не строго привязанные к Линку. Если в языке есть хотя бы *аналогичные* механизмы, то Линк более чем юзабелен.

S>вот посмотрим на F#. за var — let. за экстеншн методы — пайпинг. За анонимные типы — туплы.
S>А линк не юзабелен, т.к. called standard query operator-ы F# не знает, хоть и может вызывать методы, их реализующие.

Вот как линк используют в F#: http://blogs.msdn.com/b/dsyme/archive/2006/01/27/fsharpmeetslinqone.aspx?wa=wsignin1.0
Заметка Дона Сима от 2006 года, когда Линк еще не зарелизили. Главная проблема там, как видишь, в том, что "неправильный" порядок аргументов в методах типа Select, OrderBy из-за которых приходится создавать над ними обвертки. Тому же Немерле на порядок аргументов пофиг, поэтому можно вызывать напрямую. Вроде работает, нет?

Кстати, странно, посмотри, что Дон Сим называет Линком. Никакого C# и поблизости нет. Сдается мне, что michael_isu завалил бы этого несчастного мужика на собеседовании.

ВВ>>В FW2 и Линка нет, если что.

S>Это определенно новость для меня. Об этом предлагаю подискутировать с авторами этого или этого.

Ну протащили они библиотеки в FW2 и что? Это какую мысль должно подтвердить или опровергнуть?

ВВ>>А что добавление нового синтаксиса — это единственная интеграция с языком, которую ты можешь представить?

S>Стандартные query операторы, правила трансляции выражений тоже являются частью интеграции. Если язык их не поддерживает, то об поддержке линка для этого языка нет речи.

В linq2objects никакой трансляции выражений нет. Это ведь еще по-прежнему Линк?

ВВ>>Не понял — ни причинно-следственной связи, ни вывода.

S>Просто линк имеет отношение к методам System.Linq.Enumerable в точности то же самое, какое и к вышеописанному методу. И этот метод и System.Linq.Enumerable реализуют стандартный query оператор. Больше их с линком ничего не связывает.

Линк имеет отношение к методам System.Linq.Enumerable, потому что они является частью "общего пакета". Товарищи из твоей ссылки зачем-то System.Core куда-то копируют. С чего бы это?

Но меня другое интересует — ты сейчас пытаешься доказать, что Linq является частью языка C# или мы уже просто трепемся?
Re[5]: О собеседованиях программистов
От: genre Россия  
Дата: 21.02.11 15:08
Оценка: -2 :))
Здравствуйте, Vzhyk, Вы писали:

>> Отсеивать-то как?

V>В этом вся твоя проблема.
V>Я, собеседуя, ищу подходящего мне человека. Ты же, собеседуя, отделяешь неподходящих.

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

V>(ибо не в силах осознать все плюсы и минусы всех, прошедших через тебя).


А вот гадать и ставить диагноз по кофейной гуще не надо. Я могу оценить всех прошедших через меня формально. По сути если потребуется довести ситуацию до абсурда я могу поставить каждому оценку, как на экзамене. Оценку которая отражает, насколько по-моему мнению этот человек подойдет нашей фирме. Заметь, не только моему проекту, а любому в нашей фирме.
А ты нет.
... << RSDN@Home 1.2.0 alpha 4 rev. 1476>>
Re[5]: О собеседованиях программистов
От: genre Россия  
Дата: 21.02.11 15:12
Оценка:
Здравствуйте, Vzhyk, Вы писали:

>>

>> определенности мы пишем конкурента 1С.
V>Да я понял. Для вашей конторы лучший вариант собеседования — экзамен с
V>домашним заданием.

Заканчивай вообще переходить на личности.
... << RSDN@Home 1.2.0 alpha 4 rev. 1476>>
Re[6]: О собеседованиях программистов
От: Vzhyk  
Дата: 21.02.11 15:46
Оценка: :)
21.02.2011 17:08, genre пишет:

>

> Не важно с какой стороны двигаться к заданной планке.
И это человек собеседует людей, в том числе и по алгоритмам...

> Важно правильно

> эту планку задать. Тебе подходят все у кого есть интересный опыт про
> который они могут рассказать. Мне те — кто в состоянии написать код.
> Решить конкретные задачи, ответить на конкретные вопросы.
> Просто моя планка выше. Я не верю опыту. Я верю только коду. и
> конкретным ответам на конкретные технические вопросы.
"Неважно с какой стороны двигаться..."

>

> V>(ибо не в силах осознать все плюсы и минусы всех, прошедших через тебя).
> А вот гадать и ставить диагноз по кофейной гуще не надо.
Это не гадание — это всего-лишь констатация факта об ограниченности
человеческого мозга. Но я так понимаю, что сей факт к тебе не относится.


> Оценку которая отражает, насколько по-моему мнению этот человек подойдет

> нашей фирме. Заметь, не только моему проекту, а любому в нашей фирме.
Люксофт?
Posted via RSDN NNTP Server 2.1 beta
Re[7]: О собеседованиях программистов
От: genre Россия  
Дата: 21.02.11 16:08
Оценка:
Здравствуйте, Vzhyk, Вы писали:


>> Не важно с какой стороны двигаться к заданной планке.

V>И это человек собеседует людей, в том числе и по алгоритмам...

Если ты вместо кратких взываний к небу о несовершенстве мира начнешь давать вменяемые комментарии по сути обсуждения дискуссия имеет шансы стать продуктивной.

>>

>> V>(ибо не в силах осознать все плюсы и минусы всех, прошедших через тебя).
>> А вот гадать и ставить диагноз по кофейной гуще не надо.
V>Это не гадание — это всего-лишь констатация факта об ограниченности
V>человеческого мозга. Но я так понимаю, что сей факт к тебе не относится.

Ты считаешь, что человеческий мозг не в состоянии оценить плюсы и минусы десятка другого прособеседованных людей?
... << RSDN@Home 1.2.0 alpha 4 rev. 1476>>
Re[23]: О собеседованиях программистов
От: samius Япония http://sams-tricks.blogspot.com
Дата: 21.02.11 16:08
Оценка:
Здравствуйте, Воронков Василий, Вы писали:

ВВ>Здравствуйте, samius, Вы писали:


S>>вот посмотрим на F#. за var — let. за экстеншн методы — пайпинг. За анонимные типы — туплы.

S>>А линк не юзабелен, т.к. called standard query operator-ы F# не знает, хоть и может вызывать методы, их реализующие.

ВВ>Вот как линк используют в F#: http://blogs.msdn.com/b/dsyme/archive/2006/01/27/fsharpmeetslinqone.aspx?wa=wsignin1.0

ВВ>Заметка Дона Сима от 2006 года, когда Линк еще не зарелизили. Главная проблема там, как видишь, в том, что "неправильный" порядок аргументов в методах типа Select, OrderBy из-за которых приходится создавать над ними обвертки. Тому же Немерле на порядок аргументов пофиг, поэтому можно вызывать напрямую. Вроде работает, нет?

Furthermore, you don't actually have to use LINQ as such (which is only in preview) — F# is already a great alternative environment for exploring the concepts that underpin the LINQ paradigm.

Оттуда. В остальном приведены байндинги на методы, реализующие стандартные query операторы.

ВВ>Кстати, странно, посмотри, что Дон Сим называет Линком. Никакого C# и поблизости нет. Сдается мне, что michael_isu завалил бы этого несчастного мужика на собеседовании.

Он не называет приведенное линком, он пишет "do some LINQ programming", что не то же самое.

ВВ>>>В FW2 и Линка нет, если что.

S>>Это определенно новость для меня. Об этом предлагаю подискутировать с авторами этого или этого.

ВВ>Ну протащили они библиотеки в FW2 и что? Это какую мысль должно подтвердить или опровергнуть?

То что в FW2 линк применим, но нет библиотек из коробки.

ВВ>>>А что добавление нового синтаксиса — это единственная интеграция с языком, которую ты можешь представить?

S>>Стандартные query операторы, правила трансляции выражений тоже являются частью интеграции. Если язык их не поддерживает, то об поддержке линка для этого языка нет речи.

ВВ>В linq2objects никакой трансляции выражений нет. Это ведь еще по-прежнему Линк?

как нет трансляции выражений?
http://msdn.microsoft.com/ru-ru/library/bb397919.aspx

Термином "LINQ to Objects" называют использование запросов LINQ непосредственно с коллекциями IEnumerable или IEnumerable(T) без промежуточных поставщиков LINQ или API-интерфейсов, таких как LINQ to SQL или LINQ to XML.


ВВ>Линк имеет отношение к методам System.Linq.Enumerable, потому что они является частью "общего пакета". Товарищи из твоей ссылки зачем-то System.Core куда-то копируют. С чего бы это?

В ней есть реализация стандартных операторов и атрибута ExtensionMethod. Linq не зашит на конкретные реализации и атрибуты, потому его устраивают и сторонние реализации. В частности LinqBridge не требует копирования System.Core. Да и я работал 3 года на самопальных реализациях.

ВВ>Но меня другое интересует — ты сейчас пытаешься доказать, что Linq является частью языка C# или мы уже просто трепемся?

Уже так походу. Доказывать я не пытаюсь, привожу факты. Если они тебя не убеждают, что Enumerable.Where это не линк, а просто метод с сигнатурой, удовлетворяющей правилу трансформаций выражений, то я готов на этом закончить.
Re[24]: О собеседованиях программистов
От: Воронков Василий Россия  
Дата: 21.02.11 16:52
Оценка:
Здравствуйте, samius, Вы писали:

ВВ>>Вот как линк используют в F#: http://blogs.msdn.com/b/dsyme/archive/2006/01/27/fsharpmeetslinqone.aspx?wa=wsignin1.0

ВВ>>Заметка Дона Сима от 2006 года, когда Линк еще не зарелизили. Главная проблема там, как видишь, в том, что "неправильный" порядок аргументов в методах типа Select, OrderBy из-за которых приходится создавать над ними обвертки. Тому же Немерле на порядок аргументов пофиг, поэтому можно вызывать напрямую. Вроде работает, нет?
S>

S>Furthermore, you don't actually have to use LINQ as such (which is only in preview) — F# is already a great alternative environment for exploring the concepts that underpin the LINQ paradigm.

S>Оттуда. В остальном приведены байндинги на методы, реализующие стандартные query операторы.

Правильно. В F# Линк не нужен. Только это не мешает его там использовать.

ВВ>>Кстати, странно, посмотри, что Дон Сим называет Линком. Никакого C# и поблизости нет. Сдается мне, что michael_isu завалил бы этого несчастного мужика на собеседовании.

S>Он не называет приведенное линком, он пишет "do some LINQ programming", что не то же самое.

Точно, это не Линк, это программирование с использованием Линка. Абсолютно разные вещи.

ВВ>>Ну протащили они библиотеки в FW2 и что? Это какую мысль должно подтвердить или опровергнуть?

S>То что в FW2 линк применим, но нет библиотек из коробки.

И в твоей ссылке описывается, как эти библиотеки "в коробку" добавить. К чему был пример, повторюсь?

ВВ>>>>А что добавление нового синтаксиса — это единственная интеграция с языком, которую ты можешь представить?

S>>>Стандартные query операторы, правила трансляции выражений тоже являются частью интеграции. Если язык их не поддерживает, то об поддержке линка для этого языка нет речи.
ВВ>>В linq2objects никакой трансляции выражений нет. Это ведь еще по-прежнему Линк?
S>как нет трансляции выражений?
S>http://msdn.microsoft.com/ru-ru/library/bb397919.aspx
S>

S>Термином "LINQ to Objects" называют использование запросов LINQ непосредственно с коллекциями IEnumerable или IEnumerable(T) без промежуточных поставщиков LINQ или API-интерфейсов, таких как LINQ to SQL или LINQ to XML.


Так и нет. Именно это, кстати, и говорится в приведенной тобой цитате.
Откуда и куда там выражения транслируются?

ВВ>>Но меня другое интересует — ты сейчас пытаешься доказать, что Linq является частью языка C# или мы уже просто трепемся?

S>Уже так походу. Доказывать я не пытаюсь, привожу факты. Если они тебя не убеждают, что Enumerable.Where это не линк, а просто метод с сигнатурой, удовлетворяющей правилу трансформаций выражений, то я готов на этом закончить.

Нет, не убеждают. Enumerable.Where — это часть того, что называют Linq-ом.
Re[25]: О собеседованиях программистов
От: samius Япония http://sams-tricks.blogspot.com
Дата: 21.02.11 18:37
Оценка:
Здравствуйте, Воронков Василий, Вы писали:

ВВ>Здравствуйте, samius, Вы писали:


S>>

S>>Furthermore, you don't actually have to use LINQ as such (which is only in preview) — F# is already a great alternative environment for exploring the concepts that underpin the LINQ paradigm.

S>>Оттуда. В остальном приведены байндинги на методы, реализующие стандартные query операторы.

ВВ>Правильно. В F# Линк не нужен. Только это не мешает его там использовать.

Не использовать, а вызвать метод Enumerable не мешает.

S>>Он не называет приведенное линком, он пишет "do some LINQ programming", что не то же самое.


ВВ>Точно, это не Линк, это программирование с использованием Линка. Абсолютно разные вещи.

разные, т.к. смысла "с использованием линка" там нет.

S>>То что в FW2 линк применим, но нет библиотек из коробки.

ВВ>И в твоей ссылке описывается, как эти библиотеки "в коробку" добавить. К чему был пример, повторюсь?
К тому что в FW2 линк можно использовать. И без библиотек тоже. Достаточно лишь C# 3.

ВВ>>>В linq2objects никакой трансляции выражений нет. Это ведь еще по-прежнему Линк?

S>>как нет трансляции выражений?
S>>http://msdn.microsoft.com/ru-ru/library/bb397919.aspx
S>>

S>>Термином "LINQ to Objects" называют использование запросов LINQ непосредственно с коллекциями IEnumerable или IEnumerable(T) без промежуточных поставщиков LINQ или API-интерфейсов, таких как LINQ to SQL или LINQ to XML.


ВВ>Так и нет. Именно это, кстати, и говорится в приведенной тобой цитате.

ВВ>Откуда и куда там выражения транслируются?
из Query expression в вызовы реализаций query операторов.

S>>Уже так походу. Доказывать я не пытаюсь, привожу факты. Если они тебя не убеждают, что Enumerable.Where это не линк, а просто метод с сигнатурой, удовлетворяющей правилу трансформаций выражений, то я готов на этом закончить.


ВВ>Нет, не убеждают. Enumerable.Where — это часть того, что называют Linq-ом.

это метод, на который транслируется линк. Один из.
Если я напишу MyStrangeType.Where, то это тоже будет часть Linq-а?
Re[8]: О собеседованиях программистов
От: minorlogic Украина  
Дата: 21.02.11 20:01
Оценка:
Люксофт ?
... << RSDN@Home 1.2.0 alpha 4 rev. 1237>>
Ищу работу, 3D, SLAM, computer graphics/vision.
Re[9]: О собеседованиях программистов
От: Stanislav V. Zudin Россия  
Дата: 21.02.11 20:07
Оценка:
Здравствуйте, minorlogic, Вы писали:

M>Люксофт ?


А расскажите, что не так с Люксофтом?
_____________________
С уважением,
Stanislav V. Zudin
Re[10]: О собеседованиях программистов
От: minorlogic Украина  
Дата: 21.02.11 20:10
Оценка:
Здравствуйте, Stanislav V. Zudin, Вы писали:

SVZ>Здравствуйте, minorlogic, Вы писали:


M>>Люксофт ?


SVZ>А расскажите, что не так с Люксофтом?


А с ним что то не так ? Раскажите плз.
... << RSDN@Home 1.2.0 alpha 4 rev. 1237>>
Ищу работу, 3D, SLAM, computer graphics/vision.
Re[11]: О собеседованиях программистов
От: Stanislav V. Zudin Россия  
Дата: 21.02.11 20:17
Оценка:
Здравствуйте, minorlogic, Вы писали:

SVZ>>А расскажите, что не так с Люксофтом?


M>А с ним что то не так ? Раскажите плз.


Да вот мне самому интересно. Уже второй человек подозревает genre в связях с Люксофтом.
Может я чего-то интересное пропустил?
_____________________
С уважением,
Stanislav V. Zudin
Re[4]: О собеседованиях программистов
От: landerhigh Пират  
Дата: 21.02.11 23:52
Оценка:
Здравствуйте, AlexFox, Вы писали:

L>>Какие-нибудь еще вопросы на основы есть?


AF>Очень нетолерантно!


Следуем новому тренду.
www.blinnov.com
Re[6]: О собеседованиях программистов
От: scale_tone Норвегия https://scale-tone.github.io/
Дата: 22.02.11 07:32
Оценка: 1 (1) +1
Здравствуйте, michael_isu, Вы писали:

_>вопрос был такой — какого типа может быть переменная list:


_>var e = list.GetEnumerator();


Согласно MSDN, метод GetEnumerator() есть у огромного множества классов, т.к. огромное множество классов поддерживает интерфейс IEnumerable. Соответственно, переменная list может быть какого угодно типа. При этом в описании метода IEnumerable.GetEnumerator()
сказано:

The foreach statement of the C# language (For Each in Visual Basic) hides the complexity of the enumerators. Therefore, using foreach is recommended, instead of directly manipulating the enumerator.

Т.е. строчки
var e = list.GetEnumerator();
в хорошем коде быть не может, ибо незачем — оператор foreach() есть.

Вы принципиально не пользуетесь оператором foreach() ?
Re[7]: О собеседованиях программистов
От: michael_isu Беларусь  
Дата: 22.02.11 08:14
Оценка:
Здравствуйте, scale_tone, Вы писали:

_>Здравствуйте, michael_isu, Вы писали:


_>>вопрос был такой — какого типа может быть переменная list:


_>>var e = list.GetEnumerator();


_>Согласно MSDN, метод GetEnumerator() есть у огромного множества классов, т.к. огромное множество классов поддерживает интерфейс IEnumerable. Соответственно, переменная list может быть какого угодно типа. При этом в описании метода IEnumerable.GetEnumerator()

_> сказано:

_>The foreach statement of the C# language (For Each in Visual Basic) hides the complexity of the enumerators. Therefore, using foreach is recommended, instead of directly manipulating the enumerator.


_>Т.е. строчки

_> var e = list.GetEnumerator();
_>в хорошем коде быть не может, ибо незачем — оператор foreach() есть.

Отлично!

_>Вы принципиально не пользуетесь оператором foreach() ?


Я только им и пользуюсь
Re[7]: О собеседованиях программистов
От: elmal  
Дата: 22.02.11 08:20
Оценка:
Здравствуйте, scale_tone, Вы писали:

_>в хорошем коде быть не может, ибо незачем — оператор foreach() есть.

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