|
Как в программах не 1С именовать классы, их поля, таблицы, если дословный перевод невозможен? | ☑ | ||
---|---|---|---|---|
0
Sabre
16.08.21
✎
06:43
|
Знаете эти госучреждения? У них столько специфических терминов, реквизитов, которые никак не переводятся. А еще есть длинные значения для учета, например ВыделенныеСредстваНаКапитальныйРемонтСистемыОтопления.
Если переводить это все промтом на английский, то такую программу для поддержки врагу не пожелаешь: AllocatedFundsForOverhaulOfTheHeatingSystem. Если сокращать, теряя смысл, то будет еще хуже. Можно ли всю внутрянку в C# держать на русском языке, как в 1с, или это совсем не комильфо? Тогда как поступать? |
|||
1
ДенисЧ
16.08.21
✎
06:46
|
Вообще, НЯЗ в шарпе можно переменные называть по-русски. Но "такую программу для поддержки врагу не пожелаешь"
|
|||
2
Галахад
гуру
16.08.21
✎
06:46
|
VydelennyeSredstvaNaKapitalnyjRemontSistemyOtopleniya :)
|
|||
3
NorthWind
16.08.21
✎
06:55
|
Обычно переводят. Для примера можно взять тот же ВетИС и его названия классов.
Чтобы переводить "не промтом" и строить более короткие фразы, нужно немного знать язык, кроме того, в ряде случаев дополнительные слова, вроде "выделенные" в указанном примере, могут быть просто не нужны - если их убрать, то смысл фразы не поменяется. |
|||
4
Sabre
16.08.21
✎
07:11
|
(3) Спасибо, буду так делать.
|
|||
5
Вафель
16.08.21
✎
07:45
|
На шарпе вполне ок и на русском
|
|||
6
Энтерпрайз
16.08.21
✎
07:47
|
(0) HeatingSystemOverhaulFunds
|
|||
7
Энтерпрайз
16.08.21
✎
07:47
|
(5) За такое руки отрывать надо
|
|||
8
Вафель
16.08.21
✎
07:50
|
За перевод терминов на инглиш никто не заплатит. Ибо никто этого перевода не увидит
|
|||
9
Энтерпрайз
16.08.21
✎
07:55
|
(8) Станет невозможно нанять индуса или румына в команду.
|
|||
10
NorthWind
16.08.21
✎
08:23
|
(8) Есть принятые в сообществе правила написания кода. Когда вы получаете зарплату, то подразумевается, что вы получаете деньги в том числе и за то чтобы код выглядел соответствующим образом.
А будете ли вы влет переводить названия переменных на английский или наймете для этого переводчика - дело ваше. Вообще подразумевается, что на уровне чтения/перевода письменного текста айтишники язык знают. |
|||
11
Sabre
16.08.21
✎
08:31
|
(10) А как в этих правилах принято переводить аббревиатуры? Например ОКЭД - основной классификатор экономической деятельности? OKED или MCEA (main classifier of economic activity)?
|
|||
12
K1RSAN
16.08.21
✎
08:45
|
(11) Подозреваю, что MCEA, но в отдельной сноске создать таблицу аббревиатур с расшифровкой на английском и переводом на русский (для себя)
|
|||
13
NorthWind
16.08.21
✎
09:19
|
(11) если у вас есть команда (несколько разрабов), то вы можете собраться и обсудить этот вопрос. По итогам написать док, где это будет описано. А если вы один, то можете сами принять для себя волевое решение. Именем, так сказать, революции :)
|
|||
14
NorthWind
16.08.21
✎
09:19
|
делают и транслитерацию аббревиатур, и перевод. Оба подхода имеют право на существование.
|
|||
15
ДенисЧ
16.08.21
✎
09:20
|
Тут предлагают сокращать и давать комментарий. "Вменяемая ИДЕ при наведении покажет".
http://rsdn.org/forum/flame.comp/8073293?tree=tree |
|||
16
Конструктор1С
16.08.21
✎
12:16
|
(0) врагу не пожелаешь код с короткими невнятными именами (Сум, Кол, Док). С длинными именами живется нормальнр
|
|||
17
Конструктор1С
16.08.21
✎
12:19
|
(8) наймут индуса, и будет он глазами кровоточить, смотря на этот код
|
|||
18
Garykom
гуру
16.08.21
✎
12:21
|
(0) Когда я говнокодил на Java и C# то не парясь классы, переменные и методы по русски обзывал
|
|||
19
1Сергей
16.08.21
✎
12:26
|
(17) потом выследит тебя и убьёт )
|
|||
20
Bigbro
16.08.21
✎
12:33
|
(16) наоборот. помню была зарплата Камин. там совершенно простые модули и алгоритмы, но имена функций и переменных на полэкрана (буквально!!) - отбивали любое желание с этой гамноподелкой разбираться и ее поддерживать.
конечно, если у вас переменная которая используется в сотнях модулей ей надо давать понятное и осмысленное имя и развернутый комментарий при этом. но для локальных модулей загоняться с километровыми наименованиями бредятина. |
|||
21
H A D G E H O G s
16.08.21
✎
12:42
|
Пиши на русском, похер, unicode никто не отменял.
Пусть индусы учат русский, хренли они живут неграмотными... |
|||
22
Sabre
16.08.21
✎
13:09
|
(21) Читал, что научная литература 60х годов из СССР там очень ценится, как единственный внедренный источник знаний.
|
|||
23
APXi
16.08.21
✎
13:15
|
(0) вот, когда понимаешь что прикладные решения лучше писать на том языке на котором они будут использоваться.
|
|||
24
DrZombi
гуру
16.08.21
✎
13:20
|
(0) Сокращай, не жмись, Порой KFC тоже сладок :)
|
|||
25
Sabre
16.08.21
✎
13:23
|
(23) Казахский язык программирования еще не изобрели :)
|
|||
26
APXi
16.08.21
✎
14:01
|
(25) Там можно на русском писать.
|
|||
27
Жан Пердежон
16.08.21
✎
14:07
|
(0)
_Obj1272 _Prop2181 |
|||
28
vi0
16.08.21
✎
14:19
|
я в питоне по русски все именую в своих скриптах
|
|||
29
ДенисЧ
16.08.21
✎
14:21
|
(28) Гореть теб
|
|||
30
vi0
16.08.21
✎
14:22
|
(20) ну так это крайность, крнст НамСовсемНиКЧемуИБоригГеоргиевичЗаЭтоНеПогладитПоГоловке
|
|||
31
vi0
16.08.21
✎
14:23
|
(29) чё это?
|
|||
32
ДенисЧ
16.08.21
✎
14:24
|
(31) Заслужил.
|
|||
33
vi0
16.08.21
✎
14:24
|
(22) топовые спецы черпают знания из первоисточников на инглише, потому что они только на нем и есть
в том числе не айтишники |
|||
34
vi0
16.08.21
✎
14:26
|
(0) "Как в программах не 1С именовать классы, их поля, таблицы, если дословный перевод невозможен"
Этим вопросом в 1991году задались БГ и СГ, и решили именовать по русски |
|||
35
vi0
16.08.21
✎
14:32
|
(7) (29) канибализм как он есть
а в других холиварных не 1с ветках миллион аргументов, почему руссяз это более чем норм) |
|||
36
Garikk
16.08.21
✎
14:51
|
крайне нежелательно именовать переменные и ф-ции по русски в языках которые изначально это не продрузумевали, в том числе и в (28) питоне
проблемы могут вылезти в крайне неожиданных местах, если софт начнут запускать на машинах где нет русской локали или там где не полная поддержка юникода например в фронтэнде, я видел штуки которые динамически называют поля по названиям обхектов приходящих с бека, типа TextField_CustomerNameField - где CustomerNameField - это параметр в json пришедший с бека А если оттуда придет ФИОПользователя..то в браузере, особенно пользователя из забугорья, да еще если админы криво настроили вебсервер (а всем всегда плевать на кодировки) то половина кода отвалится из-за кракозябров в исходниках, я такое частенько видел живьем |
|||
37
Garikk
16.08.21
✎
14:52
|
(36) типа TextField_;%:№;%%;?:? - unknown object
|
|||
38
Garikk
16.08.21
✎
14:53
|
тоже самое и с путями к файловой системе в стиле c:\пользователи\юрий Львович!\Мои Ценные документики\файлик ворда.docx ...надо в какоенить лотус домино загрузить? велкам в c:\temp и файл переимновать без пробелов и по английски
|
|||
39
vi0
16.08.21
✎
18:04
|
(36) это у кого там ума хватает по русски именовать?
|
|||
40
ДедМорроз
16.08.21
✎
22:47
|
На самом деле,если название сложное и не очень понятное,то для денежного значения пишем Sum23,а уже в сноске и комментариях определяем,что это такое.
Потому как,в результате перевода может оказаться,что два разных показателя пришли в одну переменную,и потм сам черт не разберет,что там запрограммировано. Опять же,можно еще указывать номе блока,чтобы номера были не очень большими - тогда путаницы меньше. JsOn поддерживает unicode из коробки,но для всех символов,кроме первой полустраницы (ascii),будет отображаться через префикс \u и четыре шестнадцатиричных цифры,а из такой строки имя переменной построить сложно. В старых языках,для имени переменной отводилось 32 символа,и люди как то справлялись. |
|||
41
Конструктор1С
17.08.21
✎
03:32
|
(20) с камином не работал. Но "говорящие" имена это хорошо, пусть и многословные. Проблема в том, что выбрать короткое лаконичное имя очень сложно. Ну и смотри, что лучше?
1. Увидеть процедуру ЗаполнитьАтрибут(), занырнуть в неё, прочитать 200 строк кода и только потом понять, что эта процедура заполняет реквизит НадежныйКонтрагент для тех покупателей, которые напокупали на миллион и не задержали ни одного платежа 2. Увидеть процедуру УстановитьПризнакНадежныйКонтрагентДляПокупателейСОборотомБолееМиллионаИБезПросрочекПлатежей() По-моему вариант 2 однозначно лучше. Имя процедуры рассказало, что она делает, и необходимость читать код процедуры отпала сама собой |
|||
42
Bigbro
17.08.21
✎
04:20
|
(41) угумс. если она у тебя одна такая в когде.
а когда у тебя весь код такой вплоть до счетчиков циклов? это что вместо головы должно на плечах быть. |
|||
43
Конструктор1С
17.08.21
✎
05:28
|
(42) гораздо лучше прочитать имя длинной переменной, чем скроллить код туда-сюда, чтобы понять смысл переменной. Но это наверно кому как
|
|||
44
ДенисЧ
17.08.21
✎
05:33
|
(43) В нормальных иде скроллить не надо. Мышу наводишь - она тебе подсказку выдаст. Которую ты заранее написал.
|
|||
45
Конструктор1С
17.08.21
✎
05:55
|
(44) такие радости будут тебя сопровождать разве что в библиотечной функциональности, да и только от серьёзного вендора. В обычном прикладном коде ты либо не увидишь никакой подсказки, либо подсказка будет мусорной, тупо повторяющей название метода и параметров
|
|||
46
ДенисЧ
17.08.21
✎
05:56
|
(45) Так это твои проблемы, ты же создал так переменную
|
|||
47
Конструктор1С
17.08.21
✎
05:58
|
К тому же есть такой важнейший принцип. Когда имя метода выбрано удачно, пояснять его нет никакого смысла. Даже попытавшись написать комментарий, ты напишешь то же, о чем рассказывает имя метода
|
|||
48
Конструктор1С
17.08.21
✎
05:59
|
(46) что значит мои проблемы? Я как раз за самодокументирующийся код. И против экономии на длине имен
|
|||
49
Индиго
17.08.21
✎
07:04
|
(0)Давай переменным короткие названия. А отдельно где-то держи нотацию, где можешь значение каждой переменной хоть на полстраницы расписать
|
|||
50
vi0
18.08.21
✎
15:17
|
(36) а как же сообщения на русском языке?
|
|||
51
Garikk
18.08.21
✎
15:32
|
(41) а вот кстати в этом примере, УстановитьПризнакНадежныйКонтрагентДляПокупателейСОборотомБолееМиллионаИБезПросрочекПлатежей() --- это вышестоящая процедура которая должна внутри себя вызывать ЗаполнитьАтрибут()
поскольку ЗаполнитьАтрибут - должна быть универсальная ф-ция, а там где 'признакнадёжный' - уже бизнесовая и это я ещё не говорю о том что будет если оборот больше полутора лямов и трех лямов, и с двумя и тремя просрочками... и вообще какой смысл так процедуры называть когда надо другие способы написания кода использовать, для уменьшения энтропии в коде |
|||
52
Kassern
18.08.21
✎
15:35
|
(51) блин да что вы гадаете, на ИТС уже все расписано, как называть процедуры и переменные и т.д.
https://its.1c.ru/db/v8std/content/647/hdoc |
|||
53
ДенисЧ
18.08.21
✎
15:36
|
(52) "Как в программах *не* 1С"
|
|||
54
Kassern
18.08.21
✎
15:37
|
(53) а почему нельзя эту практику перенести на другие языки? Или там так не принято?
|
|||
55
ДенисЧ
18.08.21
✎
15:41
|
(54) Речь идет не о названии ИменаРолейСПравомДобавления vs ПолучитьМассивРолейСПравомДобавления
А о названии ImenaRoleySPravomPolucheniya vs RoleNamesAllowedToRecieve vs roleNames // имена ролей с правом получения. |
|||
56
Kassern
18.08.21
✎
15:46
|
(55) мой же комментарий относился к (41) (51) а именно к именам функции из примера "УстановитьПризнакНадежныйКонтрагентДляПокупателейСОборотомБолееМиллионаИБезПросрочекПлатежей".
А если по теме ТС, то я бы использовал английские слова вместо транслита. Если есть хоть какая то доля вероятности, что этот код будет на аутсорсе у иностранцев, то тем более. |
|||
57
Конструктор1С
18.08.21
✎
15:56
|
(51) код должен быть самодокументирующимся. Почти как в той поговорке: "На заборе слово из трёх букв, а за забором... действительно из трёх букв". Имя хорошего метода (конечного, а не на вершине стека) должно рассказывать, что же этот метод делает. Тогда отпадает необходимость заныривать внутрь метода и перечитывать его весь. В этом и смысл - делать код понятным, чтобы читающий его сразу же понимал и быстро по коду перемещался, а не штудировал часами портянки из кода
|
|||
58
vi0
18.08.21
✎
15:59
|
(57) вообще слово миллион там скорре всего не должно быть
его или в параметр или куда то в начало функции константой |
|||
59
Конструктор1С
18.08.21
✎
16:02
|
(58) может и в параметр, а может и в имя функции. В бизнес-логике часто встречаются константы
|
|||
60
vi0
18.08.21
✎
16:09
|
(59) такое название функции выглядит как плохой код как по мне
я бы на ревью такое не пропустил |
|||
61
Конструктор1С
18.08.21
✎
16:18
|
(60) ну классно, чё. Имя метода ЗаполнитьАтрибут() может выглядит красивее, только не говорит ни о чём, и порождает массу вопросов. Для тебя что проще, прочитать 10 слов [названия метожа] или прочитать 500 слов [содержимого метода]?
|
|||
62
vi0
18.08.21
✎
16:18
|
(61) я то про другое
|
|||
63
Kassern
18.08.21
✎
16:20
|
(61) в ИТС же есть примеры, зачем вы неправильны приводите?
Пример с ИТС: Неправильно: Функция ПолучитьМассивыРеквизитов(ХозяйственнаяОперация, МассивВсехРеквизитов, МассивРеквизитовОперации) Правильно: Функция ЗаполнитьИменаРеквизитовПоХозяйственнойОперации(ХозяйственнаяОперация, ИменаВсеРеквизиты, ИменаРеквизитыОперации) |
|||
64
Kassern
18.08.21
✎
16:20
|
(63) *неправильный
|
|||
65
Конструктор1С
18.08.21
✎
16:23
|
(62) а про что?
Допустим, сделаю имя метода "красивым" Процедура УстановитьПризнакНадежныйКонтрагенту() а дальше, чтобы выяснить обрубленное ДляПокупателейСОборотомБолееМиллионаИБезПросрочекПлатежей, читающему всё равно придётся занырнуть в метод и прочитать его, чтобы получить тот самый обрубок |
|||
66
Конструктор1С
18.08.21
✎
16:24
|
(63) что неправильно? ЗаполнитьАтрибут() я как раз привожу как плохое имя метода
|
|||
67
vi0
18.08.21
✎
16:25
|
(65) я про слово миллион
см (58) |
|||
68
Kassern
18.08.21
✎
16:26
|
(66) ну так ваш вариант не лучше
|
|||
69
Kassern
18.08.21
✎
16:27
|
(65) а теперь представьте, что вам надо по десятку сегментов пройти (от 1-2лямов от 2-5 и тд.) вы будете на каждую сумму свою функцию лепить и код ее копипастом, только наименование подправить и число в запросе?)
|
|||
70
Конструктор1С
18.08.21
✎
16:28
|
(67) чем тебе слово миллион не угодило?
|
|||
71
Конструктор1С
18.08.21
✎
16:29
|
(69) не буду я лепить на каждый сегмент свою функцию, с чего ты взял? Представь себе что цифра одна, и прибита она гвоздём в законе
|
|||
72
vi0
18.08.21
✎
16:30
|
(70) тем что сегодня миллион, а завтра полтора
|
|||
73
Kassern
18.08.21
✎
16:31
|
(71) как показывает практика, так не бывает)
|
|||
74
Конструктор1С
18.08.21
✎
16:32
|
(72) когда станет полтора, тогда и переименуешь
|
|||
75
Конструктор1С
18.08.21
✎
16:32
|
(73) сплошь и рядом. Вспомни хотя бы ставку НДС "0%"
|
|||
76
Kassern
18.08.21
✎
16:32
|
(74) а у тебя эта функция к примеру экспортная и куча обработок внешних к ней долбится, вот прикольно будет)
|
|||
77
Kassern
18.08.21
✎
16:36
|
(65) "читающему всё равно придётся занырнуть в метод" ему достаточно глянуть какая сумма в параметре передается.
|
|||
78
Kassern
18.08.21
✎
16:36
|
(65) "БезПросрочекПлатежей" это так же в параметрах можно увидеть.
|
|||
79
Kassern
18.08.21
✎
16:37
|
Если функция сложная, то есть возможность оставить комментарий к ней и к ее параметрам.
|
|||
80
Конструктор1С
18.08.21
✎
16:37
|
(76) вот зачем ты придумываешь нелепые примеры? В коде очень и очень много константных значений. Лучше раз в 10 лет переименовать метод, чем сотня человек тысячу раз заглянет в один и тот же метод и увидит: "а, тут всё тот же миллион"
|
|||
81
vi0
18.08.21
✎
16:37
|
коллеги, ответьте на мой вопрос (50)
если есть риск, что скрипт с русскими буквами на питоне не будет работать в каких то ситуациях, то как быть с русскими сообщениями типа print('привет') ? |
|||
82
Kassern
18.08.21
✎
16:38
|
И создавать функции в виде портянки на 200+ строк это тоже полохой код
|
|||
83
Kassern
18.08.21
✎
16:39
|
(82) *плохой
|
|||
84
Конструктор1С
18.08.21
✎
16:39
|
(78) ты уже наговорил на метод с кучек побочных эффектов. Это тоже плохо. В такой метод будут заглядывать ещё чаще
|
|||
85
Йохохо
18.08.21
✎
16:41
|
если не знать предметки на английском лучше и не пытаться переводить, словите лулзов и русскоговорящим и get a fine от англоговорящих
|
|||
86
Kassern
18.08.21
✎
16:42
|
(80) это не нелепые примеры, это лишь рекомендации к написанию кода. Я не видел ни одной функции, где константами бы прибивали параметры к имени функции. Это звучит так же нелепо как:
Процедура ЗаполнитьКонтактныеДанныеДляКонтрагентаВаси(Адрес,Телефон,КонтактноеЛицо и т.д...) Я же вам предлагаю ЗаполнитьКонтактныеДанныеКонтрагента(Контрагент,СтруктураЗаполнения); |
|||
87
Kassern
18.08.21
✎
16:43
|
(84) "побочных эффектов" вы серьезно? Для вас Параметры функции это что то негативное?
|
|||
88
Конструктор1С
18.08.21
✎
16:53
|
(86) а это один из пиздецов программинга в 1с. Мы заведём отдельный регистр, напишем под него пять методов, заюзаем соединение с регистром в сотне запросов... И всё ради того чтобы катать какую-то константу, которая меняется раз в 10 лет
(87) серьёзнее некуда. Есть есть чёткое требование, нужно делать по этому требованию, а не придумывать сотню гипотетических ситуаций. Когда что-то поменяется, тогда и будешь дорабатывать. Иначе можно дойти до абсурда, начать закладывать в параметрах "про запаз" национальность, цвет кожи и возраст контрагента |
|||
89
Kassern
18.08.21
✎
16:56
|
(88) вы опять куда то не туда, вас никто не призывает обезличивать функции и спецом усложнять, а наоборот писать самодокументирующие себя имена. Но тут тоже меру надо знать и не закладывать все подряд в имя функции, чтобы потом по каждому чиху отдела продаж не переименовать эти функции. В общем есть стандарты, надо придерживаться их, это мое мнение.
|
|||
90
Конструктор1С
18.08.21
✎
17:03
|
(89) не всё подряд, а что _конкретно_ делает этот метод. Если ты не прочитаешь "миллион" в названии метода, то всё равно прочитаешь его в коде метода
|
|||
91
Kassern
18.08.21
✎
17:16
|
(90) давайте все же расмотрим частный случай, а именно ваш пример "УстановитьПризнакНадежныйКонтрагентДляПокупателейСОборотомБолееМиллионаИБезПросрочекПлатежей()"
Читая эту функцию, мы понимаем, что программист не заложил возможность пользователю менять сумму для установки признака контрагенту. Далее понимаем, что при изменении суммы, придется и переименовать саму функцию и исправлять все обращения к ней. А можно же было тупо в запросе проверить подходит ли контрагент под надежного, а сам признак надежного дать в пользовательском режиме указать соответствующим юзверам. А для кодера достаточно будет глянуть параметры функции, чтобы понять какие соответствия нужны для этого признака. Пример вашей процедуры всего лишь создает дополнительную работу программистам для изменении данного признака. А уж условия надежности клиента реально могут меняться хоть каждый год. В общем убеждать вас у меня цели нет, свою мысль я надеюсь донес. |
|||
92
Конструктор1С
18.08.21
✎
17:29
|
(91) в программировании зло:
- преждевременная оптимизация, когда она не требовалась (убили читабельность кода ради выигрыша времени размером в наносекунды) - преждевременная универсальность, когда она не требовалась (добавили отдельные таблицы БД, написали универсальный код, нарисовали интерфейс, и всё во имя единственной константы, которая меняется раз в пять лет) Мартин Фаулер в свой книге "Рефакторинг" описал правило трёх ударов: 1 удар. Делая что-то в первый раз, Вы просто это делаете. 2 удар. Делая что-то аналогичное во второй раз, Вы морщитесь от необходимости повторения, но все-таки повторяете тоже самое. 3 удар. Делая что-то похожее в третий раз, вы начинаете рефакторинг. вот если _действительно_ возникнет потребность часто менять значение, тогда и заведешь константу, регистр, переименуешь метод и так далее. А заранее додумывая, и закладывая в код функциональность "про запас", ты выстреливаешь в ногу себе и другим программистам |
|||
93
Kassern
18.08.21
✎
17:36
|
(92) каждому свое, когда ты изначально планируешь архитектуру конфы, ты же не просто лепишь, что в голову пришло, а все таки прикидываешь, как будут данные хранится, как использоваться. Это как строить дом, можно составить проект изучить почву и начать строить по проекту, а можно тупо начать стоить, а если начинает обваливаться, или трескаться тогда и задумываться о дополнительном армировании/утеплении.
Я бы, реализуя такую хотелку бизнеса, сразу бы задал вопрос про использование и предложил возможность гибкой настройки данного признака в пользовательском интерфейсе. Но как показывает практика, частенько программеры не в зуб ногой, тупо лепят, что им скажут без задней мысли, а как то предупредить, или предложить оптимальное решение чет мало кто делает. По опыту это все выливается в перелапачивание кода, а для бизнеса - в переплату по доработке. |
|||
94
Конструктор1С
18.08.21
✎
17:48
|
(93) не совсем корректная аналогия. Если про строительство, то ты предлагаешь заранее забить бетонные сваи в фундамент, мол вдруг проект резко поменяется, и вместо коттеджа начнут строить 10-этажный панельный дом
>>Я бы, реализуя такую хотелку бизнеса, сразу бы задал вопрос про использование и предложил возможность гибкой настройки данного признака в пользовательском интерфейсе А через 10 лет выяснится, что за последние 10 лет эта "гибкость" ни разу не понадобилась. Ибо пользователю юзают всё то же значение 1.000.000, которое 10 лет назад завёл программист Вася |
|||
95
Kassern
18.08.21
✎
17:51
|
(94) зато клиент осознанно заплатил за эту хотелку, либо отказался от нее. В этом случае претензий к кодеру не будет.
|
|||
96
Конструктор1С
18.08.21
✎
17:56
|
(95) претензий к кодеру может и не будет, но клиент переплатил за несколько часов абсолютно бесполезной работы кодера
|
|||
97
vi0
18.08.21
✎
18:24
|
(96) ты пропустил такие важные слова как "задал вопрос" и "предложил возможность"
|
|||
98
Garikk
18.08.21
✎
18:33
|
(92) воо, у меня был начальник который в абсолют такую точку зрения возвел
разработка выглядела так 1) пилим фичу из 3 ф-ций связанных друг с другом для одного контрагента, делаем по шагам 2) пилим 1 ф-цию, прибиваем всё гвоздями, потому что лишний оверхед не нужен, вдруг остальные 3 не понадобятся? (1 неделя) 3) пилим 2 ф-цию + рефакторим первую чтобы всё работало вместе (1 неделя на ф-цию, 3 дня на рефакторинг первой) 4) пилим 3 ф-циб + рефакторим 1-ю и 2-ю чтобы всё работало (1 неделя + 1 неделя на рефакторинг == (прошел месяц) впиливаем 4 ф-цию и нахрен переписываем все три первые потому что там всё прибито гвоздями к одному контрагенту буквально 'найти(имя='ооо рогаикопыта')' (ну там по коду конечно в оригинале, я упростил) потому что оказалось что у контрагента 4 юрлица, а бизнесу так понравилась ф-ция что они хотят на всех клиентов её распространить в итоге мы полгода пилим ф-цию вместо 2х недель просто потому что 'нечего писать лишнее пока это не требуется' блин я там два года прострадал в этом балагане |
|||
99
VladZ
18.08.21
✎
18:40
|
(0) Убей всех своим кодом - пиши траслитом.
|
|||
100
Конструктор1С
18.08.21
✎
19:06
|
(98) писать код тоже нужно уметь. В среде 1сников это умеют не многие. Даже писатели типовых те ещё писатели. Как яркий пример рукожопств из недавнего - ставки НДС. В 2019-м подкатила новая ставка НДС 20%. И тут "внезапно" выяснилось, что в запросах типовых конфигураци 100500 раз идёт вычисление размера ставки НДС. Аццкое такое дублирование. В итоге было переписано овердохрена запросов. Но пришли к другому уродству - начали хранить ставки НДС в регистрах сведений. Всё почему? Потому что писатели типовых не знают что такое инкапсуляция, не знают и не чтят принцип единственной ответственности. Иначе логика вычисления аккуратно была бы инкапсулирована в одну глобальную функцию. Эта функция вызывалась бы прямо в запросах СКД, и в коде при обходе результата запроса. Добавление новой ставки НДС заняло бы у разработчиков типовых 1 час (добавить значение перечисления и добавить пару строк в глобальную функцию). Но из-за рукозадых подходов к разработке потратили 10.000 часов (условно)
Так о чём это я? Если у вас замена константы в коде на табличное значение проходило через пот, боль и слёзы... ну значит вы делали что-то не так |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |