Здравствуйте, Igor Sukhov, Вы писали:
IS>Здравствуйте, creatman, Вы писали:
AS>>>Сделать из сложного простое задача нетривиальная и виртуальное наследование этому никак не способствует
C>>Пишите на чистом Си, никто о вас даже плохо не подумают, некоторые наоборот даже похвалят. Не используйте классы используйте структуры. Перенисите этот топик в ветку С vs C++
IS>назовите хотя бы три отличия структур от классов в С++ ?
Извиняюсь что поздно отвечаю.
Вобще-то я имел ввиду структуры в терминах Си. Я указал на то, что если вы считаете виртуальные функции или виртуальное наследование излишними фичами языка, которые вам не нужны, тогда пересмотрите вопрос о выборе языка для своего следущего проекта.
Не вижу дальнейшее обсуждение данной темы разумным в рамках этой ветки.
Здравствуйте, Дарней, Вы писали:
Д>Здравствуйте, creatman, Вы писали:
C>>см. subj. ИМХО для некоторых BOOST и STL кажется достаточно сложными штуками в использовании, но это отнюдь не говорит о том, что профессионал не должен их использовать. Для некоторых разработка класса считается гораздо более сложной феничкой чем структурка и пара десятков глобальных функций, ну тогда давайте переведем это в тему C vs C++.
Д>да нет, я вообще не об этом писал. Просто для многих (слишком многих) "навороченный код" эквивалентно "хороший код", и служит для подтверждения их неимоверной крутизны и высокого статуса Вот и появляются монстры, в которых простейшая задача решается неимоверно бессмысленно сложными способами.
Это быстро лечится, когда работа идет в команде более 3-х человек
Д>В общем, здравый смысл рулит
Почитал ветку выборочно, у мня такое впечатление возникло, что россия это будущая индия. Мы превращаемся в индусов. Слежу за школьными и студенческими олимпиадами (тк сам все это прошел в свое время), уровень задач из года в год все ниже и ниже, на форуме самого сильного в россии по программированию сообщества РСДН "инженера" начали кричать, что не надо знать алгоритм сортировки, можно с инета "закопипастить". Что творится в университетах, это просто плакать хочется.
Это все моё ИМХО и крик души...
((lambda (x) (list x (list 'quote x))) '(lambda (x) (list x (list 'quote x))))
Здравствуйте, Kisloid, Вы писали:
K>на форуме самого сильного в россии по программированию сообщества РСДН "инженера" начали кричать, что не надо знать алгоритм сортировки, можно с инета "закопипастить". Что творится в университетах, это просто плакать хочется.
Таки, если верить моему голосованию — сортировки многие знают
Здравствуйте, kollega, Вы писали:
K>Здравствуйте, xtile, Вы писали:
X>>Здравствуйте, Дарней, Вы писали:
C>>>>Это их проблемы, я думаю кривых рук хватает и в ABBYY
Д>>>удивительно только, почему это одна из немногих российских компаний, которые продают свой продукт по всему миру.
X>>Это удивительно и сложно понять, но зачастую самые успешные проекты отвратительно выглядят изнутри.
K>В данном случае это не верно. Из всех исходников, которые я видела в жизни в Абби самый чистый, понятный и красивый код.
Неужели в Абби есть правила по оформлению кода?
K> Не считая грамотной архитектуры.
Здравствуйте, jhfrek, Вы писали:
J>Таки, если верить моему голосованию — сортировки многие знают
Ага, и специально остальным орут, "да это знать не надо, можно с инета накачать", например чтобы конкурентов стало меньше
ЗЫ: помнится мне в классе 8м сказали отсортировать массив и дали полчаса, тогда я еще не знал ни одного алгоритма сортировки, за минут 20 я смог написать алгоритм со сложностью O(n^2). Как потом оказалось я написал стандартную сортировку вставками. А тут "инженера" получающие по 1000 баксов минимум не могут и не хотят этого знать Это же база, это фундамент, это как обычному человеку знать таблицу умножения например, знаю большинство крикнут зачем, если есть калькулятор
((lambda (x) (list x (list 'quote x))) '(lambda (x) (list x (list 'quote x))))
Здравствуйте, Kisloid, Вы писали:
J>>Таки, если верить моему голосованию — сортировки многие знают
K>Ага, и специально остальным орут, "да это знать не надо, можно с инета накачать", например чтобы конкурентов стало меньше
Здравствуйте, Дарней, Вы писали:
Д>я обычно таки использую виртуальные функции. Но и без них можно строить вполне качественный код. Д>Виртуальные функции в статике прекрасно заменяются шаблонами и/или кодогенерацией. Если реально нужен рантайм-полиморфизм, то можно использовать RTTI/reflection. (я не говорю, что так и надо делать. Но, тем не менее, это позволяет делать вполне терпимый по качеству код — тем более, что в большинстве случаев статического полиморфизма вполне достаточно)
Фигасе... А можно подробнее? Чую, что я со своей приверженностью к LSP начинаю устаревать.
<< Под музыку: silent >>
<< При помощи Януса: 1.2.0 alpha rev. 650 >>
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Kisloid, Вы писали:
K>Здравствуйте, jhfrek, Вы писали:
J>>Таки, если верить моему голосованию — сортировки многие знают
K>Ага, и специально остальным орут, "да это знать не надо, можно с инета накачать", например чтобы конкурентов стало меньше
K>ЗЫ: помнится мне в классе 8м сказали отсортировать массив и дали полчаса, тогда я еще не знал ни одного алгоритма сортировки, за минут 20 я смог написать алгоритм со сложностью O(n^2). Как потом оказалось я написал стандартную сортировку вставками. А тут "инженера" получающие по 1000 баксов минимум не могут и не хотят этого знать Это же база, это фундамент, это как обычному человеку знать таблицу умножения например, знаю большинство крикнут зачем, если есть калькулятор
Если у тебя в восьмом классе получилось написать сортировку, то "у инженера за 1000 бакстов минимум" тоже наверняка получится.
Здравствуйте, Kisloid, Вы писали:
K>ЗЫ: помнится мне в классе 8м сказали отсортировать массив и дали полчаса, тогда я еще не знал ни одного алгоритма сортировки, за минут 20 я смог написать алгоритм со сложностью O(n^2). Как потом оказалось я написал стандартную сортировку вставками.
А я примерно в таком же возрасте сам "придумал" сортировку пузырьком
K>Это же база, это фундамент, это как обычному человеку знать таблицу умножения например, знаю большинство крикнут зачем, если есть калькулятор
Сейчас например, я по памяти вряд ли назову хотя бы 3-4 алгоритма сортировки, просто потому что не надо было, хотя дома том "Сортировка и поиск" валяется, даже пару раз его доставал как-то (когда нужна была большая книжка, под винт подложить чтоб не падал ).
memorilik wrote: > > АК>Убиваться апстену не нужно. Но придется признать, что, если Вы не > понимаете, как работают и как могут быть оптимизированы такие простые > алгоритмы, как сортировка массива, то вряд ли следует ожидать от Вас > качественной разработки более сложного кода. > > А часто вы оптимизируете сортировки в своих проектах ? Я лично не разу, > хотя проектов хватало... Всегда использовали стандартные ф-ции и все > работало нормально. Более того, сейчас провел опрос своих знакомых на > предмет написания сортировок, но ни кто из них правильно на бумаге сразу > написать не смог.
В девятом классе написал. Просто надо было отсортировать массив. Даже
в голову не приходило, что существуют какие-то специальные алгоритмы.
Даже и слова-то такого не знал.
Для изобретения пузырька нужно чуть-чуть здравого смысла и пять
минут времени. Если человек не может этого сделать, это
исключительно психологические траблы.
Здравствуйте, Miroff, Вы писали:
M>Если у тебя в восьмом классе получилось написать сортировку, то "у инженера за 1000 бакстов минимум" тоже наверняка получится.
Если это инженер не в кавычках, то думаю да.
((lambda (x) (list x (list 'quote x))) '(lambda (x) (list x (list 'quote x))))
Kisloid пишет: > > ИМХО кажется ничего подобного, у квадрата и прямоугольника общее только > то, что они есть класс геометрических фигур. Так что в принципе можно > отнаследолвать их от общего абстрактного базового класса Shape. Квадрат > не есть частный случай прямоугольника в терминах ООП, да и в математике > насколько я помню тоже. > > Если бы мне дали такое задание, я бы написал что то вроде этого: > > class Square : public Shape > { > private: > int left_; > int top_;
> class Rectangle : public Shape > { > private: > int left_; > int top_; > > > Интересно, меня бы с таким решением тоже отправили бы ?
Ничего общего не замечаешь? К тому же, sideSize и width&height можно
заменить на corner. И все отличие сведется к assert'у в установщике
corner у квадрата. Не придется по два раза писать area(), draw() etc...
Здравствуйте, Eurispheus, Вы писали:
E>Пробовалось в нескольких вариантах: E>Вариант 1. Ребята, проект горит, прошу всех отнестись с пониманием, но придется месяц поработать без выходных. +40% к з/п за этот месяц. После сдачи — недельный отпуск за счет компании. Совершенно реальная и иногда случающаяся ситуация. Люди за месяц устают в крайней степени!
Извините. Выходные — это и есть СОРОК ПРОЦЕНТОВ от рабочего времени. Поэтому перефразирую: Ребята, нужно поработать месяц без выходных. Оплата за работу в выходные — в одиночном размере. Это, конечно, противоречит КЗОТу, но Вы потерпите, да?
E>Вариант 2. Обычная система компенсации за переработку. Т.е. если человек поработал в выходные (добровольно, о чем Вы говорите) — получи деньги за это время. Так вот это самое плохое, что может быть. Тут есть два негатива: 1. Некоторые начинают так работать постоянно, в результате через пару месяцев их производительность труда падает в разы. Были времена, когда приходилось категорически запрещать выходить в выходные. 2. Приходят в офис и занимаются своими делами.
ИМХО, кто-то платит мало? Иначе нет смысла сидеть на работе безвылазно...
Здравствуйте, Eurispheus, Вы писали:
E>Допустим, есть 2 компании: E>В одной предлагают $3500, работать в подвале, добираться два часа, все общаются на повышенных тонах, начальник хамит. E>В другой предлагают $3000. Хороший офис с кондиционером, комнаты отдыха, теннис, доброжелательный коллектив.
E>В данном случае $500 уже ничего не решает.
Обычно цифры надо местами поменять.
А еще — покажите мне место в Москве, где офис снимают в подвале и платят программеру 3000$.
Поверю в 1500 максимум.
Здравствуйте, creatman, Вы писали:
C>Извиняюсь что поздно отвечаю. C>Вобще-то я имел ввиду структуры в терминах Си. Я указал на то, что если вы считаете виртуальные функции или виртуальное наследование излишними фичами языка, которые вам не нужны, тогда пересмотрите вопрос о выборе языка для своего следущего проекта.
ничего ты не указал. когда ТЕБЕ ПОКАЗАЛИ что виртуальным наследованием не пользуются подавляющее большинство разработчиков, а добрая половина ВООБЩЕ НИКОГДА ничего виртуально не наследовала ты не нашел ничего лучшего чем попытаться увести разговор в сторону.
а теперь внимание вопрос: линейкой из какого железа следует бить по пальцам людей, которые используют этот тип наследования в большом проекте? Хинт — большой проект подразумевает:
1.большое количество разработчиков среднего уровня, которые смутно представляют себе такие тонкости языка
как в. наследование.
2.большое время жизни проекта, только усугубляющее положение средних разработчиков из п.1, и как следствие положение самого проекта (большой проект — он ведь держится на средних разработчиках).
Здравствуйте, Kisloid, Вы писали:
K>на форуме самого сильного в россии по программированию сообщества РСДН "инженера" начали кричать, что не надо знать алгоритм сортировки,
Да, 98 %-ам это не понадобится. Зачем изобретать очередной велосипед и потом искать в нем баги? Есть готовые реализации в .NET и STL. Давайте тогда еще выяснять знание алгоритмов поиска в строке например. Конечно бывают случаи, когда пишется новая библиотека или движок БД, и нужно знание алгоритмов.
K>можно с инета "закопипастить".
Так обычно быстрее. К примеру как-то понадобилась мне функция сравнения строки по wildcards, типа Like "*abc?d". Минут за 10 в инете отыскалось решение. Вы за 10 минут напишете такую функцию (там строчек 30)? Кстати, неплохой вариант для тестового задания, лучше чем предлагать изобретать велосипед.
K>Что творится в университетах, это просто плакать хочется.
Плакать хочется, когда читаешь о таком способе сортировки (где-то постили на РСДН с дельфового форума): создается скрытый List View, заполняется строками, вызывается Sort, считывается готовый результат. Кстати, такое еще придумать надо, этого у Кнута не прочитаешь.
Здравствуйте, algol, Вы писали:
A>Плакать хочется, когда читаешь о таком способе сортировки (где-то постили на РСДН с дельфового форума): создается скрытый List View, заполняется строками, вызывается Sort, считывается готовый результат. Кстати, такое еще придумать надо, этого у Кнута не прочитаешь.
jhfrek пишет: > > A>Плакать хочется, когда читаешь о таком способе сортировки (где-то > постили на РСДН с дельфового форума): создается скрытый List View, > заполняется строками, вызывается Sort, считывается готовый результат. > Кстати, такое еще придумать надо, этого у Кнута не прочитаешь. > > И чем он плох? Это же супер тест на смекалку
Ну отсортируй десять миллионов строк таким образом
Здравствуйте, algol, Вы писали:
A>Да, 98 %-ам это не понадобится. Зачем изобретать очередной велосипед и потом искать в нем баги? Есть готовые реализации в .NET и STL. Давайте тогда еще выяснять знание алгоритмов поиска в строке например. Конечно бывают случаи, когда пишется новая библиотека или движок БД, и нужно знание алгоритмов.
Изобретать велосипед не надо, там где возможно надо использовать готовые проверенные временем надежные библиотеки, это да. Лично я в промышленном программировании в код идущий в продакшн ни разу свой алгоритм сортировки, поиска итд итп не писал. Просто эти алгоритмы надо знать. Хотя бы для того чтобы понять где что правильно использовать. В том же дотнете я помню есть метод у object'а GetHashCode(), думаете человек который незнает что такое хеш таблицы, хеш функции, поймет что это такое за 5 мин ? И более того он сможет эффективно написать свою реализацию ?
((lambda (x) (list x (list 'quote x))) '(lambda (x) (list x (list 'quote x))))