Вход | Регистрация
    1  2  3  4   
1С:Предприятие :: 1С:Предприятие 8 общая

Короткие процедуры и функции

Короткие процедуры и функции
Я
   Конструктор1С
 
20.01.19 - 13:16
Авторы нижеперечисленных книг утверждают, что методы (процедуры и функции) по-возможности должны быть небольшими, а их название должно быть четким и точным, раскрывающим суть метода.

М.Фаулер, "Рефакторинг. Улучшение проекта существующего кода"
https://www.ozon.ru/context/detail/id/141508653/

С.Макконел, "Совершенный код"
https://www.ozon.ru/context/detail/id/138437220/

Р.Мартин, "Чистый код: создание, анализ и рефакторинг"
https://www.ozon.ru/context/detail/id/28336354/

А вы как считаете?
 
 
   Йохохо
 
101 - 21.01.19 - 14:38
(100) можешь привести пример из 500 методов в которых легко ориентироваться?
   Вафель
 
102 - 21.01.19 - 14:43
(100) когда стоит задача доработать 1 из методов - то да все легко.
Но как только есть ошибка в 1 из 5000. То ее нахождение - это архисложная задча
   Вафель
 
103 - 21.01.19 - 14:44
Как известно,
10% - написание кода, 90% - отладка (с)
   Tonik992
 
104 - 21.01.19 - 14:58
(103) Что за цифры? Оторван контекст
   Конструктор1С
 
105 - 21.01.19 - 14:58
(102) если код написан хорошо, в процедурах/функциях низкая связность*, то ошибка отыщется быстро. К слову, громоздкие процедуры совершенно не облегчают поиск ошибок. Ни на грамм. Наоборот, из-за обилия переменных внутри таких процедур, большого количества точек принятие решений, отладка такого кода сильно усложняется
(103) это только когда пишутся громоздкие процедуры. При нормальных условиях отладка будет составлять 10-30%.
   Вафель
 
106 - 21.01.19 - 14:59
(105) никто за громоздкие не топит. Везде должен быть соблюден баланс
   Конструктор1С
 
107 - 21.01.19 - 15:02
(105) также никто не топит за располосование всего кода на микрофункции по 2-3 строки
   Конструктор1С
 
108 - 21.01.19 - 15:02
(107) к (106)
   dmpl
 
109 - 21.01.19 - 15:06
(86) Это называется алгоритм.
   dmpl
 
110 - 21.01.19 - 15:12
(106) Везде должен быть сначала написан алгоритм, потом уже реализация. А уж как она будет сделана: по функции на каждый пункт алгоритма или в нескольких больших - не суть важно, скорее вопрос удобства. Проблема в том, что когда пишут большие функции - обычно это происходит без алгоритма, делают прямо по месту и через одно место.
 
 Рекламное место пустует
   dmpl
 
111 - 21.01.19 - 15:15
(96) Это обычная попытка организации наследования.
   МихаилМ
 
112 - 21.01.19 - 15:20
когда много методов - нужно грамотно структурировать библиотеки. на выходе библиотеки процедурного программирования должно быть не больше 20 методов (экспорт).
это связано с проблемой контекста - повторяемости названий методов.  


а по поводу "коротких" методов все просто их легко тестировать. короткие методы являются следствием правила один метод одно действие. снижение быстродействия   повышенной  вложенности вызовов пренебрежимо мало (не более 1%) по сравнению с удобствами тестирования и понимания.

но есть проблема интеллектуальная - грамотного именования методов. и типовые ут бп и зуп - на 70% примеры как не надо именовать (опять же из за раздутых библиотек в 500 методов).
   romix
 
113 - 21.01.19 - 15:29
(0) Есть ли способ автоматически определить самые длинные методы?
   Конструктор1С
 
114 - 21.01.19 - 15:33
(113) я таких не знаю.
Мелкомягкие в своих вижуалстудиях пошли дальше - они не контролируют длину методов, они контролируют сложность методов.

https://docs.microsoft.com/ru-ru/visualstudio/code-quality/ca1502-avoid-excessive-complexity?view=vs-2015
   romix
 
115 - 21.01.19 - 15:53
(114) Очень интересно! Хочу такое же в 1С... Если нет готового то я хотел бы это эээ разработать.
   Конструктор1С
 
116 - 21.01.19 - 16:05
(115) думаю, это будет даже не сложно. Надо просто пересчитать все "И", "ИЛИ", "ПОКА", "ДЛЯ", "КОГДА" внутри одной процедуры.

Вот что про это пишет С.Макконел:
http://www.picshare.ru/view/9838185/
   ДенисЧ
 
117 - 21.01.19 - 16:05
(115) Где-то я такое видел уже. Не на инфос*****те ли?
   Tonik992
 
118 - 21.01.19 - 16:15
(115) А че там разрабатывать.
Выгружаешь конфу в xml файлы, и начинаешь парсить xml файл.
В XML файле у тебя весь модуль как на ладони.
   Злопчинский
 
119 - 21.01.19 - 16:23
(105) ага.. в итоге у меня на тестировании по разным сценариям (вручную) я уже хз не помню был я в этойпроцедуре-функции или нет.. даже если она элементарная какая-нить.. потому что стек 500. В итоге отбиваю комментарием
//+++ ОТРАБОТАНО.


жпс полный короче
   Злопчинский
 
120 - 21.01.19 - 16:24
(105) При нормальных условиях отладка будет составлять 10-30%.
- это вы какие-то мелочи пишите.. я когда начинаю делать по уму - отладака занимает дофигища времени!
   Злопчинский
 
121 - 21.01.19 - 16:27
(113) Поройся на ИС я что-то там встречал из инструментария по оценке сложности и связности 1Сного кода, в т.ч. чтото по вычислению копипастности кода и прочая шняга. но так как это вне моего менйстрима то не закладывалл. ищи.
   Конструктор1С
 
122 - 21.01.19 - 16:43
   Integrator
 
123 - 21.01.19 - 16:51
У Макконела, насколько я помню, было написано про какие-то исследования, в результате которых выяснилось что меньше всего ошибок если функции относительно длинные, строк по 150. То есть слишком сильно дробить тоже не стоит.

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

А если это запрос + его обработка с несколькими условиями, часто лучше не дробить, пусть и длинновато получится. Иначе вынесли например текст запроса в функцию, ок. Потом решили что его надо немного подправить. Но он в функции, теперь перед каждой правкой нужно будет убедиться что она ничего не сломает во всех местах, где эта функция вызывается (ну да, у нас такое место было только одно, но это все равно нужно проверять).

В общем баланс рулит)
   Конструктор1С
 
124 - 21.01.19 - 16:57
Кстати, при оценке сложности можно ориентироваться ещё на один важный параметр - вложенность циклов и условий друг в друга


нормально:

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

    // Код

    //...

        
    Если <...> Тогда    
        // Код

        //...         

    Иначе        
        // Код

        //...    

    КонецЕсли;     

КонецПроцедуры

нормально:

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

    // Код

    //...

    
    Для  <...>  Цикл     
        Если <...> Тогда        
            // Код

            //...            

        Иначе            
            // Код

            //...        

        КонецЕсли;    
    КонецЦикла;          

КонецПроцедуры

нормально:

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

    // Код

    //...

        
    Если <...> Тогда    
        Для  <...>  Цикл    
            // Код

            //...    

        КонецЦикла;        
    Иначе        
        // Код

        //...    

    КонецЕсли;     

КонецПроцедуры

плохо:

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

    // Код

    //...

        
    Если <...> Тогда    
        Для  <...>  Цикл    
            Если <...> Тогда
                Для  <...>  Цикл
                    // Код

                    //...    

                КонецЦикла;
            КонецЕсли;     
        КонецЦикла;        
    Иначе        
        Для  <...>  Цикл    
            Если <...> Тогда
                // Код

                //...    

            КонецЕсли;     
        КонецЦикла;    
    КонецЕсли;     

КонецПроцедуры
   Конструктор1С
 
125 - 21.01.19 - 17:03
+(124) норма, это когда степень вложенности условий и циклов не более 2. "Цикл" внутри "Если", либо "Если" внутри цикла, либо "Цикл" внутри "Цикл", либо "Если" внутри "Если". Более глубокую вложенность можно считать сложным кодом. Вложенность можно посчитать по количеству табуляций внутри процедуры для самых "убегающих вправо" строк

Процедура МояПроцедура()    
    Если <...> Тогда    
        Для  <...>  Цикл    
            Если <...> Тогда
                Для  <...>  Цикл
                    //...

                КонецЦикла;
            КонецЕсли;     
        КонецЦикла;            
    КонецЕсли;    
КонецПроцедуры

в данной процедуре степень вложенности 4. Это слишком много. Визуально анализировать такой код тяжело. Да и отлаживать тоже не сказка
   Волшебник
 
126 - 21.01.19 - 17:05
(125) Нефиг его анализировать. Если код работает, то нужно оставить его в покое.

Если вложенность больше 4, то его писал человек, гораздо более способный, чем ты (раз для тебя это много), поэтому оставь код в покое.
   la luna llena
 
127 - 21.01.19 - 17:05
(125) научи, как этого избегать?
   Конструктор1С
 
128 - 21.01.19 - 17:07
(123) Так какую же длину методов считать приемлемой в объектно-ориентированных программах? Многие методы в объектно-ориентированных программах будут методами доступа, обычно очень короткими. Время от времени реализация сложного алгоритма будет требовать создания более длинного метода, и тогда методу можно будет позволить вырасти до 100–200 строк (строкой считается непустая строка исходного кода, не являющаяся комментарием). Десятилетия исследований говорят о том, что методы такой длины не более подвержены ошибкам, чем методы меньших размеров. Пусть длину метода определяют не искусственные ограничения, а такие факторы, как связность метода, глубина вложенности, число переменных, число точек принятия решений, число комментариев, необходимых для объяснения метода, и другие соображения, связанные со сложностью кода. Что касается методов, включающих более 200 строк, то к ним следует относиться настороженно. Ни в одном из исследований, в которых было обнаружено, что более крупным методам соответствует меньшая стоимость разработки, меньший уровень ошибок или оба фактора, эта тенденция не усиливалась при увеличении размера свыше 200 строк, а при превышении этого предела методы неизбежно становятся менее понятными.

(с) С.Макконел
   Конструктор1С
 
129 - 21.01.19 - 17:09
(126) именно так и поступают многие разработчики. Хай последователи мучаются

(127) очевидно, вынося слишком "вложенный" код в отдельные процедуры и функции.
   Вафель
 
130 - 21.01.19 - 17:10
(126) так самое интересное начинается когда не работает или  нужно допилить
   Конструктор1С
 
131 - 21.01.19 - 17:12
+(129) переделываем прежний вариант

Процедура МояПроцедура()    
    Если <...> Тогда    
        Для  <...>  Цикл    
            МояНоваяПроцедура();         
        КонецЦикла;            
    КонецЕсли;    
КонецПроцедуры 

Процедура МояНоваяПроцедура()    
    Если <...> Тогда
        Для  <...>  Цикл
            //...

        КонецЦикла;
    Иначе
        //...

    КонецЕсли;    
КонецПроцедуры

проблемо решоно. А хорошие названия процедур будут только в помощь.
   Вафель
 
132 - 21.01.19 - 17:14
(131) А если там 10 переменных до условий? все их передавать далее?
   Вафель
 
133 - 21.01.19 - 17:15
или например сорировка пузырьком: там аж 2й цикл. срочно сделать еще 1 процедуру
 
 
   Волшебник
 
134 - 21.01.19 - 17:15
(131) Идея правильная, но этим надо заниматься при уровне вложенности больше 20. При этом в отдельные процедуры надо выносить целые блоки где-то с уровня 10, а не самый нижний уровень.
   Tonik992
 
135 - 21.01.19 - 17:16
(132) Сделать их глобальными!
   Конструктор1С
 
136 - 21.01.19 - 17:16
(126) можно написать код с вложенностью 20 табуляций. Только это не говорит о высоких интеллекутальных способностях автора. А следующий программист, которому доведется дорабатывать сие творение (скорее всего исправлять ошибки), будет проклянать автора
   Волшебник
 
137 - 21.01.19 - 17:21
(136) Это потому что средний уровень программистов снижается. Все эти одноклассники и вконтактики разрушают мозги. Сегодняшние студенты не могут понять вложенность 10-20, а вот раньше процедур и функции ВООБЩЕ НЕ БЫЛО. Мы всё писали внутри одного модуля и грамотно пользовались GOTO.
   Конструктор1С
 
138 - 21.01.19 - 17:21
(132) в том-то и дело, что тащить зоопарк из переменных заставляют:
а) большие процедуры
и/или
б) процедуры с большой вложенностью

в компактной процедуре, с довольно линейным кодом, такой надобности даже не возникает
   Integrator
 
139 - 21.01.19 - 17:24
(128) Точно, оно.

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

А есть сложность из категории "люблю лапшеобразный код") когда в одной куче намешано то, что вполне поддается логическому разделению.

А еще вложенность можно уменьшать и другими путями:

Процедура МояПроцедура()    
    Если Не <...> Тогда
        Возврат;
    КонецЕсли;    
    Для  <...>  Цикл    
        Если Не <...> Тогда
            Продолжить;
        КонецЕсли;
        Для  <...>  Цикл
            //...

        КонецЦикла;
    КонецЦикла;    
КонецПроцедуры
   Integrator
 
140 - 21.01.19 - 17:27
(137) Грамотно пользоваться goto - это эмулировать с его помощью виды циклов, которые по какой-то причине не поддерживаются в языке. Ну как на спектруме, в бейсике был только FOR, а while например уже с помощью goto эмулировался.
   Вафель
 
141 - 21.01.19 - 17:27
на асме только гото и есть
   Конструктор1С
 
142 - 21.01.19 - 17:29
(137) дело не в мозгах, а в излишнем усложнении там, где его легко можно было избежать. Когда рулил код без процедур и со всякими GOTO, программы были более примитивными сами по себе. Операционки состояли из тысяч строк. Нынешние программы намного сложнее тех безпроцедурных динозавров. А методы, классы, инкапсуляции и иже с ними изобрели как средство, позволяющее разрабатывать программы огромной сложности. Так почему облегчающими жизнь инструментами не пользоваться? Если код можно сделать более легким для восприятия, почему бы этого не сделать?
   Integrator
 
143 - 21.01.19 - 17:30
(141) даже на асме есть вызов подпрограммы, типа call/ret. И в спектрумовском бэйсике для этого gosub был)
   Конструктор1С
 
144 - 21.01.19 - 17:34
(139) суть в том, что когда ты выносишь часть процедуры в отдельную процедуру, программа сама по себе проще не становится. Алгоритм остается прежним. Облегчается восприятие программы. Упрощение происходит ввиду того, что в одну единицу времени работаешь не с монстром из 2000 строк (пораждающим зоопарк из переменных и сильную вложенность), а с процедурой из 20 строк.
   Вафель
 
145 - 21.01.19 - 17:34
(142) ну ты такой молодец бьешься за повышение качества кода.
А твой сосед клепает как хочет. И что ты будешь делать?
   Вафель
 
146 - 21.01.19 - 17:35
разве кто-то не понимает, что хороший код - это хорошо. Просто многим влом уделять время "красивости" кода
   МихаилМ
 
147 - 21.01.19 - 17:37
(146) влом уделять "животным" - случайным людям в программировании.
   Integrator
 
148 - 21.01.19 - 17:39
(144) Совершенно верно. Главное правильно разделить, что бы тесно связанные куски алгоритма не оказались разбросаны по разным местам. А то ведь иногда и так делают - о, у меня тут длинная функция, дай ка я ее пополам поделю и сделаю две покороче. И третью еще, которая их по очереди вызовет.

В итоге вместо одной последовательной функции у нас их уже три, да еще и в файле расположат вторую выше первой)
   Вафель
 
149 - 21.01.19 - 17:39
(147) если ты не тим лид, то ты ничего сделать не сможешь. или только искать где вообще не будет никого.
ну или тимлид заряженный. что в 1с очень редко бывает
 
 Рекламное место пустует
   Ник080808
 
150 - 21.01.19 - 17:39
(146) не обязательно влом, просто много людей не понимают и не знают. Понимание приходит с опытом
   Вафель
 
151 - 21.01.19 - 17:40
(150) ну даже код отформатировать не могут. Что тут можно не понимать? именно что влом
   МимохожийОднако
 
152 - 21.01.19 - 17:40
(127) Подобный вопрос задавать теоретику не имеет смысла.
   Вафель
 
153 - 21.01.19 - 17:40
нет у них внутреннего чувства прекрасного
   Конструктор1С
 
154 - 21.01.19 - 17:41
(145) ничего не сделаю. Смирюсь с данностью. Но в случае чего, когда он попытается устроить распальцовку, какой он крутой спец, напомню ему о его говнокоде
   Integrator
 
155 - 21.01.19 - 17:41
(145) по хорошему code review должен делаться, что бы сосед не фигачил всякое непотребство. Но это уже организационный вопррос.
   Вафель
 
156 - 21.01.19 - 17:41
(154) ни разу не видел, чтоб кто-то (не в инете) распальцовывался
   Integrator
 
157 - 21.01.19 - 17:42
(151) код не форматируют это уже даже не студенты, это школьники какие-то)
   Вафель
 
158 - 21.01.19 - 17:42
(155) начнем с того что в 1с нет нормальных инструментов код ревью
   Ник080808
 
159 - 21.01.19 - 17:43
(151) даже код это влом) за такое сам бы бил бы саперной лопаткой по пальцам, но разделить сложную процедуру на набор логически связанных функций не так легко начинающему 1снегу, особенно если он не чистый программист, а бывший пользователь.
   Вафель
 
160 - 21.01.19 - 17:44
(159) ты тим лид / начальник? визможность то есть "бить" ?
   Integrator
 
161 - 21.01.19 - 17:45
(158) В самой 1С да, но например на этом форуме кое у кого есть инструменты для перевода конфигурации в текстовые файлы и дальше уже можно использовать «взрослые» инструменты.
   Ник080808
 
162 - 21.01.19 - 17:45
(160) была бы - бил бы, а так только мечтаю)
   dmpl
 
163 - 21.01.19 - 17:46
(120) Это потому что 2/3 - это проектирование и моделирование ;)
   Вафель
 
164 - 21.01.19 - 17:46
(161) какой % их юзает?
если тяжело смотреть на всех этих "школьников", то лучше из 1с уходить
   Integrator
 
165 - 21.01.19 - 17:47
(159) это и опытному не всегда просто, поэтому и получается что лучше оставить функцию в 200 строк как есть, чем думать как ее лучше поделить и рисковать сделать неудачно. При условии конечно что функция читаема и явных кандидатов на выделение нет.
   Integrator
 
166 - 21.01.19 - 17:48
(164) ну так я и ушел)
   Вафель
 
167 - 21.01.19 - 17:48
(165) ну и чтоб рефакторингом заниматься, это тесты нужны.
А их есть еще меньше чем нормального кода
   Конструктор1С
 
168 - 21.01.19 - 17:50
(152) а кто тут теоретик? У меня большой опыт разработки, в том числе в большой проектной команде, и под большое количество пользователей
   Integrator
 
169 - 21.01.19 - 17:55
(167) да, в 1С это все не особо-то применяется. Но ее спасает то что весь код и так на примерно одном уровне абстракции пишется, а низкоуровневые части или встроены в платформу, или во внешних компонентах. Это конечно не значит что можно писать левой ногой, но масштаб проблем уменьшает.
   dmpl
 
170 - 21.01.19 - 17:58
(128) Размер должен быть таким, который может написать индус с уровнем Junior без обращения к старшим.

(137) А еще модифицировали код во время выполнения программы - у современных программистов от этого мозг взорвется :)
   Integrator
 
171 - 21.01.19 - 18:01
(170) индусу волю дай, он писать быстрее чем думает будет)

А еще циклы вручную разворачивали, что бы накладные расходы снизить..
   dmpl
 
172 - 21.01.19 - 18:02
(142) И чем эти монстрообразные программы лучше тех?

(145) Хороший код начинается с хорошего алгоритма и хорошего проектирования. Как только это не соблюдено - разделяй, не разделяй - будет фигня. А с хорошим алгоритмом требуемое дробление вытекает само собой.
   МихаилМ
 
173 - 21.01.19 - 18:05
(168) (0) коли Вас большой опыт ,а стаж на этом форуме мизерный , для подтверждения опята приведите ссылки на Ваши профили на этом либо других форумах.
   dmpl
 
174 - 21.01.19 - 18:05
(171) Ну, подразумевается, что оно еще должно работать как надо :)
   Integrator
 
175 - 21.01.19 - 18:06
(172) Вот тут и проявляются плюсы 1С перед, скажем C# - проектирование уже в значительной мере сделано, документы, справочники, табличные части.. Остается только в обработчиках не сильно накосячить.

И C# - вот тебе база данных, дальше сам думай как это все реализовать. С одной стороны свобода. С другой - анархия)
   sieben
 
176 - 21.01.19 - 18:07
(137) > Все эти одноклассники и вконтактики

Эй, эй, в прошлый раз это были алкоголь и наркотики! Не стоит так разко выходить из образа.
   dmpl
 
177 - 21.01.19 - 18:09
(175) С хорошим проектированием даже в типовых проблемы: обновлял на днях разные типовые - так там новые объекты уже имеют префикс "Удалить"...
   Integrator
 
178 - 21.01.19 - 18:10
(176) а чем по вашему одноклассники во вконтактиках занимаются)
   sieben
 
179 - 21.01.19 - 18:12
(177) > даже в типовых проблемы

Это проблемы не проектирования. Это проблемы планирования выпуска релизов с учетом сборки конфигураций из библитотек и необходимости поддержки обновлений уже существующего зоопарка релизов в дикой природе.
   sieben
 
180 - 21.01.19 - 18:13
(178) Бегом трусцой, конечно. Как известно из предыдущих тем - бег влияет на те же области мозга, что и наркотики. Теперь ясно, что точно также влияет и программирование (:
   МимохожийОднако
 
181 - 21.01.19 - 18:14
(168) То, что у тебя тяга к теоретизированию видно без приборов. Возможно, это следствие большого опыта. Но практической пользы кроме поддержки посещаемости форума, я пока не увидел.
   Integrator
 
182 - 21.01.19 - 18:15
(177) это да, документы со справочниками тоже правильно организовать надо.. Была у меня задачка, зарплату в аптечной сети по хитрым схемам считать, непонятно с чего начать. Три дня схемы рисовал, потом смотрю на них - «блин, да тут же все элементарно», за день основной скелет закодил) А начал бы сразу - через неделю бы понял что закопался по самые уши..
   Casey1984
 
183 - 21.01.19 - 18:15
(0) просмотрел все твои посты, во всех кроме новогоднего отсылка к книгам, а тут ещё и ссылки на магазин. Скрытая реклама? ;-)
   OldCondom
 
184 - 21.01.19 - 18:15
(177) Это еще хороша, когда есть "Удалить_". Недавняя УТ 11 повыкидывала кучу процедур из форм, удалила несколько общих модулей. Все это наложилось на косяк разработки, когда забывали ставить префикс перед новыми процедурами.
И вот ты сидишь и смотришь на изменения в модуле, где 25 процедур нет в новой конфе, вроде как удалить надо, а вроде и ссыкотно, где там типовая, а где добавленная разработчиками? И... оставляешь. А в них ссылки на несуществующие ныне модули. И ловишь ошибки при запуске. Ох и веселье было.
   Integrator
 
185 - 21.01.19 - 18:17
(180) что ж, теперь понятно почему мне совершенно не хочется бегать)
   sieben
 
186 - 21.01.19 - 18:22
(185) Исписался == Забегался == Спился.

Так-то! (:
   Integrator
 
187 - 21.01.19 - 18:24
(186) Вот-вот, именно так я себя и чувствовал совсем недавно, перед отпуском. А отпуск присоединил к новогодним праздникам, клин клином вышибал)
   Конструктор1С
 
188 - 21.01.19 - 18:36
(173) и как давно наличие аккаунтов на разных интернет-ресурсах считается подтверждением опыта и мастерства?
   Вафель
 
189 - 21.01.19 - 18:38
(188) а как ты еще докажешь, что ты не х.. с горы?
   Конструктор1С
 
190 - 21.01.19 - 18:43
(183) считаю ссылаться на книги хорошей практикой. Ну и не только на книги, я часто ссылаюсь на сайт ИТС
   Конструктор1С
 
191 - 21.01.19 - 18:49
(189) доказать можно по-разному. Смотря кто будет оценивать
   МихаилМ
 
192 - 21.01.19 - 18:52
(188) ну хоть какое-то подтверждение Вашей опытности.

прочтение Макконела  и Фаулера Вас положительно характеризует, но не подтверждает Вашего опыта.
   Integrator
 
193 - 21.01.19 - 19:02
(184) вот кстати со «взрослыми» инструментами это вообще не проблема - отлично показывают что было удалено и что добавлено.
   Cyberhawk
 
194 - 21.01.19 - 19:40
(193) Что-нибудь из этого списка https://en.wikipedia.org/wiki/List_of_tools_for_code_review
или может что-то другое конкретное можешь порекомендовать?
   Cyberhawk
 
195 - 21.01.19 - 19:41
(для 1С)
   Integrator
 
196 - 21.01.19 - 20:36
(194) С 1С главная проблема что для работы всех этих инструментов нужно конфу в текстовые файлы перегнать, а после объединения обратно собрать файлы в конфигурацию. А так самое простое пожалуй SourceTree использовать - бесплатное, под виндой и маком работает, можно и историю изменений смотреть, и объединения таких вот обновлений со своими доработками делать. Можно и gitlab поднять или что-то подобное, но они уже больше вспомогательную роль играют - изменения там посмотреть можно, что-то простое сделать, а посложнее - опять SourceTree нужен или аналоги.
   Integrator
 
197 - 21.01.19 - 20:38
+ если не заморачиваться с историей, то можно kdiff3 взять, ему просто подсовываешь три папки - одна с исходной стандартной конфой, вторая с новой стандартной от 1с, третья - твоя с модификациями. И он показывает где изменения от 1с, где твои изменения. Но опять же это все только на текстовых файлах работает.
   Лефмихалыч
 
198 - 21.01.19 - 21:10
программисты, которые пишут длинные процедуры и функции, компенсируют в коде недостаток длины в каких-то других местах.
   Integrator
 
199 - 21.01.19 - 21:17
(198) а у самого-то воон какая длинная полоска)
   МимохожийОднако
 
200 - 21.01.19 - 21:23
(199) Эту полоску не он рисовал...) Полагаю, есть другие места.
  1  2  3  4   

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