Мне кажется что вы путаете Pattern Mathing и Conditional Statements. Pattern Matching про сравнение одной структуры данных с другой и не важно что потом произойдёт. Switch/case это про выбор ветки с кодом, основываясь на выполнении условия и не важно как именно он сравнит паттерн матчингом или <, >, ==.
К примеру в языке Elixir в котором Pattern Matching был изначально можно писать и так:
defp add_is_trigger_to_options(question, %{task_id: task_id, question_type: :TRIGGER}) do
// код
end
defp add_is_trigger_to_options(question, nil) do
// другой код
end
и вот так:
defp add_is_trigger_to_options(question, task) do
case task do
nil -> // другой код
%{task_id: task_id, question_type: :TRIGGER} -> // код
end
end
в обоих случаях используется паттерн матчинг, но используются разные способы выбора ветки кода для исполнения.
Почему-то не увидел в статье самого главного - про найм: "как нанять мидла, если владелец бизнеса или HR не разбирается в предметной области?". Работал с несколькими бизнесами, где за зарплату сеньора работали джуны и исправлять результаты их жизнедеятельности оказалось очень и очень дорого и сложно.
Pomodoro не про микроменеджмент, а про гарантированные перерывы в работе (ну или возможности для более глубокой фокусировки на задачах, кому что надо). И да, это про борьбу с выгоранием, потому что часто выгорание начинается с "сейчас поднажму ещё пару часиков...".
Ну значит мне не везло с командами или вам везло чуть больше. К Perl у меня всё же тёплые воспоминания, из него вынес ощущение свободы, что можно писать одно и тоже разными способами, умение всё что угодно сделать регулярками и понимание скалярного и списочного контекста данных, но код на нём так и не пишу.
Автор коммента написал (там про PRO)
«Замените свои MacBook «PRO» с 4GB памяти на нормальные компьютеры с 16GB памяти и PCIe SSD диском за такую же стоимость и не будет ничего никогда тормозить. „
Air из другого класса устройство и я считаю что обладает достаточными характеристиками для комфортной работы
«чем хайповей язык, тем выше медиана, и тем больше отрыв верхов от низов»
Вы статью то читали?
Что может быть хайповее JS сейчас? А там и медиана хромает и отрыв.
В хайповых языках больше дилетантов, поэтому нижняя планка падает сильно вниз.
И так как там в целом больше разработчиков, есть из чего выбирать и это понижает ЗП мидлов и сеньёров.
Чтобы заработать на хайпе нужно очень быстро прыгнуть до топов в этой области, это очень непростая задача.
Всё очевидно же, если людей не ограничить то они будут часто выбирать сразу всё. И тогда и работодателям будет невозможно искать по специалистам и данных надо будет больше перелопачивать (это решаемо, но не теми дешёвыми ребятами которых нанимают чтобы подобные проекты делать).
Ну и автор пишет — что он много в чём профессионален, наверное так и есть, но есть узкие специалисты, которые будут лучше чем автор (это не точно =), но логично).
Да, с тех пор я и с Python познакомился (даже поддерживал несколько проектов на нём на фрилансе и несколько плагинов написал). А также с Erlang/Elixir, сейчас Haskell и Rust изучаю.
Про Perl могу сказать вот что: как только разработка становится командной все эти документированные багофичи парализуют прогресс (и к PHP это относиться в том числе). Его я больше не использую, ни для чего.
Python — очень неплохой и понятный язык программирования, в некоторых областях он монополист (ML и BigData). Так или иначе с ним приходиться сталкиваться и опыт в основном положительный.
Мне всё же больше нравится Ruby для веб разработки и написания инструментов, он более консистентный + разработчики на нём любят удобные интерфейсы использовать, ну и в целом им не чуждо прекрасное + лучшая поддержка unicode среди всех языков (японцы жеж) =)
Самый чемпион по сложности веб фреймворков для меня — Haskell, причём, сам синтаксис и основополагающие концепции оказались проще чем предполагалось, а вот простейшее API сделать за вечер мне далось невероятной болью и страданиями (там надо что-то принципиально новое придумать), для сравнения на Elixir + Phoenix за полчаса с нуля написал приложение, что меня очень сильно удивило.
«потому программисты не дураки и не будут указывать уровень 2 по многим навыкам в такой таблице, даже если он такой и есть»
Это же признак неадекватности руководства, значит «наказываете инициативу», боритесь с токсичным начальством.
Джун — тот кто решает простые проблемы сложным путем.
Мидл — тот кто решает простые проблемы простым путем, сложные сложным.
Сеньер — тот кто решает сложные проблемы простым путем
выборка по sale_id + sale_dt, не имеет смысла потому что sale_id - первичный ключ, там значения не повторяются + они упорядочены
Почему бы для пагинации не использовать WHERE sale_id > *последнее значение id продажи* ?
Для дополнительной дофильтрации по другим полям можно добавить расширенную статистику и/или составные индексы по нескольким полям
Мне кажется что вы путаете Pattern Mathing и Conditional Statements. Pattern Matching про сравнение одной структуры данных с другой и не важно что потом произойдёт. Switch/case это про выбор ветки с кодом, основываясь на выполнении условия и не важно как именно он сравнит паттерн матчингом или <, >, ==.
К примеру в языке Elixir в котором Pattern Matching был изначально можно писать и так:
defp add_is_trigger_to_options(question, %{task_id: task_id, question_type: :TRIGGER}) do
// код
end
defp add_is_trigger_to_options(question, nil) do
// другой код
end
и вот так:
defp add_is_trigger_to_options(question, task) do
case task do
nil -> // другой код
%{task_id: task_id, question_type: :TRIGGER} -> // код
end
end
в обоих случаях используется паттерн матчинг, но используются разные способы выбора ветки кода для исполнения.
По умолчанию Rust компилирует без оптимизаций, надо как минимум делать так:
Вот документация на эту тему https://docs.rust-embedded.org/book/unsorted/speed-vs-size.html
соотвественно результат у меня на ноутбуке (macbook pro):
rust без оптимизаций:
Attempts: 3, duration: Some(36.852092s)
Executed in 36.86 secs fish external
usr time 36.43 secs 0.16 millis 36.43 secs
sys time 0.20 secs 1.94 millis 0.20 secs
rust с оптимизациями (-C opt-level=3):
Attempts: 3, duration: Some(1.103816s)
Executed in 1.30 secs fish external
usr time 990.80 millis 0.11 millis 990.69 millis
sys time 113.74 millis 2.05 millis 111.69 millis
java:
Attempts: 3, duration: 2.868 sec
Executed in 3.06 secs fish external
usr time 5.00 secs 0.13 millis 5.00 secs
sys time 0.41 secs 1.99 millis 0.41 secs
Почему-то не увидел в статье самого главного - про найм: "как нанять мидла, если владелец бизнеса или HR не разбирается в предметной области?". Работал с несколькими бизнесами, где за зарплату сеньора работали джуны и исправлять результаты их жизнедеятельности оказалось очень и очень дорого и сложно.
я имел в виду не тимлидство, а что-то как здесь https://github.com/avito-tech/playbook/blob/master/developer-profile.md#lead
есть же ещё lead developer и principal developer
Pomodoro не про микроменеджмент, а про гарантированные перерывы в работе (ну или возможности для более глубокой фокусировки на задачах, кому что надо). И да, это про борьбу с выгоранием, потому что часто выгорание начинается с "сейчас поднажму ещё пару часиков...".
«Замените свои MacBook «PRO» с 4GB памяти на нормальные компьютеры с 16GB памяти и PCIe SSD диском за такую же стоимость и не будет ничего никогда тормозить. „
Air из другого класса устройство и я считаю что обладает достаточными характеристиками для комфортной работы
P.S. и про диск тут уже писали, ~2 гига/сек выдавал
P.S. целые Homebrew и Chef без рельсов написано и немаленькие проекты
Вы статью то читали?
Что может быть хайповее JS сейчас? А там и медиана хромает и отрыв.
В хайповых языках больше дилетантов, поэтому нижняя планка падает сильно вниз.
И так как там в целом больше разработчиков, есть из чего выбирать и это понижает ЗП мидлов и сеньёров.
Чтобы заработать на хайпе нужно очень быстро прыгнуть до топов в этой области, это очень непростая задача.
Имеет мировую популярность и признание корпорации гугл
Ну и автор пишет — что он много в чём профессионален, наверное так и есть, но есть узкие специалисты, которые будут лучше чем автор (это не точно =), но логично).
Да, с тех пор я и с Python познакомился (даже поддерживал несколько проектов на нём на фрилансе и несколько плагинов написал). А также с Erlang/Elixir, сейчас Haskell и Rust изучаю.
Про Perl могу сказать вот что: как только разработка становится командной все эти документированные багофичи парализуют прогресс (и к PHP это относиться в том числе). Его я больше не использую, ни для чего.
Python — очень неплохой и понятный язык программирования, в некоторых областях он монополист (ML и BigData). Так или иначе с ним приходиться сталкиваться и опыт в основном положительный.
Мне всё же больше нравится Ruby для веб разработки и написания инструментов, он более консистентный + разработчики на нём любят удобные интерфейсы использовать, ну и в целом им не чуждо прекрасное + лучшая поддержка unicode среди всех языков (японцы жеж) =)
Самый чемпион по сложности веб фреймворков для меня — Haskell, причём, сам синтаксис и основополагающие концепции оказались проще чем предполагалось, а вот простейшее API сделать за вечер мне далось невероятной болью и страданиями (там надо что-то принципиально новое придумать), для сравнения на Elixir + Phoenix за полчаса с нуля написал приложение, что меня очень сильно удивило.
Это же признак неадекватности руководства, значит «наказываете инициативу», боритесь с токсичным начальством.
Мидл — тот кто решает простые проблемы простым путем, сложные сложным.
Сеньер — тот кто решает сложные проблемы простым путем
«OpenJDK полностью бесплатная и распространяется под GPL.»
Получается что у платной Oracle JDK должны быть открыты исходники и можно самому патчи LTS собирать?