Имя: Пароль:
1C
 
Писать или читать код. Что сложнее?
0 exwill
 
12.11.21
11:33
Как по вашему? Что более энергозатратно. Писать или читать код? И почему?
1 Вася Теркин
 
12.11.21
11:34
Читать форум.
2 Вася Теркин
 
12.11.21
11:34
Закрывайте ветку, тема раскрыта
3 Krendel
 
12.11.21
11:34
(1) Бесплатно
4 ДенисЧ
 
12.11.21
11:34
тебе, миша, проще флудить на форуме про дОбычу воды на Солнце.
5 pechkin
 
12.11.21
11:35
(0) зависит от самого кода и задачи
6 Вася Теркин
 
12.11.21
11:35
(3) Сейчас начнется: фикси читают за ЗП, а фри бесплатно.... И срач как всегда.
7 Мимохожий Однако
 
12.11.21
11:35
Еще небезысвестный чукча сказал, что он писатель, а не читатель. Для него читать сложнее
8 pechkin
 
12.11.21
11:36
(5) вряд ли какой мистянин сам сможет написать код олимпиадной задачи. а бывает такой написанный код, что читаешь читаешь, но не понимаешь
9 exwill
 
12.11.21
11:37
(5) Ну а как правило? Существует ли выраженная ассиметрия между этими двумя операциями?
10 fisher
 
12.11.21
11:37
Читать код, писанный хищниками для чужих.
11 exwill
 
12.11.21
11:37
(7) А для вас?
12 Garykom
 
гуру
12.11.21
11:39
(0) Зависит от сложности кода
И читать != понимать
13 fisher
 
12.11.21
11:40
Но вообще, читать всегда сложнее. Потому что пишешь ты свои мысли, а читаешь чужие. А если еще и у этого "чужого" мысли были путанные, то есть он и сам их плохо понимал - то вообще абзац.
14 exwill
 
12.11.21
11:41
(12) Как зависит? Простой легче читать, чем писать, а сложный легче писать, чем читать? Или наоборот? Лично я полагаю, что в этом смысле нет никакой зависимости от сложности. Одно всегда сложнее другого
15 pechkin
 
12.11.21
11:41
опять же есть цикломатическая сложность кода
16 exwill
 
12.11.21
11:42
(13) Не думаю, что здесь дело в своем-чужом. Ассиметрия наблюдается и тогда, когда все свое
17 acht
 
12.11.21
11:42
Надо как нибудь Мишу с гггг-геней свести. Даже интересно получится
18 pechkin
 
12.11.21
11:43
Чтобы читать нужно знание языка + достаточный объем "оперативной памяти".
а для написания нужно знать алгоритмы-паттерны и тд и тп. но их не нужно держать в оперативной памяти.
Соответственно, если тебе сложно читать,то у тебя мало оперативки - к счастью это тренируется
19 fisher
 
12.11.21
11:44
(16) Когда свое, то я сильно забочусь о том, чтобы ассиметрии не было. Ибо я себе не враг и прекрасно понимаю, что мне же потом это и читать.
20 Krendel
 
12.11.21
11:44
(6) Не, фикси напишут что они читают бесплатно и качественно, а вот франи за бабки и фигово
21 pechkin
 
12.11.21
11:45
когда пишут нечитабельную вещь возникает технический долг
22 exwill
 
12.11.21
11:45
(18) "Оперативка" нужна и там и там. Не думаю, что в этом причина ассиметрии
23 pechkin
 
12.11.21
11:45
(22) опять в воле различие?
24 pechkin
 
12.11.21
11:46
читабельность написанного кода зависит от перфекционизма пишущего и его чувства прекрасного
25 Галахад
 
гуру
12.11.21
11:48
Конечно читать сложнее.

Пишешь же прекрасный всегда код. ;-) А вот читаешь...
26 exwill
 
12.11.21
11:49
(25) С чем связана эта ассиметрия?
27 fisher
 
12.11.21
11:50
(18) "Оперативка" нужна как раз при чтении плохого кода. Поэтому он и плохой, что тяжело читается и требует много "оперативки". А читать хороший код не нужно больше "оперативки" чем при его написании. Бывает наоборот - чтобы написать хорошо, нужно поднапрячься.
28 Галахад
 
гуру
12.11.21
11:51
(26) Ну, вчерашний код сегодня не всегда кажется прекрасным. :-)

А уж чужой код, прекрасен не часто...
29 pechkin
 
12.11.21
11:51
чтение кода - это его выполнение в голове
30 pechkin
 
12.11.21
11:52
чем больше сущностей юзается одновременно тем сложнее читать. чем хуже имя переменной, тем больше требуется "оперативки" для ее чтения и тд
31 exwill
 
12.11.21
11:52
(27) Вы поднапряглись и написали хорошо. Конечно, если вы сразу же начнете читать то, что написали, то чтение будет легче. А если вы будете читать тогда, когда из головы все это уже ушло?
32 pechkin
 
12.11.21
11:53
(31) если код написан хорошо, то и читать его хорошо
33 exwill
 
12.11.21
11:54
(29) Ну это вы хватили! Вы же не будете выполнять для й=1 по 10000 в голове
34 pechkin
 
12.11.21
11:54
(33) для этого в голове есть оптимизция. 1 строку выполнил - остальные так же
35 pechkin
 
12.11.21
11:55
Поэтому очень сложно рекурсию читать. нужно весь стэк в голове держать
36 exwill
 
12.11.21
11:55
(32) В данном случае, нас не интересуют качественные характеристики. Нас интересует количественное соотношение энергозатрат при написании и при чтении.
37 fisher
 
12.11.21
11:56
(31) Это и входит в понятие "написать хорошо". Когда читаешь код через три года и думаешь - "вот прог молодец, я и то лучше не написал бы". А потом смотришь - а это ты и писал.
38 pechkin
 
12.11.21
11:56
(36) в среднем по больнице?
39 Мультук
 
гуру
12.11.21
11:57
(0)

Тут все зависит от двух факторов:
- от писателей
- от читателя

Очень часто встречается код в "ПередЗаписью" на 100500 проверок без единой функции.
Просто простыня текста, иногда разделенная комментариями, реже областями.

P.S.
Пример кода написанного в стиле write-only это текущий ЗУП.
Имхо код написан роботами.
40 Ryzeman
 
12.11.21
11:59
Читать можно
1) свой \ чужой простой код
2) чужой сложный (в т.ч. типовой)
3) свой\чужой копрокод.

Разница огромна

Сложности при написании могут быть
1) уже отработанный алгоритм под новую задачу
2) лёгкий алгоритм, но нет понимания какие инструменты использовать
3) сложный алгоритм и нет понимания как реализовывать.

Разница опять так и огромна. Я думаю тут всё сильно индивидуально и зависит от зоопарка и опыта.
41 Zapal
 
12.11.21
12:03
ну конечно читать проще
потому что написанное это как правило результат нескольких переписываний и отладки.
плюс перед тем как писать иногда надо в некотором смысле изобрести решение, что тоже не всегда легко
плюс иногда приходится выискивать готовые функции и разбираться с их работой, а при чтении готового с ними обычно все очевидно
42 Вася Теркин
 
12.11.21
12:04
(34) А от рекурсии с головой чего случается?
43 Вася Теркин
 
12.11.21
12:04
(35) Упс, не успел...
44 Dmitrii
 
гуру
12.11.21
12:05
(9) >> Ну а как правило?

А, как правило, трудно обсуждать сферических коней в вакууме.
О чтении какого кода идёт речь?
Кода типовой конфигурации, написанного более или менее по правилам и стандартам? Или кода самописки написанного в стиле ПеремА = ПеремБ = ПеремВ + ТЗ_3[4].Колонка18?
А написание какого кода мы обсуждаем? Когда надо дописать "сбоку" что-то своё или "вписать" своё поделие в чью-то чужую конфигурацию, ничего не сломав?
А конфигурация где всё это происходит нам известна, или мы в первые её видим?

Единственно правильно ответа на поставленный вопрос, ИМХО, не существует.
В каждом конкретном случае сложнее может оказаться как чтение так и написание. И зачастую - общение с заказчиком.
45 Dmitrii
 
гуру
12.11.21
12:10
(13) >> если еще и у этого "чужого" мысли были путанные, то есть он и сам их плохо понимал - то вообще абзац.

А полный абзац, когда этих пишущих и дописывающих было несколько и писали они в разное время, исходя из разных требований заказчика и собственного понимания/недопонимания тяжёлого наследия предыдущих авторов.
Когда всерьёз начинаешь задумываться о том, что не проще ли всё переписать с нуля, чем пытаться что-то понять.
46 Dmitrii
 
гуру
12.11.21
12:16
Если код написан более или менее грамотно, то легкость чтения будет зависеть напрямую от того знаем ли мы, что этот код должен делать, или нет.
Когда точно знаешь смысл кода (или есть подробные комментарии), то даже довольно сложный код легко читается и понимается.
Кода нет никакого понимания того, что происходит в процедуре или функции, то можно затупить и в трёх строчках кода, пытаясь понять мысль их автора.
47 fisher
 
12.11.21
12:25
(45) > Когда всерьёз начинаешь задумываться о том, что не проще ли всё переписать с нуля, чем пытаться что-то понять.
Так беда в том, что для того чтобы правильно переписать все с нуля, все равно нужно сначала все понять. Потому что как раз такой код обычно полон сайд-эффектов, в отличие от кода хорошего.
48 bolder
 
12.11.21
12:48
(0) Ни то ни другое.Сложнее всего понимать код.А читаешь его или пишешь - нет разницы.
49 Dmitrii
 
гуру
12.11.21
13:05
(47) >> для того чтобы правильно переписать все с нуля, все равно нужно сначала все понять.

А как быть, когда заказчик говорит одно о том, что делает конкретно взятый код, а, глядя на код, ты видишь совершенно другое?
Когда понять смысл просто не представляется возможным. Когда по логике функция должна вернуть результат вычисления А+Б, а она при этом выполняет миллион дополнительных действий с множеством других данных как в базе так и в памяти. И при этом может выясниться, что 90% кода вообще ни при каких обстоятельствах не используется (возможно использовалось раньше), а оставшиеся 10% выполняет какие-то мусорные действия никакого смысла в себе не несущие (конструировали небоскрёб, а получился сарай, но с лифтами, шпилем и подземным паркингом).

И выкинуть такой код страшно (а вдруг что-то нужное в нём) и оставить вроде как глупо.
50 exwill
 
12.11.21
13:05
(48) Пусть будет понимать. Лично я с трудом могу себе представить - где может найти применение операция чтения кода без понимания. Разве что, прочитать код вслух и с выражением на детском утреннике.
С чем связана ассиметрия между написанием кода и его пониманием?
51 Deal with it
 
12.11.21
13:09
(0)Определенно читать сложнее, даже свой код написанный года 3 назад, т.к. за эти 3 года ты уже вырос и уровень того кода явно ниже, потому и сложнее понять, что ты имел ввиду когда это писал.
А про чужой код я уже молчу, там такие траектории полета мысли бывают, что диву даешься.
52 exwill
 
12.11.21
13:10
Кстати, хороший челлендж на собеседованиях:

прочитайте этот код с выражением
53 bolder
 
12.11.21
13:10
(50) Как будто ты ни разу не читал код и не мог врубится в него)Даже свой код иногда чудеса приносит.
54 Ryzeman
 
12.11.21
13:11
(49) Описал чисто мою первую работу в качестве программиста 1с. Как правило (не всегда) выкидывал всё и переписывал с нуля. Зато заказчик был дико недоволен - с ..я ли так долго, ведь ему надо было "всего лишь колонку добавить и условие добавить".

Но не всегда, иногда масштабы это хрени были настолько чудовищными, что проще было разобраться в локальном участке и прикрутить костыль.
55 Ryzeman
 
12.11.21
13:11
(52) с чувством, толком, расстановкой :-D
56 exwill
 
12.11.21
13:11
(51) Почему понять траекторию сложнее, чем исполнить?
57 bolder
 
12.11.21
13:16
(50) Легко.Называется быстрое чтение.При этом необязательно понимать, достаточно выйти на кусок кода, решающий задачу в типовой.
58 exwill
 
12.11.21
13:16
(55) С мхатовскими паузами... Хохма, хохмой, а что-то в этом есть. Отсутствие артистизма это ведь практически профнепригодность, но поди ее распознай
59 Deal with it
 
12.11.21
13:17
(56) почему чужие мысли не твои?
60 Deal with it
 
12.11.21
13:18
мы же не единый улей объединенный коллективным разумом, так было бы куда проще, но эффективней ли?
61 H A D G E H O G s
 
12.11.21
13:22
(0) Сложнее пытаться преподавать в Бауманке 1С. Могут и выгнать.
62 fisher
 
12.11.21
13:22
(58) Может, наоборот? Обычно чем выше профессионализм - тем меньше в коде "артистизма" и самовыражения. А только скучные очевидные конструкции, понятные и одноклеточным.
63 exwill
 
12.11.21
13:27
(62) Шекспир писал скучными английскими буквами, простые английские слова, и описывал при этом совершенно обычные жизненные ситуации, понятные каждому.
64 Галахад
 
гуру
12.11.21
13:31
(63) Хм. А ты читал?
65 exwill
 
12.11.21
13:32
(64) А как же! To be or not to be
66 exwill
 
12.11.21
13:33
(61) Чем вам эта тема так в душу запала? Можете объяснить?
67 H A D G E H O G s
 
12.11.21
13:38
(66) Не терпим к людям, мимикрирующимся под специалистов. В квадрате это становится опасно, когда они ереси учат неофитов.


Ни что не устоит перед Высшей Справедливостью!
68 Garykom
 
гуру
12.11.21
13:39
(67) как минимум они специалисты в мимикрии
69 exwill
 
12.11.21
13:40
(67) Это вы из-за регистров?
70 Галахад
 
гуру
12.11.21
13:44
(65) И какой твой любимый сонет?
71 Ryzeman
 
12.11.21
13:44
(62) У нас работа творческая, так что тут скорее как с другими творческими профессиями типа режиссуры или писательской деятельности. Опытный писатель не страдает графоманией - он очень ловко подбирает уместные слов так, что приятно читать и остаётся только поражаться остроумию.
72 Галахад
 
гуру
12.11.21
13:48
(71) Чем более типовые наименования используешь, тем понятнее потом. Нафиг остроумие.
73 exwill
 
12.11.21
13:51
(70) Я прикалываюсь. Конечно, я не читал Шекспира в подлиннике
74 Галахад
 
гуру
12.11.21
13:53
(73) Наверное и в переводе не читал. Сонеты у него еще те...
75 Ryzeman
 
12.11.21
13:58
(72) Я скорее про алгоритмы, чем про именование. Один и тот результат можно как правило получить сотней алгоритмов, а один и тот же алгоритм написать 3-4 способами. И вот когда ты читаешь чужой код, а он написан так, что ты бы лучше не додумался, или вообще бы не додумался - вот это и есть знак качества, особенно если сам ты при этом какой-никакой специалист.
76 Галахад
 
гуру
12.11.21
14:02
(75) Угу. А паттерны описали для слабаков.
77 fisher
 
12.11.21
15:17
(69) Одна критика говорящих имен переменных чего стоит.
78 rphosts
 
12.11.21
15:27
(69) что с регистрами не так? Как у всех видов регистров стали создаваться кластерные индексы так уже претензий по большому счёту не так и много
79 rphosts
 
12.11.21
15:28
(77) с кем они говорят?
80 Kassern
 
12.11.21
15:34
(78) Скорее всего имелась в виду вот эта тема ТС Зачем нужны регистры, если все можно взять из документов?
81 pechkin
 
12.11.21
15:35
Так же можно спросит: что проще доказать теорему или прочитать доказательство?
82 fisher
 
12.11.21
15:39
(79) Со Вселенной. Они взывают к справедливости. Требуют уважения и вежливого обращения. Грезят самоидентификацией. Плачут над своими куцыми именами. exwill у них - военный преступник.
83 rphosts
 
12.11.21
15:48
(82) это ты на трезвую так?
84 rphosts
 
12.11.21
15:51
(80)не, ну это... если не знать ответ от кого-то другого, почти не иметь практики или не знать, хотя-бы чуть-чуть, как устроены реляционные СУБД и как работает поиск (Scan, Seek) - вполне себе можно так ляпнуть...
85 Kassern
 
12.11.21
15:52
(84) но при этом преподавать 1с, на тот момент)
86 Arbuz
 
12.11.21
15:57
Forbear to judge, for we are sinners all.
          W. Shakespeare, 2 Henry VI, 1591 A.D.
87 rphosts
 
12.11.21
15:58
(85) рассказывают, что когда-то некто Эварист Галуа попробовал поступить в Политех... на вопрос по математики что такое синус, молча взял мел и написал на доске ряд Тейлора для синуса - за что ему сказали что он дурак, в ответ Галуа молча стёр мел тряпкой а тряпку кинул в экзаменатора....

Такие преподаватели были везде и во все времена
88 Веселый собака
 
12.11.21
16:00
Был у меня коллега, код которого читать, это как глаза резало, будто бомж набздел..
Теперь сидит в цеху- самое ему место.
89 fisher
 
12.11.21
16:02
(83) Да. Алкоголь меня только скучнит. Хотя, как там: "если ты сильный, ловкий, смелый и очень сексуальный - иди домой, ты пьян".
90 rphosts
 
12.11.21
16:03
(89) за неделю юзера не задрали? Работы что-ли мало?
91 Arbuz
 
12.11.21
16:04
(88) По-моему, у всех есть такие коллеги. Им даже код писать не надо - достаточно в сознании (если это можно назвать сознанием) находится.
92 fisher
 
12.11.21
16:05
(90) Блин! Ты скучный, как моя совесть! Ладно, пошел работать...
93 rphosts
 
12.11.21
16:07
(92) упахался таки за неделю
94 PLUT
 
12.11.21
16:08
печатаю со скоростью 1000 знаков в минуту, но такая херня в итоге получается

(0) пробовал код из нетленки читать? https://netlenka.org/
95 VladZ
 
12.11.21
16:09
(0) Более энергозатратно писать. Потому что тот, кто разработал код - он как первопроходец. Прошел там, где еще другие не ходили.
Тот, кто читает код уже идет по протоптанной дороге.

Да, возможно, дорога не очень прямая и местами хотелось бы и получше, но... Как говорится: Не нравится? Иди свою протопчи!
96 VladZ
 
12.11.21
16:10
Давайте тогда уж опрос вида "Что легче? Писать код? Или критиковать написанный?"
97 PLUT
 
12.11.21
16:11
(95) ага. код из типовых на БСП

поэтому велосипедисты никогда не закончатся

некогда читать, работу работать надо
98 Веселый собака
 
12.11.21
16:11
(95) нуу. эта, если говнокод читать, то ходите сами по этой дороге.
99 VladZ
 
12.11.21
16:13
(98) Сложно читать говнокод?  Я понимаю, смешно или грустно... Или отвращение, в конце концов.

Но не сложно же? Вопрос же был "Что более энергозатратно".
100 PLUT
 
12.11.21
16:15
(0) энергозатратно по-твоему это как?

"в чем сила брат? в ньтонах?"

прокрастинация считается энергозатратами? ну когда х@й на работу (чтение и писание) не стоит?

сила есть, воля есть, а силы воли нету
101 ДядяМитяй
 
12.11.21
16:15
Если вообще непонятно, что делает этот код, зачем нужна эта проверка и тд - это самое узкое место для чтения. Поэтому пишу комментарий хотя бы в чем суть, а то через неделю кажется, что наркоманы пробрались в конфигуратор.
102 VladZ
 
12.11.21
16:17
(101) А я сначала пишу комментарий, потом "вокруг него" пишу код.
103 Веселый собака
 
12.11.21
16:19
(99) понимаешь, ладно бы не использовал кто ЗаполнитьЗначенияСвойств, но когда пишет а1=, а2=, а3= и в параметры функции это все,- не надо, проходите мимо.
104 VladZ
 
12.11.21
16:47
(103) И что? Энергетические затраты повысились от этого?

Вполне допускаю, что повысился уровень агрессии в адрес автора, но энергетические затраты тут ни при чем.
105 exwill
 
12.11.21
19:06
(84) А если знать? Смысл претензии к регистрам был не в производительности и не в экономии места на диске. А в непрозрачности. Используя регистры, вы "размазываете" всякую функцию по всей конфигурации. Вместо того чтобы просто и понятно описать ее в одном месте. Описание того, что надо считать "плюсом", а что надо считать "минусом" при вычислении функции остатка на складе у вас разбросано по множеству модулей проведения, вместо того, чтобы находится целиком в одном месте
106 exwill
 
12.11.21
19:08
(102) Я тоже так делаю. Потом комментарий стираю. Очень удобно. Всегда можно быстро увидеть - что осталось доделать и где.
107 GANR
 
12.11.21
19:09
читать
108 exwill
 
12.11.21
19:11
(107) Почему?
109 GANR
 
12.11.21
19:31
(108) мы не знаем о причинах происхождения читаемого (если чужой код), а то что пишем знаем что, зачем и почему
110 exwill
 
12.11.21
20:32
(109) Т.е. мысль всегда сложнее кода? И когда мы пишем код, мы упрощаем свою мысль. А когда читаем, нам надо реконструировать из простого сложное. Так?
111 Рэйв
 
12.11.21
20:46
(110)Мысль в программировании-это как продолжение руки.  Ты вообще не должен задумываться что делать.
112 GANR
 
12.11.21
21:06
(110) Не знаю даже как сказать... Просто по опыту знаю, что разобраться в чужом говнокоде намного сложнее, чем свое написать. То что в 1С написано ещё куда ни шло, но вот раскопипащенный маразм написанный за её пределами мне как правило проще выкинуть и написать свое. Копипастят много + 2 строчки правят то и дело. Я сажусь - кода в разы, если не в десятки раз меньше часто становится.
113 pechkin
 
12.11.21
22:53
(112) это если ты знаешь как задачу решать. Тогда при чтении кода ты подсознательно будешь сравнивать со своим мысленным решением.
А если ты не знаешь, то сложность написания равна бесконечности
114 Bigbro
 
15.11.21
05:41
читать обычно проще, если написано людьми и для людей.
писать точно так же - для людей, - намного сложнее.
это требует вдумчивого отношения, и зачастую переписывания кода несколько раз чтобы сохранить логику и стройность, когда задача в процессе реализации уже изменилась.
чаще всего времени на рефакторинг нет и в ход идут костыли((
пример нечитаемого уже приводили - новый ЗУП.
я отлаживал SAP функции с 65+ уровнями вложенности вызовов, и не испытывал такого разрыва как при попытке отладчиком проехать в ЗУП.
в ЗУП после 15 вызовов функций которые ничего не делают кроме вызова другой функции наступает понимание полной бессмысленности этих действий и того что разрабам полностью накласть на то что кто то будет это читать.
115 Старею
 
15.11.21
05:47
Вставлю свои "5 копеек"
Труднее всего написать код так, чтобы его "пропустил phoenixbsl/sonarqube + чтобы потом этот код можно было прочитать".
116 Галахад
 
гуру
15.11.21
07:18
(115) Хм. А в чем сложность? Когнитивная сложность не проходит?
117 Мимохожий Однако
 
15.11.21
07:34
(11) Мне всё равно. В момент работы использую и то, и другое. Свой код становится чужим уже через несколько месяцев.
Добавь голосовалку.
1. Проще читать 2. Проще писать  3. Важно понимать, что читаешь 4. Важно понимать, что пишешь 5. Важнее понимать и то и другое )
118 Конструктор1С
 
15.11.21
08:19
(0) в первую очередь зависит от самого кода. Если это говнокод, то его и читать что ребус разгадывать, и дорабатывать тот ещё квест. И да, любой программист читает код намного больше, чем пишет. Мы читаем код когда разбираемся в нем, читаем когда ищем нужный нам кусок кода, читаем (свой и чужой) окружающий код когда пишем код. Есть мнение, что в программировании на чтение кода уходит до 10 раз больше времени, чем на его написание. Поэтому читабельность кода очень важна
119 Мимохожий Однако
 
15.11.21
08:22
"Угадал все буквы, но не смог назвать слово" © Поле чудес.
Прочитал\написал код, но не смог понять суть. Это частенько
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.