Вход | Регистрация

  1  2   
1С:Предприятие ::

Метки: 

Как писать качественный код?

Я
   Дебет
 
21.12.17 - 09:19
1. Много кода писать56% (5)
2. Читать \"чужой\" код44% (4)
Всего мнений: 9

Работаем с коллегой в отделе занимающимся 1с.Оба пишем код, я хорошо понимаю администрирование 1с, а колгега хорошо понимает алгоритмы и пишет качественный код. С недавнего времени стал прикалывать что я пишу быдло код =(. Конечно когда нужно сделать еще вчера то нет времени писать качественно, делаешь просто что бы работало. Но сама мысль не дает теперь покая, как улучшить качество кода ? И есть оправдание быдло коду ?
 
 
   Провинциальный 1сник
 
1 - 21.12.17 - 09:22
Хороший код - это когда через пару лет ты читаешь свой код и полностью понимаешь его логику. Плохой код - это когда проще написать заново, чем понять. Хороший код может быть менее эффективным в плане быстродействия и памяти, чем плохой.
   _stay true_
 
2 - 21.12.17 - 09:23
Хороший код - чужой код.
   Terv
 
3 - 21.12.17 - 09:23
(0) это как подтирать попу в туалете, смывать за собой и мыть руки после.
если этого не делаешь, то и код красивый никогда не напишешь.
   Timon1405
 
4 - 21.12.17 - 09:26
   Владимир Милькин
 
5 - 21.12.17 - 09:29
ИМХО в вашем случае. Есть коллега, который по вашему признанию больший программист, чем вы. И это удача для вас.

В таком случае попросите его выработать (и зафиксировать письменно) критерии хорошего кода для вашей компании (стандарт оформления кода).

И вот теперь ваша главная (на данном этапе обучения) задача - чётко следовать этим договорённостям, регулярно получая обратную связь от коллеги.

Уже на следующем этапе (когда научитесь следовать критерию оформления кода коллег) можно читать умные книги, чтобы выработать свой стиль и возможно привнести его на текущем или следующих местах работы.
   Lexey_
 
6 - 21.12.17 - 09:31
(0) вопрос из серии "как рисовать красивые картины?"
   novichok79
 
7 - 21.12.17 - 09:35
(0) шли такого коллегу нах, я бы так и сделал. есть хороший совет таким знатокам - "критикуешь - предлагай, предлагаешь - делай", так вот попроси его написать лучше. а то балаболов много, а кто действительно может нормальный код писать, мало.
   1Сергей
 
8 - 21.12.17 - 09:38
Это нормально. Все считают чужой код быдлокодом.
   SeregaMW
 
9 - 21.12.17 - 09:38
(7) что такое нормальный код, в чем его мерить?
   novichok79
 
10 - 21.12.17 - 09:40
(9) настолько оптимальный, насколько это позволяет поставленная задача / возможности встроенного языка?
 
 Рекламное место пустует
   nordbox
 
11 - 21.12.17 - 09:42
(0) У меня препод был, преподавал Pascal,
и вот однажды приходим на пару, а он всему взводу одну и туже контрольную дает ВСЕМ! я ему говорю:
-А вы не боитесь что тут по кругу все друг у друга спишут?
на что я получаю ответ:
-Списывайте, НО только я знаю кто и как пишет, и у кого вы спишите тот получи зачет остальные ....,
и запомни: Сколько хозяек, столько и борщей!
   Лефмихалыч
 
12 - 21.12.17 - 09:42
   ptiz
 
13 - 21.12.17 - 09:43
Учиться, учиться и еще раз учиться.

2. Читать \"чужой\" код
   Остап Сулейманович
 
14 - 21.12.17 - 09:46
(0) "когда нужно сделать еще вчера то нет времени писать качественно, делаешь просто что бы работало."

Не нужно так делать.
   Фауст
 
15 - 21.12.17 - 09:46
тут все описано: https://its.1c.ru/db/v8std
   nordbox
 
16 - 21.12.17 - 09:47
+11 От себя дабавлю, красивого кода НЕТ в природе, так же как нет и совершенства, это понятие субъективное.
Например квадрат Малевича, многие от него тащутся, а лично для меня полное г--о, что там такого выдающегося я не понимаю.
   Фауст
 
17 - 21.12.17 - 09:48
+15 или если нет доступа поиск по ключевым словам :
"система стандартов и методик разработки конфигураций для платформы 1с"
   elCust
 
18 - 21.12.17 - 09:49
(16) В самом квадрате ничего, а вот то, что художник так хорошо закрасил вызывает восхищение у фантазеров.
   SeregaMW
 
19 - 21.12.17 - 09:50
(10) в типовых это хороший код или оптимальный?
   VladZ
 
20 - 21.12.17 - 09:51
(0) Просто читать чужой код - это не панацея.  Чужой код тоже может быть быдлокодом.  Нужно стремиться писать ХОРОШИЙ код и читать чужой ХОРОШИЙ код.
   Mort
 
21 - 21.12.17 - 09:53
Вот ещё неплохая книга:

http://readli.net/chistyiy-kod-sozdanie-analiz-i-refaktoring/
   DrShad
 
22 - 21.12.17 - 09:53
(0) идеальный код - не написанный код
   nordbox
 
23 - 21.12.17 - 09:54
(0) лично вот ты или твой напарник что вкладываете в само понятие: ХОРОШИЙ КОД.
Для кого он хороший? Почему он хороший?
   novichok79
 
24 - 21.12.17 - 09:54
(19) он универсальный и в некоторых случаях, неоптимальный.
   Prog111
 
25 - 21.12.17 - 09:55
Я думаю, надо разделить понятие хорошего кода на "красивый по оформлению" и "хороший в плане оптимальности". Ибо может быть код оптимальный, написан по всем рекомендациям 1С и гуру, но без абзацев, без пробелов, без форматирования.
   Mort
 
26 - 21.12.17 - 09:56
А ещё скажу для кого-то крамольную мысль, нужно хорошо понимать идеологию ООП. Когда за любой функцией стоит хотя-бы абстрактный её исполнитель, даже не ООП-код приобретает больше порядка.

1. Много кода писать
   VladZ
 
27 - 21.12.17 - 09:58
А лучше, конечно, умные книжки прочитать.  Там уже собрана вся нужная информация.  А то пока эти мысли, как жемчужины, соберешь из моря г-овно-кода - глаза задергаются.
   SeregaMW
 
28 - 21.12.17 - 10:00
(0) А вот используешь ты функции конфигураций и БСП в коде и на сколько часто!?
   nordbox
 
29 - 21.12.17 - 10:02
блин вот сижу, читаю и прикалываюсь )) как будто тут все прям такой идеальный код пишут, все супер пупер
я иногда свой код читать без успокоительного лекарства не могу ))
   SeregaMW
 
30 - 21.12.17 - 10:02
(0) Как дела с запросами в цикле?
   Дебет
 
31 - 21.12.17 - 10:02
(28) БСП нет, а вот то что есть в типовой бухии да
   Дебет
 
32 - 21.12.17 - 10:02
(30) грешен, когда задача на 1 раз
   VladZ
 
33 - 21.12.17 - 10:02
БСП сама по себе го-вно-код.  Наглядный пример того, как не нужно разрабатывать проекты с большим объемом кода.
 
 
   Дебет
 
34 - 21.12.17 - 10:04
(24) до того как вместе стали работать, работали в разных филиалах. И как то пришлось паралельно делать одно и тоже задание, конечный результат которого заполненый ексель файл. Я дописывал за главным программистом код. Он для реализации скопировал типовой документ и сделал в нем, я его дописал. В итоге получили печатную форму, которую копи пастом копировали в ексель.  А коллега это сделал обработкой в которой был 1 запрос и все это сразу выгружалось в ексель.
   nordbox
 
35 - 21.12.17 - 10:05
(34) Тогда еще раз перечитай (11)
   Дебет
 
36 - 21.12.17 - 10:06
(35) мысль понятная
   mTema32
 
37 - 21.12.17 - 10:10
(30)У профессионалов запросы в цикле не тормозят(с) Волшебник. :)
   SeregaMW
 
38 - 21.12.17 - 10:10
(34) Лена, я тебя просил пожарить яйца, ты их пожарила не разбивая - Антон, формулируй свои желания правильно! (с)
   SeregaMW
 
39 - 21.12.17 - 10:10
(37) Профи нажимают кнопку и идут пить чай! ;-)
   nordbox
 
40 - 21.12.17 - 10:15
(38) из этой же серии:
Программист не явился на работу. В конторе переполошились, решили его
проведать. Звонили в дверь, звонили - никто не открывает. Из-за двери
только плеск воды слышен. Решили взломать дверь. Заходят и наблюдают
такую картину: сидит программист в ванне, волос на голове почти не
осталось, но он судорожно намыливает голову шампунем. Читают инструкцию
к шампуню:
1 выдавить небольшое количество шампуня на руку.
2 намыливать 2-5 минуты.
3 смыть водой.
3 повторить.
   lodger
 
41 - 21.12.17 - 10:20
ратую за оптимизацию.
все в угоду экономии и быстродействия. не впитывая чужую мудрость и без собственных экспериментов это невозможно.
поэтому голос раз.

2. Читать \"чужой\" код
   lodger
 
42 - 21.12.17 - 10:20
голос два.

1. Много кода писать
   nordbox
 
43 - 21.12.17 - 10:24
(42) Поддерживаю

1. Много кода писать
   nordbox
 
44 - 21.12.17 - 10:24


2. Читать \"чужой\" код
   SeregaMW
 
45 - 21.12.17 - 10:33
Пользоваться обфускацией не предлагать?
   Адинэснег
 
46 - 21.12.17 - 10:33
3. Читать мануалы и рекомендации
https://its.1c.ru/db/v8std
После написания делать замеры производительности, пройтись по проблемным строкам
Хорошо оформлять код(внятные названия переменных, без спагети, хороший код сам себя документирует)
   perester
 
47 - 21.12.17 - 10:40
(0) Как лучше обучить нейронную сеть?
   nordbox
 
48 - 21.12.17 - 10:44
(47) Маты не предлагать?
   perester
 
49 - 21.12.17 - 10:47
(48) я про тему, опрос похож на вопрос "Как лучше обучить нейронную сеть" ведь ясно что только одним действом дело не выйдет
 
 Рекламное место пустует
   lodger
 
50 - 21.12.17 - 10:48
(47) палкой и морковкой. классика же.
   Buster007
 
51 - 21.12.17 - 10:51
качественный код существует только на момент написания его разработчиком и со временем, этот код становится все хуже и хуже, который в итоге превращается в г-код.
каждый разработчик проходит эти стадии... можешь почитать что-нибудь, чтобы проскочить на этом пути несколько шагов
   ildary
 
52 - 21.12.17 - 10:56
Нет ничего печальней на свете - читать свой код годовой давности.
   Адинэснег
 
53 - 21.12.17 - 10:56
можно еще поискать какие-нибудь статьи, где написано как пишут плохой код, с разжевыванием, в чем Г этого кода типа
например, про запросы (Типичные причины неоптимальной работы запросов и методы оптимизации):
https://its.1c.ru/db/metod8dev/content/4050/hdoc
   Адинэснег
 
54 - 21.12.17 - 10:57
(52)первые пару лет :-D
   nordbox
 
55 - 21.12.17 - 10:57
(51) +100500
(0) ты сам свой код посмотри через год, и потом скажешь себе что нибудь типа: "Дятел я криворукий, удав полиэтиленовый"
как же я мог такое г.. то нагородить )))
   Провинциальный 1сник
 
56 - 21.12.17 - 10:57
(52) А 10-летней - так вообще кошмар ужасов.
   vde69
 
Модератор
57 - 21.12.17 - 10:59
(56) мне - нормально, недавно полез исправлять свою поделку на дельфях десятилетней давности, мне все понятно было...
   ildary
 
58 - 21.12.17 - 11:01
(56) Не, десятилетный код - это уже не ужас, а комедия.
   Адинэснег
 
59 - 21.12.17 - 11:02
кстати, да
найди и попроси коллег твоего тру-кодера выслать его код, который он на старте писал...
поржёте вместе
   Адинэснег
 
60 - 21.12.17 - 11:03
заодно будут живые примеры гамнакода, с пояснениями автора
   Провинциальный 1сник
 
61 - 21.12.17 - 11:03
(57) Ну дело тут не в понятности. Просто студенческие поделки кишмя кишат велосипедами, проистекающими из незнания темы. После того, как становишься в теме, свои старые проекты прямо руки чешутся переписать правильно. Только лень мешает.
   GANR
 
62 - 21.12.17 - 11:14
Ни с одним из вариантов не согласен
   MrCoffin
 
63 - 21.12.17 - 11:28
(3) Можно пользоваться деревенским уличным туалетом, биде и делать всё в резиновых одноразовых перчатках. И при этом писать красивый код.
   1Снеговик
 
64 - 21.12.17 - 11:36
Красивый код - это не только читаемый, но и эффективный.
А еще он должен выполнять свою функцию, а не гонять данные ради красоты.

И еще считаю важным делать проверки на заполненность, на возможность деления на 0, ограничивать ошибки пользователя. В общем, продумывать в алгоритмах наперед что в них может пойти не так.

Плюс красиво работу кода подавать, рисовать интерфейс, строки состояния, вопросы при нажатии на кнопки.

Ну и конечно не писать 
"Если Квартира.Наименование = "23" тогда" 
и прочие запросы в циклах.
   nordbox
 
65 - 21.12.17 - 11:40
(64)>>ограничивать ошибки пользователя.
верно. Программа должна быть ДУРАКОУСТОЙЧЕВАЯ ))
   Terv
 
66 - 21.12.17 - 11:43
(63) ссать на пол и при этом писать красивый код - это оксюморон. разруха в голове не бывает частичной.
   art commander
 
67 - 21.12.17 - 11:58
(0) Код не бывает красивый или некрасивый. С объективной точки зрения, всякий код - убожество (субъективно - код может казаться красивым его автору). Код бывает работающим и не работающим.
   Адинэснег
 
68 - 21.12.17 - 13:22
ТС про красоту ни слова не писал
   art commander
 
69 - 21.12.17 - 15:18
(68) Можешь заменить "красивый" на "качественный" без потери смысла.
   lodger
 
70 - 21.12.17 - 15:28
(67) есть (два стула, на одном ...) два куска кода.
делают одно и то же, делают это успешно.
первый написан одной процедурой в 1000 строк без комментариев с цикличными неявными чтениями бд по десятку раз за круг, другой оформлен модулем с несколькими точками входа в экспортных процедурах, параметризуются по потребности, повторяемые части кода вынесены в функции, сперва происходит сбор всех необходимых данных, отдельно  цикличная математика и блоки условий, постобработка.
какой сам напишешь, какой у коллеги прочитаешь?
   be-may
 
71 - 21.12.17 - 15:29
Нет единого рецепта.

Меня, например дико раздражают чьи-то переменные названные примерно так :
Параметр
Параметр
Параметр
Видимо, на сях сидел человек когда-то.
Вроде ж ничего такого, но не нравится))

Еще переменные типо 
КакаяТоНеведомаяХерня = ..

ну как так можно вообще..
   be-may
 
72 - 21.12.17 - 15:30
упс..
форматировался текст в (71)
Имелось в виду параметр, начинающийся с одного, двух , трех или более символов нижнего подчеркивания.
   be-may
 
73 - 21.12.17 - 15:33
еще из "не люблю". 
Не люблю когда пишут, так, будто экономят "бумагу"
Если ... Тогда .. Иначе .. КонецЕсли  и это все на одной строке.
   MrCoffin
 
74 - 21.12.17 - 15:34
(66) Не на пол, а в специально проделанное для этого отверстие в полу.
   Fish
 
75 - 21.12.17 - 15:44
(0) "Как писать качественный код?" - Качественный код писать очень просто: надо писать его качественно! :)
   art commander
 
76 - 21.12.17 - 15:47
(70) И то и другое - убожество.
   Timon1405
 
77 - 21.12.17 - 15:49
(73) так код быстрее выполняется. серьезно.
выполните код и сравните результаты
Для Сч=1 по 10000000 цикл
    Если 2=1 Тогда а=1 иначе а=2 КонецЕсли;
КонецЦикла;
Для Сч=1 по 10000000 цикл
    Если 2=1 
        Тогда а=1 
    Иначе 
        а=2 
    КонецЕсли;
КонецЦикла;
   Terv
 
78 - 21.12.17 - 15:55
(77) толсто
   0xFFFFFF
 
79 - 21.12.17 - 15:55
(75) Ну или так: Чтобы писать качественный код, не нужно писать некачественный.
   Terv
 
80 - 21.12.17 - 15:56
(79)"Делай хорошо - плохо само получится. " (цы)
   nordbox
 
81 - 21.12.17 - 21:03
(0)https://habrahabr.ru/post/328864/
Завтра тяпница, почитаешь
   echo77
 
82 - 21.12.17 - 21:08
(5) +1
Еще попросите коллегу устраивать вам "ревизию кода" - это перед тем как пустить в продакшн - показываете ему код, он говорит, что надо переделать, как делать нельзя, что надо исправить и на что.
Я так своих коллег ростил, передавал им свой опыт, что-то узнавал от них.

1. Много кода писать
   echo77
 
83 - 21.12.17 - 21:08
Вредные советы: http://catalog.mista.ru/public/391560/
   nicxxx
 
84 - 21.12.17 - 22:41
(77) а так еще быстрее будет:
Для Сч=1 по 10000000 цикл Если 2=1 Тогда а=1 иначе а=2 КонецЕсли;  КонецЦикла;
   nicxxx
 
85 - 21.12.17 - 22:42
(78) а ты возьми и замерь. толсто ему...
   jsmith82
 
86 - 21.12.17 - 22:46
Тема ни о чём
   ejikbeznojek
 
87 - 21.12.17 - 23:36
из того, что в этой теме прочитал, на вид правильнее всего (12)
Начни с малого, тяжело написать качественно большой объём кода. Напиши качественно маленькую функцию и качественный её вызов.
   tesseract
 
88 - 21.12.17 - 23:38
Этой фразе лет 40:
Каждый раз читая свой год 5-летней давности, понимаешь,  что его писал какой-то дебил.
   be-may
 
89 - 21.12.17 - 23:43
(84) угу, а если пробелы почистить , то еще быстрее..
----
и что, часто надо организовывать цикл типо
Для Сч=1 по 10000000 цикл  ... ?

ИМХО, экономия на спичках. Не в том месте надо время экономить
   France
 
90 - 21.12.17 - 23:53
(0) если фикси - забей... для фикси нет понятия быдло-код..
если франь - напрягись...
   H A D G E H O G s
 
91 - 21.12.17 - 23:54
(0) Плохой код пишется долго.

Если ты пишешь код долго - ты написал его плохим, убей его.
   Роки
 
92 - 21.12.17 - 23:57
(0) Хороший код - мертвый код
   VladZ
 
93 - 22.12.17 - 04:41
(90) Зря ты так. Плохой код портит карму. Оставишь его потомкам - они проклянут автора кода и нашлют на него проклятия "бедности и нищеты"...
   nordbox
 
94 - 22.12.17 - 08:03
(93) ты уверен что потомки поймут что такое 1с и раcшифруют код?
   Злопчинский
 
95 - 22.12.17 - 08:06
Давайте решать проблемы по мере их возникновения
   nordbox
 
96 - 22.12.17 - 08:08
+94 Наши потомки будут так же как мы )))
http://d.radikal.ru/d20/1712/cb/9ee1839d547e.jpg
   ildary
 
97 - 22.12.17 - 08:39
Хочу задать вопрос по теме: как лучше называть куски кода, когда надо в свою обработку вставить некий кусок (например функцию из общего модуля), и внести в неё изменения? Единственное что приходит в голову: писать в комментарии "Заимствованный код", но уж больно сложное слово, хотелось бы попроще (без потери смысла).
   Mort
 
98 - 22.12.17 - 08:44
(97) И кому будет полезен этот комментарий? Всем пофиг откуда ты её скомуниздил.
   golem14
 
99 - 22.12.17 - 08:44
(81) почитал и поборол в себе Эффект Даннинга — Крюгера
   Mort
 
100 - 22.12.17 - 08:50
(90) Имхо как раз наоборот, у фикси есть достаточно свободного времени, чтобы вылизать код, а франи оставляют первый работающий вариант, нет времени для этого. Мы вот юзаем франей, и от многих их спецов отказались по причине обнаруженного г-кода, и сейчас всё очень даже сносно.

  1  2   

Список тем форума
Рекламное место пустует Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует