-
Notifications
You must be signed in to change notification settings - Fork 265
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
haskell jun2: упрощение #342
Comments
Про Haskell: не соглашусь по поводу переносов на мидла. Traversable, DerivingVia и concurrency широко используются на проектах. Лучше получить хоть какое-то представление о них, пусть даже неполное, чтобы быть более подготовленным к работе и понимать, что и как загуглить в случае необходимости. Про Linux сложнее. Мне пригодилось знание по поиску процессов и я периодически пользовался curl. Изучение супервизоров тоже применилось. С IPC вообще не сталкивался в работе. |
@olegromashin А в каком виде используете concurrency, прямо forkIO + MVar? Этого мало, да и небезопасно, надо знать про маски и эксепшены. У MVar есть свои приколы. |
Да.
Этого достаточно, чтобы хотя бы получить представление о том, что происходит и понимать код. От джуна это и требуется, таски на проектирование модуля с многопоточностью всё равно первому-второму джуну не достанутся. |
Validation я вроде давно уже предлагал перенести на первого джуна. Там как раз же есть вопрос типа "чем различаются аппликатив и монада", и там эта штука как раз бы отлично подошла в качестве примера того, как у аппликатива может не быть инстанса монады. Traversable, я считаю, должен идти вместе с Foldable - ибо описывают, в конечном счёте, одну абстракцию - "пройтись по всем элементам списка". |
Я считаю что ничего переносить не нужно, во-первых, потому, что темы полезны (согласен с аргументами выше о полезности), во-вторых потому что уровни сбалансированы сейчас больше, чем после предлагаемой перестановки. Законы для |
Это хорошее предложение |
@stanislav-az а что думаешь про удаление узкоспециализированных вопросов про линукс (поиск процесса по тому-сему, systemd, супервайзинг, IPC)? |
Поиск процесса реально полезная штука, не раз использовал. Часто процессы пытаются использовать один порт и что-то падает с непонятной (если не знать эту тему) ошибкой. systemd, супервайзинг тоже в принципе полезны, не редко использовал. IPC широкая тема, согласен с тем что можно вынести в отдельную опциональную тему и расширить, но в текущей версии же не требуется слишком глубоких знаний? |
Я тоже, но всегда в одном варианте
Глубоких не требуется, но это же не обоснование оставлять в обязательном списке. Оставлять нужно, если это знание приносит пользу. Мне не принесло (в работе, а не в качестве развлечения), но может кому-то из вас принесло. Про systemd и супервайзинг, значит, нужно, ок. |
Я считаю, что необходимы поверхностные знания IPC всё-таки. Они требуется когда сложный бекенд (для взаимодействия сервисов бека), или для взаимодействия фронта с беком (хотя такого я не встречал, но в принципе может и быть). Пример: у нас на блокчейн проектах взаимодейсвуют некоторые сервисы на беке (Plutus application backend) через сокеты. |
Спустя какое-то время после сдачи jun2 понимаешь, что многие темы оттуда или не пригодились, или пригодились в связи с другими темами на более высоких грейдах. Предлагаю их вырезать, переместить на грейды повыше или сделать опциональными.
Почти весь раздел по линуксу не пригодился. Хотя мне сложно оценить, я многие вещи оттуда знал, так что может и нужно оставить часть. Но вот в частности бесполезны:
restart
. Все это ищется в доках и статьях, ничего фундаментального тут нет, чтобы учить непременно на jun2.Юзеры, группы, rwx, .profile, env vars, man - можно оставить, это базовые знания для работы в линуксе. Чтобы например настроить стек, добавить в PATH путь поиска бинарей. Однако половину этих вопросов добавлял я, так что конфликт интересов.
Про Haskell:
Foldable &Traversable. Законы хороши, если пытаешься понять, каков их смысл. Я их скорее зазубривал, особенно это касается Traversable. Я бы или убрал, или добавил вопросы, почему законы именно такие и что они значат. Если же вам придет в голову написать необычный инстанс и не нарушить законы, вы знаете, где их найти.весь Traversable я бы перенес на мидла. Я проникся траверсаблом, почитав пейпер, но он сложноват для jun2, а без пейпера это, опять-таки, зубрежка какого-то мутного тайпкласса, который будешь применять максимум в рамках вызоваmapM
над списком/Maybe, но точно не реализацией нестандартного инстанса. На мидле начнутся линзы, и вот там Traversable точно пригодится. С траверсаблом можно унестиDeriveTraversable
.DerivingVia
лучше учить вместе сCoercible
и type roles, тема небольшая. Сделаем ее на мидле?многопоточку нам тимлид запрещает использовать :). Унести на мидла?forkIO
иMVar
это не вполне современный и безопасный подход для работы с многопоточкой, сюда надо и асинх. эксепшены, TVar, каналы,async
package.+ @olegromashin @olgaklimenko @kelizarov @stanislav-az @evgeny-osipenko @KateBushueva
The text was updated successfully, but these errors were encountered: