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

  1  2

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

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

Работаем с коллегой в отделе занимающимся 1с.Оба пишем код, я хорошо понимаю администрирование 1с, а колгега хорошо понимает алгоритмы и пишет качественный код. С недавнего времени стал прикалывать что я пишу быдло код =(. Конечно когда нужно сделать еще вчера то нет времени писать качественно, делаешь просто что бы работало. Но сама мысль не дает теперь покая, как улучшить качество кода ? И есть оправдание быдло коду ?
 
 
   ildary
 
101 - 22.12.17 - 08:54
(98) Хочу писать подобное для себя, чтобы через год самому было проще вспомнить. Или при обновлении базы - не бегать по всем обработкам вручную, а искать по тегу в комментарии.
   VladZ
 
102 - 22.12.17 - 09:00
(101) В данном случае достаточно коммента "Добавил Вася Пупкин, 22 декабря 2017г".
   Mort
 
103 - 22.12.17 - 09:08
(101) Даже не знаю, что сложнее: соблюдать всю эту бюрократию или раз в год разобраться что отвалилось и почему. Причем с бюрократией есть один нюанс...
Все эти строительные леса в виде якорей в коде, 100% покрытия тестами и прочие перделки так и не образовали устойчивые стандарты, ибо снижают количество ошибок не до нуля, а на процент. И вопрос о том, что важнее - протерянные ресурсы на поддержку всего этого или гипотетические ошибки в продукте очень сильно зависит от области применения. Не все космические корабли программируют.

Ща набегут упоротые TDDшники.
   Nyarlathotep
 
104 - 22.12.17 - 09:08
(0) "что я пишу быдло код"

Забей. Придирки к качеству кода - это задротство, а твой коллега - задрот. "Качество кода" - понятие сугубо индивидуальное, у каждого оно свое. Если задача решена в срок, все работает правильно и не тормозит - значит все ок и код качественный. Ориентируйся на результат, а не на процесс.

1. Много кода писать
   ildary
 
105 - 22.12.17 - 09:13
(102) как найти все вытащенные из общих модулей процедуры и функции, если у них нет общего тега?

(103) Конечно это всё бюрократия, вот только когда переходишь с одной подверсии конфигурации на другую, вся эта бюрократия так выручает! Из моего недавнего прошлого УТ - 11.1->11.2-11.3. И из предстоящего - 11.4.
   Nyarlathotep
 
106 - 22.12.17 - 09:18
(19) Убогий.
   VladZ
 
107 - 22.12.17 - 09:26
(105) Общий тег "Вася Пупкин"
   VladZ
 
108 - 22.12.17 - 09:32
(104) Есть такое понятие как "сложность поддержки информационной системы". Чем хуже код - тем сложнее его поддерживать. Нужны дополнительные ресурсы. А это деньги. На плохом коде организация будет терять деньги.
   Nyarlathotep
 
109 - 22.12.17 - 09:35
(108) А по каким критериям отделять "плохой код" от "хорошего"?
   Buster007
 
110 - 22.12.17 - 09:44
(106) покажешь свой "гениальный" код?
 
 Рекламное место пустует
   ildary
 
111 - 22.12.17 - 09:48
(107) тег "Вася Пупкин" - общий для любого добавления, поэтому для моего случая не подходит.
   Nyarlathotep
 
112 - 22.12.17 - 09:51
(110) Нет :)
   VladZ
 
113 - 22.12.17 - 10:09
(109) Давай я покажу тебе код, а ты реши.  Итак, процедура формирования ТТН на вывоз (часть кода):

ОбластьСтрока.Параметры.ТоварНаименование            = "Боковина без лестницы";
                ОбластьСтрока.Параметры.КодПродукции                 = "";
                ОбластьСтрока.Параметры.НомерПрейскуранта            = СтрСчет.СчетНаОплату.ДоговорКонтрагента.Номер;
                ОбластьСтрока.Параметры.Артикул                      = "";
                ОбластьСтрока.Параметры.Количество                      = 2 * Коэффициент;
                ОбластьСтрока.Параметры.КоличествоМест                  = "";
                ОбластьСтрока.Параметры.БазоваяЕдиницаНаименование = Справочники.КлассификаторЕдиницИзмерения.НайтиПоНаименованию("шт");
                ОбластьСтрока.Параметры.ВидУпаковки                    = Справочники.КлассификаторЕдиницИзмерения.НайтиПоНаименованию("шт");
                ТабДокумент.Вывести(ОбластьСтрока);
                
                ОбластьСтрока.Параметры.ТоварНаименование            = "Боковина с лестницей";
                ОбластьСтрока.Параметры.КодПродукции                 = "";
                ОбластьСтрока.Параметры.НомерПрейскуранта            = СтрСчет.СчетНаОплату.ДоговорКонтрагента.Номер;
                ОбластьСтрока.Параметры.Артикул                      = "";
                ОбластьСтрока.Параметры.Количество                      = 2 * Коэффициент;
                ОбластьСтрока.Параметры.КоличествоМест                  = "";
                ОбластьСтрока.Параметры.БазоваяЕдиницаНаименование = Справочники.КлассификаторЕдиницИзмерения.НайтиПоНаименованию("шт");
                ОбластьСтрока.Параметры.ВидУпаковки                    = Справочники.КлассификаторЕдиницИзмерения.НайтиПоНаименованию("шт");
                ТабДокумент.Вывести(ОбластьСтрока);
                
                ОбластьСтрока.Параметры.ТоварНаименование            = "Перекладина";
                ОбластьСтрока.Параметры.КодПродукции                 = "";
                ОбластьСтрока.Параметры.НомерПрейскуранта            = СтрСчет.СчетНаОплату.ДоговорКонтрагента.Номер;
                ОбластьСтрока.Параметры.Артикул                      = "";
                ОбластьСтрока.Параметры.Количество                      = 2 * Коэффициент;
                ОбластьСтрока.Параметры.КоличествоМест                  = "";
                ОбластьСтрока.Параметры.БазоваяЕдиницаНаименование = Справочники.КлассификаторЕдиницИзмерения.НайтиПоНаименованию("шт");
                ОбластьСтрока.Параметры.ВидУпаковки                    = Справочники.КлассификаторЕдиницИзмерения.НайтиПоНаименованию("шт");
                ТабДокумент.Вывести(ОбластьСтрока);
   VladZ
 
114 - 22.12.17 - 10:15
еще пример:

Процедура МояМегаПроцедура()

Если УсловиеВыполяется Тогда
// тут 100500 строк кода


КонецЕсли;

КонецПроцедуры
   Адинэснег
 
115 - 22.12.17 - 10:21
(90) новый анекдот
"Франч без быдлокода" ...
в довесок к "Франч покрыл всю систему тестами"
   Nyarlathotep
 
116 - 22.12.17 - 10:23
(113) (114) И что я должен решить?
   Адинэснег
 
117 - 22.12.17 - 10:25
Для Сч=1 по 10000000 цикл
    Если 2=1 
        Тогда а=1 
    Иначе 
        а=2 
    КонецЕсли;
КонецЦикла;


так еще быстрее:

а=2;
Сч = 10000000;
   nordbox
 
118 - 22.12.17 - 10:26
(115)>>"Франч без быдлокода" ...
ты еще скажи франч- без студентов
   Адинэснег
 
119 - 22.12.17 - 10:27
(118) без дошика
   Nyarlathotep
 
120 - 22.12.17 - 10:28
(119) Про Дошик не надо, Дошик - это святое :)
   Адинэснег
 
121 - 22.12.17 - 10:29
(113) когда забанили в конструкторе запросов...
   MaxS
 
122 - 22.12.17 - 10:31
(40) Странный программист. Не настроены приоритеты по прерываниям. Более важные дела должны были прервать выполнение и выйти из цикла.
   nordbox
 
123 - 22.12.17 - 10:34
(122) у него обработчик прерывания был кривой
Звонок с телефона не предавался как параметр, потому что в другой комнате был )
   Terv
 
124 - 22.12.17 - 11:09
(85) еще толще

троллей развелось тут я смотрю
   ildary
 
125 - 22.12.17 - 11:27
В итоге решил скопированный и измененный код помечать вот так:

//Вытащено из ЧекККМ.НастроитьПраваДляПользователя() для того и сего
   Timon1405
 
126 - 22.12.17 - 11:34
   Nyarlathotep
 
127 - 22.12.17 - 11:37
(125) Я типовой вообще никогда не трогаю, делаю вот так:

//Nyarlathotep 22.12.2017 мояпочта@почтовыйсервер.ru {

//По задаче "Тут название задачи", автор задачи - "Тут автор задачи"
//Тут описание функционала добавляемого/изменяемого кода

//Закомментировал {
Тут закомментированный типовой код без изменений
// } Закомментировал

Тут мой добавленный/измененный код
// } Nyarlathotep 22.12.2017 мояпочта@почтовыйсервер.ru
   Nyarlathotep
 
128 - 22.12.17 - 11:40
(127) Таким образом откат к типовому функционалу решается комментированием/раскомментированием пары находящихся рядом секций кода, в случае чего.
   Nyarlathotep
 
129 - 22.12.17 - 12:10
Срача по поводу того, чей же код правильнее, я так понимаю, не будет? :)
   nordbox
 
130 - 22.12.17 - 12:31
(129) коментов в коде будет больше чем самого кода )
   Адинэснег
 
131 - 22.12.17 - 12:32
(129) тут даже срача франч/фикси нет... все выдохлись на Мисс Бюст
   Адинэснег
 
132 - 22.12.17 - 12:35
// { Автор Задача

//Закоментированный 
//типовой 

//код
//// Коммент из типового кода


Новый код
// коммент мой


// }
   brznzglwgn
 
133 - 22.12.17 - 12:35
Смотря где..
В 1С половина написания кода это найти место внутри 10 вложенного проваливания в функции, далее там твой "качественный" код будет базироваться на уже написанном "высококачаственном" и понятном коде от 1С.
 
 
   ADirks
 
134 - 22.12.17 - 12:36
(113) недавно пришлось в ЗиКе семёрошном переделывать какое-то расчет, а там на 90% код копипастой написан, ну и как в (114) тоже. Сломал весь моск, пытаясь найти, куда бы впилится. Плюнул, занялся рефакторингом... ну небыстро да... Через какое-то время код сократился в 10 (десять) раз, и наконец-то стало всё понятно. Заодно работать стало быстрее раза в три.

Вот вам и "лишь бы работало".
   Адинэснег
 
135 - 22.12.17 - 12:36
(132) в комменте только номер задачи из системы регистрации задач/проблем/инцидентов
   nordbox
 
136 - 22.12.17 - 12:39
короче, вот так получается ))
https://www.youtube.com/watch?v=JsG94qngMNU
   Terv
 
137 - 22.12.17 - 12:50
(126) И?
ты хочешь доказать присутствия мозга у людей, которые закладываются на особенности компилятора при разработке не embedded-систем?
особенно учитывая, что их нормо-час стоит часто несколько новых процессоров.
или нынче в технических вузах перестали преподавать экономику и заставлять обсчитывать экономическую эффективность своей работы?
   kyvv
 
138 - 22.12.17 - 13:03
   ildary
 
139 - 22.12.17 - 13:26
(134) мне интересно, когда-нибудь разработчики БСП почувствуют, что ушли немного не туда и займутся наведением порядка?
   ADirks
 
140 - 22.12.17 - 13:33
(139) с чего вдруг? у них стандарты такие, всё абсолютно нормально.
   echo77
 
141 - 22.12.17 - 13:41
(97) Пишу перед функцией комментарий:
// Сперто из общего модуля...
   33554432
 
142 - 22.12.17 - 13:42
С красивым кодом все непросто. Заказчик просит сделать быстро и еще вчера, как обычно. Ты либо делаешь как быстрее, либо получаешь под зад. Как быстрее, это как привычнее, даже если не красиво. Кто заморачивается на красоту под зад получает чаще при равноценной конкуренции. А кто пишет некрасиво получает под зад, если наталкивается на любителя красоты со стороны заказчика, но это реже.
   ildary
 
143 - 22.12.17 - 13:44
(141) Хорошо, но немного грубовато. Я плохой, на быструю руку накаляканный код помечаю как //Костыль и молюсь, чтобы это место никто не увидел. Пока красивую замену слову "Костыль" не нашёл.
   echo77
 
144 - 22.12.17 - 13:48
(143) Можно писать :
// Взять из Документ.СчетФактураВыданный.МодульМенеджера
   Nyoko
 
145 - 22.12.17 - 13:55
Читать ИТС. По быдлокоду просто конкретно спросить где сделал ошибку, и дальше много кода писать.

2. Читать \"чужой\" код
   DomovoiAtakue
 
146 - 22.12.17 - 13:55
(0)А можно примеры?
Обычно быстрее написать сразу нормально.
   _Дайвер_
 
147 - 22.12.17 - 13:59
Возврат;    
КонецПроцедуры
   nordbox
 
148 - 22.12.17 - 14:09
Первая мысль от бога(как бы быстро), вторая лукавого(быдлкод) ))
   Nyarlathotep
 
149 - 22.12.17 - 14:17
(134) "код сократился в 10 (десять) раз, и наконец-то стало всё понятно. Заодно работать стало быстрее раза в три."

Вот бы с типовыми также.
 
 Рекламное место пустует
   ADirks
 
150 - 22.12.17 - 14:26
(149) ну кагбе это и была типовая конфа :))
И там всегда будет так, как завещал гражданин в (142). Причём чем дальше, тем хуже, ибо г. имеет свойство накапливаться.
   Hans
 
151 - 26.12.17 - 09:14
подпишусь
   hhhh
 
152 - 26.12.17 - 09:45
(128) такой коммент возможен, только если одна вставочка. А обычно как бывает

//Nyarlathotep 22.12.2017 мояпочта@почтовыйсервер.ru {


//По задаче "Тут название задачи", автор задачи - "Тут автор задачи"

//Тут описание функционала добавляемого/изменяемого кода

//Закомментировал {


Тут закомментированный типовой код без изменений

в нем вася Пупкин такой-то год

тут же здесь быол Гриша.

тут же Nyarlathotep 2013

опять типовой

опять Вася Пупкин.
и опять продолжение//Nyarlathotep 22.12.2017 мояпочта@почтовыйсервер.ru 



И в итоге такой бред получается. Особенно если одну строчку комментировали сразу несколько человек. Ну или один человек, но с интервалом в 2 года.
   Злопчинский
 
153 - 26.12.17 - 10:01
(108) и что, много, например 1сников модифицирует исходный код? Именно модифицирует, а не лепит нашлепки?
   DenVaz
 
154 - 26.12.17 - 10:10
Спроси любого "программиста" - адынесники "не программисты". Отсюда следует: пиши любой код - всем пофер.
   patria0muerte
 
155 - 26.12.17 - 10:20
У нас для типового кода используется безымянная вставка

//--> PRS


Тут изменения

//--< PRS


Остальная информация по изменениям - в шапке молуля по датам: кто, что, когда, зачем (по какой задаче).

Ну и плюс - хранилище, в котором более подробно все в комментариях расписано
Для пиления старой УПП - хватает за глаза
   D_E_S_131
 
156 - 26.12.17 - 11:14
В (15) собственно все написано, но подобного варианта в голосовашке нет.
  1  2

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