Andrii
Поэтому даже если это сравнение целых, одна ассемблерная операция, то всё равно будет вызов функции. А в C++ весь алгоритм в STL в шаблоне в хидере, и там всё инлайнится
Andrii
Как часто в реалях используется переопределение? типа #define
Часто :) Это определение, а не переопределение. Тот же Unreal Engine определяет дофига макросов. Ними пользуются для разметки текста, ещё как-то, ...
Andrii
Обычно программисты C++, когда из вынуждают писать на C, чувствуют себя как боксёры, которым запрещено пользоваться кулаками.
Борисов
И наоборот )
Борисов
Сишники пишут на плюсах в стиле Си с классами )
Andrii
Ну а проблема C++ скорее в том, что он склоняет прямо или коскенно пользоваться ООП и стандартными контейнерами, похожими на C#, Java, ...
Andrii
Сишники пишут на плюсах в стиле Си с классами )
По разному, просто в C часто инкапсуляция это приведение к void* и набор функций. И т. п. git, Python и много других тулзовин написано на C и никто не собирается пеерводить их на C++
Andrii
Сишники пишут на плюсах в стиле Си с классами )
Или увлекаются новыми возможностями. Кто-то говорил, что С++ подобен героину: поначалу очень прикольно, а потом не знаешь, как с этого слезть
Борисов
Это понятно, что никто переписывать не будет. Другой вопрос, что если бы начали писать в нынешнее время, то, скорее всего, стали бы писать не на Си
Михаил
Доброй ночи!!! Подскажите кто по каким туториалам проводил разбор MVC?
Vladislav
@mustitz, А какая у вас сфера деятельности?
Andrii
Это понятно, что никто переписывать не будет. Другой вопрос, что если бы начали писать в нынешнее время, то, скорее всего, стали бы писать не на Си
На Rust? Но вообще не уверен, я вот прошёл путь от Си к восторгу от С++ и изучения стандартов. А сейчас свои пет-проекты пишу на снова C. Переписать не настолько больая проблема, Mozilla же начала переписывать на Rust. Не говоря, что переход от С к С++ ввиду совместимости не очень то страшный: просто новый функционал можно запилить на плюсах :)
Andrii
то-есть С умирает?(
Точно нет, потому что есть embedded. А так в непонятном индексе TUOBI С даже вышел на первое место по популярности, и даже обошёл C++. Так что не уверен... В целом лично мне на C писать приятнее всего
Andrii
Опять же, сейчас есть Python, и в общем-то можно хай-перформанс написать на C, и легко заинтегрироватся.
Борисов
На мой взгляд, важен вопрос работы с памятью и освобождения ресурсов. На С++ идиома RAII помогает закрыть много этих вопросов
Борисов
Умные указатели, guard-ы и пр.
Andrii
Мало кому в кайф в железе копаться)
Всё относительно. Как по мне, достаточно много. Уж точно, как по мне, повеселее CSS стилей. Ну и...
Виталик Голоенко
Да и фронтенд в целом как по мне)
Andrii
На мой взгляд, важен вопрос работы с памятью и освобождения ресурсов. На С++ идиома RAII помогает закрыть много этих вопросов
Ну... sanitezers сейчас покажут большую часть проблем сразу же. Поэтому я не вижу большой необходимости именно сейчас. Раньше да, допустить утечку было легче простого. Сейчас почти все ошибка с памятью вылезут сразу же. Поэтому большого буста даже от сборки мусора нету.
Andrii
Не говоря о том, что сишный путь зачастю выделить память сразу и вызывать abort если выходим за пределы. И задефайнить константы, типа есть миллион соединений, 65535 потоков и т. п.
Борисов
Память выделить на старте - это да. Но делать abort в том же embedded - это reboot устройства ?)
Andrii
Если на роутер придёт миллион соединений, он и так не выживет
Борисов
Роутер это немного другое
Andrii
А по факту обычно дропаются пакеты
Andrii
И пишется в лог
Борисов
А мы за какой embedded говорим ? Аля linux и несколько десятков Мб озу ? Или микроконтроллер под RTOS и несколько десятков-сотен килобайт озу ?
OleH
@mustitz чем полезен ооп, и какие трабблы при переходе НА него с процедурного?
OleH
Ты просто опытный на вид, мне нужен твой ответ
OleH
Просто я на c++ пишу тут, и вообще разницы не чувствую, что си что спп. Может тутор такой, но ляяяя
Andrii
В любом случае, динамическое выделение памяти это грабли, потому что когда память исчерпывается, то наступают грабли и очень непредсказуемое поведение. Потому что один new проверили на NULL а дальше код никто не проверял :) А если у нас переполнился буфер — мы просто пишем в лог и отказываем в обслуживании. Например, в ядре. Переполнилась таблица открытых файлов — всё, получили ошибку при открытии файла :)
Борисов
Если new не смог выделить память, там будет брошено исключение Bad Alloc )
Andrii
@mustitz чем полезен ооп, и какие трабблы при переходе НА него с процедурного?
Есть глобальные грабли, как по мне. Первая — перформанс. Поэтому и появилисть те же колоночные базы, что хранить в обном объекте разнородные данные не кэш френдли. Если говорить про Simula-like ООП, то зачастую 90% кода у нас не будет вызываться никогда, но будет работать код, которые его поддерживает. Особененость крупных фреймвёрков. Мне вот очень нравилось, что во времена, когда PHP был процедурный, то в рекомендацях сервер на Java требовал в два раза больше, в раза мощнее проц и т. п.
Andrii
Если new не смог выделить память, там будет брошено исключение Bad Alloc )
Ещё лучше, это или креш что для ембеддед системы не очень хорошо, либо непонятно что делать дальше
OleH
Если есть конечно
Борисов
ООП будет полезен тем, что в 90% мест, куда вы будете устраиваться на работу, вам прийдется иметь с ним дело
Andrii
Чо перфоманс, колоночные базы. А? Я первый раз слышу, дай вводную статейку скурить пожалуйста
Скорее была книга, семь типов баз данных за семь недель. Такое введение в NoSQL. Идея колоночных баз, что если у нас есть, например, информация миллионе людей, и там фамилия, имя, документы, заметки и прочая муть. И нам надо посчитать среднюю з/п. То если хранить данные в колонках, то колонка с з/п это 1000000 * 8 = 8M данных, которые надо прочитать с диска. А если у нас данные хранятся по строкам, и каждая запист это 8k, то надо прочитать с диска 8G данных.
Andrii
ООП будет полезен тем, что в 90% мест, куда вы будете устраиваться на работу, вам прийдется иметь с ним дело
Я уже могу выбирать, и я не очень уверен, что пойду туда, где правит Simula like ООП. Поэтому я скорее выберу Rust и Go, где нет наследования, и лучше согласованность с теорией типов. Не говоря о чистом C.
Борисов
Дак этот комментарий был скорее к @Zach3m_t3b3
Andrii
ИМХО, Simula-like ООП (с таблицами виртуальных функций) инструмент достаточно тонкий, и я часто наблюдал ситуацию из серии «дай дураку стеклянный хуй», большая часть иерархий, которые возникали на проектах в какой-то предметной области, оказывалась мягко говоря не ахти. Хотя, могу припомнить и достаточно удачные реализации, типа Delphi VCL.
OleH
Ок спасибо
Борисов
И на большом проекте рано или поздно всё приходит к усредненному говнецу и костылям )
Борисов
Да, безусловно, есть исключения, но в среднем по больнице вот как-то так
Борисов
Ну, это же просто - добавить маааленькую новую фичу )))))
Andrii
Но я как-то отмечал, что идеи мира C++ не сильно оказали влияние на индустрию, и почти не были заимствованы в других ЯП. При этом не так давно в C++ началось бурное заимствование из других ЯП, и начали клепать стандарты каждые три года.
Andrii
Ну, это же просто - добавить маааленькую новую фичу )))))
Скорее это отражение факта, что часто разработчики ООП архитектуры плохо представляют предметную область, и откуда будут приходить требования. Хотя уверены в том, что крутые спецы и там тоже. Поэтому в Qt иерархия выстроена хорошо, ибо программистам хорошо известно низлежащее API, да и вообще. А вот если брать бизнес-логику, там часто грустно...
Yuriy
Здравствуйте ! Я начал работу в Luxoft, сейчас получил отрицательный результат на интервью в проект из-за того, что не успел решить задачку password brute force task на время, где можно попрактиковаться или подготовить задел для подобного рода задачек на кодилити ?
Andrii
leetcode, codewars, codingame укражнения с книги Д. Кнута [40] и выше, Al Zimmermann's Programming Contests
Andrii
Ок спасибо
Кстати, наткнулся на такое описание разных типов СУБД, может для общего образования https://proglib.io/p/11-tipov-sovremennyh-baz-dannyh-kratkie-opisaniya-shemy-i-primery-bd-2020-01-07
Yuriy
Спасибо, завтра-послезавтра посмотрю, давно не собеседовался.
Igor
Есть глобальные грабли, как по мне. Первая — перформанс. Поэтому и появилисть те же колоночные базы, что хранить в обном объекте разнородные данные не кэш френдли. Если говорить про Simula-like ООП, то зачастую 90% кода у нас не будет вызываться никогда, но будет работать код, которые его поддерживает. Особененость крупных фреймвёрков. Мне вот очень нравилось, что во времена, когда PHP был процедурный, то в рекомендацях сервер на Java требовал в два раза больше, в раза мощнее проц и т. п.
Как то все в одну кучу при чем тут перфоманс ооп и колоночные базы? У всех структур есть своя область применение одна и та же структура может быть как удачной так и не удачной в зависимости от сценария использования. Идея колоночного хранения всегда была на поверхности и никакого ноухау в ней нет всего лишь индексы. Глобальные грабли это когда валят все в одну кучу. Есть у вас куча ненужных полей отрежте их в отдельную таблицу. СУБД как и языки давно уже многопарадигменные.
Igor
Привет Игорь)
я ушел тут от армии косили пришел тут какой то новый трешак :)
Anonymous
Я снова делюсь информацией бесплатно, вот и всё :)
Anonymous
А так была небольшая дискуссия, не более
Anonymous
я ушел тут от армии косили пришел тут какой то новый трешак :)
Хотел у тебя спросить, а ты в какой направлении программист?
Igor
Хотел у тебя спросить, а ты в какой направлении программист?
программист алкоголик трештолкер %) у меня всегда не такое мнение как у остальных :)
Igor
Кто? 😂
По работе в основном бэкенд, базы данных и прочая хрень. а так все по чуть чуть.
Anonymous
По работе в основном бэкенд, базы данных и прочая хрень. а так все по чуть чуть.
Понял. Я тут совет дал, что мол нахрен всяких Hr-аров, надо сразу идти к тому человеку, который способен принять решение о приеме тебя на работу. Стоит ли так делать? И вообще кто проверяет резюме?
Anonymous
Лично я так сделал, но сделал это я от безысходности
Igor
Понял. Я тут совет дал, что мол нахрен всяких Hr-аров, надо сразу идти к тому человеку, который способен принять решение о приеме тебя на работу. Стоит ли так делать? И вообще кто проверяет резюме?
Хз ходунов много хры хоть чуть чуть фильтруют в этом от них хоть какая то польза. А кто принимает решение имхо индивидуально для каждой конторы.
Igor
У меня скзадываетя ощущение что резюме вообще пишут под заказ что вам надо то и будет в резюме, а на собеседовании оказывается что про половину человек только читал.
Igor
Опять же я не принимаю решение о зарплатах. Я только даю оценку как технический специалист, но думаю у нас не такие высокие зарплаты поэтому и уровень собеседуемых соответсвующий.
Igor
Еще мне кажется что любому нормальному мидлу свичнуть технологию или язык вообще не проблема было бы желание (денежный стимул)
Vladislav
Почему я настолько "умный", что не могу запустить дебагинг(откладку) в VS?
Igor
Почему я настолько "умный", что не могу запустить дебагинг(откладку) в VS?
поэтому я люблю джетбрейнс там все просто работает из коробки :)
Anonymous
Еще мне кажется что любому нормальному мидлу свичнуть технологию или язык вообще не проблема было бы желание (денежный стимул)
Не совсем понял. То есть отдельный человек который проверяет резюме? Ну вот допустим в резюме в точности, что указано в вакансии но все равно человек получает отказ. Как это вообще объяснить?
Igor
Не совсем понял. То есть отдельный человек который проверяет резюме? Ну вот допустим в резюме в точности, что указано в вакансии но все равно человек получает отказ. Как это вообще объяснить?
Скорее наоборот если в резюме чего то нет всем пофиг. Но часто резюме пишут под требования и оказывается что гладко было на бумаге а по факту чел вообще в этих технологиях нулевой
Евро Шеф
Да ладно загибать, Си сложнее С++
Ну помушо си основа основ