code quote

Sep. 9th, 2010 10:36 am
juan_gandhi: (Default)
[personal profile] juan_gandhi
  def process = session.getOrThrow(classOf[Model], id) updateFrom update view


That's production code in Scala

Date: 2010-09-09 05:56 pm (UTC)
From: [identity profile] rssh.livejournal.com
То есть вы все-таки продолжаете JPA ? Легаси или так правильно ?

// (Я вот как раз подбираю персистенце для следующего проекта, хочу что-то типа ScalaQuery или squeryl)

Date: 2010-09-09 06:41 pm (UTC)
From: [identity profile] ivan-gandhi.livejournal.com
Я в этом не участвую... что есть, то и пользую. В душе кипит что-то такое; но пока не готов оформить в виде. Частенько вижу, что нужны continuations, но целая картинка ещё не сложилась. Посмотрим...

Date: 2010-09-09 07:25 pm (UTC)
From: [identity profile] sorhed.livejournal.com
О, getOrThrow.

Date: 2010-09-13 10:11 am (UTC)
From: [identity profile] faceted-jacinth.livejournal.com
Мне тут сказали, что это эквивалентно

session.getOrThrow(classOf[Model], id).updateFrom(update).view

Вы там все пизданулись что ли?

И почему тогда не session getOrThrow(classOf[Model], id) updateFrom update view ? То есть если уж хочется, чтобы синтаксическую структуру кода было совершенно невозможно понять, не зная семантики, то почему не пойти до конца? Пиши слова подряд, компилятор признает своих разберётся, где аттрибьют аксесс, где вызовы унарных функций, а где их параметры! А если человек не озаботился запоминанием всего АПИ, то ему не нужно понимать код, пусть держится от него подальше, быдло этакое!

Date: 2010-09-13 02:43 pm (UTC)
From: [identity profile] ivan-gandhi.livejournal.com
У нас планка высокая. Можно не нервничать на эту тему, мы сами признаём своих. Чувствую себя очень комфортно, что не надо разъяснять всякую фигню.

Date: 2010-09-13 07:17 pm (UTC)
From: [identity profile] faceted-jacinth.livejournal.com
Я как-то не понимаю -- вы это серьёзно?

Вы пишете говнокод, для понимания которого нужно знать, что updateFrom принимает один параметр и поэтому update это и есть этот параметр, а вовсе не следующий метод в цепочке, и полагаете, что это не просто ОК, что это отлично? Типа, отсеивает всяких сосунков?

Хм. Казалось бы, это двадцатилетние программисты должны в ловушку clever code попадаться, ан нет. Впрочем, был же Mel, the Real Programmer (http://www.pbm.com/~lindahl/mel.html), прозреваю, впрочем, что не очень хорошо у него дальнейшая жизнь сложилась.

Алсо, кажется, Скала не позволяет вообще всё подряд писать, "session getOrThrow classOf[Model] id updateFrom update view"? Попросите их, чтобы сделали чтобы так можно было писать для любых неоверлоаднутых функций, не только для 1-арных. Очень няшно, совсем как Форт задом-наперёд. Твёрдая гарантия того, что "не свои" к вам на работу не придут.

Date: 2010-09-13 09:14 pm (UTC)
From: [identity profile] ivan-gandhi.livejournal.com
one man's garbage is another man's treasure

Не нравится код? Не беда, есть много разных контор.
Есть же такой язык Хаскель, там скобок мало - но ничего, пишут и на Хаскеле.
Этот код скальщик читает без затруднений. Но он написан не для того, чтобы чужих отпугивать. Написан он ради удовольствия. Мне лично это кажется красивым. Да, я много писал на Форте, и до сих пор его люблю. Да, я знаю, "нормальные программисты" форт не воспринимают. Ну вот я лично Лисп не воспринимаю - так и не работаю в лисповых конторах.

На самом деле у меня в Гугле были проблемы с коллегами, когда я функционально писал. Типа Бобу Ли да Кевину Бурийону можно было писать, а всякому там мне - нет. Коллеги не поймут. Да и хер с ними, с коллегами; я нашел себе таких, с которыми у меня общий язык.

Короче, не горюйте; каждый себе может найти, при желании и старании, удобную тёплую нишу.

Date: 2010-09-13 09:40 pm (UTC)
From: [identity profile] faceted-jacinth.livejournal.com
Да я же не о нише и не о языках, очнись, чувак!

В Хаскеле нет такого пиздеца! Глядя на хаски-код всегда можно понять, где функции и к чему они применяются!

А тут -- ну в миллион раз хуже плюсов же! Там компилятор глючит потому что ему для синтаксического разбора нужно заранее знать, что есть функция, а что есть тип, например.

А тут! А тут! Тут программиста глючит! Ну говноязык, раз позволяет писать такой код, но зачем же его писать, это же вы виноваты, что его такой написали!

Я опять не понимаю. Ну вот вы на этот код через полгода посмотрите -- вы сразу поймёте, что updateFrom есть унарная функция и следующее слово есть её аргумент, а вовсе не следующий вызов в цепочке? КАК ЭТО ВООБЩЕ МОЖНО СРАЗУ ПОНЯТЬ?! Откуда я смотрю -- никак, если не быть этим Mel the Real Programmer, который точно знает, какие имена у него унарные функции, какие -- без параметров, всё такое.

Ну нельзя такой код писать, нельзя. Монды, хуёнды, стрелки -- да вперёд, но не такой код.

Вот вы прямо сейчас встали в моём восприятии окружающих программистов ровно рядом с полгода как покойным дельфи-кодером, с кодом которого я ебусь как проклятый, который тоже такой, "все программисты, которые не могут запомнить, что Form12.Edit3 содержит пароль юзера, сосут, мне очень нравится, что не нужно им ничего объяснять"

Date: 2010-09-13 11:24 pm (UTC)
From: [identity profile] ivan-gandhi.livejournal.com
(revoked)
Edited Date: 2010-09-14 07:29 am (UTC)

Date: 2010-09-13 10:02 pm (UTC)
From: [identity profile] faceted-jacinth.livejournal.com
То есть я вот к чему:

Бывают чуваки, которые не понимают синтаксис языка и им влом его изучать. To Hell with them!

Бывают чуваки, которые не понимают продвинутых вещей вроде монд и моноидов и им влом это изучать. To Hell with them!

Бывают чуваки, которые не знают, что у вас updateFrom -- унарная функция, а view -- проперти. To Hell with YOU then! Нельзя писать код, для понимания которого нужно это знать!

Date: 2010-09-13 11:27 pm (UTC)
From: [identity profile] ivan-gandhi.livejournal.com
Ну идиомы-то тоже нужно учить. В перле, к примеру, программисты делятся на тех, кто непринужденно применяет Schwartzian Transform, и которые ни хера не понимают, какая сволочь пишет такой бред.

Date: 2010-09-14 09:24 am (UTC)
From: [identity profile] migmit.livejournal.com
А вот соглашусь.

Одна из проблем, за которые часто пинают C++ - там непонятно, что у вас обозначено вот этой вот буквой - тип или значение? Здесь ИМХО аналогичный ляп.

Date: 2010-09-14 02:15 pm (UTC)
From: [identity profile] ivan-gandhi.livejournal.com
Венгерская нотация поможет? Чтобы узнать, что обозначено этой буквой, длинный указатель на строку с нулём в конце или линк на страницу сиэтлского зоопарка?

Date: 2010-09-14 04:31 pm (UTC)
From: [identity profile] migmit.livejournal.com
Это которая char **m_pszName; ? За неё C++ тоже матерят, не так много, но столь же правильно.

Profile

juan_gandhi: (Default)
Juan-Carlos Gandhi

August 2025

S M T W T F S
      12
3456789
10 11 12 13141516
171819 20212223
2425 2627282930
31      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Aug. 28th, 2025 01:18 pm
Powered by Dreamwidth Studios