Previous Entry Share Next Entry
photo25

Просуммирую (репост)

Оригинал взят у jakobz в Просуммирую
Кинули линкой классное выступление:
http://www.youtube.com/watch?v=9LfmrkyP81M&t=10

Главное что я вынес с этого - что хоть один толковый чел открыто сказал что вот этот психологический трюк "ваш код - говно", юзается повсеместно.

Никакой код не является говном просто так, по форме и в вакууме. Код, успешно решающий задачу - уже не говно. Похеру на чем и как он написан. Если он решает задачу - он уже лучше 90% другого кода. Если он при этом еще и понятен людям того же примерно уровня, при наличии бутылочки, то он уже лучше 96% существующего в мире кода.

Главное что в этой галимой системе не надо делать молодым специалистам - это вестись на разводы уровня "красные платья до колен вышли из моды 5 лет назад". Работает - идите нахер. Не можете понять - сходите поучитесь читать чужой код. Не по формату написано - так у вас, блядей, мода меняется каждый год. Не можете читать немодный код - идите нахуй их профессии. Не можешь организовать разработку без фашизма - десяти абстрактных слоев, правил где писать if, и прочего - значит не программисты плохие, а ты - говно как менеджер.

В конце-концов чтобы понять красоту - надо прочесть минимум в 10 раз больше, чем написать самому. Не прочитал в 10 раз больше кода чем написал - иди нахуй со своей вкусовщиной, ты же чмо и лох в поэзии.

Код который работает и делает что должен делать - это уже верхние 10%. Выкиньте уже эти навязанные книгами и модой комплексы неполноценности.


  • 1
juan_gandhi March 10th, 2015
Справедливо.

Но ведь люди частенько хотят взмывать и повелевать.

С другой стороны, вот функцию f(f(x))=-x он не будет пытаться нарисовать не потому, что математику знает, а потому, что умеет обходить непонятное.

Edited at 2015-03-10 09:53 pm (UTC)

_winnie March 10th, 2015
А у этой функции (задачи) есть какое-то название? Вообще,

def f(x): 
   return x * 1j #умножение на комплексную мнимую единицу


Edited at 2015-03-10 10:10 pm (UTC)

juan_gandhi March 10th, 2015
Ну я, конечно, имел в виду функцию на INT32 (ну или INT64). С комплексными понятно. Кстати, можете попробовать и с вещественными типа Double, может получиться.

Выкиньте уже эти навязанные книгами и монадами компле

_winnie March 11th, 2015

Код, успешно решающий задачу:
int f(int x) {
    static int y;
    int z = y;
    y = x;
    return -z;
}

Re: Выкиньте уже эти навязанные книгами и монадами комп

juan_gandhi March 11th, 2015
So, what's the value of f(1)?

println(f(1))
oh, it's 0

println(f(1))
oh, it's -1

Are you sure you are a programmer?

ti_ua March 10th, 2015
Ну к чести сказать, бывает реально говнокод. И то, что он решает какую-то задачу, иногда чудо и пследствие удачного расположения звезд на небе :)
Хотя, как говорил один из моих руководителей, если задача решена, то есть о чем говорить, если задача не решена, то говорить не о чем.

fas_tm March 10th, 2015
хорошо. удваиваю.

amarao_san March 10th, 2015
Это один из экстримизмов. Но бывает и другой - когда созерцаешь-созерцаешь и не понимаешь, как оно вообще может работать.

slonopotamus March 11th, 2015
Еще хуже вопрос "как оно вообще могло работать" в ситуации, когда обнаруживается, что что-то сломано и причем неизвестно насколько давно.

109 March 10th, 2015
как будто код "должен делать" всё время одно и то же. если requirements не меняются, чего никогда не бывает, то разговаривать про код бессмысленно, вам достаточно бинарника. если же они меняются, то важно уже не как он делает то, что требуется в момент T0, а насколько легко его поменять на то, что требуется в момент T1.

juan_gandhi March 10th, 2015
Вот. Спасибо.

Код, которые не рефакторится - дохлый код. Некоторое время он летит по инерции.
Ну или если не особо надо.

Слушаю этого чудика. Ну ведь на руби, надеюсь, пейсмейкеры программировать не будут. Он живет в особой нише. Примерно как бухгалтеры на 1с.

jakobz March 10th, 2015
Ну, я бы сказал что ниша, отличная от "примерно как 1С" - она скорее исключение в нашей профессии. Мы тут все скорее переводчики стихов с китайского на удмуртский, нежели математики и физики.

juan_gandhi March 10th, 2015
Я не в курсе. Никогда там не был, снаружи.

vinslivins March 11th, 2015
это отличное сравнение - руби и рельсы очень похожи на 1с.
и я стал задумываться, а бывает ли не 1с вообще? и в чем вообще недостатки 1с, когда это сплошные плюсы - платформа для решения задач "сделайте мне сайт, магазин, или систему бронирования билетов, или работу с клиентами" - то, что решают большинство программистов на Java и C#, только эм.. 'гипервербозно'

jakobz March 10th, 2015
Так я немного не о том.

С одной стороны качество кода - не померить. Как не померить качество документации, как не померить качество стихов. Оно очень субъективно.

С другой стороны - вылезают шарлотаны и начинают давить: "твой код говно, потому что там каментов мало". Или "твой код говно потому что мне лениво было читать". И "пиши не более трех строк на метод, юзай паттерны, обволакивай все ООП, покрывай тестами даже безумно глупые вещи - потому что формально будет недокопаться". И это вот - строится на формализации "говнокода". Поэтому нельзя формализовывать понятие плохого кода - страх написать то, что может формально считаться говнокодом, становится инструментом шарлотанов, продающих серебряные пули.

109 March 10th, 2015
чтобы прямо вот такой тул - ты ему код, а он тебе цифру "степень говнистости 42" - да, такого тула я не знаю. но базовую концепцию, которую я изложил, можно развить, экстрагируя оттуда дополнительные детали.

например, чтобы код было легко менять, он должен быть что?

readable. unreadable код - писатель хуёвый (а не читатель читать не умеет). до сих пор вздрагиваю, вспоминая код старика Крупского.

ещё что? dependencies должны быть manageable, а не так, как обычно - ничего нельзя отреюзать, потому что А использует Б, Б использует В из совершенно другого проекта, Г несовместимой версии и Д, которое вообще не компилируется.

readability, в свою очередь, можно раскрыть дальше - это не только стиль и комменты, но и использование общеизвестных паттернов правильным образом в нужных местах, а не изобретание велосипеда каждый раз.

короче, мужик, ты понял.

max630 March 11th, 2015
Вообще название конференции намекает. Это ведь тот самый язык, для которого не существует официальной спеки, а восстановленную из реализации сторонними энтузиастами авторы регулярно нарушают и говорят что так и надо, да?

wizzard0 March 11th, 2015
Да, тот.

sorhed March 11th, 2015
Вы так говорите, как будто это что-то плохое.

max630 March 11th, 2015
это потому что это и есть что-то плохое

sorhed March 11th, 2015
Есть только один нормальный язык, который начинался со спеки — Haskell. Ко всем остальным спека была привинчена постфактум.

_winnie March 11th, 2015

Это значит, что язык всегда требует привлекать "живую силу" для какой-то работы с кодом:

* проверить факт о коде (найти баги)
* отрефакторить
* транслировать (в JavaScript)
* сделать альтернативную реализацию интерпретатора (оптимизированую)

Очень сложно поручить это роботу (IDE, коммит-хукам, ...), без ложных срабатываний, если нет четкого описания языка.





sorhed March 11th, 2015
> Не прочитал в 10 раз больше кода чем написал - иди нахуй со своей вкусовщиной, ты же чмо и лох в поэзии.

Exactly.

max630 March 11th, 2015
В общем, я послушал половину, и мне не нравится этот тип. Фактически, он утверждает, приводя откровенную демагогию как аргументы, что учится вообще не надо.

Прослушал. Резюме...

gineer March 14th, 2015
В программировании не существует заменителей разума, опыта и вкуса. (С) Б. Страуструп

  • 1
?

Log in

No account? Create an account