Здравствуйте, LaptevVV, Вы писали:
LVV>В общем, фактически с нуля врубится в корпоративный легаси-код весьма сложно... LVV>Поэтому в корпоративной разработке сложно сменить специализацию — очень много технических деталей придется осваивать фактически с нуля...
Так эта задача гораздо сложнее даже если язык программирования не менять.
Здравствуйте, DiPaolo, Вы писали:
DP>Ну можно быть экспертом в языке, а можно быть экспертом в разработке ПО. Я тоже считаю язык всего лишь инструментом. Первичен продукт.
Вроде как всё верно написано, но есть "но".
DP>Опытный инженер-разработчик ПО сможет подобрать нужные инструменты и освоить их в короткие сроки.
Вот тут есть серьёзные сомнения. Освоить синтаксис и начать лабать "по образу и подобию" в уже готовом проекте — дело нехитрое, сам так не раз делал.
А вот начать проект с нуля на незнакомом языке, не зная его Best Practices и наработок, тут кмк нифига не взлетит. Язык и всю его инфраструктуру надо знать до начала проекта.
Ну разве что ты работаешь в компании-курорте, где можно спокойно посвятить с полгода на изучение языка и технологий
DP>В конце концов, он возьмет в команду нужного эксперта или проконсультируется с таковым.
И тут мы плавно подходим к вопросу, где взять нужного эксперта и как отличить его от ламера (раз мы этого языка не знаем, то как сможем адекватно определить квалификацию).
_____________________
С уважением,
Stanislav V. Zudin
Здравствуйте, DiPaolo, Вы писали:
DP>Опытный инженер-разработчик ПО сможет подобрать нужные инструменты и освоить их в короткие сроки...А "одностаночник"-эксперт в одном языке будет этот язык пихать где надо и не надо.
Интересно, а между этими крайностями что-то есть? Ну там понимание того, что на освоение инструмента нужно время? Нормальное, а не "в короткие сроки".
Здравствуйте, Nuzhny, Вы писали:
Аё>>Чистая спекуляция: проект начинали "модно, стильно, молодежные" на жабе. Что-то пошло не так. Техлидов призвали из другого, успешного подразделения- зубров из 90-х. Они написали как знают, на плюсах.
N>C++ команда Яндекса сильная и достаточно молодая, её представители есть в комитете по C++, а также среди авторов некоторых модулей boost. Всё мимо.
Кстати, буст там не используют. И вообще, плюсы там довольно консервативно используют, Александреску-стайл шаблоны противопоказаны
Здравствуйте, SergeyIT, Вы писали:
SIT>Помню, в молодости, попросил помочь преподавателя, который читал нам Алгол60, изучить Фортран. Он посмотрел на меня как на полоумного и сказал — а чего там учить, 4 часа теоретических — 4 часа практических. SIT>Взял описание FortranIV (DEC) из документации pdp11 (английского не знал). И через 8 часов стал писать свои программы. (Не бахвальство — так нас учили!). Были и другие случаи...
DP>>Опытный инженер-разработчик ПО сможет подобрать нужные инструменты и освоить их в короткие сроки...А "одностаночник"-эксперт в одном языке будет этот язык пихать где надо и не надо.
S>Интересно, а между этими крайностями что-то есть? Ну там понимание того, что на освоение инструмента нужно время? Нормальное, а не "в короткие сроки".
Ну конечно есть. Экспертиза — она в том числе и в том, чтобы выбрать подходящий инструмент. Ты ведь не будешь осваивать один инструмент, потом окажется, что это не тот, освоишь второй, опять не тот. А время идет. Вот как раз экспертность и заключается (а подтверждается предыдущими результатами) в том числе в умении выбрать подходящий инструмент.
S>э... Тут, конечно и так уже найфлеймили порядочно. Но, блин, что такое "эксперт в разработке ПО"?
S>Вот просто "эксперт" и все, безотносительно предметной области, используемых технологий, имеющихся в наличии трудовых и финансовых ресурсов?
Викисловарь говорит, что эксперт — это
высококлассный специалист в какой-либо предметной области
Соответственно, можно быть экспертом в предметной области, можно быть экспертом в каком-то языке, в каком-то фреймворке. Можно быть экспертом в разработке ПО в целом. То есть опытным специалистом в разработке программных продуктов, который имеет подтвержденный успешный опыт создания нескольких ПП. Умение распоряжаться трудовыми и финансовыми ресурсами показывает уровень экспертности в менеджменте.
В любом случае, эксперность — это не бинарное состояние. Это некоторого рода вероятность, вероятность успешности проекта. Чем выше уровень эксперности (вероятность) в каждой из составляющих (предметная область, язык, фреймворк, скорость усвоения новых знаний, умение выбрать подходящий инструмент, да та же экспертность в коммуникации )) ), тем вероятнее успех создания программного продукта в целом. И нельзя точно количественно измерить экспертность В любом случае это остается субъективной величиной.
Для каждого типа продукта будут свои веса по каждой составляющей. Если это веб-студия, у которой проекты идут в жестких рамках по несколько месяцев, там более критично уже знать конкретный фреймворк, на котором пишутся все продукты. Если это разработка узкоспециализированного софта для вычислений динамики газов в различных средах — тут гораздо важнее (читай, весовой коэффициент выше) знание предметной области.
Здравствуйте, so5team, Вы писали:
S>Т.е. и вы считаете, что человека в современных условиях можно за пару-тройку дней перебросить с одного языка на другой?
Вот чтоб именно на язык чтоб какие то базовые вещи на нём можно было сделать — сильно много времени не понадобится.
А вот изучение нюансов и донных отложений инфраструктуры со всякими фреймворками займёт уже сильно дольше.
S>пока вам не потребуется, скажем, подправить кусок чужого C++ного кода, который на Boost.Spirit написан
Так это уже вопрос не про С++, это вопрос про Boost.
S> Или вы столкнетесь с каким-то багом в потрохах ClickHouse или упомянутого здесь Яндексовского userver
И опять это не столько вопрос собственно языка.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, so5team, Вы писали:
S>Злые языки говорят (говорят!) что если хочется экономить на железе, то
...кроме языка ещё и меняют архитектуру, и всё json-ы выкидывают нахрен отовсюду, где только это можно.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, Marty, Вы писали:
M>Кстати, буст там не используют. И вообще, плюсы там довольно консервативно используют, Александреску-стайл шаблоны противопоказаны
Звучит как вменяемые люди.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, Nuzhny, Вы писали:
M>>Кстати, буст там не используют.
N>А это что?
Хз. Я вобще не в курсе, что это такое, и что за люди это писали
M>>И вообще, плюсы там довольно консервативно используют, Александреску-стайл шаблоны противопоказаны
N>Такие шаблоны в принципе писать уже не надо, они были нужны до С++11. Но потыкал в произвольные места: например:
N>Я бы не назвал этот код консервативным.
Я читал их гайд по разработке на C++. Там написано, что "у нас буст не используется", ну и про шаблоны тоже было, но точную формулировку не помню. Вероятно, в каких-то отдельных случаях при необходимости отступают от этих требований.
Возможно, у отдельных команд свои правила, но вообще у них весь код лежит в едином монорепозитории типа SVN, все могут использовать всё, не уверен, что там какие-то навороты будут приветствоваться. Хотя, может, какие-то отдельные команды упарываются по плюсам. Могу предположить, что это могут быть люди из браузерной команды. Ну или что-то аналогичное. В Яндексе вроде как в основном всё на сервисы ориентировано, а браузер — чисто десктопная штука, вполне может быть, что у них и репа отдельная, и код в основном чужой со своими правилами, так что там всё что угодно может быть.
А по поводу консервативности — ну, понятно же, что не C с классами образца середины девяностых, но всё довольно просто. И приведённый тобой код ничем особо не выбивается
ЗЫ Ну в догонку, добавлю по предыдущему сообщению. Вообще, не хотел палится, но с другой стороны, а чего такого
N>C++ команда Яндекса сильная и достаточно молодая, её представители есть в комитете по C++, а также среди авторов некоторых модулей boost. Всё мимо.
Не совсем понятно, что значит "C++ команда Яндекса сильная и достаточно молодая". Тут команды разбиты по сервисам/продуктам, и в каждом сервисе разные люди. И общие библиотеки пишут обычно сначала в какой-то из команд для себя, а потом допиливают для общего использования, если у народа есть интерес. Ну, понятно, что плюсовики (ну и вообще, спецы по разным языкам) из разных команд как-то пересекаются и общаются, но так чтобы можно было сказать, что это прямо одна команда, я не уверен
Здравствуйте, Marty, Вы писали:
M>>>Кстати, буст там не используют. N>>А это что? M>Хз. Я вобще не в курсе, что это такое, и что за люди это писали
Так, ты отвечал на моё сообщение, где я говорил про userver от Яндекса. Про него много написано статей, в том числе от главного автора — Антона Полухина, постоянного члена в комитете по С++ от России. Логично считать, что этот userver как раз и является каноничным С++ кодом в Яндексе.
M>Возможно, у отдельных команд свои правила, но вообще у них весь код лежит в едином монорепозитории типа SVN, все могут использовать всё, не уверен, что там какие-то навороты будут приветствоваться. Хотя, может, какие-то отдельные команды упарываются по плюсам. Могу предположить, что это могут быть люди из браузерной команды. Ну или что-то аналогичное. В Яндексе вроде как в основном всё на сервисы ориентировано, а браузер — чисто десктопная штука, вполне может быть, что у них и репа отдельная, и код в основном чужой со своими правилами, так что там всё что угодно может быть.
Причём тут браузер? Речь в теме шла про микросервисы на С++, вот userver как раз и есть микросервисы на C++ от Яндекса. Ни больше, ни меньше.
M>А по поводу консервативности — ну, понятно же, что не C с классами образца середины девяностых, но всё довольно просто. И приведённый тобой код ничем особо не выбивается
Просто или консервативно? Я отвечал на консервативно, подчеркнул это в ответе и привёл пример. Он явно не консервативный.
M>Не совсем понятно, что значит "C++ команда Яндекса сильная и достаточно молодая". Тут команды разбиты по сервисам/продуктам, и в каждом сервисе разные люди. И общие библиотеки пишут обычно сначала в какой-то из команд для себя, а потом допиливают для общего использования, если у народа есть интерес. Ну, понятно, что плюсовики (ну и вообще, спецы по разным языкам) из разных команд как-то пересекаются и общаются, но так чтобы можно было сказать, что это прямо одна команда, я не уверен
Я про тех, кто пишет статьи, выкладывает свои продукты в open source. Тех, кто на виду. Это и автор Clickhouse, и автор userver. Оба человека вполне публичные, код доступен всем. Вполне допускаю, что изнутри Яндекс видится другим.
Здравствуйте, DiPaolo, Вы писали:
DP>Можно быть экспертом в разработке ПО в целом.
А вот с этого места поподробнее, пожалуйста, я записываю.
DP>То есть опытным специалистом в разработке программных продуктов, который имеет подтвержденный успешный опыт создания нескольких ПП. DP>Умение распоряжаться трудовыми и финансовыми ресурсами показывает уровень экспертности в менеджменте.
Поскольку программные продукты, в 99.9% случаев, разрабатываются командами, а не одиночками, то "специалист, который имеет подтвержденный опыт создания" -- это как раз проектный менеджер.
Мы же все-таки говорим о разработчиках или около того.
Здравствуйте, Nuzhny, Вы писали:
N>Причём тут браузер? Речь в теме шла про микросервисы на С++, вот userver как раз и есть микросервисы на C++ от Яндекса. Ни больше, ни меньше.
Ну хз, я вот как раз по микросервисам на C++, никакого userver пока не видел. Но я недавно тут и надолго не задержусь
M>>А по поводу консервативности — ну, понятно же, что не C с классами образца середины девяностых, но всё довольно просто. И приведённый тобой код ничем особо не выбивается
N>Просто или консервативно? Я отвечал на консервативно, подчеркнул это в ответе и привёл пример. Он явно не консервативный.
Консервативно — это в том числе и просто, без особых шаблонных наворотов
Здравствуйте, DiPaolo, Вы писали:
DP>Вот как раз экспертность и заключается (а подтверждается предыдущими результатами) в том числе в умении выбрать подходящий инструмент.
Звучит так же банально как "лучше быть богатым и здоровым, чем бедным и больным".
А если вернуться к тому, с чего эта ветка обсуждения началась, т.е. к:
> сегодняшнюю ситуацию зацикливания на языках и фраймвеках не понимаю.
то решительно непонятно как без зацикливания на языках и фреймворках получить ту самую экспертность, о которой вы так расплывчато рассуждаете.
Здравствуйте, CreatorCray, Вы писали:
S>>Т.е. и вы считаете, что человека в современных условиях можно за пару-тройку дней перебросить с одного языка на другой? CC>Вот чтоб именно на язык чтоб какие то базовые вещи на нём можно было сделать — сильно много времени не понадобится. CC>А вот изучение нюансов и донных отложений инфраструктуры со всякими фреймворками займёт уже сильно дольше.
Как бы ключевое -- это сложность погружения в экосистему (как языка, так и конкретного проекта). Тут не спорю, а на 100% поддерживаю.
Однако, даже на уровне владения именно что языком есть свои нюансы.
Например, касательно C++ это могут быть выработавшиеся привычки:
— использовать списки инициализации в конструкторах, а не присваивания в теле конструктора;
— разделение методов классов на const и не const;
— передавать аргументы по значению, по ссылке, по константной ссылке понимая что чем грозит;
— использовать nodiscard;
— использовать noexcept;
— корректно реализовывать конструкторы/операторы копирования/перемещения, если класс владеет какими-то ресурсами или имеет нетривиальный деструктор;
— и т.д., и т.п.
Плюс к тому, требуется некоторое время для того, чтобы уйти от восторженности неофита и перестать злоупотреблять некоторыми фичами, как-то:
— перегрузкой операторов (перегрузить оператор запятая прикольно, но нужно почти никогда);
— auto во все поля;
— исключения на каждый чих + развестистые иерархии исключений;
— и т.д., и т.п.
Полагаю, практически во всех современных языках (кроме разве что совсем уж убогого Go) есть свой идеоматический стиль на освоение которого требуется время, чтобы это довести если не до автоматизма, то хотя бы до приемлемого уровня.
S>>пока вам не потребуется, скажем, подправить кусок чужого C++ного кода, который на Boost.Spirit написан CC>Так это уже вопрос не про С++, это вопрос про Boost.
Про Boost это был вопрос того, кто решал, применять ли Boost.Spirit или нет. Когда решение было принято и спустя десять лет модифицировать кусок старого кода будет новый разработчик, то это будет именно вопросом про C++. Чем лучше человек знает C++, тем меньше у него будет проблем.
А вот если кто-то освоил C++ за 21 день, то...
S>> Или вы столкнетесь с каким-то багом в потрохах ClickHouse или упомянутого здесь Яндексовского userver CC>И опять это не столько вопрос собственно языка.
Здравствуйте, so5team, Вы писали:
S>Вот просто "эксперт" и все, безотносительно предметной области, используемых технологий, имеющихся в наличии трудовых и финансовых ресурсов?
Здравствуйте, so5team, Вы писали:
S>Чем лучше человек знает C++, тем меньше у него будет проблем.
S>А вот если кто-то освоил C++ за 21 день, то...
Вот поэтому C++ для продукта- зло. Чел может всю жизнь осваивать C++ и все равно иметь проблемы.
Стоимость разработки-это потраченные человеко часы на фичу и потом на исправление внесенных багов. С C++ разработка дорогая, даже если человеко час стоит ложку риса.