Здесь укорачивание — это чисто оптимизация. Но не в ущерб читаемости, а наоборот. Например отход от фигурных скобок (они останутся опциональными) в пользу структуры по отступам. Это уменьшает количество мест, где можно ошибиться, не ухудшая семантику. Иными словами уменьшают количество знаков пунктуации, там где без них можно обойтись.
Синтаксис Скалы не сложный. Он похож одновременно и на тот же Kotlin, и на Python (начиная с Scala3 там будет даже контроль отступов, как в Питоне). Не говоря о том, что Java и JavaScript многие конструкции заимствуют. Если вы не понимаете исходники на Scala, то вы не понимаете ФП. А это целое семейство языков и целая парадигма, изучить которую безусловно стоит любому программисту, даже с 40летним стажем.
Плюс добавим возможность асинхронного выполнения эффектов, даже если сама библиотека синхронная.
Еще один плюс — переопределение эффектов на разных уровнях вложености без протаскивания локального контекста или без необходимости запоминать старые хендлеры.
С DI можно добиться обычной делегации, но очень ограниченно: приходится все равно протаскивать делегация по всему стеку либо вываливать кишки (особенности имплементации) наружу, нарушая инкапсуляцию и усложняя API.
Идея делегирования, конечно, стара как мир и в разных вариантах возникала неоднократно. Кажется, на этот раз есть шанс получить нечто продуманное и стройное. И совместимое с функциональными ЯП. А, напомню, для них все и делается изначально. Через 10 лет это будет и в Джаве, как в свое время туда перекочевали из функциональных языков лямбды. Интерфейсы и анонимные классы в Джаве уже и так были, но с лямбдами стало жить намного проще. Туда все и идем — к более выразительным концепциям и конструкциям языка.
Направление мысли Васи верное, но он не до конца понял идею идемпотентности, прикрутив подпорку с версионированием. Версионирование — это концепция из неидемпотентного мира. В идемпотентном API клиент всегда шлет список активных (по его мнению заказов), а сервер реагирует при обнаружении несоответствия его БД присланной хотелке. Это реализует все сценарии: добавление, удаление и изменение, в одном единственном методе API: sync(orders)
Вообще в этой истории все молодцы, и все сделано правильно (без сарказма). А Жанне, как менеджеру надо памятник поставить.
Вот вы задумайтесь и взгляните на картину не со стороны «обиженного» программиста, а объективно: что на выходе?
А на выходе: устойчивая самоподдерживающаяся система с разумным обновлением кадров. За счет молодых энтузиастов ИТ-системы получают должное развитие и постепенно и плавно обновляются с использованием новых технологий, т.е. не застряли в 90-х, но в то же время за счет опытных сотрудников не несутся впереди паровоза за непроверенными новомодностями. Жанна грамотно распределила проекты между ними, все было сделано в срок, ничего не сломано.
Задачи бизнеса решаются. Конечно с привлечением непрофильных сотрудников — это так и должно быть — горизонтальная коммуникация и обмен смежным опытом обязан происходить! Программист не должен сидеть в башне из слоновой кости и думать о вечном. Объективная сложная ситуация с компьютерной грамотностью большинства условных «бухгалтеров» — это то, с чем приходится жить. Задача менеджмента заставить компанию функционировать в заданном окружении, включая имеющийся рынок труда.
И судя по всему, тут это сделано!
Причем и финансово и организационно, объективно в компании все хорошо — премии платятся, причем тому, кто их реально заслужил — нечастое явление в крупных компаниях. Расстояние в иерархии между исполнителем и директором — 2 ступени, да это ж просто сказка какая-то.
Сергей получил бесценный жизненный опыт, а Коля продолжил свое профессиональное развитие в другой компании — уж явно без работы не остался же. А то что на свете одним энтузиастом стало меньше и один прагматиком больше — так это не беда, а естественный процесс развития/взросления человека. Се ля ви.
Нельзя вот так просто взять ипотеку и остаться энтузиастом…
Извините, но качество перевода просто ужасное. Одни «шоковые волны» (на самом деле по-русски это «ударные волны») чего стоят. Если вы переводите научно-популярные статьи, неплохо было бы иметь базовое представление о терминологии. Или хотя бы пользоваться онлайн переводчиками.
В поддержку вашей градации основных признаков долголетия интересный доклад опубликовало TED буквально вчера: www.youtube.com/watch?v=ptIecdCZ3dg.
Оказывается, действительно социальные связи гораздо сильнее удерживают нас на этом свете. Сильнее чем физические упражнения и даже сильнее бросания пить/курить.
Мне в этой связи вспоминается байка о том, что в начале 20го века на экзаменах нельзя было пользоваться ручкой и бумагой — надо было все в уме считать уметь.
Так надо ли отвергать прогресс и требовать делать все вручную?
Может правильнее учить работать вместе с машиной, а не вместо машины?
Новое образование должно учить решать задачи с помощью инструментов типа WA — уметь ставить задачи компьютеру.
Зачем в уме делать навигацию, если есть навигатор? Зачем делить столбиком, если есть калькулятор?
Вы наверное уже и не умеете находить квадратный корень на бумаге? А ваши родители-деды умели…
Стали ли вы от этого глупее? Не думаю.
А в какое спортлото писать чтобы Я.Навигатор тоже прокладывал маршрут не до ближайшей геометрической точки до места назначения, а учитывал, что я могу, например, и 50 метров пешком пройти вместо того чтобы ехать на разворот лишние 2 километра?..
Чтобы устранить из алгоритма человека можно в качестве fitness использовать какую-нибудь картинку. Того же дракона, например. Тогда можно реально картинки превращать во фракталы.
Добавьте "Parser {case src =>" в листинг, это магическое слово, превращающее лямбду в частично примененную функцию. А то у меня мозг взорвался, прежде чем я понял код.
Некоторые слова из этой «тарабарщины» даже гуглятся: тыц. Причем на греческих сайтах. Видимо это греческий текст, некорректно отображенный в кириллице. Кажется, кто-то увидел греческие буквы и решил, что это русский :)
1. Мне кажется, что фильтрация по производителю сейчас сделана неудобно. Большая каша из брендов, которая перегружает фильтр и при этом сложно там что-то найти. Было бы лучше сделать как в Я.Маркете — скрываемый список со возможностью множественного выбора.
2. Так же неплохо было бы показывать дату/год производства ламп. Т.к. в списке могут накапливаться неактуальные образцы.
3. Было бы прикольно стоить рейтинг не только отдельных ламп, но и производителей. А так же по годам. Как в среднем улучшается ситуация с лампами, например. Ну т.е. программеры просят добавить возможность выбирать группировку по любому полю с агрегацией числовых параметров :)
А если серьезно, то это вводит формальную «алгебру эффектов». Подробности надо читать в соответствующих статьях.
Еще один плюс — переопределение эффектов на разных уровнях вложености без протаскивания локального контекста или без необходимости запоминать старые хендлеры.
С DI можно добиться обычной делегации, но очень ограниченно: приходится все равно протаскивать делегация по всему стеку либо вываливать кишки (особенности имплементации) наружу, нарушая инкапсуляцию и усложняя API.
Идея делегирования, конечно, стара как мир и в разных вариантах возникала неоднократно. Кажется, на этот раз есть шанс получить нечто продуманное и стройное. И совместимое с функциональными ЯП. А, напомню, для них все и делается изначально. Через 10 лет это будет и в Джаве, как в свое время туда перекочевали из функциональных языков лямбды. Интерфейсы и анонимные классы в Джаве уже и так были, но с лямбдами стало жить намного проще. Туда все и идем — к более выразительным концепциям и конструкциям языка.
АПД: все бесплатно
Привет из России! :)
Вот вы задумайтесь и взгляните на картину не со стороны «обиженного» программиста, а объективно: что на выходе?
А на выходе: устойчивая самоподдерживающаяся система с разумным обновлением кадров. За счет молодых энтузиастов ИТ-системы получают должное развитие и постепенно и плавно обновляются с использованием новых технологий, т.е. не застряли в 90-х, но в то же время за счет опытных сотрудников не несутся впереди паровоза за непроверенными новомодностями. Жанна грамотно распределила проекты между ними, все было сделано в срок, ничего не сломано.
Задачи бизнеса решаются. Конечно с привлечением непрофильных сотрудников — это так и должно быть — горизонтальная коммуникация и обмен смежным опытом обязан происходить! Программист не должен сидеть в башне из слоновой кости и думать о вечном. Объективная сложная ситуация с компьютерной грамотностью большинства условных «бухгалтеров» — это то, с чем приходится жить. Задача менеджмента заставить компанию функционировать в заданном окружении, включая имеющийся рынок труда.
И судя по всему, тут это сделано!
Причем и финансово и организационно, объективно в компании все хорошо — премии платятся, причем тому, кто их реально заслужил — нечастое явление в крупных компаниях. Расстояние в иерархии между исполнителем и директором — 2 ступени, да это ж просто сказка какая-то.
Сергей получил бесценный жизненный опыт, а Коля продолжил свое профессиональное развитие в другой компании — уж явно без работы не остался же. А то что на свете одним энтузиастом стало меньше и один прагматиком больше — так это не беда, а естественный процесс развития/взросления человека. Се ля ви.
Нельзя вот так просто взять ипотеку и остаться энтузиастом…
Или эти 50% просто накладные расходы?
Оказывается, действительно социальные связи гораздо сильнее удерживают нас на этом свете. Сильнее чем физические упражнения и даже сильнее бросания пить/курить.
Так надо ли отвергать прогресс и требовать делать все вручную?
Может правильнее учить работать вместе с машиной, а не вместо машины?
Новое образование должно учить решать задачи с помощью инструментов типа WA — уметь ставить задачи компьютеру.
Зачем в уме делать навигацию, если есть навигатор? Зачем делить столбиком, если есть калькулятор?
Вы наверное уже и не умеете находить квадратный корень на бумаге? А ваши родители-деды умели…
Стали ли вы от этого глупее? Не думаю.
Parser {case src =>
" в листинг, это магическое слово, превращающее лямбду в частично примененную функцию. А то у меня мозг взорвался, прежде чем я понял код.Все же даже «уменьшенный» режим с 19 колонками чересчур избыточен.
2. Так же неплохо было бы показывать дату/год производства ламп. Т.к. в списке могут накапливаться неактуальные образцы.
3. Было бы прикольно стоить рейтинг не только отдельных ламп, но и производителей. А так же по годам. Как в среднем улучшается ситуация с лампами, например. Ну т.е. программеры просят добавить возможность выбирать группировку по любому полю с агрегацией числовых параметров :)
(я даже адблок на lamptest отключил :) )