Re[5]: Я в шоке.
От: egaron http://127.0.0.1
Дата: 14.03.10 13:08
Оценка: 3 (1) +1
кстати, по поводу темы.
в течение всей карьеры есть у меня одно наблюдение. Когда я читал код своих коллег, то заметил интересную особенность.
Наиболее работающий и эффективный код как раз пишут те, кто пишет без наворотов.

На нескольких работах были у меня коллеги, у которых, когда смотрел код, восхищался — как они много и правильно пишут, и все работает, и почти нет багов. лично у меня производительность на порядок ниже.

но... в их коде я часто замечал всякое отсутствие навороченности — более того, применяются конструкции и стиль кодирования, за который бы на любом собеседовании ехидно бы высмеяли, и детали, которые каждый второклассник-дотнетчик знает, не соблюдены. Так, например, сравнение строки с пустым литералом вместо сравнения длины с нулем, неиспользование стрингБилдера, сложение строк вместо стрингбилдера и string.format, чрезмерное и неоправданное использование сессии и элементов постбэка в вэбе, даже наименования параметров метода с большой буквы режут глаз, ибо ни под какую нейм-конвеншн не подходят.

работа с БД тоже построена так, что один и тот же запрос исполняется несколько раз, вместо того, чтобы создать класс, который достает всю инфу сразу, о кэшировании вообще нет и речи. и многое другое.

однако, возникала ли у меня хоть когда-либо мысль раскритиковать такой код? нет нет и еще раз нет! код простой, не использует паттернов, во многом не оптимален с точки зрения производительности, но главное... он работает! и работает, мало того, правильно и безбажно! и лопатит огромные объемы бизнес-логики, которые увлекающийся какими-нибудь фреймворкнаворотами, паттернами и фабриками талантливый кодерок попросту не осилит и погрязнет в них. Я вот, например, писать так много, быстро и правильно — не умею, и склонен, как тот кодерок, погрязать в абстракциях.

да даже элементарных проверок на нулл для полей методов во многих местах в этмо коде нету, из-за чего случаются падежи, (например, прямый обращения объект.метод1.поле2 при том ,что сам объект==нулл). ну и что — это поправляемо, зато код работает правильно, четко и выполняет свою задачу — а заказчик проверяет отнюдь не качество кодирования...

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

поэтому маловажность бизнес-логики тут напрасно недооценивают.
Re[4]: Я в шоке.
От: vdimas Россия  
Дата: 14.03.10 19:01
Оценка:
Здравствуйте, sss1024, Вы писали:

S>да лана. Такова статистика. Новые проекты начинаются на C# или ещё на чём-то подобном.


Ты знаешь, ситуация ровно наоборот. В связи со всякими C# и Java в последние годы сообщество С++ программистов довольно неплохо очистилось от балласта, и я был приятно удивлен, что нынче практически не попадаются "невменяемые".
Re[9]: Я в шоке.
От: jhfrek Россия  
Дата: 14.03.10 19:20
Оценка:
Здравствуйте, Ikemefula, Вы писали:

J>>у музыкантов — да, а у переводчиков — нет. Вон шароварщики почему-то студентам советских вузов предпочитают нативов

I>Ога, двухлетних нативных детей для переводов разговоров на бытовые темы.

да, придумать фигню, а потом ее опровергнуть — это твоя методика ведения дискуссии, я помню.
Re[9]: Я в шоке.
От: jhfrek Россия  
Дата: 14.03.10 19:21
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>Вижу, ты силён


это ты силен,... перевирать слова и фантазировать за меня
Re[25]: Сказал же, иди в баню (-)
От: jhfrek Россия  
Дата: 14.03.10 19:26
Оценка:
Здравствуйте, Ikemefula, Вы писали:

J>>к зеркалу — ты влез в чужой диалог, ты и перечитывай.

J>>Заодно и свой ответ landerhigh, которомы ты возразил "вильнув" и переведя тему с бытового перевода на перевод профессиональный
I>Читать ты не умеешь. Так что тренируйся:
I>"то можно нанимать например переводчика, который даже не знает английских букв"
I>Если речь о найме, то и еду понятно, что перевод профессиональный.

"еду" может быть и понятно, а про бытовой я тебе уже несколько раз написал. Так что с претензиями по умению читать к зеркалу.

к примеру здесь:

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


я тебе выделил даже, что бы ты не путался в словах

I>Теперь читаем слова одного дурачка


ты себя перечитываешь?
Re[26]: Сказал же, иди в баню (-)
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 14.03.10 19:39
Оценка:
Здравствуйте, jhfrek, Вы писали:

I>>Читать ты не умеешь. Так что тренируйся:

I>>"то можно нанимать например переводчика, который даже не знает английских букв"
I>>Если речь о найме, то и еду понятно, что перевод профессиональный.

J>"еду" может быть и понятно, а про бытовой я тебе уже несколько раз написал. Так что с претензиями по умению читать к зеркалу.


Да, ты несколько раз хотел поменять исходную задачу, это заметно.

Скажи ты что нибудь внятное, например, "человек со знанием двух языков, но без знания алфавита и грамматики в ряде случаев может быть полезнее студента ин-яза", то можно было бы согласиться
Но ты пошел дальшеи наплел ахинеи столько, что превратил идею в сфероконя.

J>

J>не важно как обстоят дела в китайском или прочих языках, если тебе нужен переводчик для общения, он должен быть хорошим переводчиком именно для общения, тем более что он еще и дешевле чем переводчик с совершенно бесполезным на бытовом уровне знанием юридической специфики.


J>я тебе выделил даже, что бы ты не путался в словах


Это хороший пример, показывае как ты пробуешь изменить условие.

I>>Теперь читаем слова одного дурачка


J>ты себя перечитываешь?


Вот ты уже свои слова перестал узнать, что неудивительно.
Re[10]: Я в шоке.
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 14.03.10 19:41
Оценка:
Здравствуйте, jhfrek, Вы писали:

J>>>у музыкантов — да, а у переводчиков — нет. Вон шароварщики почему-то студентам советских вузов предпочитают нативов

I>>Ога, двухлетних нативных детей для переводов разговоров на бытовые темы.

J>да, придумать фигню, а потом ее опровергнуть — это твоя методика ведения дискуссии, я помню.


Я тебе твои же слова напоминаю.

Ты увлекся вилянием, что забыл про что речь
Re[27]: Сказал же, иди в баню (-)
От: jhfrek Россия  
Дата: 14.03.10 19:52
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>Скажи ты что нибудь внятное, например, "человек со знанием двух языков, но без знания алфавита и грамматики в ряде случаев может быть полезнее студента ин-яза", то можно было бы согласиться


ты сумел превозмочь ЧСВ и понять что я имел в виду в самом начале — респект. Значит не зря я тратил свое время на переписку.

BTW, он может быть полезнее не только студента, но и супер-специалиста. Просто потому что дешевле и физически доступнее
Re[7]: Я в шоке.
От: Ilias  
Дата: 14.03.10 19:54
Оценка:
Здравствуйте, любой, Вы писали:

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


TC>>Это как считать. Допустим, есть два программиста: плохой и хороший. Они работают за 50тр и 100тр соответственно. Оба имеют семью. У первого после оплаты комунальных платежей, покупки необходимых вещей и продуктов останется денег разве что на фотомыльницу. У второго — на хорошую зеркалку. Вроде, все справедливо?


Л>А какие зеркалки — хорошие? Та, что я привёл даже без объектива в 2 таких месячных зарплаты не укладывается. А это далеко не предел. 40-мегапиксельные скоростные камеры стоят в районе $20000.


Если чё, то тут речь идет, видимо, про среднеформатные цифровые зеркалки целиком или цифровые задники для пленочных среднеформатных зеркалок. Только фигня в том, что они ни капли не скоростные и из-за огромного количества точек на матрице обладают весьма скромным диапазоном рабочих ISO — на 800 уже мало кто будет их использовать. Потому применяются они в довольно узкой области — студийная рекламная или fashion / glamour съемка. Так что простому любителю они вряд ли будут сильно полезны в чём-то.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[4]: Я в шоке.
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 14.03.10 19:55
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Всякое бывает. В моей молодости кто-то написал в резюме, что он работал с Дельфи 5 лет.


Это ладно. Здесь были вакансии, требующие в 2003-2004 году опыт использования дотнета более 3 лет.
... << RSDN@Home 1.2.0 alpha 4 rev. 1466 on Windows 7 6.1.7600.0>>
AVK Blog
Re[5]: Я в шоке.
От: Denis Mingulov Финляндия http://denis.mingulov.com
Дата: 14.03.10 20:03
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Это ладно. Здесь были вакансии, требующие в 2003-2004 году опыт использования дотнета более 3 лет.

В 2004 — вполне возможно.
"By late 2000 the first beta versions of .NET 1.0 were released." (из wiki)
В этом не уверен, но в январе-феврале 2001 года Visual Studio .NET уже был широкодоступен.
Re[6]: Я в шоке.
От: Denis Mingulov Финляндия http://denis.mingulov.com
Дата: 14.03.10 20:05
Оценка:
Здравствуйте, Denis Mingulov, Вы писали:

DM>В этом не уверен, но в январе-феврале 2001 года Visual Studio .NET уже был широкодоступен.

пресс-релиз Microsoft Announces Availability of Visual Studio.NET And .NET Framework Beta 1
Re[6]: Я в шоке.
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 14.03.10 20:21
Оценка:
Здравствуйте, Denis Mingulov, Вы писали:

DM>В этом не уверен, но в январе-феврале 2001 года Visual Studio .NET уже был широкодоступен.


First beta version без коммерческой лицензии довольно сложно засчитывать за реальный опыт использования. Помню я эту первую бету — хромала на обе ноги. Побаловаться можно, использовать нельзя даже без студии.
... << RSDN@Home 1.2.0 alpha 4 rev. 1466 on Windows 7 6.1.7600.0>>
AVK Blog
Re[6]: Я в шоке.
От: WPooh США  
Дата: 14.03.10 21:15
Оценка: 1 (1) +2
Здравствуйте, egaron, Вы писали:

Я не знаю, шутите Вы или всерьез, но все очень сильно зависит от рынка, на котором работаете.

Допустим, делается некрупная онлайн система (ну, так для числа посещений порядка 10 тысяч в сутки, скажем, число форм/страниц порядка 100). Заказ для забугорного заказчика, принцип примерно такой: сделали, протестировали на наборе данных, отдали заказчику погонять на его площадке, получили таньгу и забыли.
Тады да, соглашусь, подход неплохой, позволяет срубить побольше денег с меньшими затратами. Наколбасить кода, получить деньгу и перейти к следующему заказчику.

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

Например.
Не проверили объект на валидность — рано или поздно граблями получим по лбу, так как данные подсунули не те, которые ожидались, библиотека, которую пользуем, содержит косяки, или нашу утилитную функцию начали использовать в контексте, который мы не протестировали или не подозревали. В результате, не проверенный код возврата, не проверенные границы значений, да и null-pointer наконец привели к исключению, бросаемому, скажем, в 1% случаев. Помножим на 10 тысяч в день на кастомера — 100 случаев в день. Помножим на 1000 кастомеров — 100 тысяч инцидентов в день. Допустим, 0.1% из них получит жалобу, до нашего сапорта дойдет 100 запросов в день. Они сядут разбираться своими силами, день-два-три-неделю. Поднимут наверх. В конще концов дойдет до девелоперов.
Сесть поковырять и дойти до проблемы — 2-3 дня, решить — 1 день, проверить что не сломались остальные сценарии и этот починили — 2-3 дня. Выкатить фикс, сообщить кастомерам, написать инструкцию, написать в форумы, что пробему решили и пр. — еще время. В общем, от обнаружения проюдемы до решения у кастомера — от недели до месяца в остром случае, а иногда и годы требуются. Скока за это время инцидентов произойдет? Что конечные пользователи скажут про разработчиков (MS/Adobe/Google/Amazon/ebay must die?)
Помножим на число проблем. Обеспечены работой на долгие годы. Крутимся, на виду у начальства, показываем полезность и периодически просим повышения. Круто, но как-то грустно. Оно надо? Каждому — свое.

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

Причем, что интересно, люди достаточно часто, начинают использовать какие-то методы оптимизации своей работы, например, выносят код в библиотечные/утилитные методы, переходят на новую библиотеку/framework и пр. Те, которые обращают внимание на качество кода (своего и чужого), получают более качественное и более-менее оптимальное решение. Причем иногда получаются довольно удивительные вещи, например, одной строчкой кода в юнит-тесте протестировать реакцию метода на нулевые/пустые аргуметны поочередно, по одному (на .Net, ага, Expressions и пр. вкусности). И производительность (в количестве выполненной работы) хорошая, и кавчество с этой точки зрения не страдает.

Про соответствие вопросам на собеседованиях и тому, что надо делать в реальности на работе — избитый вопрос. Точно так же и то, что на собеседовании очень сложно понять психологический портрет кандидата и понять насколько он/она сможет решать важные нетехнические вопросы/проблемы. Сложно обеим сторонам, но как-то эту преграду можно туннелировать и решить. Кандидатам — подготовиться по списку стандартных вопросов. Работодателям — устраивать некоторое подобие аттестации.

Истина, как всегда где-то посередине между крайностями. Например, смотреть реакцию на разные вопросы с открытыми ответами — типа, начальство настаивает на таком варианте решения проблемы. Ваши действия? Или вот, есть такая глобальная проблема — какие подходы видите, как будете решать, плюсы и минусы? и пр. Причем, это не спасает во всех 100% случаев, да хоть и в 50%, тоже сложно все это проверить. Жисть такая.

В общем, резюме, я за непроверку объекта на null-reference бил бы линейкой по рукам. А наколбасить 500 строк кода за день особой заслугой не считаю. Даже хорошо документированного. Плавали-знаем. Нужен какой-то баланс качества и количества. В разных ситуациях — разный.
При этом, кодирование в общем объеме работы занимает от 5 до 95% времени на одного разработчика. Тоже от компании и проекта зависит. И кто какую нишу смог занять, там тому и счастье. Поменялось что — прыгай в другую лунку, при возможности.

За сим раскланяюсь,
Ваш Капитан Очевидность.
К этому моменту у меня внутри 0.5, 0.7, 0.33 (с) НС
Re[11]: Я в шоке.
От: jhfrek Россия  
Дата: 15.03.10 08:29
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>Я тебе твои же слова напоминаю.


нет, ты фантазируешь на тему моих слов
Re[12]: Я в шоке.
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 15.03.10 10:07
Оценка:
Здравствуйте, jhfrek, Вы писали:

I>>Я тебе твои же слова напоминаю.


J>нет, ты фантазируешь на тему моих слов


Хорошо, ты победил. Иди расслабься где нибудь.
Re[2]: Я в шоке.
От: Eugeny__ Украина  
Дата: 15.03.10 13:37
Оценка: 1 (1)
Здравствуйте, quwy, Вы писали:

D>>Последние два месяца прорезюмировал просто толпу соискателей на программистов по с++. Каково было мое удивление что 90% людей не знаю ДЛЯ ЧЕГО НУЖЕН ВИРТУАЛЬНЫЙ ДЕСТРУКТОР. Как такое может быть? Куда делись настоящие программситы, а не оходники за деньгами? Что творится с людьми?

Q>Хорошо нам, делфистам, у нас деструкторы изначально виртуальные и никто не задает по этому поводу глупых вопросов

Ну, нам, жавистам, еще проще. Деструкторов вообще нет, и все методы по-умолчанию виртуальные. Правда, вопросы по тому, зачем нужен метод finalize есть(хотя в реале он используется крайне редко, и, в отличие от виртуальных деструкторов в плюсах, знание о нем таким уж необходимым не является), но это зависит от степени фимозности головного мозга у собеседующего.
Новости очень смешные. Зря вы не смотрите. Как будто за наркоманами подсматриваешь. Только тетка с погодой в завязке.
There is no such thing as a winnable war.
Re[2]: Я в шоке.
От: Unhandled_Exception Россия  
Дата: 15.03.10 14:45
Оценка:
Здравствуйте, msk78, Вы писали:

M>Но. Всё равно на новой работе придётся заниматься немного другим.


но это не факт. придет такой человек и напортачит. деструктор виртуальным не объявит, где следует, память потечет, придется вылавливать странные баги. если считать, что понимание виртуального деструктора — это то, что можно по ходу работы узнать, то что, собственно, считать базой?

M>Я, например, на текущей работе уже несколько раз использовал WMI, но ведь никто меня, НИКТО, не спрашивал при приёме работу его знания. Но ведь как-то работаю, делаю своё дело. У нас используется система управления бизнес-потоками K2.NET. И тоже всё в порядке — работаю, выполняю свои функции — меня предупредили, что она есть, почитал, усвоил. Коллеги помогли.


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

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


а потом ему надо будет сказать, что у нас используются виртуальные функции и что это важно, и он полезет узнавать, что это такое. потом про dynamic_cast какой-нить узнает, потом то, потом другое, а там, глядишь, уже и язык выучил
Re[5]: Я в шоке.
От: Eugeny__ Украина  
Дата: 15.03.10 15:29
Оценка:
Здравствуйте, vdimas, Вы писали:

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


S>>да лана. Такова статистика. Новые проекты начинаются на C# или ещё на чём-то подобном.


V>Ты знаешь, ситуация ровно наоборот. В связи со всякими C# и Java в последние годы сообщество С++ программистов довольно неплохо очистилось от балласта, и я был приятно удивлен, что нынче практически не попадаются "невменяемые".


В этой теме звучит несколько странно, не находишь?
Новости очень смешные. Зря вы не смотрите. Как будто за наркоманами подсматриваешь. Только тетка с погодой в завязке.
There is no such thing as a winnable war.
Re[4]: Я в шоке.
От: Unhandled_Exception Россия  
Дата: 15.03.10 18:04
Оценка: +1
Здравствуйте, мыщъх, Вы писали:

М> однако, разница в стоимости вызова виртуальных и невиртуальных функций довольно-таки существенна


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