Re[35]: Собеседования в Яндекс++
От: jamesq Россия  
Дата: 05.06.19 07:37
Оценка: :)
Добавлю, почему WallStreet зло, как я считаю. Я думаю, это всё давно известно.

Вот если Apple в погоне за ростом акций, нанимает Foxconn, которая своих работников напрягает и доводит до самоубийств, и поднимает курс на неведомую высоту.
Вот что остальным участникам рынка остается делать? Тоже им всем натянуть вожжи и пришпорить сотрудников? Как народ к этому относится?
Ещё прикиньте, что кучка толстосумов (0,0000001% от населения) говорят менеджменту всех своих компаний: вот те кто запрягут сотрудников, те получат наши инвестиции (и вы, соответственно, бонусы). Соревнование открыто!

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

Вот ты вкладываешься в акции, а оно по-кругу на тебя самого в результате воздействует в плохую сторону? Тебя самого запрягут, и рядом отгрохают говно-ТЦ.

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

И получаем вывод, что в погоне за баблом, люди часто теряют весь разум и не ведают что творят. Собственно, Великая Депрессия только подтверждает это.
Отредактировано 05.06.2019 8:04 jamesq . Предыдущая версия .
Re[36]: Собеседования в Яндекс++
От: jamesq Россия  
Дата: 05.06.19 07:51
Оценка:
Здравствуйте, CreatorCray, Вы писали:

J>>не требовать высокой квалификации (но сохранять при этом качество результатов)

CC>Взаимоисключающие параграфы, увы.
Неа, не взаимоисключающие. В том-то и дело, что если ты внедряешь подходящие технологии, качество можно сохранить, а квалификация становится нужна поменьше.
Это называется прогресс. И такое уже было (с Индустриальной революцией, что-ли). Когда вместо редких квалифицированных мастеров, начали внедрять оборудование, которое само обеспечивало нужное качество продукции.
Сравни современный ЧПУ станок и уровень мастера необходимый, чтобы всё это вручную изготовить.


J>> максимизировать повторное использование кода (через библиотеки и middleware), не писать велосипедов.

CC>Это уже требует квалификации

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


J>>Те же CRUD в приложениях БД — это тоже как-то можно устранить, сделав какой-нибудь конструктор или подобное.

CC>Конструктор просто будет дорогой в изготовлении, а если ещё и мощный то соответственно и сложный в использовании. Опять таки надо мозги чтоб им научиться полноценно пользоваться.
это сюда же, аналогично исправлению ситуации на рынке
Re[37]: Собеседования в Яндекс++
От: CreatorCray  
Дата: 05.06.19 07:58
Оценка:
Здравствуйте, jamesq, Вы писали:

J>Сравни современный ЧПУ станок и уровень мастера необходимый, чтобы всё это вручную изготовить.

Просто стала нужна другая квалификация.
Не умея и не понимая как оно работает можно и сам станок сломать.

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

Т.е. в реальности не в этой жизни, если и вовсе никогда.
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[36]: Собеседования в Яндекс++
От: CreatorCray  
Дата: 05.06.19 07:58
Оценка:
Здравствуйте, jamesq, Вы писали:

J>Добавлю, почему WallStreet зло, как я считаю. Я думаю, это всё давно известно.


Уж лучше бы жевал...
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[37]: Собеседования в Яндекс++
От: jamesq Россия  
Дата: 05.06.19 08:06
Оценка:
Здравствуйте, CreatorCray, Вы писали:

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


J>>Добавлю, почему WallStreet зло, как я считаю. Я думаю, это всё давно известно.

CC>
CC>Уж лучше бы жевал...

Да не, я это вот прямо сейчас на себе испытываю и сталкиваюсь. Последствия погони за баблом определённых людей.
Re[24]: Макконнелл и дядя Боб
От: Sharov Россия  
Дата: 05.06.19 09:38
Оценка:
Здравствуйте, a7d3, Вы писали:

A>В плане личностей авторов, то если к «дяде Бобу» ещё есть вопросы, то персона Макконнелла хорошо известна.

A>Дядя Боб интересен не столько свершениями, сколько идеями, которые в момент их публикации смотрели на 10 лет вперёд, по части развития индустрии софтваре. Его повествования с рассуждениями обретают ценность лишь по прошествию некоторого времени, в ретроспективе.

Читал обе книжки, первая откровенно громоздка. Вторую большую часть прочитал, возможно действительно перечитаю. Что касается личностей авторов -- то дядя Боб как раз боевой программист,
а Макконнелл -- писатель. Хотя здравые мысли про лицензирование(а у врачей, в общем) такой деятельности как программирование у него были. Но в целом книга, кмк, не очень. У дяди Боба
конкретней и меньшего объема.
Кодом людям нужно помогать!
Re[17]: Собеседования в Яндекс++
От: Sharov Россия  
Дата: 05.06.19 09:47
Оценка: -1
Здравствуйте, _ABC_, Вы писали:

_AB>Насколько я помню оглашенные мне вилки в своё время... Буржуями там не пахнет. Пахнет там студиозами, ЧСВ и "работать — большая честь".


Это известный факт про Я, если Вы не лично с Воложом общаетесь. Это как с зачеткой -- сначала ты работаешь на резюме, потом резюме работает на тебя. А опыт работы в Я.
оченно ценится на просторах СНГ, да и в мире, наверное, тоже. Туда идут за опытом и навыками, которые потом уже можно монетизировать, но никак не наоборот.
Кодом людям нужно помогать!
Re[20]: Собеседования в Яндекс++
От: smeeld  
Дата: 05.06.19 10:04
Оценка:
Здравствуйте, so5team, Вы писали:

S>А к показанному претензии можно привести такие же, как к ранее обсужденному фрагменту: нет комментариев, большая вложенность, несколько циклов внутри одной функции.


Теперь приводите свой код, а после я приведу свой.
Re[30]: Собеседования в Яндекс++
От: so5team https://stiffstream.com
Дата: 05.06.19 10:09
Оценка: 5 (1) +1
Здравствуйте, smeeld, Вы писали:

S>Любители простоты вроде Вас наплодили бы раз в десять-двадцать больше кода и больше данных, со всеми вытекающими последствиями для производительности кеша CPU.


Любители, вроде меня, отрефакторили бы ваш код хотя бы вот так (при условии, что значение get_current_storage_chunk можно кэшировать):
namespace {

void update_current_storage_chunk(cluster_node_desc_type * node, const chunk_id current_chunk) {
    while((journal_store(current_chunk).shared_descriptor_count() == 0) &&
            (current_chunk < get_journal_storage_chunk_count())) {
        node->set_current_storage_chunk(current_chunk);
        node->set_shared_segment(journal_store(current_chunk).first_descriptor_shared());
    }
}

void reinit_if_necessary(scatter_desc_type * descp, const chunk_id current_chunk) {
    if(descp->get_created_timestamp() < init_timestamp() and descp->get_init_timestamp() < prev_timestamp()) {
        DEBUG << "Initializing Shared Descriptor With offset: " << descp->self();
        descp->init(init_timestamp(), journal_storage_info(current_chunk).first(),
                journal_store(current_chunk).raw_size());
    }
}

} /* namespace anonymous */

node_desc_type* allocate_next_cluster_shared_segment(bool wait) {
    DEBUG << " Prepare to fetch shared journal segment ... ";

    shared_segment_lock_type shared_lck (shared_segment_ctrl);

    check_migrate_cluster_node_store();

    while(cluster_node_desc_type* node_descp = get_cluster_node(current_cluster_node++)) {
        if(!node_descp->is_alive() || !node_descp->is_idle())
            continue;

        const auto current_chunk = node_descp->get_current_storage_chunk();
        update_current_storage_chunk(node_descp, current_chunk);

        if(node_descp->get_shared_segment() == EMPTY_SEGMENT)
            continue;

        scatter_desc_type *descp = journal_storage(current_chunk).template
                          get_ptr<scatter_desc_type>(
                                  journal_store(current_chunk).descriptor_table(),
                                  node_descp->get_shared_segment());
        if(descp->is_shared()) {
            reinit_if_necessary(descp, current_chunk);
            return node_descp;
        }
    }

    if(wait) {
        shared_segment_cv.wait(shared_lck);
        if(current_cluster_node() >= journal_store().cluster_node_count())
            set_current_cluster_node(FIRST_NODE_INDEX);
    }
    return nullptr;
}

Остается понадеятся, что вы сможете обосновать что здесь в 20-30 раз больше кода и данных. И что подобные изменения вносят прям таки убийственные для производительности последствия.

PS. Вспомогательные функции update_current_storage_chunk и reinit_if_necessary можно было бы и локальными лямбдами обойтись. Но т.к. они никакого контекста не захватывают, то вполне могут быть вспомогательными функциями снаружи.
Re[21]: Собеседования в Яндекс++
От: so5team https://stiffstream.com
Дата: 05.06.19 10:12
Оценка: +1
Здравствуйте, smeeld, Вы писали:

S>Теперь приводите свой код


А должен? Вроде пальцы не гнул, щеки не надувал. Уровень разработки в Яндексе оценивать и сравнивать с чем-либо не пытался. Даже нигде не говорил, что могу вообще код писать...
Re[22]: Собеседования в Яндекс++
От: smeeld  
Дата: 05.06.19 10:18
Оценка: :))
Здравствуйте, so5team, Вы писали:

S>А должен? Вроде пальцы не гнул, щеки не надувал. Уровень разработки в Яндексе оценивать и сравнивать с чем-либо не пытался. Даже нигде не говорил, что могу вообще код писать...


Сами коде не пишите, рефакторить не умеете, щёки надуваете. Походу, Вы тот самый собеседующий зубрила из Яндекса.
Re[23]: Собеседования в Яндекс++
От: so5team https://stiffstream.com
Дата: 05.06.19 10:20
Оценка:
Здравствуйте, smeeld, Вы писали:

S>Сами коде не пишите,


Кто вам сказал?

S>рефакторить не умеете


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

S>Походу, Вы тот самый собеседующий зубрила из Яндекса.


Не угадали. Но к нам бы вы точно не попали. По причине выдающейся профнепригодности.
Re[31]: Собеседования в Яндекс++
От: smeeld  
Дата: 05.06.19 10:20
Оценка: :)))
Здравствуйте, so5team, Вы писали:

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


S>>Любители простоты вроде Вас наплодили бы раз в десять-двадцать больше кода и больше данных, со всеми вытекающими последствиями для производительности кеша CPU.


S>Любители, вроде меня, отрефакторили бы ваш код хотя бы вот так (при условии, что значение get_current_storage_chunk можно кэшировать):

S>
S>namespace {

S>void update_current_storage_chunk(cluster_node_desc_type * node, const chunk_id current_chunk) {
S>    while((journal_store(current_chunk).shared_descriptor_count() == 0) &&
S>            (current_chunk < get_journal_storage_chunk_count())) {
        node->>set_current_storage_chunk(current_chunk);
        node->>set_shared_segment(journal_store(current_chunk).first_descriptor_shared());
S>    }
S>}

S>void reinit_if_necessary(scatter_desc_type * descp, const chunk_id current_chunk) {
S>    if(descp->get_created_timestamp() < init_timestamp() and descp->get_init_timestamp() < prev_timestamp()) {
S>        DEBUG << "Initializing Shared Descriptor With offset: " << descp->self();
S>        descp->init(init_timestamp(), journal_storage_info(current_chunk).first(),
S>                journal_store(current_chunk).raw_size());
S>    }
S>}

S>} /* namespace anonymous */

S>node_desc_type* allocate_next_cluster_shared_segment(bool wait) {
S>    DEBUG << " Prepare to fetch shared journal segment ... ";

S>    shared_segment_lock_type shared_lck (shared_segment_ctrl);

S>    check_migrate_cluster_node_store();

S>    while(cluster_node_desc_type* node_descp = get_cluster_node(current_cluster_node++)) {
S>        if(!node_descp->is_alive() || !node_descp->is_idle())
S>            continue;

S>        const auto current_chunk = node_descp->get_current_storage_chunk();
S>        update_current_storage_chunk(node_descp, current_chunk);

S>        if(node_descp->get_shared_segment() == EMPTY_SEGMENT)
S>            continue;

S>        scatter_desc_type *descp = journal_storage(current_chunk).template
S>                          get_ptr<scatter_desc_type>(
S>                                  journal_store(current_chunk).descriptor_table(),
S>                                  node_descp->get_shared_segment());
S>        if(descp->is_shared()) {
S>            reinit_if_necessary(descp, current_chunk);
S>            return node_descp;
S>        }
S>    }

S>    if(wait) {
S>        shared_segment_cv.wait(shared_lck);
S>        if(current_cluster_node() >= journal_store().cluster_node_count())
S>            set_current_cluster_node(FIRST_NODE_INDEX);
S>    }
S>    return nullptr;
S>}
S>

S>Остается понадеятся, что вы сможете обосновать что здесь в 20-30 раз больше кода и данных. И что подобные изменения вносят прям таки убийственные для производительности последствия.

S>PS. Вспомогательные функции update_current_storage_chunk и reinit_if_necessary можно было бы и локальными лямбдами обойтись. Но т.к. они никакого контекста не захватывают, то вполне могут быть вспомогательными функциями снаружи.


Какое же убожество Вы сотворили с тем кодом, Зачем так коверкать и корёжить? Тот код был не идеальный, но близко к нему, Вы же превратили его в говнокод. С моей точки зрения.
Re[32]: Собеседования в Яндекс++
От: so5team https://stiffstream.com
Дата: 05.06.19 10:22
Оценка:
Здравствуйте, smeeld, Вы писали:

S>Зачем так коверкать и корёжить?


Понятность и обозримость, не?

S>Тот код был не идеальный, но близко к нему


Вау.
Re[24]: Собеседования в Яндекс++
От: smeeld  
Дата: 05.06.19 10:24
Оценка: :)
Здравствуйте, so5team, Вы писали:


S>Кто вам сказал?


Так покажите.

S>Уже смогли обнаружить распухание кода в 20 раз?


Я там обнаружил кое-что посерьёзней, отсутствие здравого смысла и копирование букварей.

S>Не угадали. Но к нам бы вы точно не попали. По причине выдающейся профнепригодности.


О моей профпригодности судят люди, которые далеко не чета таким как Вы. ваше мнение можете держать при себе, об этом уже который раз повторяю.
Re[33]: Собеседования в Яндекс++
От: smeeld  
Дата: 05.06.19 10:26
Оценка: :))) :))) :)
Здравствуйте, so5team, Вы писали:

S>Понятность и обозримость, не?


Это для Вас оно стало понятней и обозримей, а для меня и его автора-нет, он стал запутанней и уродливей.
Re[32]: Собеседования в Яндекс++
От: Lexey Россия  
Дата: 05.06.19 10:35
Оценка: +2
Здравствуйте, smeeld, Вы писали:

S>Это приватные функции, выполняющие определённую роль. Тот кусок кода-это из интерфейсной юзерспайсовой оболочки, предоставляющей доступ к функционалу высокопроизводительной системы стораджа через демон, функционирующий в юзерспайсе. Сама система-это система организации хранения данных, оптимизированная с учётом особенностей реализации драйверов шин блочных устройств в linux, а также особенностей взаимодействия кеша CPU, с областями памяти, которые выделены под зоны для DMA, в которых отображаются данные с диска. Она работает в обход подсистемы блочного IO ядра и слоя файловых систем в ядре. Основная функциональная часть реализации функционирует в kernel space. В юзерспайсе многопоточный демон, общающийся с кернел левелом через модифицированную подсистему epoll. Похожую вещь чуваки пропихивают в майнстрим. Сейчас в процессе превращения стораджа в распределённую систему хранения. Пока данные синхронизируются через упомянутый демон, организующий кластерный кворум в режиме мастер-мастер. Но есть планы реализовать обмен данными посредством RDMA. Требование к системе всегда было одно-производительность. Ради этой цели приходится идти на самые разные трюки. Порой код выглядит нечитабельным или малопонятным, но иначе никак. К тому куску выше это не относится, там тестовый набросок.


Много умных слов, которые никак не оправдывают то, что названия методов/их интерфейс не соответствуют их поведению. Нужно либо интерфейс менять так, чтобы сайдэффекты стали явно видимы, либо переименовать методы так, чтобы было видно, что это не просто get/set, но и что-то еще.
Re[33]: Собеседования в Яндекс++
От: smeeld  
Дата: 05.06.19 10:43
Оценка: :)
Здравствуйте, Lexey, Вы писали:

L>Нужно либо интерфейс менять так, чтобы сайдэффекты стали явно видимы, либо переименовать методы так, чтобы было видно, что это не просто get/set, но и что-то еще.


На тот момент оно и в таком виде годилось. Это был кусок кода для трассировки среды интерфейсной оболочки. Скопипастил для юзернейма so5stream что на экране в текущий момент было, чтоб отстал.
Re[18]: Собеседования в Яндекс++
От: _ABC_  
Дата: 05.06.19 10:51
Оценка: 9 (1) +1
Здравствуйте, Sharov, Вы писали:


S>Это известный факт про Я, если Вы не лично с Воложом общаетесь. Это как с зачеткой -- сначала ты работаешь на резюме, потом резюме работает на тебя.

Сказки тетушки Эйч-Ар...

S>А опыт работы в Я. оченно ценится на просторах СНГ, да и в мире, наверное, тоже.

Брехня-с... Не более, чем в других фирмах.

S>Туда идут за опытом и навыками, которые потом уже можно монетизировать, но никак не наоборот.

Ну и не стоит щёки надувать тогда всяким Лексеям. Место для студентов и точка.
Re[18]: Собеседования в Яндекс++
От: a7d3  
Дата: 05.06.19 11:18
Оценка: :))
Здравствуйте, Sharov, Вы писали:

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


_AB>>Насколько я помню оглашенные мне вилки в своё время... Буржуями там не пахнет. Пахнет там студиозами, ЧСВ и "работать — большая честь".


S>Это известный факт про Я, если Вы не лично с Воложом общаетесь. Это как с зачеткой -- сначала ты работаешь на резюме, потом резюме работает на тебя. А опыт работы в Я.

S>оченно ценится на просторах СНГ, да и в мире, наверное, тоже. Туда идут за опытом и навыками, которые потом уже можно монетизировать, но никак не наоборот.

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