Про lateinit уже сказали, если разраб не может проверить все ли ленивые переменные проинициализированы, то тут увы. Язык то тут причём?
Пример с функцией-расширением тоже какой-то натянутый, в чём проблема написать:
private val unsafeMap = ConcurrentHashMap<Int, Int>() ?
В примере про extension функцию contains() сложность алгоритма не меняется, а остаётся линейной. Просто добавляется лишняя runtime проверка: if (this is Collection), ну и + вызовы лишней обёртки, которые и влияют на производительность.
Про extension nullable toString() и всё остальное можно найти даже в переведённой русскоязычной документации.
Спасибо за комментарии и книги. Я прекрасно знаю что С и С++ это разные языки и знаю на уровне мелочей, чем они отличаются, и сам не люблю писать "С/С++". Это сделано скорее потому, что так принято писать.
По поводу десктопных приложений - мне просто не интересен веб, а также слишком низкоуровневые вещи типа embedded, поэтому десктоп. Да, он потерял былую актуальность, но он никогда не умрёт, так же как и С и С++.
Спасибо за статью, жаль не наткнулся на неё в процессе собеседований :). С другой стороны, возможно лучше было бы увидеть всё это собственными глазами.
А что зря? Если вы о том, что сейчас понабегут выпускники этих самых курсов и на ставят дизлайков, то мне всё равно. А если о том, что вы не согласны - ваше право.
А насчёт стека - сложно его поменять если начинать с высокоуровневых языков и потом захотеть в Си и плюсы. Если наоборот - совсем другой разговор. Поэтому и стоит с них начинать, IMO.
Нет, я не избегал коммерческих структур. Просто, как я уже говорил, немалая доля рынка труда стека C++/Qt связана с оборонными технологиями, и у меня был выбор: либо смериться с этим, либо кардинально менять стек. Честно сказать, у меня были мысли начать учить Джаву или Шарпы после очередных отказов, но мне не нравятся эти языки и задачи, которые принято решать с помощью них. К тому же, переобучение заняло бы порядочно времени, несмотря на то, что знание плюсов позволяет достаточно просто перейти на любой другой Си-подобный язык. Поэтому я решил топить в свой стек. На плюсах много что пишется, но проблема была в том, что на не оборонных предприятиях порог вхождения был больше, а оборонки, как мне объяснили, отличаются тем, что готовы выращивать молодых программистов, и менее требовательны. Поэтому приходилось закрывать глаза на все их недостатки.
А вот и человек, сильно поспособствовавший моему прогрессу. Как всегда немного пессимистично, но вам виднее. Что до стека — это лишь начало карьеры, кто знает что будет дальше. Пока проект интересен и развивается, а менеджеры адекватны, буду развиваться на текущем месте.
Согласен, и стек, и область его применения специфическая. Но мне повезло попасть в коммерческую компанию с реально интересным проектом, где готовы подтягивать младшего разработчика. Для этого стека это скорее исключение.
Мат это ещё пофиг, главное к месту. А вот вопросы реально странные при знакомстве. А насчёт код ревью - это да, после этого никто больше не копался в моём коде, надо отдать должное.
Какая же годная статья… Я сейчас иду с вами просто след в след, тоже уже год изучаю плюсы и Qt с недавнего времени. Только начинал с академического С. Сам заканчиваю юрфак, но в конце 3 курса понял что не моё, а что моё. И сильный ментор с 15 летним стажем в продакшне ввёл меня в профессию. Отдельное спасибо за ссылку на статью по шаблону «модель-представление», читаю у Макса Шлее, пока очень поверхностно и непонятно, мало примеров кода. Я правильно понял вас, что вас взяли при том, что вы ещё не знали «модель-представление»? И ещё, как вы считаете, какой минимум знаний и навыков должен быть у Junior C++/Qt разработчика?
Именно про шатл я и думал. Но да, "почти всегда" тут не корректно, скорее иногда.
И да, в вашем домейне лучше крашнуться. Чтобы не повторилась история по типу Therac-25.
Важно понимать, какой подход нужен в конкретном домейне, а для этого о них нужно знать.
С точки зрения программирования некорректный результат почти всегда лучше падения программы, и я бы на вашем месте донёс эту точку зрения до детей.
Что значит "мидлов нет"? Я думал мидлов больше всех, но мы с вами видимо находимся в разных измерениях...
Братан, хорош, давай-давай, вперёд, контент в кайф, можно ещё? Ваще красавчик. Можно вот этого вот почаще?
Спасибо, только опечатки исправьте. Injected,
DaggerModul и т.д.Вы явно плохо понимаете что такое "низкий уровень" и Kotlin Multiplatform. Ваши слова справедливы лишь относительно C++/Qt, отчасти.
Про lateinit уже сказали, если разраб не может проверить все ли ленивые переменные проинициализированы, то тут увы. Язык то тут причём?
Пример с функцией-расширением тоже какой-то натянутый, в чём проблема написать:
private val unsafeMap = ConcurrentHashMap<Int, Int>() ?
В примере про extension функцию contains() сложность алгоритма не меняется, а остаётся линейной. Просто добавляется лишняя runtime проверка: if (this is Collection), ну и + вызовы лишней обёртки, которые и влияют на производительность.
Про extension nullable toString() и всё остальное можно найти даже в переведённой русскоязычной документации.
Привет, подскажи пожалуйста, как увеличить лимит на тест?? (по дефолту тест длится не дольше минуты)
Мда, так можно и всю жизнь посвятить борьбе с клещами.
Эм, а вы пробовали намекать собеседудующим, что, с вашей точки зрения, собеседование не на мидла? Вас же не HRы собеседуют.
Спасибо за комментарии и книги. Я прекрасно знаю что С и С++ это разные языки и знаю на уровне мелочей, чем они отличаются, и сам не люблю писать "С/С++". Это сделано скорее потому, что так принято писать.
По поводу десктопных приложений - мне просто не интересен веб, а также слишком низкоуровневые вещи типа embedded, поэтому десктоп. Да, он потерял былую актуальность, но он никогда не умрёт, так же как и С и С++.
Спасибо за статью, жаль не наткнулся на неё в процессе собеседований :). С другой стороны, возможно лучше было бы увидеть всё это собственными глазами.
А что зря? Если вы о том, что сейчас понабегут выпускники этих самых курсов и на ставят дизлайков, то мне всё равно. А если о том, что вы не согласны - ваше право.
А насчёт стека - сложно его поменять если начинать с высокоуровневых языков и потом захотеть в Си и плюсы. Если наоборот - совсем другой разговор. Поэтому и стоит с них начинать, IMO.
Согласен, и стек, и область его применения специфическая. Но мне повезло попасть в коммерческую компанию с реально интересным проектом, где готовы подтягивать младшего разработчика. Для этого стека это скорее исключение.
Мат это ещё пофиг, главное к месту. А вот вопросы реально странные при знакомстве. А насчёт код ревью - это да, после этого никто больше не копался в моём коде, надо отдать должное.
Почти, но нет:)