ebanoe.devLite
0
legacy_Жук_-·3331d ago·0 views

В Comodo соискателям ебут мозги, предлагая за два дня написать антивирус на C++

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

Disclaimer
Впереди вас ожидают теоретические рассуждения, немного C++ кода и алгоритмов. В общем, статья получилась с техничесмким уклоном. Особо неокрепшим умам просьба воздержаться от прочтения. Весь код, упомятый здесь, не приаттачен, поскольку не вызовет интереса у широкой аудитории и не несёт какой-либо практической ценности
отдельно от статьи.

Итак, поехали. Один мой коллега, так уж вышло, начал поиски работы по вакансии Middle/Senior C++ developer. Да-да, есть жизнь за пределами ангуляров. В какой-то момент к нему постучалась hr и предложила “интересную” вакансию в Comodo. Для тех, кто вообще «не в кугхсе», компания разрабатывает продукт Comodo Internet Security и достаточно
известна в мире кибербезопасности (не так известна, как ProtectMasters, но всё-таки):

https://ru.wikipedia.org/wiki/Comodo

И чуть больше про сам продукт можно найти здесь:

https://ru.wikipedia.org/wiki/Comodo_Internet_Security

У компании есть офис в Киеве, куда, собственно, она и хотела бы нанять ещё девелопера (или нескольких). Всё складывалось вполне обычно, но ВНЕЗАПНО закрутилось с новой силой.

Описание вакансии и требований

Для начала ознакомимся с описанием вакансии и требованиями к кандидату:

https://www.work.ua/ua/jobs/2118094/
http://telegra.ph/MiddleSenior-C-Developer-08-02

Первый мелкий факап бросается в глаза практически сразу:

картинка не сохранилась в архиве

Что же это за требования такие, в которых опыт работы от 2-х лет, а опыт коммерческой разработки под винду минимум 3? И я молчу про 5 лет опыта в плюсах. Но не будём доёбываться, в целом глянем на требования:

картинка не сохранилась в архиве

Если кратко, то кандидат должен знать C++, многопоточность, STL, COM/ATL. Остальное – будет плюсом.

“С хуя ли мы так всё детально обсасываем?” — спросит любознательный читатель. А потому, что комодо даёт кандидатам тестовое заданьице. И не какое-нибудь там на 30-40 минут, а, сука, целый проект.

Тестовое задание – напиши антивирь

Заводят на тестовое вас определённым хитрожопым способом. Вначале разговор идёт о том, что вы умнейший и милейший человек. Конечно, никто не сомневается в вашем опыте и скилах, но нужно, чтобы вы показали свой продакшн код.

Как правило, да что там – в 99,99 % такой код показать вы нихуя не сможете, потому что педалили продакшн за бабки и под NDA. А, значит, если покажете, то нарушите условия договора со своим предыдущим заказчиком. Контрибьютить в опенсорц за “спасибо” любят немногие. А даже если и любят, то фикс бага в три строчки вряд ли покажет твоё неимоверное владение паттернами и новым стандартом плюсов. Была тут статьейка на ебаненьком, как гнобить разработчиков – читай про опен репозитории там.

Вот мы и подходим к тому, что показать ты можешь только своё еблище в скайпе. Рекрутёру очень-очень жаль. Но выход есть – тестовое задание. Тебе-то с твоим опытом и навыками его сделать – как два пальца! И щедрая компания комодо готова ждать даже несколько дней, всё для тебя. Бери весло и хуярь только. И вот оно – тестовое – уже летит тебе в скайп:

You need to develop simple malware detector.

Scanner

Scanner is core component implemented as shared library (DLL). Scanner component must be able
to:
— Scan file by path
— Scan array of bytes
— Load signatures file

Implement appropriate methods in the scanner interface.
Malware detection algorithm is the following: if scanned file contains any of predefined byte
sequences, it is considered infected.
The sequences are stored in the regular text file separated by newlines, in the following format:
HexString.{GUID}

Examples:
01ABEDFF55.{ab306a70-0fd2-4b4b-84fe-f9ebd899d90f} EE21DEAD827739ACCD028FFC.{5c34b10f-3f6d-4bbb-b9ec-2faa1ee07660}
If appropriate sequence is found, scanner must return its GUID. Use file mapping to increase
scanning performance.

Client

Client is UI or console application. Client application must be able to:
— Uses Scanner component to recursively scan specific folder.
— Scanning progress must be displayed.
-Scanning must be performed in the thread pool (2 threads per CPU core).

Bonus tasks (optional)

— Use modern C++11, C++14
— Implement Scanner and Client as separate processes with an IPC.
— Implement Scanner component as COM object in an in-process or out-of-process COM
server using ATL. Use ATL classes in Client application.
— Unit tests for Scanner classes.
—————————————————————-
You are free to refer to any documentation/internet etc.
Task estimated time: 1 — 2 days.

В сухом остатке – новый стандарт, а также ATL/COM – не являются обязательными навыками, но будут плюсом. Про WinAPI не говориться вообще.

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

Плюс, как вы заметили, никакой технический специалист пока на горизонте не появлялся – тестовое даёт hr, не отстреливающий нихуя – просто бери и делай, там видно будет.

Выполнение тестового

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

Была сделана динамическая библиотека и исполняемый файл. Система сборки cmake, поддерживаемые оси – винда, мак и убунту. Было решено, что антивирус должен поддерживать как можно больше платформ, потому от решений типа COM/ATL стоит отказаться. Использовался новый стандрт С++ а также QtCore. Код покрывался тестами (gtest).

По функциональности всё было реализовано (сканирование, обход директорий и поддиректорий, отображение прогресса и т.д.) и работало на винде и убунте – за пару дней успел протестить только их. Было потрачено 4 вечера. Конечно, всё было не идеально, но товарищ отправил то, что было. Стал ждать фидбэка.

Для тех, кто не в курсе, что есть COM:
https://ru.wikipedia.org/wiki/Component_Object_Model

Простыми словами – это срань, прибитая к винде гвоздями и разработанная очень давно. В современных продуктах от неё отказываются, т.к. абсолютно непереносима на другие ОС.

ATL – срань, которая выходит из предыдущей срани, и нужна для использования первой:
https://ru.wikipedia.org/wiki/Active_Template_Library

Использование этого говна под большим вопросом в продуктах секьюрити, которые должны идти в ногу со временем и/или впереди планеты всей.

Сука, фидбэк

Наконец, настал этот день – день фидбэка. Он пришёл – вот он:

Добрый день!Спасибо, получили Ваше тестовое задание. По нему уже пришел фидбек:
usage of QFile instead of native file mapping and QThreadPool instead of STL or native windows threads as well as many controversial design decisions force us to think candidate is not suitable for our project

Всё! 4 вечера были проёбаны. И теперь ты знаешь, что после создания экземпляра QFile всё пошло по пизде. Если прочитать более вдумчиво, то парни хотят, чтобы вместо кроссплатформенных решений ты юзал API операционной системы. И если с файловым маппингом это ещё куда ни шло, то с потоками в Qt был реализован паттерн map/reduce, который в новый стандрат STL пока ещё не вошёл. Есть только предложение, парни, proposal:

http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3446.pdf

Про many controversial design я вообще не понял – что это, блядь, за срань? Человек потратил 4 вечера, хули вы тут взагали по загалям пишете? Где нормальный фидбэк?

Парням, видимо, через некоторое время стало стыдно, и пришёл более полный фидбэк.

Фидбэк 2 – перезагрузка

Более полный фидбэк содержит на несколько строчек больше – рассмотрим их все.

1) Checker.cpp: Checker::Knuth_Morris_Pratt() throw std::runtime_error("Pattern not found");
Why «throw» instead for the «return bool»?

Для поиска сигнатур использовался алгоритм Кнута-Морриса-Пратта. И пацанов вообще не смутило, что использовался именно он. А должно было, ведь для поиска сразу нескольких сигнатур он не подходит, а подходит Ахо-Корасик:
https://en.wikipedia.org/wiki/Aho%E2%80%93Corasick_algorithm

И парни из Comodo могли бы это заметить, но увы. Доколупались они к генерации исключения вместо возврата кода ошибки. Да будет вам, хлопцы-комодцы, известно, что «Чистый код» Роберта Мартина советует как раз генерировать исключения, ведь это добавляет в наш код наглядности. В общем, эта тема весьма холиварна, а вот эффективность алгоритмов – нет. Парень не успел реализовать Ахо-Корасик за 4 дня, а вы нихуя не отстрелили этого в своём же тестовом.

2) Dispatcher.cpp: void Dispatcher::SetGuid(const std::string& Guid) { memset(guidMemory, 0x00, GUID_SIZE); memcpy(guidMemory, &Guid[0], Guid.length()); }
What happened when Guid length will be greater then GUID_SIZE?
(Да, этот метод вызовется лишь после проверок на валидность строки
гуида, но все же)

Весь код не приводится здесь, как вы помните. Поэтому я кратко поясню ситуацию. У нас есть буфер фиксированоого размера, в него копируются данные из строки. Размер строки не фиксирован, поэтому для его определения используется метод length(). Здесь возможны 3 случая:
— строка длиннее буфера (то, чего парни опасаются), тогда может быть переполнение буфера;
— строка и буфер одинаковой длины, это нормальное поведение;
— строка короче буфера (парни не учли этот вариант).

Для того, чтобы исключить первый и последний вариант, строка перед подачей в рассматриваемый выше метод, проходит предварительную проверку на валидность. Невалидные строки не попадут сюда никогда. Таким образом, комодцы повторили поведение статического анализатора, именуемое как false positive. Т.е. приколупались к вполне нормальному куску кода.

Комодцы, рекомендую вам курс:
https://www.coursera.org/learn/software-security

Где на пятой неделе вам расскажут, каким образом статический анализатор должен проверять безопасность кода, как это достигается математически, а также что можно считать уязвимостью, а что – нет.

3) Mapper.cpp: Mapper::Mapper(const char* fileName) auto tmp = file.map(0, file.size()); if (!tmp) { throw std::runtime_error("Unable to map file"); } buffer.reset(new uint8_t[file.size()]); — Недопонимание идеи маппинга файла?
memcpy(buffer.get(), tmp, file.size()); — А что если память для
buffer не выделилась?

Парней здесь смутило, что товарищ маппит файл в память, а потом из замапленного куска делает копию. Дескать, маппинг уже отображает файл в память, с ним и работайте. Давайте и тут разберёмся. Во-первых, такое копирование, даже будучи избыточным, вполне корректно работает. Во-вторых, ни один антивирь сейчас не работает с маппами только для чтения, потому что ему нужно делать эмуляцию, деобфускацию и всякого рода преобразования с исходным файлом. С маппингом для чтения не получится в него что-то записать – он же для чтения. Маппинг на запись похерит оригинал. Но! Тут ещё как-то
можно согласиться, что конкретно для этой задачи было лучшее решение. Тем не менее, представленное решение тоже было рабочим!

Теперь вторая их претензия, что будет, если память не выделилась. Комодцы сами говорят про стронг скиллз в плюсах, и так косячат. Если память не выделилась – будет исключение, и до memcpy дело не дойдёт. Почитайте, комодцы, вам будет полезно:
http://www.cplusplus.com/reference/new/operator%20new/

4) Scanner.cpp: const char* GetInfectedFileGUID(const char* path) Can return nullptr, valid GUID string and empty GUID (0000-0000-...)
And all these results will be printed as founded matches.

А вот этот пиздёжь даже комментировать тяжело. Как вы помните, антивирь работал, его тестировали. А значит – он собирался и запускался. Если бы комодцы достали руки из жопы и запустили эту поделку, то увидели бы лог, в которого таких “founded matches” почему-то не было. Возможно, потому, что они нихера не могут читать в статике код. Парни, что это – недопонимание С++?

Скажу вам, ради справедливости, косяки там были. Конечно, куда ж без них – и не один, и не два. Вот только комодцы не нашли ни одного.

Вывод.

1. Мопед не мой, я только написал статейку на ебаное. Сам код тестового я не писал, его писал другой человек. Но он положил на вас, Comodo, хуй, и я бы положил, если бы вы не начали стучать мне в linkedin с этой сраной вакансией.

2. Убеждаюсь, что делать какие-то тестовые, не поговорив с техническими специалистами “до” — пустая трата времени. Также как и трата времени – общение с фриланс рекрутерами. Конечно, хотелось бы общаться с рекрутерами компании напрямую, если уж без рекрутёров никак. Но могу сказать из своего личного опыта, что рекрутёры в больших компаниях заняты рассказами друг другу о том, как они на выходных в клубешниках с причмокиванием сосали писюны. На работу времени не остаётся. Вот и приходится нанимать сторонних фрилансеров.

3. Комодо затеяли какую-то хуйню. То ли там у руля сидит дебил, который вообще без дупля во всех этих технолоГейях, то ли нужно показать руководству, что в Украине некого нанимать. И потом в ход можно пустить кумов, сватов, братов и прочих? Хуй его знает, но что-то там явно не здраво.

4. Читатель, если ты захотел в Комодо, возможно, тебе не стоит тратить своё время на людей, у которых цель – просто поебать тебе мозги?

5. Комоды, комодцы, комодовцы! Ну нахуя вы это делаете? Получается, что вы заявили достаточно высокую зп на вакансию, но никого не хотите нанимать? Кандидаты рвут жопы, рекрутёры рвут жопы – а вам это не стоит ни копейки, ведь вы платите за результат, а его нет.

6. Рекрутёр! Не трать своё время – эта вакансия будет висеть вечно.

7. Редакция, жду ваших комментов. Интересно мнение со стороны. Кто виноват, кто прав, что
делать?

Комментарий ебаной редакции

Дорогой Анонимус! Спасибо за отличную статью. Шарящих в «плюсах» в редакции нет, поэтому по технической части остается лишь поверить на слово. Касательно тестовых заданий на несколько дней, то здесь, конечно, тонкий вопрос. С одной стороны, время всегда жалко, поэтому неплохо бы таки перед приступлением к заданию пособеседоваться с технарем, чтоб вы друг друга поняли и чтоб не было явного кидка. Большие задания (больше, чем на полдня, а то и на несколько дней) — это настоящая роскошь, несколько часов/дней жизни. Как правило, стороны понимают это, поэтому действует негласное правило — если решение худо-бедно работает, контора не ебёт мозги и берет человека на работу. Ведь по сути это работающая программулина, законченный мини-проектец. Даже если никто его никому впаривать небудет, это завершенный кусок работы, на который были затрачены личное время и усилия — это уже достойно уважения. Исходя из вышеперечисленного, можно сделать вывод, что либо у Комодовцев нет опыта в найме, либо им не горит и они перебирают кандидатами, пренебрегая их лояльностью и особо не парясь. Что ж, ну, будут, значит, и дальше разрабатывать своё Комодо ограниченными ресурсами. Другу же совет — если речь идет о драгоценном времени — лучше по сто раз переспросить HRшу на предмет контакта с технарем и четко дать понять, что личное время — на вес золота.

From the ebanoe archive · Originally published August 17, 2017

Comments (272)

  • legacy_Фронтендер_от_Бога3331d ago

    А шо такое C++?

    0
    Reply
    • legacy_Хипстер3331d ago

      Язык для инвалидов умственного труда

      0
      Reply
      • legacy_Руби_лучше_всех3331d ago

        я не пидар

        0
        Reply
        • legacy_БОГ_13331d ago

          Ты можешь написать что угодно, но мы знаем правду

          0
          Reply
          • legacy_фыв3323d ago

            отвечу на поставленный собой же вопрос:
            1. Пункт «Описание вакансии и требований». Глупый наезд на требования к соискателям — он уныл более чем полностью. АМ считает, что за меньше чем 5 лет можно стать помидором в С++? Флаг ему в одно место, и пожелаем ему чтобы он с такими помидорами-С++ сам работал всю свою никчемную жизнь.
            2. Удивление что надо портатить «кучу» своего времени и сделать тестовое…. RLY? — кто считает также как и автор — можем поспорить на тему тестовых отдельно
            3. Удивление временным периодом — 1-2 дня — как будто кто то ожидает что надо будет прогать 24-48 часов — то что в тестовом задании пишеться за 4-8 часов с написанием черновика, его причесыванием-рефакторингом, и вылизыванием кода
            4. «Гарантии трудоустройства никто не даст»? RLY?
            5. Удивление что задание выдал HR — а кто его должен выдавать? Может тот кто раскажет как его делать? Если мозга не хватает понять что просят …
            6. Кандидат проебал 4 вечера — хотя срок был 2 дня. Кто ему доктор?
            7. Кандидат мог взять 2 выходных — если понимал что не успеет за 2 дня. Но он взялся за тестовое сразу, а не попросил тестовое на выходные (полное право кандидата, когда ему делать тестовое).
            8. Кандидат взял какую то Qt срань для низкоуровневых вещей, хотя про Qt в задании ничего сказано не было, а наоборот было пожелание использовать stl в котором всё это есть в новых стандартах, которые просили применять.
            9. Кандидат получил объективный фидбек, но к сожалению ЧСВ не позволило ему принять его (тем более ему расписали что к чему)
            10. Про алгоритмы я молчу — раз разрабы это не упомянули — там был вопрос не как эффективно накатать — а посмотреть что сможет сделать чувак вообще, а не как написать супер эффективно
            11. memset & memcpy в C++ коде? RLY? да ещё и с откровенной дырой и затиранием памяти. Ну и кроме того что есть замечательный класс boost::uuid, чтобы не передавать строку, на крайняк прописать std::array
            12. исключения в софте требующем быстродействия отключаются (но конечно вопрос спорный, тут вероятно если бы не было факапов выше, они могли бы поспорить на дальнейшем техническом собесдовании-обсуждении)
            13. Отсутсвие проверок кодов ошибок и состояния файлов и выделения памяти (в случае если код компилиться с отключенными исключениями)
            14. Чувак выделывается знанием cmake вместо знания С++

            Итог: то есть чувак прислал им код, повыделавывшись знанием Qt вместо запрашиваемого stl, но при этом у него в С++ коде всякие memcpy, memset и тот самый пресловутый new, и выдав в итоге нагора код, который может многократно «выстрелить в ногу»

            Вкратце для многих на будущее Qt — это для GUI, stl > boost > qt — если уж пошло, и надо стараться минимизировать использование последних, и брать только то, чего нет в stl

            ну кто так пишет на плюсах то в 2017?

            так что я могу сказать как С++ — КГ/АМ, ё-айти не хватает технического редактора чтобы не пропускать этот позор

            0
            Reply
            • legacy_фыв3323d ago

              на тему тестовых:
              если ты реально крут (а это означает что ты с ЛЕГКОСТЬЮ выполнишь тестовое, знаешь за сколько, и знаешь что успеешь в запрашиваемые сроки), то это означает, что ты и правда его сделаешь, пройдешь этот тест и получишь офер, и вот этот офер ты можешь легко пододвинуть на свой собственный рейт * на количество часов потраченных. И получишь за год на целых (12*рейт*количетсвоЧасов) «убитых енотов» больше.

              если ты такой гордый и принципиальный, и не хочешь делать тестовые — шлёшь всех нахер,
              вариант продавить оплату тестового задания — когда она должна быть сделана? по какому факту — если соискатель прислал «хелоу ворлд»? каким рейтом? как трекать время? куча вопросов без ответов. Но по хорошему, если ты уж такой приниципиальный — так напиши код, который не стыдно показать — вокруг есть куча задач, которые требуют автоматизации, потрать раз в жизни те самые 4 дня, чтобы каждый раз не попадаться на вот таком моменте. Или хотя бы используй код, написанный на каком то предыдущем тестовом. Правда тот код что в статье я бы не показывал никому.

              но обычно тестовые больше 4-8 часов не даются, а я написал что подобные задания (как в тексте) делаются за 4-8 часов, что не так много — особенно если взять их на выходные (все равно на выходных кодить ты будешь — какая разница что?)

              и на последок, потратить 1.5 часа на техническое собеседование с малопонятными вопросами по скайпу и кодингом в google docs, а потом на ещё одно и скорее всего уже у доски лично + дорога, намного больше гемора и меньше удовольствия чем покодить «для себя» тестовое, развернувшись по полной — создав свою архитектуру, используя любимый кодинг-стайл и т.д.

              0
              Reply
      • legacy_Капитан_Говна_13331d ago

        Ангулярский выпиздок, нахуй пошел!

        0
        Reply
      • legacy_Ангулярщик3331d ago

        Теперь я понял, почему Рыба и Жук не признались, что они кресты знают!

        😀😀😀

        0
        Reply
    • legacy_Scala-гребец3331d ago

      Вот тут годный совет есть: http://labor-union.wikia.com/wiki/Lifehacks

      Никогда не соглашаться на бесплатные стажировки или стажировки за МРОТ/еду. Никогда не выполнять тестовые задания задаром. Любая работа на дядю должна хорошо оплачиваться.

      И еще там куча годных советов:

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

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

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

      И так далее.

      0
      Reply
      • legacy_грєбун3330d ago

        Если не брать на себя интересной работы НЕ входящей в твой нынешний рейт то он будет стабилен как могильный камень.
        Важно понимать что не стоит брать тупую работу которую на тебя скидывают и самому выбирать как и куда расти

        0
        Reply
        • legacy_Лактобактерия3330d ago

          > Если не брать на себя интересной работы НЕ входящей в твой нынешний рейт то он будет стабилен как могильный камень.
          Это и есть:

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

          0
          Reply
      • legacy_ЯбудуУстанавливатьВСЕигры3330d ago

        «Также не тратьте ваше время на женщин»

        Uspeh yaNeTrachuVremyaNaZhenshin = new Uspeh();

        Uspeh zhenshiniNeTratyatVremyaNaMenya = new Uspeh();

        boolean hozyainZhizni = zhenshiniNeTratyatVremyaNaMenya.equals( yaNeTrachuVremyaNaZhenshin );

        System.out.print( hozyainZhizni );

        0
        Reply
      • legacy_Danu3329d ago

        Да это же школьник писал. К тому хе, тупой, как пробка. А работе не имеет ни малейшего понятия. Вот, несколько мною выбранных «перлов»:

        Если вас заставляют писать документацию к вашему проекту или к части проекта, то не стоит разжевывать все такого состояния, чтобы понял первый встречный.
        Также регулярно сливайте к себе домой исходные коды всех проектов компании, новые версии клиентских баз и так далее.
        От мыслей «Ох, что же подумает мой начальник» и «Ох, что же подумают мои коллеги» вам нужно избавиться раз и навсегда.
        Купите себе бумажную книгу «Трудовой кодекс Российской Федерации» и держите ее все время на вашем столе на работе. Во время обеденного перерыва или вынужденного простоя перечитывайте у всех на виду данную книгу, вызывая приступ лютой бессильной злобы у вашего руководителя.
        Как выжить в РФ инженеру? … Во-вторых, завести себе ИП, а еще лучше — ООО.
        И никогда не соглашайтесь работать в штате. Работайте как инженер только в качестве ИП или ООО «Иван Иванов Инжиниринг».

        0
        Reply
    • legacy_Ушат_Помоев3330d ago

      а эта такой язык программирования, на котором написан браузер, в котором ты спрашываиш «шо жэ эта такоя»… о как!
      PS: надеюсь шо вапроса про «шотакое бравзер» нипаследуид…. гыгы.

      0
      Reply
  • legacy_Хипстер3331d ago

    Крестоебы хуже обезьян

    0
    Reply
    • legacy_Плюсовик3331d ago

      Хипстота хуже крестоёба.

      0
      Reply
      • legacy_дядя_вася_23331d ago

        COM/ATL — это же говно мамонта, 10 лет назад это было актуально.

        0
        Reply
        • legacy_лёгкий_Митин_клитр3331d ago

          COM/ATL — это и не кресты, это клоунада.

          0
          Reply
          • legacy_старый_хер3331d ago

            ATL поделка для visualC, типа упрощающая разработку COM серверов. COM/COM+/DCOM всего лишь спопсоб имея контракт,(интерефейс) дернуть имплементацию на сервере, ну и проч. DCOM — был мертв, т.к. были секьюритные дыры. CORBA убила DCOM.

            0
            Reply
    • legacy_Ушат_Помоев3329d ago

      конечно хуже! теорема доказывается из аксиомы «люди хуже животных» прямой подстановкой….

      0
      Reply
    • legacy_пейсатель3328d ago

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

      0
      Reply
  • legacy_Тамада_собачьих_свадеб3331d ago

    Антивирусные галеры всегда выделялись неадекватностью

    0
    Reply
    • legacy_онаним3331d ago

      как и их продукты.

      0
      Reply
    • legacy_Бенис3331d ago

      Хули взять с виндового быдла?

      0
      Reply
      • legacy_КлятыйКацап3331d ago

        я веду светские беседы с богоподной кортаной на винде и пишу к ней ботов, которые расширяют ее функционал
        а вы дальше ебитесь со своим терминалом

        0
        Reply
  • legacy_пициносец3331d ago

    Я понимаю только как формы тыцкать, по выходным читаю мануал по ангуляру.

    Такой код я не понимаю, статья говно.

    0
    Reply
  • legacy_anon_283331d ago

    >> Task estimated time: 1 — 2 days.
    Ебался недавно тож с одним тестовым неск. дней, которое было оценено в 32 часа. Хз на кого оно было расчитано, учитывая что в описании вакансии не было ни одного требования связанного с тематикой заданий. Видимо времена такие.
    >> Почитайте, комодцы, вам будет полезно
    Понятное дело никто нихуя читать не будет, но теперь хотя бы ясно почему Комодо всё-таки больше известен своей малварой.

    0
    Reply
    • legacy_Москаль3331d ago

      У них IDE неплохая есть.
      И даже ее free-версия Comodo edit

      0
      Reply
  • legacy_Хипстер3331d ago

    А вывод один — 4 дня ебаться с тестовым, что бы в итоге у тебя забомбило, что парни с Комодо не считают тебе тру прогером. Крестоебы унижают крестоебов. Пиздец днище. Ангулярщики в отличии от этих пидаров как братья.

    0
    Reply
    • legacy_Ноулайфер_с_зп_200_испытывающий_счастье3331d ago

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

      0
      Reply
      • legacy_Туалетная_бугага3331d ago

        в 95% компаний при упомянании метапрограммирования или ебучей рефлексии на меня смотрели вот так О_о

        что блять все эти люди там делают? какой долбоёб их нанял? нет ответа

        0
        Reply
      • legacy_Вася3330d ago

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

        0
        Reply
  • legacy_3д_дизайнер_умывальника3331d ago

    я как-то делал тестовое для пидаров из Ulysses Graphics — проебал около 30 часов времени в итоге даже не удосужились сказать причину отказа.

    0
    Reply
  • legacy_Ангулярщик3331d ago

    Нихуясе, первый раз код на ебаном вижу

    😀😀😀

    0
    Reply
    • legacy_Хипстер3331d ago

      Это не код, а параша какая-то.
      Вот код:

      import { Component } from «@angular/core»;

      @Component({
      selector: «krestoeb-neudachnik»,
      template: «krestoebi {{ kto }}»
      })

      export class AppComponent { kto = «lohi»; }

      0
      Reply
      • legacy_Ангулярщик3331d ago

        Два яблочных смузи этому господину!

        😀😀😀

        0
        Reply
        • legacy_я_твой_код_и_маму_шатал3331d ago

          О! перепись фронтенд — пидаров?
          CSS-ку вам смазаную реактом в жопу!

          Кто вас за программистов считает — в приличной компании клавиатуру таким протирать бы не доверили!

          0
          Reply
  • legacy_Ноулайфер_с_зп_200_испытывающиймсчастье3331d ago

    Сейчас самый востребованный работник – это офисный раб, подмечает Владислав Быханов, партнер хедхантинговой компании Cornerstone: «Он послушен, ответственен, толков, знает свое дело и место».

    Все работодатели давно перестроились и охуели. Теперь они открыто говорят, что им нужны лохи аутисты, которые не строят из себя выскочек, а молча жрут говно.
    Хотеть карьеру и большую ЗП стало плохо, т.к. это мешает владельцу купить новый 911й.
    В таких условиях тестовые задания перестроены лишь на одно: объяснить всем вокруг, что они недостойны даже 100 тысяч в месяц (раньше зп по 170 в мск были)

    0
    Reply
    • legacy_anon_283331d ago

      В продуктах у вас можно найти и 400 в мес. Но эта сумма скорее вызвана неадекватными требованиями/собесами и денег этих понятно никто не даст даже второму торвальдсу, никому больше не нужны все эти верифицируемые модели синхронизации на сети петри, нужно знать конкретные детали реализации вроде имен функций да параметров типа «ты посмотри хуйню он какую-то нарисовал, ну что за дебил, ты давай-ка расскажи нам лучше за стандарт. Васян, а ну загугли че там за хуйня есть в новом стандарте, пусть отвечает раз уж приперся».

      0
      Reply
    • legacy_Кек3331d ago
      0
      Reply
      • legacy_Scala-гребец3331d ago

        Оттуда:

        Галеры любят паразитировать на вузах, встраиваясь в процесс обучения за взятки деканам и заманивая студентов к себе. Менеджеры и тимлиды с галер тщательно скрывают от студентов свою паразитическую сущность, гордо именуя себя ведущими мировыми IT-компаниями и рассказывая, что основной офис у них находится в США. Галерное руководство скрывает от студентов тот факт, что галера их будет десятилетиями продавать иностранным клиентам с наценкой в 3 — 3,5 раза, навариваясь на них. Работа на галере преподносится для студентов как безальтернативный путь, потому что второй вариант — это работать на российских заказчиков за копейки. Про третий путь (самостоятельный поиск постоянной удаленной работы в США на long-term-проектах и удаленный консалтинг по контрактам) тимлид и менеджер никогда не расскажут студентам. Деканов факультетов эта ситуация устраивает по понятным причинам. Вузы вообще не учат тому, как студенту-программисту можно начать работать самостоятельно, как общаться с клиентами, находить их в США удаленно, вести переговоры посредством email или Google Hangouts, подписывать NDA, подписывать контракты. Вузы не учат юридическим аспектам самостоятельной работы на иностранных заказчиков, не учат тому, какими бывают контракты (time and materials, fixed-price, cost-plus). Вузы не учат тому, что, например, три друга-студента, ударившиеся в различные смежные специализации, могут втроем начать вместе работать на американского клиента, минуя всякие галеры, либо же могут втроем устроиться на галеру, затем увести клиента (что ТК РФ не запрещает), затем сразу уволиться с галеры и продолжить втроем работать из своих квартир на того же самого клиента или его бизнес-партнеров.

        0
        Reply
      • legacy_Scala-гребец3331d ago

        Еще оттуда:

        Никогда не прогибаться на собеседованиях и не снижать планку денежных требований, даже если тот, кто вас собеседует, открыл свежайший стандарт вроде C++14 и, читая его сверху вниз и задавая вам вопросы, обнаружил, что вы не знаете чего-то. Всего знать и помнить невозможно, и это нормально, ведь в реальной работе вы всегда сможете в случае необходимости открыть PDF-документ с тем же стандартом и быстро вспомнить или понять конкретную вещь. Сейчас во многих компаниях самый востребованный сотрудник — это аутист и офисный раб, который легко позволяет окружающим снижать его самооценку, поэтому вам никогда нельзя прогибаться ни под кого. Современные собеседования все больше напоминают ментовские допросы и представляют собой не отборы компетентных кадров, а акты психологического отбора рабов. На собеседовании специально обученные люди могут обвинить в незнании C++ даже Бьерна Страуструпа. Если вы поняли, что данной конкретной компании требуется не компетентный разработчик, а галерный раб, то тут же прерывайте собеседование и вежливо прощайтесь навсегда.

        0
        Reply
        • legacy_Кек3331d ago

          Особенно это. Вангую, 95% программеров зафейлится на этом пункте:

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

          0
          Reply
          • legacy_уцкжцудьезщаьзацуа3331d ago

            Дев, даже синьор, имеет такое же отношение к архитектору, как морская свинка к морю.

            0
            Reply
  • legacy_У_станка3331d ago

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

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

    0
    Reply
    • legacy_Ноулайфер_с_зп_200_испытывающий_счастье3331d ago

      Написано слабо, но не в этом дело.

      0
      Reply
      • legacy_У_станка3331d ago

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

        0
        Reply
    • legacy_Вася3330d ago

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

      0
      Reply
  • legacy_РЕАКТ_СИЛА_-_АНГЛУЯР_МОГИЛА3331d ago

    Недавно попался на рекрутерскую прокладку (ну тоесть у них есть свой сайт для РЕКРУТМЕНТА, но к работодтелю или хотя бы ХР они вас обработают сами).
    И в общем у этой ебаной прокладки — 2 теста всегда тебе кидают, когда подаешься на любую вакансию.
    1 сука — пародия на iq тест, сиди блядь и продолжай цепочку, реверсивно инженируй и т.д. Идет он блядь час.
    2 ой тест — тест на знания «ПРОГРАММИРОВАНИЯ», ну тоесть тупо там всё подряд. Ты можшеь подаваться на жс разработчика, а в этом тесте из 40 вопросов 10 будут по C++, 10 по Джаве, 10 по питону и т.д. — вообще охуенно. Ну и он тоже занимает где-то час (я по интуиции с универа еще помнил всякого), еще был устарелый ЖС и всякое говно мамонта про верстку таблицами, лол.
    И потом прокладка торжественно отправляет твое сиви и прилепляет к нему эту ебату — РАБОТОДАТЕЛЮ ТОЧНА БУДЕТ ПОЛЕЗНА И ОХУЕННА и приходит ответ что вакансия мертва )))00
    Тоесть блядь времени на придумывание этой хуйни было, а придумывать механизм очищения вакансий — не было ))00
    А я проебал несколько часов жизни в пятницу на эту хуйню.

    0
    Reply
    • legacy_онаним3331d ago

      ссылку в студию.

      0
      Reply
    • legacy_Галерный_раб3331d ago

      Случайно контора не Nix Solutions?

      0
      Reply
      • legacy_погонщик_из_никсов3330d ago

        Ну-ка пиздуй обратно писать Connection, бииистра

        0
        Reply
  • legacy_Ноулайфер_с_зп_200_испытывающий_счастье3331d ago

    Собеседования уже давно не представляют из себя метод отбора по квалификации… Просто акт психологичеакого отбора рабов, с целью сбивать зарплатные ожидания и перспективы роста.
    На собесах не пытаются понять, что вы знаете, а пытаются найти в вас слабые места и объяснить, как это ужасно чего-либо не знать.

    0
    Reply
    • legacy_однояйцевый3331d ago

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

      0
      Reply
      • legacy_Ноулайфер_с_зп_200_испытывающий_счастье3331d ago

        Когда я так сделал (поймал собес. на незнании) — мне даже не сказали результат.

        0
        Reply
        • legacy_peppa3331d ago

          Все потому что кроме того типа, которого ты обоссал, никто не знает твоих скилов, HR это все до пизды.
          А он умывшись сказал что ты последний днарь) Так же пару раз было, обидно(

          0
          Reply
          • legacy_Ноулайфер_с_зп_200_испытывающий_счастье3331d ago

            Все потому, что я достаточно хорошо технически подкован, а еще я выполнил кмс по лифтингу в awpc и в свои 27 при росте 187 вешу 97кг нежирной мыш. массы., т.е. не качок, но очень атлетично сложен.
            Уверен, что тут есть такие же люди и они подтвердят, что на собеседованиях сидят дрыщи с проплешинами на голове и когда я прихожу, случается две вещи:

            1. Уже видно, что я не аутист и не раб, сломать не получится.
            2. Я только вошел, но уже понравился HR и не понравился псевдоспецам на кредитных солярисах… Надо видеть их лица, т.к. на должность разраба ожидали аутиста в дырявых штанах.
            0
            Reply
            • legacy_мокрый_палец3331d ago

              >> не раб
              …и пришел на галеру на собес? Не рабы в основном менеджмент — нихуя особо не делают и взвешивают бабки.
              >> т.е. не качок, но очень атлетично сложен.
              …если ты не бройлер а только атлетично сложен то этого не видно даже под футболкой в сеточку и коротких кожаных шортах, поэтому самка врятли поведется.
              >> но уже понравился HR
              …хрюша на собесе это просто прокладка для отсеивания полных неадекватов (в теории), поэтому твое ЧСВ явно на небесах.

              0
              Reply
              • legacy_Ноулайфер_с_зп_200_испытывающий_счастье3331d ago

                Ладно

                0
                Reply
  • legacy_Колёк3331d ago

    Статья от какой-то обиженки, а эти неумелые попытки выдать свой проёб за «мопед не мой, эт товарищ ходил, не я» просто умиляют. Признайся, блять, как нормальный мужик, что это твой собес, а не выдумывай воображаемых друзей.

    А чего стоят нелепые оправдания этой ранимой девочки. Тебе ж сука в задании написали «Implement Scanner component as COM object in an in-process or out-of-process COM server using ATL. Use ATL classes in Client application», нет блять, я ж самый умный, сам себе придумаю требований (желательно с использованием своего любимого фреймворка), сам их решу а потом обижусь, когда нахуй пошлют и накатаю статью на ёбаное. А не проверять валидность параметра внутри библиотечного метода и оправдываться «ну он же в моём приложении вызывается в местах с проверкой, поэтому в метод пойдут проверенные гуиды, мамая клянусь братуха» — просто адский ад, сеньора сразу видно.

    4 вечера он потратил, АЖ 4 СУКА ВЕЧЕРА ОТНЯЛИ У ТАКОГО ВАЖНОГО ЧЕЛОВЕКА, МИДЛА С++! А времени для написания этого высера не жалко было? Вердикт: кг/ам.

    0
    Reply
    • legacy_cpp_coder3331d ago

      Согласен полностью. Тестовое задание вполне вменяемое, и реально проверяет необходимые для этой вакансии навыки.
      Друг автора потратил 4 дня на задание, при этом понял его по-своему. По пунктам:
      1. Никто не просил туда тянуть Qt, написано же «Client is UI or console application».
      2. Про треды на CPU — проверка как кандидат владеет вопросом, это must have в такого рода продуктах.
      3. ATL/COM — это optional. К чему возмущаться, что это «это срань, прибитая к винде гвоздями и разработанная очень давно» ?
      Другу не пришло на ум, что эти компоненты нужно знать не для того, что на них пишется продукт, а то что они также могут/должны мониториться анитивирусом как вероятный вектор атаки зловредов и прочей херни ? Или старый софт уже не нужно проверять ? Да и в новом также нередко используют эти технологии.
      И не нужно забывать, что основная часть клиентов антивирусов как раз сидят на винде. Фраза
      «Было решено, что антивирус должен поддерживать как можно больше платформ, потому от решений типа COM/ATL стоит отказаться» вообще идет в разрез с требованиями задания.
      4. Игнорирование файлового маппинга(который к слову есть на всех плтаформах), высеры про «алгоритм Кнута-Морриса-Пратта», «Ахо-Корасик» и «Чистый код Роберта Мартина» говорит, что парня понесло вообще не туда.
      Про исключения лучше бы вообще не писал. Пусть поговорит с любым системным прораммистом, почитает про SEH, или Рихтера. Это блять не уютная джава,в которой можно и нужно все заворачивать в эксепшены.
      Дальнейшую истерику уже и комментировать не охота.
      Диагноз — пациент срр-шник уровня галеры, работающий на саппорте индусских проектов. В кресты пришел с либо с веба либо с курсов(судя по его ссылкам), хз что хуже. Если хочет лезть системное программирование — пусть учит ПРАВИЛЬНУЮ мат часть и нарабатывает опыт в этой области. Хотя, судя по ЧСВ — эти советы бесполезны.
      То что «комодцы не нашли ни одного» косяка, не говорит о том, что они тупые и меркнут перед гением автора. Просто после всего остального сразу стал понятен уровень кандидата и тратить на него свое время было бы глупо.
      ЗЫ. Достали уже эти скороспелые cpp-шники, нахватавшиеся вершков из разных источников и думающие, что простое упоминание C++ должно заставлять простых смертных падать перед ними на колени.

      0
      Reply
      • legacy_CSSTraineeMiddleQAArchitectDeveloperSeni3331d ago

        QA>C++

        0
        Reply
      • legacy_Гудвин3331d ago

        Шо, бомбануло, комодо? Та если б я на собес к тебе попал, то смешал бы там с говном тебя. Давай уже ссылки на правильную матчасть — на Windows internals хотя б, а то рихтера почитать. Питрек! Вот кто писал про сехи, так что не пизди мне тут, нуб

        0
        Reply
        • legacy_Merlin3331d ago

          «обидно за пидарское поведение. Тестовое было отличненько сделано.»
          Малолетний неудачник-соискатель-говномешатель погуглил умные слова и решил реабилитироваться ? Ссылки ему подавай, лолка малолетняя… Если вместо головы жопа и из нее же руки растут — то тебе дорога в 1С, а не рассуждать с умным видом про вещи о которых понятия не имеешь.

          0
          Reply
    • legacy_Не_Москаль3331d ago

      Такое же впечатление возникло.
      Добавлю только, что на хуй не впёрлась эта ваша кроссплатформенность в такого рода продуктах. Антивири нужны только под винду — вот и пишите их под винду, с использованием пусть и прибитых гвоздями, но нативных технологий целевой ОС.
      Баттхерт перфекциониста, который даже не знаю откуда мог такой взяться в мире крестоёбов.
      С другой стороны, тестовое задание более чем на 4 часа — а не пошли-ка вы нахуй.

      0
      Reply
    • legacy_Гудвин3331d ago

      Николя, ты узрел, что это с пометкой optional? сам ты мидл, слепыш

      0
      Reply
    • legacy_winrar3331d ago
      0
      Reply
  • legacy_Джанго3331d ago

    Блядь. Вот обычно со всем согласен, но жаловаться на тестовое задание на каких-то сраных 2 дня? Та блядь, на дрочку за неделю уходит больше. Еще и оплачивать выполнение тестового (причем явно тестового, а не продакшен-левел)? Автор зажрался вообще.

    0
    Reply
    • legacy_Гудвин3331d ago

      Да не 2 дня жалко, обидно за пидарское поведение. Тестовое было отличненько сделано.

      0
      Reply
      • legacy_уцкжцудьезщаьзацуа3331d ago

        Отлично для индуса.

        0
        Reply
      • legacy_Вася3330d ago

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

        0
        Reply
  • legacy_Хулахуп3331d ago

    Кинул вам пару массивов за щеку. Парсите

    0
    Reply
    • legacy_Ангулярщик3331d ago

      Массивы не воспринимаем, только по отдельным переменным. Так что в ответ закинули тебе список из LONGINT variables. Считывай!

      😀😀😀

      0
      Reply
  • legacy_С_В_Е_Т_Л_А_Я_23331d ago

    Очередное позорище. Соискателя напрягло, что компания ищет людей с хорошим опытом и поразило, что есть люди, использующие плюсы и по 10 лет. Несчастный задрот, явно изучал Жабу и решил, что на плюсах он тоже сможет всё. И о чудо, его код признали убогим 🙂
    Невежда не знал старый добрый СОМ? Позорище! Любая девочка из HR отлично владеет СОМ, DCOM, ActiveX . Это же классика технологий Windows.

    🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂 🙂

    0
    Reply
    • legacy_Тамада_собачьих_свадеб3331d ago

      Главное, чтобы знала технологию РТОМ

      0
      Reply
      • legacy_301й_спартанец_на_галере3331d ago

        РТОМ они все знают, легкий порог вхождения в эту технологию, а в дальнейшем и вхождения технологий в них

        0
        Reply
        • legacy_Метро_секшуал3331d ago

          Может и знают, но почему-то, не редко на продакшене, их навыки вызывают вопросы и частенько не соответствуют зарплатным ожиданиям.

          0
          Reply
    • legacy_Дед-ебун3331d ago

      Хочешь жопой мою сиську отсосать?

      0
      Reply
      • legacy_Дед-ебун3331d ago

        Хочешь? Хочешь?
        ХОЧЕШЬ

        0
        Reply
    • legacy_Гудвин3331d ago

      Кто тебе сказал, что соискатель не использует плюсы 10 лет?

      0
      Reply
    • legacy_старый_хер3331d ago

      кому нужна старая толстая жопа светлой, кроме алкащей.

      0
      Reply
  • legacy_301й_спартанец_на_галере3331d ago

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

    0
    Reply
    • legacy_Метро_секшуал3331d ago

      На неоплачиваемую стажировку 😂

      0
      Reply
  • legacy_Быдлокодер_13331d ago

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

    0
    Reply
    • legacy_Ноулайфер_с_зп_200_испытывающий_счастье3331d ago

      По-твоему UI это сложно? В большинстве ide их сейчас рисуют, а не кодят как в старые времена.
      Я сам крестоеб, но даж сайты редизайнил работая в хостинге.

      0
      Reply
      • legacy_Это_кодинг_на_крестах3331d ago

        Конечно сложно, красивый дизайный сделать намного сложнее нежели набыдлокодить на крестах.

        0
        Reply
        • legacy_смузихлеб_13331d ago

          то ли орать с тебя то ли задизайнить тебе за щеку

          0
          Reply
          • legacy_Авцехуево_нет3325d ago

            Давай друг другу майнить на грудь?

            0
            Reply
      • legacy_уцкжцудьезщаьзацуа3331d ago

        Ну, порисуй.

        0
        Reply
    • legacy_Крестоносец3331d ago

      Я думаю в плюсы приходят скорее из-за непреодолимых ограничений других языков. Плюсы наиболее универсальны, хоть писать и в разы более трудоёмко. Сам хоть и топлю за них, считаю, что питон для своих задач хорош, да и жиэс няшка :3

      0
      Reply
  • legacy_Шкода3331d ago

    Не згоден з автором в двох моментах:
    1. Незнаходження сигнатури це нормальний кейс, навіть більш ймовірний, ніж знаходження. Тому вертати потрібно false при незнаходженні, а не кидати exception, exception — коли щось йде не за планом, а не в стандартних ситуаціях.
    2. new вертатиме null для VC6 компілятора, замість кидання bad_alloc exception. Звісно, в усіляких embedded системах де exceptions випиляні для економії пам’яті, new теж вертає null, коли не може виділити пам’ять, але антивірус, ясна справа, не для embedded, тож практичне значення має лише VC6 варіант. І щось мені підказує, що не даремно комодо просять COM і ATL замість кросплатформенного коду — очевидно, у них там тонни легасі коду, що компілюється тільки під VC6, а якщо і перейшли на щось сучасне, то для збереження зворотньої сумісності прилінкували nothrownew.obj.

    0
    Reply
    • legacy_Папкин_ухаед3331d ago

      VC6 в 2017м? Серьезно?

      0
      Reply
      • legacy_Шкода3331d ago

        Ну а що — компанія старенька, легасі коду повно, якщо і перейшли на щось сучасніше, то прилінкували nothrownew.obj — і не треба заміняти if(!щось_там) на обробку винятків у кількох тисячах рядків коду.

        0
        Reply
        • legacy_Папкин_ухаед3331d ago

          Перевести легаси код на чтото поновее гараздо практичней чем мучасть старую студию. Она хоть на 7ке заводится и работает? Или в подарок к 6й студии идет пень на ХП?

          0
          Reply
          • legacy_Шкода3331d ago

            Так стару студію не потрібно мучити. Береш найновішу студію, береш старий код, компілюєш новою студією, лінкуєш nothrownew.obj — і new тобі преспокійно повертає нуль замість кидання винятків, коли пам’яті не вистачає, відповідно не потрібно переписувати старий код, який розраховує на нуль, а не на винятки

            0
            Reply
            • legacy_Папкин_ухаед3330d ago

              Шта? Этот фокус перестал жить после 2003ей.
              for (int i = 0….) и пиздарики.

              0
              Reply
    • legacy_Гудвин3331d ago

      Как ты, блядь, олень, в вижал студии шестой новые 11 и 14 стандарт будешь юзать? Хули ты ide с компилятором мешаешь вообще?

      0
      Reply
      • legacy_Шкода3331d ago

        І 11, і 14, і 17, і навіть 20 сумісні з 98. А стару студію використовувати не обов’язково з кодом, який писався в розрахунку на компіляцію з VC6 — з найновішою студією лінкуєш nothrownew.obj і отримуєш поведінку new таку ж, як і з VC6.

        0
        Reply
        • legacy_Гудвин3331d ago

          Ага, хуй они слинкуются, парень. Попробуй полинкуй. Думаешь, нахер статик либы в платных продуктах собирают для каждой студии отдельно?

          0
          Reply
          • legacy_Шкода3331d ago

            Ліньки перевіряти, повірю на слово.

            0
            Reply
      • legacy_Папкин_ухаед3330d ago

        А че в чистом коде разве не написано про Platform Toolset? Лучше бы ты С++ хотя бы на уровне мидла выучил, чем всякую архитектурное поебонь для взрослых читать 🙂

        0
        Reply
  • legacy_Крестоносец3331d ago

    >>> Why «throw» instead for the «return bool»?
    Если я всё правильно понимаю, вызывается исключение для того, чтобы просигнализировать о ненайденной сигнатуре. Но в плюсах обычно не принято вызывать исключение при каждом пуке. Исключение — на то и исключение, что сигнализирует об исключительной ситуации, о неожиданности, которой в нормальных условиях случиться не должно. А ненайденная сигнатура — вполне себе обычная ситуёвина. Так что рили вызов исключения тут не совсем уместен. Он вам не питон! Но в рамках задания на пару дней действительно скорее приебались на пустом месте.
    >>> What happened when Guid length will be greater then GUID_SIZE?
    Трудно сказать, не видя остального кода, насколько справедлива эта претензия. Но в целом, разнесённость проверки и кода, который в ней нуждается, попахивает… Однако меня больше триггерит это:
    >>> &Guid[0]
    Ай ай ай… Лезть в кишки строки через указатель на первый элемент вместо специального интерфейса для прямого доступа к данным data()… А вдруг в какой-то ебанутой реализации stl букавки хранятся в std::list? А вдруг в каких-то реализациях строка хранится по кускам?
    В общем, как я понял, Comodo — отличная контора как раз для таких педантичных ублюдков говнокодеров фашистов, как я. Впрочем, в рамках тестовой задачи на пару дней все эти предьявы всё же скорее притянуты и говорят об их крайней охуевшести.

    0
    Reply
    • legacy_Крестоносец3331d ago

      Хотя… Если на сеньора то в принципе наверное и оправданно. Не мне говнокодеру судить.

      0
      Reply
    • legacy_Ноулайфер_с_зп_200_испытывающий_счастье3331d ago

      Ну и чушь, особенно про буковки у STL в листе.

      0
      Reply
      • legacy_Крестоносец3331d ago

        Ну это утрированно, понятно что так вряд ли будет

        0
        Reply
    • legacy_Папкин_ухаед3331d ago

      ::data() появился с С++ 11.
      А вдруг по кускам не бывает — не бывает, есть c_str() который явно не собирает строку по кускам.

      0
      Reply
      • legacy_Крестоносец3331d ago

        Чтобы не было «а вдруг» есть стандарт, в стандарте это «явно» не прописано, значит «а вдруг» имеет место быть. Я знаю точно, что c_str/data вернёт указатель на непрерывно размещённые данные, про &str[0] я знаю только то, что это указатель на символ. Всё.

        0
        Reply
        • legacy_Папкин_ухаед3331d ago

          А головой подумать? 🙂 с_str() — константный метод, за которым нет необходимости чистить память, если данные не сплошные — как он будет работать?

          0
          Reply
          • legacy_Крестоносец3331d ago

            Ну, например, при необходимости получения c_str внутренняя структура меняется, кусочки строки склеиваются в единую область, на которую и возвращается указатель. Метод константный — ну ок, делаем данные через mutable, для пользователя будет полная видимость константности.

            0
            Reply
        • legacy_pal3331d ago

          в стандарте с++11 это явно прописано, символы хранятся последовательно. однако, идиоматичнее использовать .data()

          0
          Reply
      • legacy_pal3331d ago

        data был всегда, с 11 он null-terminated

        0
        Reply
        • legacy_Папкин_ухаед3330d ago

          Да, ты прав, у стринга была всегда, с 11 там front и back добавили 🙂 А вот у вектора с которым я стринг перепутал добавили только с 11 🙂

          0
          Reply
  • legacy_Евгений_13331d ago

    Я всегда предпочитаю тестовые задания вместо рассказов о том какой я охуенный. Я в данном случае товар, и время которое я трачу на тестовое, это расходы на маркетинг. Покупатель должен быть уверен что берет качественный товар который стоит тех денег который за него просят. Рассказы про годы опыта мало что значат, так как не известно чем ты эти годы занимался. На месте соискателя в статье я бы перед выполнением задания попросил бы прояснить неясные моменты. А после получения обратной связи, я бы переделал задание и послал его снова. В данном случае тестовое задание выявило у соискателя неспособность лидировать проект и даже при неблагоприятных условиях довести его до состояния удовлетворяющего требованиям заказчика, особенно если сам заказчик косячит с требованиями. Что в реальной жизни встречается постоянно.

    0
    Reply
    • legacy_Чорный_властелин3331d ago

      Послал тестовое задание тебе за щеку.
      Проглатывай.

      0
      Reply
      • legacy_Евгений_13331d ago

        Спасибо милый, я ценю твоё внимание и заботу. Надеюсь и дальше будешь делать мне приятные сюрпризы.

        0
        Reply
    • legacy_Евгений_13331d ago

      И ещё, навыки проверяемые в тестовом задании должны соответствовать описанию вакансии. Если не соответствуют, то требовать другое тестовое задание по причине не соответствия.

      0
      Reply
    • legacy_ЕбисьКонем3331d ago

      Ну да, кодерам больше ж делать нехуй, кроме как «инвестировать в маркетинг». Я тут давеча маляра для поклейки обоев искал, так блять у большинства ни портфолио, нихуя, а о том, чтоб пару полос черновых обоев поклеить в качестве тестового, вообще речь не идет, в лучшем случае глянут как на идиота и все. Не понимают, бляди тупые, важности расходов на маркетинг, не то что кодерки:
      — Хотите индивидуальные интервью в кучу этапов с двумя СЕО, тремя лидами и домработницей фаундера, где именно последняя завернет вас, раскинув карты таро? Та пжалста!
      — Тестовое на неделю просратых вечеров? Всегда готов!
      — Педалить какую-то хуйню в опенсорц, потому что лох и ноулайфер Вася педалит, и его за это хвалят? Ну, надо, значит надо!
      — Раскорячиться а-ля goatse и дать сфоткать себя для доски почета на стене офиса любимого работодателя? Почему бы и нет?

      Тьфу, блять, соски-спермоглотки какие-то. Может начнете себя хоть немного уважать?!

      0
      Reply
      • legacy_Евгений_13331d ago

        Сравнение с маляром не корректно. Представим что вы взяли маляра в штат в вашу компанию, сколько времени займет понять что маляр профессионально не компетентен? Допустим неделя. А сколько займет найти нового? Допустим еще неделя. Тем самым вы рискуете потерять неделю зарплаты маляра (при условии что он не выполнил никакой работы) и 2-е недели времени. Вот ваш максимальный риск в случае неправильного выбора. Однако в случае с разработчиками, ваши риски как по деньгам так и по времени значительно выше, и вы хотите эти риски уменьшить. Соискатель тоже рискует, придя к вам работать на должность на которую он не подходит, он рискует быть уволенным через примерно 3 месяца и вынужден будет тратить свое время на поиски работы при этом не получая дохода, что равносильно убытку. Поэтому, с учетом специфики, каждая сторона имеет право на более тщательную проверку контрагента, чем в случае с маляром.

        0
        Reply
        • legacy_ЕбисьКонем3331d ago

          Чувак, ты сравни бюджеты корпорации, и мои, как физ. лица, и прежде чем втирать о безусловном размере потенциальных рисков, подумай сам, по-человечески, кто больше пострадает, я, если мне криворукий абизян перехерит материалов на сотни баксов, или компания, пусть даже выгнавшая 5К-баксового дева с испыталки? Это во-первых.

          Во-вторых, тестовое, кагбе, никакую проблему рисков и не решает. Если контора не уверена в моем CV, не уверена в моем участии во всех перечисленных проектах, то как она может тупо быть уверенной, что тестовое лепил я, а не лошок-Васёк за пачку доширака?

          В-третьих, да, как раз то, о чем ты сам написал, «соискатель тоже рискует». Только хуй как проверишь, что после недели, просратой на тестовое, поработав месяц-два, не окажется, что гениальный заказчик решил завязывать пилить убийцу пейсбука, все свободны, все идут на хуй, а горе-стартапер собирает новую команду для запила операционки с нескучными обоями… повторяя цикл смены настроений еще через два месяца.

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

          0
          Reply
          • legacy_ЕбисьКонем3331d ago

            Вспомнился опыт одного знакомого. Собесы, тестовые, хуё-моё, оффер, смачный adiós на текущем месте работы, первый рабочий день на новом, кхм… а сорцов-то, цукоёбаныйтынахуй, НЕТ! То ли сбилжено все, то ли обфусцировано, не помню. Тык-мык, хуяк-пиздык, попытка объяснить заказчику, в какой он на самом деле жопе, выдача эстимейтов на запил всего продукта с нуля, и через пару недель безуспешного решения заказчиком вопросов с предыдущими разрабами — всем спасибо, все свободны.
            При том, речь не о говно-заказе на апворке, а о вполне себе среднеразмерногалерной вакансии. Интересно, сейлзам успели дать бонусов за приведенного кастомера? Если да, могли б поделиться с тем моим знакомым, ему-то после этого цирка пришлось еще пару недель искать подходящую работу.

            Но да, вы продолжайте делать заёбистые тестовые, по-порядочному уходить с текущего места работы, не пытаясь усидеть на двух стульях в целях перестраховки хотя бы пару-тройку недель. Только это… в транспорте на меня не дышите, а то кончой воняет.

            0
            Reply
          • legacy_Евгений_13331d ago

            С вопросом как находить хороших работников и как найти хорошее место работы, бьются «лучшие умы» и тупые ХРюши. Абсолютно хороших решений нет. Есть только хуевые. Вопрос что из хуевого лучше. Работник не гарантирует что не сьебется посреди проекта. Работодатель не гарантирует что через пару недель у него все не накроется пиздой и всех уволят. Нужно смотреть на все аспекты, и более тщательно подходить к выбору.

            По сути есть 3 способа найма: по рекомендации, по интуиции, по тестам. Ну и комбинации между ними. Я написал что из этих 3-х я предпочитаю тесты, так как в случае тестов у меня больше контроля над результатом процесса.

            CV может быть верным но этого недостаточно. Тоесть пишет человек что у него 5 лет опытах в крестах, и что участвовал в таких-то проектах, что это значит на практике? Как понять его уровень? Лишь по тому как он говорит? А если человек не разговорчив?

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

            0
            Reply
        • legacy_Григорий_Бритва3331d ago

          Охуел от твоего объяснения.
          Представим что у нас есть число x. Число x = 7.
          Если нам нужно найти число y, то с учетом специфики числа y, оно больше числа x.

          0
          Reply
          • legacy_Евгений_13331d ago

            Вот еще одно обьяснение: Главное, что я понял общаясь с ИТшниками — большинство не могут понять что такое управление рисками. А потому делают 2 ошибки: Идут работать в конторы где заведомо известно что риск быть кинутым высокий а потом тут плачутся когда их кинули за борт. Не понимают что в процессе найма работодатель пытается снизить риски найма неподходящего работника. Все время ИТшники пытаются сравнить программеров то с художниками то с малярами. — Нихуя вы ни Пикассо, но и не маляры, а потому и платят вам больше но и спрашивают с вас тоже больше. И напоследок цитата: «Управление рисками — это процессы, связанные с идентификацией, анализом рисков и принятием решений, которые включают максимизацию положительных и минимизацию отрицательных последствий наступления рисковых событий.»

            0
            Reply
            • legacy_бутылка_из_под_шампусика3330d ago

              единственный вменяемый комментатор на ебаном, респект Женек

              0
              Reply
      • legacy_Грегор_Джавович3331d ago

        > — Хотите индивидуальные интервью в кучу этапов с двумя СЕО, тремя лидами и домработницей фаундера, где именно последняя завернет вас, раскинув карты таро? Та пжалста!

        Бля, это про Genesis (который на подоле). Надо будет как-нибудь написать про эту гнилую контору, там говна на пару месяцев чтения можно насобирать.

        0
        Reply
  • legacy_full_heap_engineer3331d ago

    > Use modern C++11, C++14

    а чего сразу не С++20? кому нужен этот модерн, технологии будущего — вот наш девиз!

    0
    Reply
  • legacy_Скромное_обаяние_буржуазии3331d ago
    1. Checker.cpp: Checker::Knuth_Morris_Pratt()
      throw std::runtime_error(«Pattern not found»);
      Why «throw» instead for the «return bool»?

    Привед дебилушка. Ты будешь проверять миллион файлов, и на чистых файлах 999000 раз бросать исключение ?? Это крайне тупая трата ресурсов.
    2) Dispatcher.cpp: void Dispatcher::SetGuid(const std::string& Guid)
    {
    memset(guidMemory, 0x00, GUID_SIZE);
    memcpy(guidMemory, &Guid[0], Guid.length());
    }
    What happened when Guid length will be greater then GUID_SIZE?
    И публичный метод без проверки торчит наружу библиотеки — да это ж эпик !!
    3) Mapper.cpp: Mapper::Mapper(const char* fileName)
    auto tmp = file.map(0, file.size());
    if (!tmp)
    {
    throw std::runtime_error(«Unable to map file»);
    }
    buffer.reset(new uint8_t[file.size()]); — Недопонимание идеи маппинга файла?
    memcpy(buffer.get(), tmp, file.size());

    Блин, взрослый же человек,должен же понимать , что проект пойдет на свалку после собеседования и никаких деобсфукаторов не будет.А показывает себя дураком.
    4) Если в резюме есть упоминание какой-либо технологии,- следут её впихнуть и к месту , и даже там где немного не к месту, — вместо этого строчим на qt

    Я , такого фрукта взял бы только как джуна на 327 баксов.

    0
    Reply
    • legacy_Папкин_ухаед3331d ago

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

      0
      Reply
      • legacy_уцкжцудьезщаьзацуа3331d ago

        Ага, stack unwinding магически рассосётся.

        0
        Reply
      • legacy_оккупатор3331d ago

        Да-да, -fno-exceptions и пизда.

        0
        Reply
    • legacy_Гудвин3331d ago

      Не пизди. Проверка гуида там идёт до этого вызова, он проверяется на соответствие регулярному выражению. И в том и теория статического анализа — если есть одна проверка, далее не надо делать ещё 100500 просто потому, что ты увидел memcpy. Определись — с одной стороны проект на свалку и деобфускаторов не будет, с другой исключения работают слишком медленно для продакшена. Хуйню пишешь

      0
      Reply
      • legacy_Папкин_ухаед3331d ago

        Если метод не публичный, то фиг с вами 🙂 Одна проверка есть и хватит…
        Только что такое есть буфер? И почему внутри буфер, а снаружи строка? Где копирование нуль терминатора? Или типа скопировал строку в буер без нуль терминатора, но по фиксированному размеру — и получил байт представление гуида?
        В этом методе что с точки зрения стилистики, что здравого смысла, что всего прочего — какая то хуита.

        0
        Reply
        • legacy_Джун_вайтишник3331d ago

          А-а-а-а!!!
          Замолчите 😭

          0
          Reply
          • legacy_anon_303330d ago

            Бамбануло походу

            0
            Reply
  • legacy_Шкода3331d ago

    Я, до речі, теж у Комодо співбесідувався, не взяли. З тестовим пронесло — показав початковий коміт бібліотечк з використанням COM — все одно в production той код пішов повністю переписаний, тож тестового не просили писати. А от на співбесіді сам налажав — кілька днів не висипався, пропустив очевидний витік пам’яті в коді, який дали рев’ювити, та і алгоритмічну помилку не помітив.

    0
    Reply
  • legacy_Папкин_ухаед3331d ago

    Это просто трешак и угар…

    1. Даже имбицилу должно быть понятно после прочтеня ТЗ что одна из его задач — как раз проверить знание WinAPI.
    2. Кросс платформенное решение на QT для simple Malware detection? Серьезно? QFile вместо File Mapping? Серьезно? А сколько там копирвоаний памяти? Тестировали? А что если натравить ваш сканер на 100гб папку с гигабайтными файлами? Сразу грохнется или к новому году закончит?
    3. «Чистый код кричали они» throw std::runtime_error(«Pattern not found»); — а где ж там хенделр то, так что бы понимать докуда вы чистый код дочитали?
    4. memset(guidMemory, 0x00, GUID_SIZE);
    memcpy(guidMemory, &Guid[0], Guid.length());
    Это что за пиздец? Что такое guidMemory и где он обьявлен? &Guid[0] серьезно? старый С++ &(guid.front()), новый guid.data().
    Если гуид в стринг формате — что это за секс с его копированием, если он в байт формате — то почему обернут стрингом? Или афтар просто не знал как сконверитровать гуид?
    5. buffer.reset(new uint8_t[file.size()]); а если файл в гиг, а если в 10? А какой деаллокатор по умолчанию простите у std::shared_ptr?
    6. Вы там определитесь вы на чем пишете? Ацкая смесь Qt, stl, old C…
    7. Написать кор — там реально на 4-6 часов, за еще 4-6 вполне реально прикрутить бонусные свистоперделки если владеть стеком.

    З.Ы. Я не имею никакого отношения к комодо, и против разного рода тестовых заданий для Синьоров\Мидлов, но есть несколько НО:
    1 — Взялся за гуж — не ной, я к примеру в паре мест прекращал разговор как только речь заходила о ТЗ.
    2 — Наговнокодил — прими как должное фитбек, а не ной по интернетам какой ты классный а все не дартаньяны.
    3 — собеседуюсь на синоьра, хорошо бы С/С++ знать и понимать, а не писать гавно прикрываясь умными или не очень книжками и курсами типа курсеры или чистого кода, а так же знаниями википедии и алхоритмоф (по педивикии), но блиать жалобами на то что варемени дескать небыло.
    4 — И вообще даже в ранге мидла не мешало бы знать, что медленнго работающее, но раблотающее и стабильное приложение, это намного лучше чем быстрое и с патернами и по книжкам, но так же быстро падающее в корку.

    0
    Reply
    • legacy_Папкин_ухаед3331d ago

      кстати я тоже затупил, так как не привык видеть стрингов в том месте от слова вообще, у std::string есть замечательный метод c_str() 😉

      0
      Reply
    • legacy_Гудвин3331d ago

      Тестили на 2 тб винте, в кор дамп не вывалилось. В комодо тож могли запустить и потетстить, если бы у них завалилось — могли бы ткнуть носом, типа, вот валится. А так то всё влажные домыслы.

      0
      Reply
      • legacy_С3331d ago

        эхх…мое любимое, а тестили под нагрузкой? Например стартанули на 8и ядрах….а потом паралелльненько make -j 12 для кернеля, или хоть того же qt ? И че там будет? Вот хром нахрен в аут уходит и систему за собой тащит — какой-то там планировщик у него сума сходит. У меня уже в мейках больших проектов забито killall chrome

        А на 1 ядре тестили? А аффинити меняли?)

        …чойто мне кажется полезут недоделки.

        0
        Reply
      • legacy_Папкин_ухаед3331d ago

        И как? Сколько раз удалось по 1гб проаллоцировать подряд? 🙂

        0
        Reply
        • legacy_Гудвин3331d ago

          Парень, на х64 осях удалось и не раз, и не два. Но тебе не понять

          0
          Reply
  • legacy_full_heap_engineer3331d ago

    Постучалась ко мне недавно HR из сциклума, как раз на комодо. Все заебоны автора про кроссплатформенность им на самом деле до сраки — они пилят разные версии под винду, мак и линух (под мак\линух пилят 3 тела в Одессе, сейчас хотят разделить и набирают команду под линух), до технической части у меня не дошло — требовали командировки к заказчику, и я сразу сказал, что идите лесом, и слава б-гу, как оказалось

    0
    Reply
  • legacy_Максимилиан_Ломт3331d ago

    > Как правило, стороны понимают это, поэтому действует негласное правило — если решение худо-бедно работает, контора не ебёт мозги и берет человека на работу.
    В идеальном мире)
    Есть такое ебаное понятие — мониторинг рынка. Очень похоже на описанное.

    0
    Reply
  • legacy_Гусь3331d ago

    Что такое Комодо и нахуй оно нужно?

    0
    Reply
    • legacy_full_heap_engineer3331d ago

      в гугле забанили?
      а по поводу второго вопроса — оно нахуй никому не нужно

      0
      Reply
      • legacy_Гусь3331d ago

        Это был риторический вопрос, пиздюк

        0
        Reply
        • legacy_full_heap_engineer3331d ago

          как будто это означает запрет на выебывание

          0
          Reply
  • legacy_Папкин_ухаед3331d ago

    Да, кстати, «Как правило, стороны понимают это, поэтому действует негласное правило» — та прекращайте, если бы мне нежун был не мидл, а хотя бы мидлосиньор — то после такого ТЗ хоть оно 10 раз работай, я бы кандидата не брал — ибо времени бегать за ним и учить его не говнокодить — ни у кого нет.

    0
    Reply
  • legacy_zalupa3331d ago

    Как по мне вполне адекватное задание. Знающим язык человеком делается за вечер 4-5 часов.

    0
    Reply
    • legacy_zalupa3331d ago

      добавлю, что это к вопросу о девальвации значения самой лычки «сеньор».

      0
      Reply
  • legacy_rewrewrwerewrewr3331d ago

    Чувак — реально лох. Жопу рвать было не нужно.

    0
    Reply
  • legacy_знаток_13331d ago

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

    0
    Reply
  • legacy_наркоман_13331d ago

    люблю с++ срачь
    вообще юзать Qt торт, а чистые плюсы и всякую хуйню типа бустов — ну их нахуй

    только вот нахуя в CMake это все упаковал если все в профайлах можна напиздовать, или есть в этом какойто профит?

    0
    Reply
    • legacy_Крестоебы_хуже_пидорасов3331d ago

      —>> Юзать Qt
      —>> 2017 год

      Мальчик, ты только из комы вышел?

      0
      Reply
      • legacy_наркоман_13331d ago

        схуяли? обясни что пиздже

        0
        Reply
        • legacy_Крестоебы_хуже_пидорасов3331d ago

          Назови хоть 1 серьезный проект, команду, тд которая использует Qt как основной инструмент в 2017 году.

          0
          Reply
          • legacy_zalupa3331d ago

            KDE

            0
            Reply
          • legacy_смузихлеб_13331d ago

            что ты несешь, полуумный? в гугле забанили? держи навскидку
            Opera, VLC Player, Skype, Google Earth, KDE, Photoshop, VirtualBox
            QT это самый пиздатейший кроссплатформенный движек с овердохуя компонентов

            0
            Reply
          • legacy_full_heap_engineer3331d ago

            Qt не инструмент
            что до проектов — ну выбери какой-нибудь https://en.wikipedia.org/wiki/Category:Software_that_uses_Qt

            0
            Reply
          • legacy_anon_313330d ago

            Пешы на 1С, немытый.

            ЕСЛИ (я поц) ТО
            надо_выпить();
            ИНАЧЕ
            уколоться();
            ЗАЕБИСЬ

            0
            Reply
  • legacy_Правдоруб3331d ago

    Меня при поступлении попросили написать консольный сниффер, ловящий после запуска первых 10 пакетов HTTP, залогировать и закрыться.
    Написал, прошел.

    0
    Reply
  • legacy_Крестоебы_хуже_пидорасов3331d ago

    Каждому С++-шнику надо ознакомится с этим платиновым тредом на скуль.ру, а потом приходить сюда и плакать.

    Треду 10 лет но в нем сама суть плюсов и их ЧСВ.

    (Так как ссылки не прпоускает мочератор, то идешь в Гуглъ и вбиваешь «Луговский С++ форум sql ru» и клацаешь по первой ссылке)

    0
    Reply
    • legacy_Скромное_обаяние_буржуазии3331d ago

      Луговской, перелогинтесь !

      0
      Reply
      • legacy_Крестоебы_хуже_пидорасов3331d ago

        Увы-увы. Его присутствие сделало бы слишком много чести ебаному

        0
        Reply
  • legacy_тим_синьер3331d ago

    ебашу коньяк в 12 дня, мне похуй взял сикдей

    0
    Reply
    • legacy_anon_323330d ago

      Ебани еще несколько стопарей и напиши об этом своему СТО! он еще бухла подгонит, шышек и пару сочных хрюш пришлет танцевать на стол!!! 💯пудоф!!

      0
      Reply
  • legacy_бородатый_задрот_в_растянутом_свитере3331d ago

    тут обе стороны еще те тормоза, по предъявам со стороны КОМОДА — за стиль и решения — им нужен типа СИСТЕМНЫЙ ПРОГРАММИСТ при чем с упором больше на С, а не на С++, но внятно оформить требования не спромоглися :o(

    Автор вместо того, чтобы махать хуем и рассказывать за свои UI скилы и то, как он прибивает гвоздями симейк и куте,
    лечше б задумался о том, что использовать memset/memcpy для копирования строк это ОПАСНЫЙ КОД!!! Поищите про
    strlcpy. С мапингом файлов получилось в стиле «отличное враг хорошего» т.к. мапинг можно рассматривать как оптимизацию
    и то частную (файлы бывают и очень большими). Лучше было продемонстрировать способность написать сервис (я так
    понял, что кОмОдЪ фигачит только под вЫЫнь). Да и исключения которые с горящими глазами ПрОпОвЕдНиКи чистого цпп
    пихают хде не попадя хороши в примерах, а на практике если система взаимодействующих процессов ведет себя не так,
    намного эффективнее старый стиль с препроцессрорными директивами и анализом кодов возвратов (к слову именно из-за этого он еще и не вымер).

    В этой ситуации обе стороны ступили — комод, видимо, не способен внятно изложить чего он хочет, а автор начал демонстрировать не совсем то что нужно, при этом обе стороны разговаривали на своем языке и о своем и при этом никто
    никого не понял, что вполне ожидаемо и, к сожалению, слишком часто встречается в последнее время при хантинге 🙂

    P.S. Я не работник КоМоДа — просто проходил мимо :o)

    0
    Reply
    • legacy_уцкжцудьезщаьзацуа3331d ago

      Ну, комодо внятно изложил. Автор — на мидла тянет с трудом. Надо делать, что просят, а не фантазировать.

      0
      Reply
    • legacy_Крестоносец3331d ago

      CMake к Qt гвоздями прибивать не надо, они уже вроде давно женаты и с детьми

      0
      Reply
      • legacy_бородатый_задрот_в_растянутом_свитере3331d ago

        Главное шоб не развелись 🙂
        Интересно кто подаст на алименты, а кому дети достануться?

        0
        Reply
  • legacy_Фейспалм3331d ago

    Аффтар и его воображаемый друг — неквалифицированные говнокодеры. Сами себе придумали часть требований, наговнокодили, а теперь возмущаются. В коде судя по всему дикий микс древних C примитивов, Qt и STL.

    По возмущениям комментариями ревьювера — практически все «не в кассу»:
    1. Возвращать эксепшеном состояние проверки «найдена нужная сигнатура или нет» — дичь. Не говоря уже о производительности, с логической точки зрения «сигнатура не найдена» — вполне легальная ситуация, которая не является исключительной. Это просто кусок основной логики.
    2. Публичный метод без проверки входных данных — лажа, и оправдания «оно там где-то проверяются» не канают, аффтар просто подтверждает свою криворукость.
    3. Оправдание про копирование выглядит притянутым за уши, не было этого в условии, ну и ладно. Оператор new — да, на современных платформах бросается эксепшенами, но и это можно переопределить. Так что претензия аффтара скорее да, чем нет, но тоже неоднозначна.

    Претензия к ревьюверам в английском — «founded», блеать, означает «основан» а не «найден», выучите в конце-концов элементарные неправильные глаголы.

    Я бы такого специалиста к себе не взял. Проблема не в том, что он мало знает и не сильно хорошо умеет кодить. А в том, что при этом считает себе самым умным. С такими тфжело работать.

    0
    Reply
  • legacy_бородатый_задрот_в_растянутом_свитере3331d ago

    И ваще мебелью не интересуюсь :o)

    0
    Reply
  • legacy_Халявщик-партнер3331d ago

    мой кот уже написал тест лучше и быстрее

    0
    Reply
  • legacy_Системщик3331d ago

    Автор аутист. Антивирусы заточены под Windows, его адекватно попорсили написать ПОД ЕБАННЫЙ ШИНДОУС с использованием winapi, а он с какого то хуя решил использовать высокоуровненные кросплатформенные решения и Qt. В такой сфере как антивирусные продукты уклон делается на системщину и там нахуй его «современный C++» не нужен. Хочешь создать трiд? Юзаешь CreateThread на прямую без абстракций-хуякций. И так во всем.

    Хорошо что этого дебила не взяли на работу. Он бы там в первый же день охуел от того на сколько их код отличается от его подходов. С++ макаки воистину ничем не лучше веб-макак и прочих ангулярщиков. С++ макака это такой пидарас который нихуя не разбирается в том что и как работает. Но при этом мнят себя илитой.

    мимо Си-бог

    0
    Reply
    • legacy_Тамада_собачьих_свадеб3331d ago

      MOV ЩЕКА, ЧЛЕН тебе, проверяй

      0
      Reply
      • legacy_Туалетная_бугага3331d ago

        intel-cинтаксис сасает, как и ты

        0
        Reply
        • legacy_смузихлеб_13331d ago

          ORG #8000

          LD A, [CHLEN]
          LD [SCHEKA], A
          RET

          CHLEN DB #FC
          SCHEKA DB 0

          0
          Reply
  • legacy_дядя_вася_23331d ago

    Кроме KMP есть Z algorithm http://www.geeksforgeeks.org/z-algorithm-linear-time-pattern-searching-algorithm/. Так что читайте блять кормана.

    0
    Reply
    • legacy_anon_283331d ago

      ОП, кстати, в своих анализах верно указал, что нужно было автоматный ахо-корасик юзать. Какой смысл тут с Z хз.

      0
      Reply
  • legacy_Угонщик_гироскутеров3331d ago

    Сеньор Крестушок на связи.
    Автор статьи, как и его друг (назовём его Игорь-Пигорь) — июни. Объясню почему:

    1. Тестовое задание предельно ясно написано и весма-таки простое.
    2. В задании написано чёрным по белому, «ДЕЛАЙ, СУКА, ПОД ВИНДУ, ИСПОЛЬЗУЯ WIN API И НЕ ВЫЁБЫВАЙСЯ». Пигорь же зачем-то выебнуться решил и захуячил кроссплатформенно, используя высокоуровневую Qt-прокладку. А знает ли дорогой Пигорь, что использование GPL фреймворков подразумевает линкование динамических библиотек, а не статических? Это открывает неплохой путь для злоумышленников для подмены соответствующих DLL. Если же, он использовал статическую линковку, то по-любому нарушил права LGPL, если у него не куплена соответсвующая лицензия индивидуального Qt-разработчика.
    3. Пигорь так же зачем-то бросается исключениями, хотя, такая вещь как исключения в C++ — весьма дорогая в плане производительности и stack unwinding кода, который генерится на этапе компиляции. Идеальным было бы использовать C API для Scanner DLL, не плюсовой, т.к. с плюсовым интерфейсом всегда возникают проблемы совместимости из-за name mangling’а разными компиляторами и использования разных STL рантаймов.
    4. Пигорь не слышал про assert’ы? Когда это однозначно ошибка разработчика, почему не выставить assrtion failed вместо бросания исключением?
    5. memcpy, memset? Очень опасные функции, которые отстреливают тебе ноги при любом удобном случае.
    6. Копирование всего файла в память — поебистика. А если файл дохуя терабайт весит, то что? Это серьёзный косяк. Они явно ожидали использования функции CreateFileMapping в коде Пигоря.

    Моё мнение, комодовцы всё правильно сделали, что отшили Пигоря. Единственное, что выбесило — это кривой английский в ответах. Зачем вообще общаться с соотечественниками на КРИВОМ английском?
    Как я понял, им нужен чувак, который разбирается именно в виндовом программировании и сможет поддерживать их старые кодовые базы и контрибьютить в новые проекты на C++11, C++14. Блестать знаниями кроссплатформенного программирования на Qt было совсем не нужно. Qt сейчас знают почти все адепты касты C++, так что, это попса и не используется в их проектах. COM/ATL — бородатые технологии, которые, скорее всего, используются в старых проектах, которые нужно поддерживать. В новых, они, конечно, вряд ли их юзают.

    Короче, Пигорь крестушок с завышенным ЧСВ, а автор статьи дятел.

    0
    Reply
    • legacy_Тамада_собачьих_свадеб3331d ago

      как боженька смолвил

      0
      Reply
    • legacy_Гудвин3331d ago

      Где ж ты, пидарас, увидел там, что явно написано юзать winapi? Под винду — под винду тестовое компилится, об этом же сказано было в статье. Про лицензию qt — да, ты прав, но коммерческая лицензия покупается. Прикинь, её реально купить. И сделать это проще, чем портировать винапи поделку на андроид, реалли. Если ты по поводу того, что кутэ юзалось в тестовом, то пацанам отправили исходники. Лицуха не нарушалась.

      Давайте для всех поясню пару моментов — нахуя там кутэ? В основном, из-за паттерна map/reduce. В остальных местах — простота и кроссплатформенность. Второе — нахуя там опасные функции для работы с гуидами? Там библиотека. В библиотеке есть такое понятие, как манглинг экспортов. Extern C отключит манглинг, но нужно юзать встроенные типы. Манглинг нужно отключать, иначе библиотеку не заюзаешь из ехе, собранного другим компилятором. Студия и мингв, например, манглят по-разному.

      0
      Reply
      • legacy_Угонщик_гироскутеров3331d ago

        В требованиях к самой вакансии прослеживается точные намёки на WinAPI, а в задании в бонус тасках COM/ATL. Если ты не долбоёб, то смекнёшь чего от тебя ждут.

        Пигорь, залогиньтесь.

        0
        Reply
        • legacy_бородатый_задрот_в_растянутом_свитере3331d ago

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

          Мебельному изделию надо было точнее прописывать задачу, а то выглядит как
          самолюбование имбецила-олимпиадника в стиле «а что там рассказывать и так все понятно»,
          да и постановка задачи не технарем, с возможностью прояснить не понятные моменты вызлядит
          как банальное НЕ УВАЖЕНИЕ к потенциальному сотруднику — будите по проще 😉

          Ну а автору я б посоветовал всетаки научится справляться со стрессом, там нужно
          было не рваться в бой с первым выстрелом, а попытаться прояснить не понятные моменты,
          и если ЭТИ КАДРЫ не способны проявлять элементарную АДЕКВАТНОСТЬ и УВАЖЕНИЕ
          в человеку который потратил на вас время то и нах сии НАРЦИССЫ нужны,
          дальше могло быть сплошное садомазо.

          0
          Reply
        • legacy_Гудвин3331d ago

          Где, сука, точные намёки на винапи? Где?

          0
          Reply
          • legacy_Угонщик_гироскутеров3331d ago

            >Strong knowledge of Windows API
            >Experience in commercial development for the Windows environments
            Ни слова про Qt, cross-platform, *nix. Смекаешь?

            Тебе знакомо понятие «оверинжиниринг»? В требованиях было указано UI либо консольный клиент. Какого хуя тащить такую громоздкую зависимость как Qt (она реально громоздкая, инфа 100%)? Ради того, чтобы налабать одну формочку? Можно было консолью обойтись!
            Ради мнимого map/reduce из QtConcurrent? Да ебись оно конём! Крестоблядство скатывается в дельфи-говнокодинг с использованием VCL, когда на любой чих дельфи-макаки бежали в интернет искать готовый компонент.
            В интернете полно примеров реализации thread pool’ов с использованием STL/Windows API. Ради этого не нужно было тащить целый фреймворк.
            Это значит, что у Пигоря полностью отсутствует инженерная культура, поощряющая использование данного тебе инструмента на максимум — Пигорь идёт нахуй со сцены, следующий!

            0
            Reply
            • legacy_Гудвин3331d ago

              Сука, ну в статье же qtcore написано, какие кнопочки, хоть бы тестовое глянул, пидар

              0
              Reply
              • legacy_Угонщик_гироскутеров3331d ago

                И стоило только ради потоков тянуть QtCore? Ты ёбнулся? Мало того, что это всё равно сильно дохуя, всё равно что стрелять из пушки по воробьям, так ещё и накладывает обязанности на собирающую сторону, устанавливать полностью весь фреймворк Qt.
                Не отмазывайся, Пигорь, ты всё равно проиграл.

                0
                Reply
          • legacy_уцкжцудьезщаьзацуа3331d ago

            Да не бомбит у меня! (с)

            Так ты ещё и тупой, сука.

            0
            Reply
          • legacy_Грегор_Джавович3331d ago

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

            0
            Reply
      • legacy_Папкин_ухаед3331d ago

        А я один не понял, как отключение декорация имен способствовало тому, что метод класса принимает std::string, а данные хранит у себя как char[]?

        0
        Reply
  • legacy_TL3331d ago

    пайти вайти в РБ )))

    FYI

    https://tech.onliner.by/2017/08/17/pojti-v-it-3

    0
    Reply
  • legacy_Startuppa3331d ago

    Хотел излить тонну бугурта на пидрильную статью и степень уебищность автора и его его друга, но почитал комменты выше — уже все расписали нет смысла повторяться. Итог: июни максимум, и с таким гонором нахуй в айти не нужны никому — пусть улицу подметают лучше, и не портят своим пиздежом репутацию крестовиков. Сука, бросать исключение на каждую ненайденную из овер 9999999 сигнатур — это просто пиздаааа…. 11 индусских кодеров из 10. Мартин блять советует… Хуяртин, ебанаврот!

    Добавлю лишь, что КОМ/АТЛ и иное некро-говно указаны _как опшионал_ не просто так, и уж не в коем случае не потому, что комодовцы хотят на нем писать. Я на 99% уверен, что у них уже есть большой пакован легаси-кода, от которого никуда не деться и переписать тоже никто денег/времени не даст, и с которым им надо уживаться. А потому, естественно что для них хорошо, если нанимаемый уже видел и знает что это за дичь — адаптация пройдет быстрее.

    0
    Reply
    • legacy_Гудвин3331d ago

      Что ты там хотел? Уже всем понятно, что гневные комменты выше писал один и тот же ссаный мудак из комодо, и не лень было парню перелогиниваться. Ну хоть так тебя, пидара, заставили делать свою работу. Если человек тратит пару дней на твоё тестовое, будь добр потратить 20 минут на развернутый ответ. Это же часть твоей работы, унылое ты падло.

      По поводу иксепшенов — приебываться надо к алгоритму, а не иксепшенам. В худшем случае кмп работает линейное время, плюс потом делается генерация исключения за О(1), так что да-да ты правильно заметил, что ненахождение паттерна — самая частая ситуация, но ты не знаешь, баран, что с этим делать.

      0
      Reply
      • legacy_крестовый_рыцарь3331d ago

        Какой же ты долбаёб. Ни один человек который на плюсах пишет хотя бы пару лет и имеет дело с нормальным кодом не будет выбрасывать исключение при ненахождении паттерна. Это даже без объяснений выбивается из колеи и режет глаза ++ разрабам.

        Всем абсолютно похуй какой из абоссаных алгоритмов ты спиздишь с emaxx, им нужно проверить уровень владения плюсами. И автор со своим воображаемым другом показали, что уровень пиздец какой никчёмный. Это пиздец как неочевидно, что функция вроде contains() выбрасывает исключение, а не возвращает false, например. Ни один добаёб не собирается читать код твоей сраной функции чтобы узнать какое дерьмо ты решил оттуда выбрасывать. Особенно std::runtime_error — это верх ебантизма.

        Даже из обоссаной статьи ясно что оно тут не подходит: http://en.cppreference.com/w/cpp/error/runtime_error
        » It reports errors that are due to events beyond the scope of the program and can not be easily predicted. »
        Конечно, отрицательный результат проверки хуй предскажешь, это же охуеть какая внештатная ситуация.

        И причём тут сложность вообще? Ты пиздец какой даун, если любую строчку кода сложностью измеряешь. Создание потока это тоже O(1)?

        PS накидал исключений тебе за щеку, обрабатывай

        0
        Reply
        • legacy_бородатый_задрот_в_растянутом_свитере3331d ago

          Девочки не ссорьтесь :o)

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

          А вот комод повел себя не красиво, я б скажал даже по свински — технарь
          мог и снизойти до аудиенции интерьвьюируемому.

          К слову я, за комодЪ узнал только из этой статью,
          он шо, внатуре, антивирь пишут или так стебаюцца?

          0
          Reply
          • legacy_крестовый_рыцарь3331d ago

            Причём тут предметная область? Смена места работы разраба очень часто соответствует смене предметной области, но это не значит, что все начинают писать, как дно.

            Да и какой антивирь. Тут задание детское — найти паттерн байт в файле. Что теперь блять если ты через curl скачал html страничку — браузер нафигачил? А если форму склепал — веб приложение?

            0
            Reply
            • legacy_бородатый_задрот_в_растянутом_свитере3331d ago

              По сути тут тестилось знание пляццкого WinAPI и знание алгоритмов поиска подстроки в строке. Не поверю что большинство C++ UI-щиков сами имплементируют постоянно такие алгоритмы 😉
              Большинство дальше доки QString и не ходило.

              Ребята вы говорили и говорите про свое на своем языке, бросайте ломать копья
              ОБА НЕ ПРАВЫ!

              0
              Reply
              • legacy_хайзенберг_13331d ago

                При разработке антивируса под шиндус требуется знание шинапи. Какая неожиданность!

                0
                Reply
            • legacy_на_хую_вертел3331d ago

              хватит пиздеть вы две прыщавые сучки

              0
              Reply
              • legacy_бородатый_задрот_в_растянутом_свитере3331d ago

                Сама дура 😛

                0
                Reply
              • legacy_крестовый_рыцарь3331d ago

                спиннер ты на хую вертел, дрочер мамин

                0
                Reply
          • legacy_уцкжцудьезщаьзацуа3331d ago

            Ну, интрервьюер ничего объяснять не должен. Но на вопрос ответить обязан, если задали

            0
            Reply
      • legacy_Грегор_Джавович3331d ago

        Я не из комодо, а ты дебил.

        0
        Reply
      • legacy_Папкин_ухаед3331d ago

        Не, баран у нас автор, тоесть судя по всему ты…
        Ты бросаешь типовой экзепшен, тоесть ты по умолчанию не можешь разрулить ситуации когда у тебя системная ошибка, а когда бизнесс ошибка, эьто проеб с экзепшеном номер раз.
        Далее — я чуть более чем уверен, даже не видя остального кода. что у тебя там не обернут трай кетчем блок поиска и вывода месседжа, и он находится выше, это два.
        И три, я опять таки чуть более чем полностью уверен. что тела как минимум твоих деструкторов трайкетчем не обернуты, и спокойно могут плюнуть исключение, и так сказать без палева мы приходим к той ситуации когда ты своими руками загоняешь в стек второй экзепшен подряд со всеми вытекающими. А ведь ты просто хотел сказать что у тебя сигнатура не найдена.

        0
        Reply
        • legacy_Гудвин3331d ago

          Иксепшены в деструкторах? Да ты еблан знатный

          0
          Reply
          • legacy_С3330d ago

            ты кароче так злишся, шо нихуя не понял (это я так на июня типа намекаю) ….он имел ввиду, что наверняка есть деструкторы, которые не noexcept, а т.к. при вызове твоего эксепшина сработает и такой дктор, то есть не нулевая вероятность выхватить и от него повторный эксепт.

            0
            Reply
            • legacy_Папкин_ухаед3330d ago

              Зачем далеко ходить? 🙂
              buffer.reset(new uint8_t[file.size()]);
              Вот тут наш дорогой кросплатформенный поциент сам себе набрасывает потенциальный экзепшен…
              Хотя даже если ему сказать что это андефайнед бехевиор и так писать нельзя — он все равно не поймет 🙂

              0
              Reply
          • legacy_Папкин_ухаед3330d ago

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

            0
            Reply
  • legacy_ичинка3331d ago

    Я б мог написать антивирус и на ангуляре в браузере такой. И мой будет не чуть хуже этого, потому что рекрутер взял себе qt и прочии абстракции облегчалки жизни, я чем хуже буду? Коню понятно что надо было делать на лоу левел апи. Написали что давай COM, dll. Нет, хочу qt и кроссплатформенность.

    0
    Reply
  • legacy_хайзенберг_13331d ago

    Вполне нормальные требования. Тестовое задание на 1-2 дня — тоже нормально, особенно если им нужен именно разработчик а не формошлеп. Ну а остальные проблемы чисто из-того что разбором тестового задания занимался какой-то долбаеб (остальные видать были заняты).

    0
    Reply
    • legacy_expert3331d ago

      Сроки ебанутые, такое минимум неделю делать.

      0
      Reply
      cancel reply
      • legacy_хайзенберг_13330d ago

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

        0
        Reply
        • legacy_expert3330d ago

          Задание вполне понятное, но очень объемное.
          Видно что контора ожидает себе гребца у которого каждый рабочий день состоит из 20 часов но будет оплачено только восемь часов.

          0
          Reply
  • legacy_Распятый_эйчарчик3331d ago

    Любое тестовое задание это хуета, не стоящая потраченного времени.
    Тем более антивирус/шашки с искусственным интеллектом/модуль запуска Светлой в Тёмную.

    0
    Reply
  • legacy_Страшный_сон_путина3331d ago

    Представил как молодой и энергичный инноваторский светлый ум апплаится инженером на очередной ооо «рыбстройхозпром», и там старые пердуны втирают ему совковые госты, отметая нахуй все инновации… Потом еще удивляются, почему их компания говно, а их продукты никому нахуй не нужны, хотя на рекламу в печатной газете регулярно выделяется треть бюджета предприятия.
    Чего хотел соискатель в компании, которой после 20 лет истории нужны ссылки на вики при упоминании?) И так ведь ясно, что они — унылое говно)

    0
    Reply
  • legacy_Хуй_зед_райд3331d ago

    Тестовое делать заставляют. Совсем охуели.

    0
    Reply
  • legacy_трудовик3331d ago

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

    0
    Reply
  • legacy_Вася3331d ago

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

    0
    Reply
  • legacy_expert3331d ago

    Вы ебанашки вместо COM (ATL) начали городить QT и какие вы блядь синьоры после этого нахуй?

    0
    Reply
  • legacy_Рейхсфюрер_СС3331d ago

    Только Rust и C с лиспом и асамом, плюсы для моральных уродов.

    0
    Reply
  • legacy_Ушат_Помоев3331d ago

    Пидорнули пацанчика поделом, ибо нехуй даже пытаться с Qt в системное программирование. Это могло быть единственным и достаточным аргументом на отсев. Кутэ вообще должно было сдохнуть чёрти когда, ибо костыли для новобранцев и имбецилов от программирования. Своего рода Delphi, заквашенное на плюсах. Собсно, фидбэчина :»usage of QFile instead of native file mapping and QThreadPool instead of STL or native windows threads as well as many controversial design decisions force us to think candidate is not suitable for our project» — это то, как раз, хоть и косвенная, но феерическая квинтэссенция обозначенного выше тезиса: Qt? На хуй иди!

    Ну и по заданию скажу, что справился бы за день легко. Как два байта переслать. А если клиент библиотеки консольный, то за полдня. Ну и нахуй вообще сторонние либы притягивать за уши, когда из стандартных средств у плюсов из коробки минимум три способа доступа к файлам (для каждой из трёх платформ), в наличии стандартный способ работы с потоками/синхронизацией, неебический набор контейнерных классов, пиздатые строковые возможности и полный интернет разных нужных иногда экзотических и извращенных, но всё-же фич…… Единственно, что нужно помнить при кроссплатформе — это то, что пизженный сырой функционал надо заворачивать в удобные врапперы-бриджи и рассовывать по категориям, формируя что-то, именуемое в народе «фасадом».
    Теперь, по заданию. Прежде всего: «You need to develop simple malware detector.» — это нихуя не резидентный антивирус, перехватывающий весь файловый (а то и вообще весь) ввод-вывод в системе, обладающий эвристиками, детектящими активности, похожие на вирусную деятельность, помимо базы сигнатур. Это просто всего-лишь(!) сканер командной строки.
    теперь читаем very вниматочно!
    — Scan file by path
    сканировать 1 (адын щтука) файл по заданному пути. не? а как по мне — так да. зачем обходить рекурсивно директорий? ну а с другой стороны, обход директория — рекурсивная функция длиной в 50 строк на чистейшем плюсе (и это с учетом кроссплатформы), одним из аргументов которой идёт функтор (можно шаблоном запузырить), колбэчно вызываемый на каждый найденный файл. Иначе говоря, задание упрощается донельзя: «пишем консольный сканер для одного файла, путь к которому передаётся в командной строке». Единственная «сложность» — это распилить код на две части — типа клиент и типа сервер, и реализовать «сервер» в дэлэлэ. Пиздец! Пишем антивирус блеать!
    — Scan array of bytes
    сканировать массив байтов. чушь какая-то… не сказано ведь, откуда их брать! а методов-то больше, чем у ебливого тузика мандавошек… скипаем до выяснения. если у них возникнут вопросы — попиздим и выясним. скорее всего, имеется в виду сканирование байт в этом самом злосчастном файле. но и так придётся писать функционал сканирования массива байтов — мы ведь в любом случае сканим память, даже если это замапленный файл. А добавлен этот элемент в список скорей всего для количества, ибо перечисление фич в виде списка из двух айтемсов — это уже за гранью добра и зла.
    — Load signatures file
    загрузка файла сигнатур. собсно, без оной самое сканирование невозможно, так что тут просто ордер перечисления неверный. как реализовать загрузку сигнатур? сука, std::getline на текстовом файле. простейший токенайзинг по символу «.» на две части (у C++ есть минимум 2 метода искаропки для этого) и закидывание в std::map с предварительным преобразованием строки в UUID (он же GUID, по структуре).
    Ну а по предъявсленному коду (хоть и немного его предъявлено) можно с долей уверенности сказать, что код «ниразу ничоткий»(с), говённый код. Городушки какие-то. Ну вот нахуа предварительное обнуление буфера перед копированием туда содержимого аргумента функции?! Лишняя работа! Оверхед. Причем, двойной. Ведь GUID_SIZE == Guid.length(), исходя из пояснений к функции. А если уж очень надо косить под asciiz, то просто
    ….
    memcpy(guidMemory, &Guid[0], Guid.length());
    // sizeof(guidMemory) должен всегда быть >= (Guid.length() + 1)
    guidMemory[Guid.length()] = 0;
    ….
    Ну и вообще, хуёвая логика-практика: проверять аргумент функции на валидность перед ее вызовом во всех местах, а не в самой функции — тоесть, централизованно…

    Теперь, файл-маппинг…. пишем бридж (выдумываем универсальный интерфейс или нагло пиздим готовый откуда-либо) и реализуем 3 имплементации — под венду, линухс и мокасины. Получается чисто, да и кода не так уж много. Сами имплементации качаем с инета, если в гугле не забанены или пишем на коленке за 20 минут (если все-таки забанены 😉 опыта ведь вагон с перроном). Это чтоб не тащить за собой мелеарды трелеоноф иксобайт Qt…. Да и ваще, любой библиотечный мусор.
    Еще цытатки:
    цытатко: «Парней здесь смутило, что товарищ маппит файл в память, а потом из замапленного куска делает копию….. Во-первых, такое копирование, даже будучи избыточным, вполне корректно работает. Во-вторых, ни один антивирь сейчас не работает с маппами только для чтения, потому что ему нужно делать эмуляцию, деобфускацию и всякого рода преобразования с исходным файлом.».
    Да блядь…. ебучие рога! читаем задание более вниматочно и не выдумываем ничего своего! надо просто просканировать файл. не надо ничего эмулировать, ничего записывать. просто, сцуко, просканировать. это задача такая поставлена. если ты шото там додумал, то ты даун. и тебя отсеивают, дауна. а потомучта даун, блядь. даун, усложняющий всё во сто крат, дай тебе, дауну, волю, даун ты этакой! даун….
    цытатко: «….Тем не менее, представленное решение тоже было рабочим!»
    Тем не менее, но и тем не более. Не по заданию. Наблюдаем еще один оверхед. Тенденция, однако… даун?

    Ну и вдогонку пару брёвен…. Хлопец решил сыграть в лотерейку (сделать тестовое). И его отбрили (не выиграл лотерею — бывает). Пускай это не станет поводом к печали, ибо всё одно наша жизнь суть броуновское движение против диссипативных сил правительства.

    0
    Reply
    • legacy_Ушат_Помоев3331d ago

      о! какой-то нубстер минусанул )))))))))))

      0
      Reply
      • legacy_test_13330d ago

        это Гудвин минусит, который и есть автор гениального кода из статьи, который вполне заслуженно посмели обосрать в коментах

        0
        Reply
    • legacy_Тамада_собачьих_свадеб3331d ago

      У меня встал

      0
      Reply
    • legacy_Страшный_сон_путина3331d ago

      Ну тогда упростим все к ебеням)
      grep -f sigs path

      0
      Reply
      • legacy_Ушат_Помоев3331d ago

        Всё должно быть изложено так просто, как только возможно, но не проще. Это дедушка Эйнштейн задвинул. В этом я с ним согласен, хотя ни ОТО, ни СТО не люблю.

        0
        Reply
    • legacy_Гудвин3331d ago

      Парень, еблан ты, твоё начальство выгонит тебя ссаными тряпками на мороз

      0
      Reply
      • legacy_Ушат_Помоев3331d ago

        Еблан Дебилов — это мой односельчанин. А я — Ушат Помоев. Ты не путай! )))))

        0
        Reply
        • legacy_Гудвин3331d ago

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

          0
          Reply
          • legacy_Ушат_Помоев3331d ago

            неаргументируемые лучи поноса…. признак баттхёрта? ну и по какому поводу пукан шкварчит? я же вроде-как не собирался писать статью-детектор!

            0
            Reply
          • legacy_Ушат_Помоев3331d ago

            меня терзают смутные сомненья…. а не под ником-ли Гудвин скрывается автор статьи AKA Жук?!
            )))))))))))))))))))

            0
            Reply
  • legacy_оккупатор3331d ago

    В реальном боевом C++, особенно в системном коде, исключения не используются и типично отключены к чертям. Маппинг, если мне память не изменяет, возможен с copy-on-write.

    0
    Reply
    • legacy_Ушат_Помоев3331d ago

      исключения навзничь отключаются (в g++ ключом -fno-exceptions) обычно только при написании ОСей и дров, ибо runtime тоже отключено. а так — по желанию. Маппинг возможен, если платформа поддерживает MMU и страничеую адресацию ))))

      0
      Reply
      • legacy_оккупатор3331d ago

        У нас в гейдеве исключения по жизни выключены.

        0
        Reply
        • legacy_Ушат_Помоев3329d ago

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

          0
          Reply
  • legacy_Лайкабос3331d ago

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

    Во вторых тестовое задание элементарное же. Далее на православном админском баше, через sed со счётчиком посимвольных совпадений это можно сделать, а через find exec grep ‘pattern’ вообще в одну строчку. Многопоточность? Запускаем пару процессов со своими тасками, пусть ядро поточностью занимается. Венда? Пусть антивирус поднимает юникс виртуалку и туда копирует сканируемое файло 😀
    Да даже на жабаскрипте работа с блобами и воркеры — все элементарно.

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

    0
    Reply
    • legacy_Лайкабос3331d ago

      Аа, так чел сделал тестовое и интервьюеры заговнили. Ну хуй пойми, маленькие но гордые компании частенько культивируют выебистость и чсв у своих адептов

      0
      Reply
    • legacy_Ушат_Помоев3331d ago

      не, ну вызвать греп — это просто, однако, на винде его нету. придётся тянуть для винды скомпиленный бинарь…. подмять сырцы грепа? как вариант. )) только надо помнить , что в любой момент могут попросить чего-то добавить. расширить, так сказать, функционал. так что такое (чрезмерное) упрощение концепции чревато боком, а то и раком…

      0
      Reply
  • legacy_гусь_13331d ago

    Тыц-пыздыц

    0
    Reply
  • legacy_Мимо_Крокодилов3331d ago

    >> new uint8_t[file.size()]

    По одной этой строчке видно, что данного погромиста к продакшн коду нельзя даже на километр подпускать.

    0
    Reply
    • legacy_Ушат_Помоев3331d ago

      100%

      0
      Reply
    • legacy_Рваная_жопа_с_горящими_глазами3331d ago

      как и его друга-защекана

      0
      Reply
      • legacy_Ушат_Помоев3331d ago

        точно…. хотя-бы за то, как нежно и практически трепетно он называет этих еблобанов с комоды «парнями»))))))))))

        0
        Reply
        • legacy_Гудвин3330d ago

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

          0
          Reply
          • legacy_Ушат_Помоев3329d ago

            хехе, зато если файл попадётся размерами больше оперативы, ебать система насвопается от души. будет щщастячко, если винт ССД будет! а 32-х битная так ваще пошлёт нахуй свыше 2 гектар выделять.
            PS: насчет этих всех скобок за щеку… детски сад, чесслово! мы тут за дело трындим — а тебе безобразия какие-то в голову лезут, школота неокуклившаяся.

            0
            Reply
  • legacy_полинаркоман3330d ago

    автор конечно быдлокодер, а иметь опенсоурс проекты (хотя бы один) я думаю как минимум нехуйовая визитная карточка
    У меня тоже хуйня своя была года 2 назад
    сразу скажу я не мну себя каким то мега крутым кибербогом с++, всегда рад код ревью и критике
    в Developex проходил собеседование на Qt разраба,

    1. Вначале стандартный пиздеж с HR
    2. Через пару дней напиши реализуй ебучюю фцию на бинарных деревьях за полчаса (лулзьно что в требовании написано было что нельзя гуглить (наивные, ну ясно что пошла копипаста/копираста 2 напаса пару коментов ну и отослал этот высер)
    3. Получаю положительный отзыв, говорит HR типа «го тех. собеседование». ну го
    4 Попиздели-попиздели о плюсах бинарных сдвигах и всякой разной хуйне, вроде норм все, лажал минимум
    5. Получаю ответ от HR, вы прошли техническое собеседование, теперь последнее задание на пару дней

    нахуярь прогу с UI для рекурсивного поиска заданного текста по графу web страниц который строиться через найденные ссылки в заданой юрл ну и плюс что бы можно было задать параметры типа максимальное количество юрл и количество одновременных закачок страниц

    я по своей природе немного тугодум и любитель шишек, день подумал, покурил, на второй нахуярил код, на третий просмотрел подправил чутка что бы код был почище и понятнее, ну и отправил этот высер

    1. через пару дней HR говорит го финальное тех. собеседование, я начинаю думать да заєбали уже, ну го хуле там, наверное о тестовом задании поговорить хочет чот, забазарили дату время

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

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

    вот така хуйня малята, випезделся, спасибо

    0
    Reply
    • legacy_minzdrav3329d ago

      Минздрав предупреждает: проходить такие собесы чревато появлением анальных трещин.

      0
      Reply
  • legacy_Калян3330d ago

    С чего столько шума? Это же вполне стандартная практика: вакансия есть всегда, задрачивают тупейшими вопросами, потом из всех выбирают тех кто готов прогнуться под худшие условия. Вы нам конечно не подходите и код у вас говно и знать вы ничего не знаете, но мы снизошли до вас(когда появилось реальное место в проекте), что правда предложить можем 20-50% от того что предлагали в вакансии.
    Ему ещё раз напишут через два три месяца. Далее варианта 2
    Я уже работаю за 95 % от вашей вакансии, менее чем за 120% не вижу смысла сраться с хорошей компанией.
    И конечно тупо послать их вместе с их отношением к людям, ведь дальше они его не улучшат!

    0
    Reply
  • legacy_е_ИТ_девелопер3330d ago

    Аффтар лошара и долбоеб. Единственная реальная причина, по которой тебя послали нахуй — твой сканер работал МЕДЛЕННО. Все остальне — формальные отмазки, хотя и этого было бы достаточно для посылания тебя нахуй.

    0
    Reply
    • legacy_Гудвин3330d ago

      Он был быстр, как ветер. Быстрее твоего папки, который не успел вытащить, и родился ты

      0
      Reply
      • legacy_Ушат_Помоев3329d ago

        какой алгоритм поиска использовал?

        0
        Reply
  • legacy_Дмитрий3330d ago

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

    1. Даем километровое задачние
    2. Кто выполнил такое бесплатное — терпила
    3. Начинаем чмырить терпилу, типа ты лузер, код плохой и так далее
    4. Могу поспорить на что угодно — через 1-3 месяца бы написали:
      типа Вы лузер, но 500$ мы для Вас найдем на позицию джуна … с задачами сеньера
      Занавес
    0
    Reply
    • legacy_expert3330d ago

      Нахуй кому нужен работник (даже за $500) который на каждую маленькую хуйню в проекте будет цеплять QT, Boost или другие велосипеды с гитхаба.

      0
      Reply
      • legacy_Дмитрий3330d ago

        Ждем твоего решения описанной в статье задачи.
        Причем кроссплатформенное. За 4 дня.

        0
        Reply
        • legacy_expert3330d ago

          По заданию четко прослеживается что нужна была только винда.

          0
          Reply
          • legacy_Ушат_Помоев3329d ago

            +1

            0
            Reply
  • legacy_Григорий_Бритва3330d ago

    2005: Фаеррезист нахуй? Там ималейт импрувед, сука, возможность резиста КРАЙНЕ МАЛА.
    2010: Глад отсосет у Хавка? Та я тя в рот и жопу выебу, дай только зарядиться.
    2017: Фреймворк1 нейм лучше фреймвокрнейм2! Использовать фреймворк3? Да ты сука охуел он тут не к месту! Стандартны Хуйсосницкого!

    Когда человечество поймет, что в таких спорах нет истины?

    0
    Reply
  • legacy_Kurwa3330d ago

    > Но могу сказать из своего личного опыта, что рекрутёры в больших компаниях заняты рассказами друг другу о том, как они на выходных в клубешниках с причмокиванием сосали писюны.
    Посасывал писюн в клубешнике, а потом рассказывал об этом другим, значит. Ты же пидр!

    0
    Reply
    • legacy_Гудвин3330d ago

      Как там — начальство уже ебёт тебя в жопку? Говорят, что теперь понятно, из-за кого вакансию так долго закрыть не могут? Смотри, чтобы пукан сильно не подгорал, а то начальство выгонит тебя нахуй, ибо неудобно. Хехе, ебаный ты пистон.

      0
      Reply
      • legacy_СукаНЕНАВИЖУ3329d ago

        Очко пичет, бляяяяяя! Хорошо хоть начальник по старой дружбе увольнять не стал, но обязанности-то добавились и все из-за тебя!!!

        0
        Reply
  • legacy_var_ты_дыбил3329d ago

    я ебу зачем вы тратите время на крестовые посиделки, блядь
    при своих 1500$, я нихуя почти не понял

    0
    Reply
  • legacy_Человек-программист3329d ago

    Кг/ам. Тебя попросили конкретно сделать консольную утилиту и длл под Винду, и показать что ты знаешь тредпул и поиск подстрок в строке. Какого хуя появилось qt, Линукс мак и виндовс? Чувак ты получил задание, но сделал по своему. Я бы тебя тоже на работу не принял.

    0
    Reply
    • legacy_Хуй_с_горы_13329d ago

      Из статьи следует, до оно под виндами работало, консольная аппликуха была и длл, и поиск подстроки в строке. Так шо хуй его знает, приебываться захотелось с кроссплатформенностью. А чувак не оценил. Я ебал эти разборки читать. Тут хуй проссышь шо за хуйня. Но тестовое на 2 дня та ну нахуй

      0
      Reply
      • legacy_Ушат_Помоев3329d ago

        Ненене, из задания следует, шо они хотели токо винду, а еще хотели COM (желательно out-of-proc server), знания ATL и знания алгоритма Ахо-Корасик (ДКА для поиска множества подстрок в строке), многопоточность и файловый мемори маппинг и всё это через STL.
        А вот Qt и кроссплатформенность они не сильно приветствуют. Я думаю, кроссплатформенность им просто допизды, а вот на Qt у них зуб наточен конкретно и особо, учитывая фидбэк.

        0
        Reply
    • legacy_Ушат_Помоев3329d ago

      плюсую. он под ником «Гудвин» читает каменты. скоро должен заявиться и к тебе. он неотвратим как конечный автомат. отработает как машина тьюринга — строго по перфоленте обложит залупами и скроется вночи как чёрный ниндзя, неуловимый как Джо из анекдота.

      0
      Reply
      • legacy_ЁптаЁжик3328d ago

        Я в ваши плюсы не могу но могу одно заметить, что у тебя прям дохуища времени каменты страчить. Не западло? Аффтар ламер мейби, не силен не знаю. Но тут сраться в коментах? Чую не зря тебя пропесочили.

        0
        Reply
        • legacy_Ушат_Помоев3328d ago

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

          0
          Reply
  • legacy_злоебучий_еблан3328d ago

    Это еще херня. В юбисофте как тестовое мне впарили сделать полноценную игру за неделю с нуля. И это учитывая тот факт, что у меня есть основная работа (когда я это должен был делать — их ебало мало). Как полагается, с шейдерами, звуками, физикой. В общем — малость подмарафетить и хоть в прадакшин. Все обязательные кейсы сделали большую часть «было бы хорошо». Ответ получил одной строчкой, дословно не помню, но смысл был таков «мы долго смотрели, доебаться ни к чему не смогли, но у вас странный стиль, поэтому идите нахуй». После чего хрюша погурзился в среду с температурой -273C и больше ни на какие вопросы не отвечал.

    0
    Reply
    • legacy_Ушат_Помоев3328d ago

      а тебя на ренрерщика брали, или на генералиста?

      0
      Reply
    • legacy_тупой_синьер3327d ago

      ест же на ютубе видосы типа делаю майнкрафт за 5 часов

      0
      Reply
  • legacy_A_D3321d ago

    > Доколупались они к генерации исключения вместо возврата кода ошибки. Да будет вам, хлопцы-комодцы, известно, что «Чистый код» Роберта Мартина советует как раз генерировать исключения, ведь это добавляет в наш код наглядности.

    ОП, автор кода, Мартин и комодцы — ковбои-пидорасы, см. https://hackernoon.com/error-handling-in-c-or-why-you-should-use-eithers-in-favor-of-exceptions-and-error-codes-f0640912eb45

    0
    Reply