Skip to content

haskell jun2: упрощение #342

@antonkalinin-ml

Description

@antonkalinin-ml

Спустя какое-то время после сдачи jun2 понимаешь, что многие темы оттуда или не пригодились, или пригодились в связи с другими темами на более высоких грейдах. Предлагаю их вырезать, переместить на грейды повыше или сделать опциональными.

Почти весь раздел по линуксу не пригодился. Хотя мне сложно оценить, я многие вещи оттуда знал, так что может и нужно оставить часть. Но вот в частности бесполезны:

  • 15 способов поиска процесса. К тому же, легко гуглится и ищется в мане.
  • curl (ищется в мане). Я на проекте использовал только постман, намного удобнее.
  • inter-process communication. Но это хорошая теоретическая тема для общего развития, можно сделать опциональной.
  • process supervising узкоспециализированная штука, не пригодилось. Все команды systemd вылетели из головы, кроме restart. Все это ищется в доках и статьях, ничего фундаментального тут нет, чтобы учить непременно на jun2.

Юзеры, группы, rwx, .profile, env vars, man - можно оставить, это базовые знания для работы в линуксе. Чтобы например настроить стек, добавить в PATH путь поиска бинарей. Однако половину этих вопросов добавлял я, так что конфликт интересов.

Про Haskell:

  • Data.Either.Validation не понадобилось, хотя, кажется, один раз про него зашел разговор. Можно оставить в для ознакомления, можно убрать.
  • законы 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

Metadata

Metadata

Labels

backendRelated to back-end developer roadmap

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions