Re: Как оценить простоту кода?
От: vsb Казахстан  
Дата: 10.06.20 08:11
Оценка: +2 -1
Я считаю, что простой код это такой, который может читать с достаточно большой скоростью человек, не очень хорошо знающий целевой язык. Некий джуниор, скажем так, который потратил условный месяц на изучение языка, основные конструкции выучил, а экзотические — нет.

Ещё надо различать понятия "проще писать" и "проще читать". Код может быть просто написать, но потом прочитать его может быть сложно (в том числе автору после того, как контекст из мозгов выпал через некоторое время). В этом плане на Scala может быть проще писать, но вот читать — не факт. Хотя определённый код вроде манипуляции деревьев, там, где хорошо заходит паттерн-матчинг, действительно может получиться компактней и проще на Scala.

Мне на Scala нравилось писать в стиле Java++. Т.е. пишем не выпендриваясь и из Scala-фич используем только те, которые очевидно работают и явно экономят код. Но программисты на Scala любят писать в стиле Haskell--, поэтому я на Scala перестал писать, как только появился Kotlin.

Что касается функциональщины, то определённый код действительно проще выглядит в функциональном стиле. В первую очередь это обработка коллекций, причём такая, которая выглядит как последовательность простых функциональных вызовов вроде filter, map и т.д. Монады я на Java пока не видел, слава богу. В целом тут лично я придерживаюсь консервативных взглядов и избегаю функционального кода, применяя его только там, где он даёт очевидное преимущество. Если очевидного преимущества нет, пишу в императивном или в ООП-стиле.

А ещё бывает ситуация, когда код вроде как становится проще для чтения. Например когда переделывают из коллбек-хелла в async-стиль, например на JavaScript. Но по факту та же конструкция async, хоть и выглядит простой, но несёт в себе нетривиальную реализацию и желательно это осознавать. В коллбек-хелле хотя бы всё явным образом видно.
Отредактировано 10.06.2020 8:14 vsb . Предыдущая версия . Еще …
Отредактировано 10.06.2020 8:12 vsb . Предыдущая версия .
Отредактировано 10.06.2020 8:11 vsb . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.