Roman
Был у меня опыт. Пытались договориться, долго долго пиздели о том, как надо делать. Просто ориентиры фундаментально разные. Им было важно, чтобы пустые строчки стояли где надо, и чтобы нейминг соответствовал каким-то странным стандартам. А мне было важно, чтобы нейминг был говорящий, взаимодействия явные и модульность нормальная. Так и не смогли договориться
Shub
в инженерной дисциплине существуют критерии оценки качества. вполне конкретные
Vasily
Beauty is in the eye of the beerholder
If u think u see beauty, maybe you are drunk already
Shub
В теории да.
пойди попробуй сдай в эксплуатацию дом, который не проходит инспекцию. или выпусти автомобиль, в котором софт не проходит критерии MISRA
Shub
Да я ж не спорю
то есть критерии все же есть? стало быть, нам надо определиться с критериями для кода
Hog
737 MAX
Shub
737 MAX
и что не так с софтом в этом самолете?
Vasily
1. Быстродействие
Vasily
2. Легкость к внесению преднамеренных изменений
Shub
Ты чо, правда не слышал?
не слышал. слышал, что там системы странно работали, но про софт ничего не было
Vasily
3. Устойчивость к внесению непреднамеренных изменений
Vasily
4. Соответствие результата работы заявленному функционалу
Hog
не слышал. слышал, что там системы странно работали, но про софт ничего не было
ничо, что говорят, что проблема будет решена апдейтом софта?
Shub
ничо, что говорят, что проблема будет решена апдейтом софта?
говорят, что кур доят. когда решат апдейтом софта - тогда посмотрим. в любом случае, это одна система из сотен, остальной же софт нормально работает
Shub
4. Соответствие результата работы заявленному функционалу
насчет 1 можно подискутировать, но в целом хорошие критерии
Shub
добавим еще 2
Shub
5. Идеоматичное выражение целей и задач относительно выбранного языка
Vasily
Да, согласен
Vasily
Идиоматичное только
Shub
6. Код легко понимаем другими инженерами без особых усилий
Vasily
Дык вот
Shub
Идиоматичное только
чтобы не было “программист на фортране может писать код на фортране на любом языке"
Vasily
п.п. 5 и 6 уже сильно зависят от среды, в которой код пишется
Shub
А вот эта хуерга на C# - это идеоматичечно?
это надо спросить у тех, кто пишет на C#
Shub
п.п. 5 и 6 уже сильно зависят от среды, в которой код пишется
для простоты положим, что это Visual Studio на win
Shub
популярная среда
Roman
а аргументы у него были?
Aleksandr
Это устоявшеяся тема
Viacheslav
а аргументы у него были?
ну типа это вообще не понятно для него
Hog
а на F# - польку :) let a = (+) 2 2
Hog
а не... полька - наоборот же :(
Aleksandr
На хаскелле можно же написать так? 2 `(+)` 2
Vasily
для простоты положим, что это Visual Studio на win
Под средой я имел несколько другое
Shub
это очевидно. сейчас мы опять вернемся к “люди бывают разные”
Hog
вот - полька :)
Aleksandr
Ну так на f# можно
Vasily
это очевидно. сейчас мы опять вернемся к “люди бывают разные”
Ты от меня хочешь оценочных суждений, но мне их давать сложно
Shub
Ты от меня хочешь оценочных суждений, но мне их давать сложно
я не чаньский патриарх, бить бамбуковой палкой не буду
Shub
Секиро научило меня парировать
нет никакой палки, это иллюзия в твоем разуме, что ты собрался парировать?
Viacheslav
let a = (2, 2) ||> (+)
let leftApply a b f = f a b let a = leftApply 2 2 (+) считается?
Shub
в общем, в ситуации “все мы разные” и когда никто не пытается хотя бы минимально организовать практики - код проваливается по абсолютно всем критериям, которые мы перечислили
Shub
то есть, отсутствие читаемости там просто вишенка на торте
Vasily
На проекте обычно действует правило "один из игроков назначается ведущим и привязывается к стулу"
Shub
т.к. как ты собрался обеспечивать №2, если на понимание кода ты тратишь полдня и по факту работаешь белковым компилятором?
Vasily
т.к. как ты собрался обеспечивать №2, если на понимание кода ты тратишь полдня и по факту работаешь белковым компилятором?
Здесь вариант, что я попал в чужеродную среду, где мне плохо. Или тот, кто писал этот код, находится в чужеродной среде, и ему плохо
Shub
однако это не повод писать херовый код
Vasily
однако это не повод писать херовый код
Скорее это не повод не договариваться об определенных правилах, что считать хорошим, а что плохим
Shub
Скорее это не повод не договариваться об определенных правилах, что считать хорошим, а что плохим
а ты посмотри внимательно на свои критерии, и обрати внимание, что если код соответствует хотя бы 4м - это как правило читаемый код
Shub
если не вообще *всегда* читаемый код
Shub
причем “быстродействие” мы не определили конкретно, поэтому хватит даже 3
Vasily
если не вообще *всегда* читаемый код
Обычно да. Я в данном случае обычнообращаю внимание на то, насколько мне приходится изобретать искусственные приемы, чтобы работать в заданной парадигме
Vasily
И если в коде, например, дохуя опшнов
Vasily
То что-то идет не так
Vasily
Если мне в голову начинают лезть мысли про maybe
Shub
и вот тут мы находимся буквально в одном шаге от диалектического синтеза
Vasily
и вот тут мы находимся буквально в одном шаге от диалектического синтеза
А ты не такой уж мерзкий старикан, каким хочешь казаться
Vasily
На самом деле в коде всегда работает принцип "все гениальное - просто"
Shub
если ты смог определить, что в “коде дохуя опшонов” - это значит, что код настолько легко читается, что ты смог рассмотреть более крупный план
Shub
вопрос одаренности выше среднего мы пока не рассматриваем, чисто ради простоты
Vasily
Могу тебе ответить в нарцисстическом ключе
Shub
На самом деле в коде всегда работает принцип "все гениальное - просто"
угу. теперь дострой цепочку до “просто - значит легко читается, стало быть хороший код - читаем”
Vasily
угу. теперь дострой цепочку до “просто - значит легко читается, стало быть хороший код - читаем”
Достроил. И можно пойти дальше и сделать утверждение про искусственные артефакты в коде