"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете."
автор известен, и я с ним полностью согласен, и как не странно следовать этому принципу сложнее чем кажется, но надо стараться.
vaa>Если буквально, нужен человек который ничего сложнее 2 + 2 не умеет?
Умеет, но не хочет.
Скорее всего это завуалированная формулировка примерно такого требования: "понимание важности таких характеристик кода, как читабельность, сопровождаемость и легкость модификации (в т.ч. другими людьми), и умение писать код, обладающий этиим характеристиками". Но чтобы не писать много букв — пишут кратко "простой код".
Здравствуйте, ononim, Вы писали:
O>О кстати, ты походу в теме, а чем отличается слово 'кринжовый' от 'криповый'?
кринжовый — вызывающий стыд и неловкость — то, что вызывает у тебя (наблюдателя) стыд и неловкость (часто за другого, а-ля "делает он, а стыдно мне")
пример: батя в школе рассказал кринжовый анекдот (анекдот настолько был нелеп и не к месту, что было стыдно за батю)
пример 2: мы с друзьями смотрели вчера кринжовый фильм (актёры настолько бездарно играли и/или сцены были настолько нелепые, что было стыдно нам, зрителям)
криповый — вызывающий страх, жуткий (в основном по отношению к непознаным/мистическим явлениям)
пример: на хеллоуин у него была криповая маска (вызывающая неподдельный страх маска)
пример 2: сегодня опустился туман и вокруг была крипота (вокруг всё выглядело жутким)
Здравствуйте, Ночной Смотрящий, Вы писали:
НС>Здравствуйте, vaa, Вы писали:
vaa>>Если наниматель не может понять мой код, то может это в нем проблема.
НС>Как только мы выходим за рамки команды в 1 человека это уже проблема в тебе.
можно даже если один все сам писал и возращаешся к своему коду через полгода и вдруг тяжело понять что он делает, то это тоже звоночек
Здравствуйте, Bill Baklushi, Вы писали:
УК>>кринжовый — вызывающий стыд и неловкость — то, что вызывает у тебя (наблюдателя) стыд и неловкость УК>>криповый — вызывающий страх, жуткий (в основном по отношению к непознаным/мистическим явлениям) BB>А почему бы сразу по-русски не говорить?
Здравствуйте, vaa, Вы писали:
vaa>Здравствуйте, Wawan, Вы писали:
W>>"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете." W>>автор известен, и я с ним полностью согласен, и как не странно следовать этому принципу сложнее чем кажется, но надо стараться.
vaa>Согласен частично. В первую очередь код должен быть рабочим. правило трех версий.
а комуто нужен нерабочий код ? зачем такое состояние кода вабще рассматривать
Здравствуйте, vaa, Вы писали:
vaa>Если наниматель не может понять мой код, то может это в нем проблема.
Если наниматель не может понять твой код, а Васин — может, причём по остальным параметрам оба варианта его удовлетворяют, то это твоя проблема.
vaa>Сложная задача по определению предполагает чуть более сложный код чем приветмир.
Не предполагает. Любая сложная задача декомпозируется на простые. Бывает, что простой код в комплексе оказывается сложней, чем априори сложный код (сорри, написано заумно, но, думаю, понятно, что я имею в виду). Но это скорей редкость. И, скорей всего, просто не смогли найти нужный подход к декомпозиции. И в этом на самом деле нет ничего плохого, т.к., имхо, действительно простой код на деле, а не на словах, умеют писать далеко не все. Я к этому стремлюсь, но обычно у меня получается условно приемлемо с третьего переписывания, когда уже задача вся в голове уложилась и видны лучшие подходы. А так, чтобы с первого раза написать так, как у меня получается с третьего, ну у меня не получается. У кого-то, наверное, голова способна просчитать всё на 20 ходов вперёд и сразу найти этот третий вариант. Ну и понятно, что обычно времени на три переписывания никто не даёт, поэтому остаётся переусложнённый первый вариант.
Зашел на ХэХэ оценить востребованность nemerle и зацепился взглядом за требования(нет, я работу не ищу). "Умение писать простой код"
Что это вообще такое?
Вот я напишу 2 + 2
это простой код.
Но для меня.
А для уборщицы тети зины он будет сложным.
И ведь такое требование очень часто встречается.
Если буквально, нужен человек который ничего сложнее 2 + 2 не умеет?
M>Или который умеет вместо сложного кода писать простой...
Этих людей в большинстве мест можно пересчитать по пальцам одной руки.
Человек, способный упростить код (вместо его усложнения) — редкий и очень ценный специалист.
Здравствуйте, blacktea, Вы писали:
B>Здравствуйте, vaa, Вы писали:
vaa>>Если буквально, нужен человек который ничего сложнее 2 + 2 не умеет?
B>Ребята, мне одному кажется это сообщение дико кринжовым или это какая-то новая форма троллинга?
стыдно признаться, но да, немного троллинга, просто хочу чтобы программистская братия була чуточку веселей.
— Умное лицо — это ещё не признак ума, господа.
Все глупости на земле делаются именно с этим выражением лица.
Улыбайтесь, господа. Улыбайтесь!
Здравствуйте, vaa, Вы писали:
vaa>Если наниматель не может понять мой код, то может это в нем проблема.
Как только мы выходим за рамки команды в 1 человека это уже проблема в тебе.
vaa>Сложная задача по определению предполагает чуть более сложный код чем приветмир.
Тем не менее даже у сложной задачи есть решения проще и сложнее. Нужно уметь выбирать максимально простое.
vaa>Ну и способность решать нестандартные задачи (творческие мышление).
Всему свое место, в том числе и творчеству. Творчество в филигранной резке по коду не только не нужно, но и вредно.
vaa>Некоторые способны решить задачу только если изучили шаблонный способ ее решения.
Если есть хорошо работающий шаблонный способ — нужно использовать его. Если есть хорошее готовое решение — не нужно писать свое. Вроде элементарные вещи, не?
Здравствуйте, SkyDance, Вы писали:
SD>Идиоматический — это как именно? Как того требует конкретный код ревьювер?
Хороший на самом деле вопрос, я бы больше склонился к тому, чтобы идиоматично было относительно окружающего кода в первую очередь. А во вторую, уже относительно ЯП и принятых в компании соглашений.
SD>Но вот что точно является плюсом, так это лаконичность (при прочих равных, 5 строк кода понять проще, чем 20).
А вот тут не соглашусь. Иногда можно написать в 5 строк лаконично, но довольно сложный для понимания код, что проще было бы расписать все это в 20 строк так, что тот кто увидя этот кусок сразу понял, а не репу чесал над 5 заумными строчками.
Здравствуйте, SkyDance, Вы писали:
SD>Но вот что точно является плюсом, так это лаконичность (при прочих равных, 5 строк кода понять проще, чем 20).
Нет.
Можно так утрамбовать в 5 строк что 20 будут на порядки понятнее.
Простота это не когда мало буковок.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
SD>>Но вот что точно является плюсом, так это лаконичность (при прочих равных, 5 строк кода понять проще, чем 20). CC>Можно так утрамбовать в 5 строк что 20 будут на порядки понятнее.
Учу читать. Дорого. Выделенные места.
Языки высокого уровня с их прекрасной выразительностью получились не на пустом месте.
Да, _МОЖНО_ написать 10 более понятных строк, чем 5 менее понятных. Но в общем случае 5 строк мозгу охватить проще.
Здравствуйте, vaa, Вы писали:
vaa>И ведь такое требование очень часто встречается.
Я бы на самом деле дополнял тем, чтобы человек умел писал идиоматический код. А то часто встречаются люди, которые в проекте на современных плюсах пишут так, будто знают только обычный Си.
Здравствуйте, vaa, Вы писали:
НС>>Если есть хорошо работающий шаблонный способ — нужно использовать его. Если есть хорошее готовое решение — не нужно писать свое. Вроде элементарные вещи, не? vaa>Все так. Я лишь хотел сказать что фраза "простой код" ни о чем ни говорит.
Тем кто в теме — очень даже говорит, чему наглядное подтверждение этот топик. А то что тебе лично это ни о чем не говорит свидетельствует только о малом твоем опыте командной разработки.
vaa>Любой код может по началу казаться излишне сложным, по мере погружения он становиться проще.
Вот только погружение, образно, стоит денег. И чем глубже нужно погружаться для понимания, тем дороже обходится такой код. Андерстенд?
Здравствуйте, vaa, Вы писали:
vaa>"Умение писать простой код" vaa>Что это вообще такое?
В моём понимании, когда простые задачи решаются простыми средствами (а сложная задача по-любому распадается на простые). Противоположность этому — лемминги, которые прочитали GoF и пошли херачить по 50 фабрик на один простой хэлловорлд! Overengineering, можно даже сказать. Ещё атас, когда вместо 20 простых строк пишут 5 непростых. А потом сами же через полгода не могут понять собственную галиматью — всё потому, что пытаются писать "кратко" вместо "понятно".
Я бы сказал это умение писать простой код для реализации простых вещей. Потому что если не уметь реализовывать простые вещи простым кодом, то сложные вещи толком реализовать вообще не получиться..
Как много веселых ребят, и все делают велосипед...
Здравствуйте, Privalov, Вы писали:
P>Здравствуйте, vaa, Вы писали:
vaa>>Вот я напишу 2 + 2
P>Некоторые умудряются написать 2 + 2, или вообще Hello, World так, что без бутылки не разобраться.
по аналогии с ездой на велосипеде. если не умеешь, кажется сложно. научился и понимаешь что это просто.
vaa>>Если буквально, нужен человек который ничего сложнее 2 + 2 не умеет? B>Ребята, мне одному кажется это сообщение дико кринжовым или это какая-то новая форма троллинга?
О кстати, ты походу в теме, а чем отличается слово 'кринжовый' от 'криповый'?
Как много веселых ребят, и все делают велосипед...
Здравствуйте, Privalov, Вы писали:
P>Здравствуйте, vaa, Вы писали:
vaa>>Вот я напишу 2 + 2
P>Некоторые умудряются написать 2 + 2, или вообще Hello, World так, что без бутылки не разобраться.
Тут с какой стороны посмотреть.
Если наниматель не может понять мой код, то может это в нем проблема.
Сложная задача по определению предполагает чуть более сложный код чем приветмир.
Знания и умения вот что действительно ценно.
Ну и способность решать нестандартные задачи (творческие мышление).
Некоторые способны решить задачу только если изучили шаблонный способ ее решения.
Здравствуйте, SkyDance, Вы писали:
M>>Или который умеет вместо сложного кода писать простой... SD>Этих людей в большинстве мест можно пересчитать по пальцам одной руки.
Вопрос подбора людей. У меня в командах почти все такие (ну разве кроме пары мидлов, но они быстро учатся).
НС>Если есть хорошо работающий шаблонный способ — нужно использовать его. Если есть хорошее готовое решение — не нужно писать свое. Вроде элементарные вещи, не?
Все так. Я лишь хотел сказать что фраза "простой код" ни о чем ни говорит.
Любой код может по началу казаться излишне сложным, по мере погружения он становиться проще.
Но только для того кто его понимает.
Здравствуйте, Wawan, Вы писали:
W>"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете." W>автор известен, и я с ним полностью согласен, и как не странно следовать этому принципу сложнее чем кажется, но надо стараться.
Согласен частично. В первую очередь код должен быть рабочим. правило трех версий.
vaa>>Согласен частично. В первую очередь код должен быть рабочим. правило трех версий. W>а комуто нужен нерабочий код ? зачем такое состояние кода вабще рассматривать
Логично, уточню. Лучшее враг хорошего. Вопрос времени, а оно как известно деньги.
Бизнес-приложению важно первым выйти на рынок.
Просто работает быстрее, чем + простой код, который требует дополнительного времени.
W>"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете." W>автор известен, и я с ним полностью согласен, и как не странно следовать этому принципу сложнее чем кажется, но надо стараться.
Разве менеджеры сопровождают код?
O>>О кстати, ты походу в теме, а чем отличается слово 'кринжовый' от 'криповый'? УК>кринжовый — вызывающий стыд и неловкость — то, что вызывает у тебя (наблюдателя) стыд и неловкость (часто за другого, а-ля "делает он, а стыдно мне")
А ну действительно статьи объяснялки уже появились, а то на заре зарождения термина нихрена не было понятно, а применялось оно частенько со смыслом страшно. А получается, кринж, это вот:
Как много веселых ребят, и все делают велосипед...
Умака Кумакаки:
УК>кринжовый — вызывающий стыд и неловкость — то, что вызывает у тебя (наблюдателя) стыд и неловкость УК>криповый — вызывающий страх, жуткий (в основном по отношению к непознаным/мистическим явлениям)
А почему бы сразу по-русски не говорить?
Модератор-националист Kerk преследует оппонентов по политическим мотивам.
НС>Вопрос подбора людей. У меня в командах почти все такие (ну разве кроме пары мидлов, но они быстро учатся).
У нас, думается, разное представление о красоте, простоте и лаконичности. Чтобы код был красив и понятен, он должен быть переписан и упрощен раза так 3, а то и 5, или даже больше. Даже если проект некоммерческий, это должно быть что-то очень важное и ключевое. Писать же такой код всегда попросту нереалистичные ожидания.
B>Я бы на самом деле дополнял тем, чтобы человек умел писал идиоматический код.
Идиоматический — это как именно? Как того требует конкретный код ревьювер?
Для многих языков, где действительно есть идиоматический способ писать тот или иной компонент, и то находятся разные стили идиоматичности. Порой даже создатели языка занимают разные позиции на тему идиоматичности тех или иных конструкций.
Но вот что точно является плюсом, так это лаконичность (при прочих равных, 5 строк кода понять проще, чем 20).
B>Хороший на самом деле вопрос, я бы больше склонился к тому, чтобы идиоматично было относительно окружающего кода в первую очередь. А во вторую, уже относительно ЯП и принятых в компании соглашений.
Иными словами, код должен быть ужасен. Потому что почти всегда "окружающий код" появился как "новый проект, надо успеть быстрее конкурентов, поэтому не до стиля". Вот уж поистине самый неудачный выбор. Начальный код очень редко бывает написан хорошо.
B>А вот тут не соглашусь. Иногда можно написать в 5 строк лаконично, но довольно сложный для понимания код, что проще было бы расписать все это в 20 строк так, что тот кто увидя этот кусок сразу понял, а не репу чесал над 5 заумными строчками.
Иногда могут быть исключения. Я же говорил про общий случай. Не просто же так появляются языки все более и более высокого уровня. Не на пустом месте возникает ФП и прочие варианты снижения "многабукаф" до разумного количества.
Здравствуйте, SkyDance, Вы писали:
НС>>Вопрос подбора людей. У меня в командах почти все такие (ну разве кроме пары мидлов, но они быстро учатся). SD>У нас, думается, разное представление о красоте, простоте и лаконичности. Чтобы код был красив и понятен, он должен быть переписан и упрощен раза так 3, а то и 5, или даже больше.
Ты подменил тезис об умеющих писать простой код людях на тезис об уже написанном максимально простом коде. Зачем?
Здравствуйте, vaa, Вы писали:
vaa>Если наниматель не может понять мой код, то может это в нем проблема.
Здесь надо вспомнить, что код пишется не только шоб работал, а еще и для того, что бы его понял наниматель или его представитель, а также и человек, который будет работать после тебя.
SD>>У нас, думается, разное представление о красоте, простоте и лаконичности. Чтобы код был красив и понятен, он должен быть переписан и упрощен раза так 3, а то и 5, или даже больше. НС>Ты подменил тезис об умеющих писать простой код людях на тезис об уже написанном максимально простом коде. Зачем?
Это обвинение беспочвенно. Ты заявил про то, как много у вас людей, которые умеют писать простой (в понятии этого треда) код. Но простой код как правило есть результат многократного упрощения (чаще всего в ходе переписывания). Что редко встречается в подавляющем большинстве команд.
Возможен вариант, что ты работаешь где-то, где существуют определенные требования к коду (скажем, его верифицируемость). В таком варианте могу допустить, что значительная часть ваших инженеров и в самом деле пишет простой код. Но это крайне нетипичный случай.
Здравствуйте, SkyDance, Вы писали:
SD>Это обвинение беспочвенно. Ты заявил про то, как много у вас людей, которые умеют писать простой (в понятии этого треда) код.
Да.
SD> Но простой код как правило есть результат многократного упрощения (чаще всего в ходе переписывания).
SD>> Но простой код как правило есть результат многократного упрощения (чаще всего в ходе переписывания). НС>Да. Где противоречие?
В следующей же строке на него указано:
"Возможен вариант, что ты работаешь где-то, где существуют определенные требования к коду (скажем, его верифицируемость). В таком варианте могу допустить, что значительная часть ваших инженеров и в самом деле пишет простой код. Но это крайне нетипичный случай."
Позвольте поинтересоваться, что же это за такое заведение, где большинство могут писать простой код? Мне пока ни разу не довелось такое видеть.
Здравствуйте, SkyDance, Вы писали:
SD>В следующей же строке на него указано: SD>"Возможен вариант, что ты работаешь где-то, где существуют определенные требования к коду (скажем, его верифицируемость). В таком варианте могу допустить, что значительная часть ваших инженеров и в самом деле пишет простой код. Но это крайне нетипичный случай."
Ты опять подменяешь тезис. Где здесь противоречие умению моих ребят писать простой код? Естественно не 100% кода написано максимально просто, но, тем не менее, писать такой код они умеют, и, при необходимости, пишут.
SD>Позвольте поинтересоваться, что же это за такое заведение, где большинство могут писать простой код?
Зачем тебе знать ее точное название? Одна из топовых контор российского происхождения, основная сфера деятельности связана с AI.
SD> Мне пока ни разу не довелось такое видеть.
Сочувствую. Но это не повод считать что ты один такой уникум, умеющий писать простой код, а остальные безрукие.
Здравствуйте, CreatorCray, Вы писали:
CC>Уже да.
Если все слэги считать частью языка, то конечно сделав лицо кирпичом можно и так утверждать. Но тогда, например, вся феня — чистейший русский..
Здравствуйте, vaa, Вы писали:
vaa>Зашел на ХэХэ оценить востребованность nemerle и зацепился взглядом за требования(нет, я работу не ищу). vaa>"Умение писать простой код" vaa>Что это вообще такое?
Обычно это означает, что в команде освоили только несколько простых приёмов и паттернов, а остальные приёмы программирования находятся под запретом.
vaa>Если буквально, нужен человек который ничего сложнее 2 + 2 не умеет?
Не, это о другом.
Это когда для переменной, которая может принимать только значения 1 или 2, вместо:
Все относительно. Иногда в самом деле хватает такого BFE>
BFE> i = 3 - i;
BFE>
А иногда нужно даже так:
if ( i == 2 )
i = 1;
else if (i == 1)
i = 2;
else
// Что-то делаем, прилетело непонятное.
Был у нас когда-то случай. Переменная могла принимать только значениня 1, 2, 3. А в какой-то момент вдруг прилетела семерка. И обеспечила нам бессонную ночь на ВЦ. Деталей не помню. Источник данных имеет значение.
Здравствуйте, blacktea, Вы писали:
B>Я бы на самом деле дополнял тем, чтобы человек умел писал идиоматический код. А то часто встречаются люди, которые в проекте на современных плюсах пишут так, будто знают только обычный Си.
Ты хочешь странного. Си простой, и код на нём простой, что написано, то и делается. А в С++ абстракции какие-то, это сложно.
Здравствуйте, Hobbes, Вы писали:
B>>Я бы на самом деле дополнял тем, чтобы человек умел писал идиоматический код. А то часто встречаются люди, которые в проекте на современных плюсах пишут так, будто знают только обычный Си. H>Ты хочешь странного. Си простой, и код на нём простой, что написано, то и делается. А в С++ абстракции какие-то, это сложно.
Странно, что люди которые не только пишут, но и читают код не могут понять одной простой истины, что единообразие стиля хотя бы в рамках одного файла это добро, нежели та лапша в которую превращают люди, которые этого не понимают. Пусть код и стиль будут не идеальными и даже плохими, но пусть это будет хотя бы единообразно. Хотите как лучше, аккуратно отрефакторьте весь окружающий код.
Здравствуйте, vaa, Вы писали:
vaa>Согласен частично. В первую очередь код должен быть рабочим. правило трех версий.
он должен быть и читаемым и рабочим сразу
читаемым чтобы ревьюер мог с ним разобраться без бутылки коньяка
рабочим по умолчанию
а если чел пишет спагетти но рабочее и говорит что и так сойдет в большом коллективе такое не будет работать
это еще в какой то мере допустимо для POC но не для продакшена