Пришла вакансия, не буду рекламировать контору, но сама вакансия звучит интересно:
Картинка
Интересно, реально ли найти человека, полностью удовлетворяющего требованиям по языкам. И для России, и для Питера зп хорошая, но, блин, ищут и правда сильно продвинутого чувака широких взглядов. Много народа тут соответствует требованиям?
Здравствуйте, Nuzhny, Вы писали:
N>Интересно, реально ли найти человека, полностью удовлетворяющего требованиям по языкам. И для России, и для Питера зп хорошая, но, блин, ищут и правда сильно продвинутого чувака широких взглядов. Много народа тут соответствует требованиям?
Стандартное правило таких перечислений: если удовлетворяешь хотя бы 40% требований — смело шли резюме
Ну и задача вроде не сказать что жуть как что-то сложно, ведь эти 5 миллионов ячеек легко влезают в память сервера. А в чем там сложность видится? Намека на распределенное хранение ячеек нет, сервер единый видимо, если документов дохрена, то горизонтально масштабировать можно просто увеличивая количество серверов, но не распределяя документ. Ну разве что разрешение конфликтов если кто-то отвалился, но таких алгоритмов много и вопрос довольно хорошо изучен, как мне кажется. В крайнем случае всегда можно пойти в сторону ручного разрешения конфликтов, что для пользовательского ввода скорее предпочтительный алгоритм
Здравствуйте, kaa.python, Вы писали:
KP>А в чем там сложность видится?
На практике в таких проектах есть N разных форматов экселек, которые заполняют пользователи как руками, так и автоматизированно, всё это разные отделы пересылают друг дружке по электронной почте или ещё как, плюс оно щедро сдобрено макросами, и т.п. и т.п.
В общем, как всегда — дьявол в мелочах, и основным головняком является не эксель как таковой, а процессы обмена и костыли вокруг них, которые нельзя трогать.
N>Интересно, реально ли найти человека, полностью удовлетворяющего требованиям по языкам. И для России, и для Питера зп хорошая, но, блин, ищут и правда сильно продвинутого чувака широких взглядов. Много народа тут соответствует требованиям?
Стек, видимо, тоже на выбор, иначе куда такой зоопарк в бэке?
Здравствуйте, Sharov, Вы писали:
N>>Интересно, реально ли найти человека, полностью удовлетворяющего требованиям по языкам. И для России, и для Питера зп хорошая, но, блин, ищут и правда сильно продвинутого чувака широких взглядов. Много народа тут соответствует требованиям?
S>Стек, видимо, тоже на выбор, иначе куда такой зоопарк в бэке?
Если проект с 15+ летней историей, то запросто. Например, сперва был монолит на Java, потом C++ом попытались разбавить узкие места, затем подтянули Go для распиливания на микросервисы, ну и куда же без модного и молодежного Rust-а, попрограммировать на котором хочет весь stackoverflow?
Ну, а если кодовая база постарше, то могло быть и так: С++ -> Java -> Go -> Rust. Только новые языки в проекте не столько заменяли старые, сколько использовались для написания нового кода вокруг копролитов старого.
Здравствуйте, kaa.python, Вы писали:
KP>Ну и задача вроде не сказать что жуть как что-то сложно, ведь эти 5 миллионов ячеек легко влезают в память сервера. А в чем там сложность видится?
Мне лично сложность видится в том, что с большими "5 миллионов ячеек" таблицами работают одновременно несколько пользователей.
Попахивает закатом солнца вручную.
L>Мне лично сложность видится в том, что с большими "5 миллионов ячеек" таблицами работают одновременно несколько пользователей. L>Попахивает закатом солнца вручную.
Пляски с чем-то типа CRDT. А так чем не подходят гугловый excel? И в чем смысл 5 млн. ячеек? Я use case понять не могу..
Видел эту вакансию несколько месяцев назад. Тогда было требование C++ и/или Rust. При этом условия были лучше: $7-10k и НЕ-тимлидская позиция. Странно это
Здравствуйте, DiPaolo, Вы писали:
DP>Видел эту вакансию несколько месяцев назад. Тогда было требование C++ и/или Rust. При этом условия были лучше: $7-10k и НЕ-тимлидская позиция. Странно это
Т.е. это была удалёнка на иностранное юр.лицо через ИП/патент?
Здравствуйте, Nuzhny, Вы писали:
N>Интересно, реально ли найти человека, полностью удовлетворяющего требованиям по языкам. И для России, и для Питера зп хорошая, но, блин, ищут и правда сильно продвинутого чувака широких взглядов. Много народа тут соответствует требованиям?
А что, монга не справится? Или задача написать свою монгу с блекджеком и девушками?
Здравствуйте, landerhigh, Вы писали:
L>Мне лично сложность видится в том, что с большими "5 миллионов ячеек" таблицами работают одновременно несколько пользователей. L>Попахивает закатом солнца вручную.
Давай начнем с того, что за это кто-то платит, значит некий сценарий использования видимо есть
Здравствуйте, Nuzhny, Вы писали:
N>Пришла вакансия, не буду рекламировать контору, но сама вакансия звучит интересно:
Постановка задачи конечно доставляет, серьезно-то как все, даже некоторые засомневаются, а не осилит ли толковый студент такое за пару часов наваять. Поди очередной талантливый школьник создал, а 600К опционами, но ты не бойся — еще чуть-чуть и ого-го!
Здравствуйте, kaa.python, Вы писали:
L>>Попахивает закатом солнца вручную.
KP>Давай начнем с того, что за это кто-то платит, значит некий сценарий использования видимо есть
Ну, за семь перпендикулярных линий тоже кто-то теоретически может заплатить...
Nuzhny:
N>Интересно, реально ли найти человека, полностью удовлетворяющего требованиям по языкам. И для России, и для Питера зп хорошая, но, блин, ищут и правда сильно продвинутого чувака широких взглядов. Много народа тут соответствует требованиям?
На собеседовании будут спрашивать не только Go, но и Get out of here
Здравствуйте, kaa.python, Вы писали:
N>>Интересно, реально ли найти человека, полностью удовлетворяющего требованиям по языкам. И для России, и для Питера зп хорошая, но, блин, ищут и правда сильно продвинутого чувака широких взглядов. Много народа тут соответствует требованиям?
KP>Стандартное правило таких перечислений: если удовлетворяешь хотя бы 40% требований — смело шли резюме KP>Ну и задача вроде не сказать что жуть как что-то сложно, ведь эти 5 миллионов ячеек легко влезают в память сервера. А в чем там сложность видится?
Сложность там в том, чтобы обеспечить осмысленное поведение, когда несколько пользователей основременно топчатся в одном и том же месте документа.
Там проблема в том, что если сделать все по-простому (грубо говоря, один редактор с большим количеством пользовательских экранов, который "суммирует" клавиатурно-мышиные события от пользователей), то задержки будут такие, что пользоваться будет невозможно.
В реальности, каждый пользователь редактирует немного свою копию документа, а система сливает вместе изменения, внесенные каждым из пользователей, стремясь разумно себя вести, если пользовательские изменения пересекаются.
Зачем там такой набор языков, решительно непонятно. Все это можно сделать на любом одном из перечисленных. Видимо, уже пытались что-то напрограммировать, да не очень-то пока получилось, а кода, которого жалко выбросить, поднакопилось в количестве.
Поторопился с заголовком, пока только начинаю разрабатывать. Итак:
1. Дано: размеры W и H
2. Берем обычный массив размером W * H — здесь будут лежать значения. Если размер изменяется, то поступаем в точности как это происходит при увеличении хеш-таблиц — выделяем память и перекладываем. На самом деле тут 100500 вариаций, например, хранить не единым массивом, а чанками. 5 млн. ячеек — это мало, потянет даже ваш телефон
3. Все формулы хранятся тоже в этой таблице, при изменении зависимых ячеек идет пересчет
4. Пользователь имеет видимую часть x1, y1, x2, y2 — ее он отправляет на сервер, каждый раз меняя видимую часть на сервер уходят новые координаты
5. Каждый раз, когда на сервере изменяется ячейка происходит проверка затрагивает ли это какую-либо пользовательскую вьюху, тут есть тоже простор для оптимизаций, но вангую простым перебором по вьюхам проверить x1 <= x и x <= x2 будет гуд энаф
6. Если получили попадание, то оповещаем пользователя. Чтобы не гонять трафик, делаем отправку ленивую
Все. Вот теперь разрабатывать закончил. Заняло это аж минуты 3
Да, и чтобы самим не кодить таблицу берем, например, тарантул или даже редис, если нам сохранение целостности таблицы не критично.