Размышления о хороших практиках, навеянные одной статьей

Публикация № 967288

Разработка - Математика и алгоритмы

12
Прочитал статью "Ректальное программирование: основы для практикующих 1С-программистов". Статья очень хорошая и своевременная. Но у меня возникло некоторое сомнение. А достаточно ли автор любит и понимает предмет, о котором пишет? Насколько богат его опыт ректального программирования и занимался ли он им вообще? Как человек обладающий многолетним опытом РП, я решил представить вам необходимые дополнения к статье.

Текст исходной статьи вы может найти здесь //infostart.ru/public/966234/

Чтобы не было недоразумений, скажу сразу. Программирование действительно может быть плохим и хорошим. Плохое программирование использует худшее из всех возможных представлений программы, а именно - текст. Этот подход достался нам в наследство от Алана Тьюринга с его бесконечной лентой. С тех пор, несмотря на неоднократные попытки, никому пока так и не удалось избавиться от него. Нам приходится писать наши программы на более или менее улучшенных разновидностях брейнфака. Хорошее программирование использует такое представление программы, которое учитывает особенности человеческого мозга. За ним, безусловно, будущее но оно пока еще не получило широкого распространения и нам всем, так или иначе, еще долго придется заниматься плохим. В этих нелегких условиях, ректальное программирование действительно является одной из лучших практик.

Разберемся по порядку. Сначала автор выдвигает три постулата. С первым из них я полностью согласен.

Главное - чтобы работало

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

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

Код - это искусство

А вот этого нет. Ректальные программисты не могут придерживаться этого постулата. Автор похоже забыл - какое у нас программирование. Оно ректальное. Ни один человек с минимальным вкусом не поставит рядом два эти слова: искусство и ректальное (ну разве что, это будет ну очень современное искусство).  Чересчур трепетное отношение к тому, что из них выходит скорее свойственно обычным программистам. А ректальные слишком хорошо понимают, чем они занимаются. В этот же постулате автор зачем-то упоминает комментарии, имена переменных, сложность и простоту. Но, так как, он все равно рассматривает их ниже, то и мы поговорим об этом там же.

Все новое - хорошо забытое старое

Тоже нет. Пока обычный программист разминает пальцы, которые затекли, от того что он цеплялся за свои best practices, ректальный успевает освоить одну-две новомодные штуки. Ректальные программисты любят и ценят новое гораздо больше обычных. Откуда автору прилетел этот постулат - не понятно.

Перейдем к базовым приемам, о которых говорит автор.

Комментарии в коде

Эта тема на самом деле огромна. Но постараюсь ужаться. Автор правильно замечает, что ректальный программист использует комментарии только в процессе работы. Финальный релиз у ректального программиста полностью свободен от комментариев. Программирование - непростое дело. Если вы будете двигаться от начала к концу, вы никогда не закончите. А если вы будете двигаться от конца к началу, вы никогда не начнете. Приходится двигаться в двух направлениях сразу, порой откладывая что-то на потом. В таких местах и ставится комментарий с указанием, что ты собираешься сделать. Само собой, когда ты полностью закончишь, комментариев у тебя не будет. Очень удобно. Глянул в свой код. Зеленого нет? Работа сделана.

Обычные программисты считают, что комментарии помогают читать код. Это - иллюзия и самообман. Мозг человека обладает крайне малой оперативной памятью. Две-три ячейки и все. Пытаясь компенсировать этот недостаток, наш мозг постоянно перепрыгивает с одного на другое. Это происходит с бешенной скоростью и помимо нашей воли. Когда мы читаем текст на человеческом языке, наш мозг успокаивается и начинает скользить от слова к слову. Если это к тому же еще хорошее литературное произведение, то процесс становится не только легким, но и приятным. Но текст программы - не литературное произведение. Его чтение - настоящая мука для мозга. Неподготовленные люди очень устают. И это, кстати, главная, если не единственная причина, почему программирование до сих пор не пошло в массы. Когда мозг неподготовленного человека встречает островок привычного ему человеческого текста, он просто отдыхает. При этом содержимое комментария вовсе не важно. В принципе, это могло бы быть что-то типа:

//мы понимаем, как тебе трудно
//не паникуй, успокойся, отдышись
//рабочее время скоро закончиться

А еще лучше раскидать по всему тексту через равные промежутки отрывки из любимого литературного произведения. Но, поскольку любимое произведение у каждого свое, то нет никакого смысла вставлять комментарии в текст программы заранее. Это мог бы делать и сам неподготовленный программист, прежде чем читать текст программы. Запустил обработку, задал произведение и получил читабельный для себя текст. Впрочем, все это к ректальным программистам никак не относится. Ректальные программисты чужие комментарии не читают. Совсем. Вы не думайте, что я над вами шучу. Просто поверьте. В вашей практике обязательно настанет момент, когда вам резко станет неинтересно, что думал разработчик о своем коде. Зачем вам тратить время на эту ерунду? Вы будете сразу читать только код. Не могу сказать точно, когда это происходит. Лично у меня это было где-то между 20 и 30 годами практики. Но не исключено, что можно достичь этого и быстрее.

Выше автор что-то сказал про "понятные" переменные. Ректальный программист не понимает, что значит "понятная" переменная. Вот здесь понятная переменная?

СуммаПервогоИВторого=Первое*Второе; 

А здесь?

х=Первое*Второе; 

А что лучше? (Спойлер. Первое может быть причиной труднообнаруживаемой ошибки.)

Ректальный программист считает, что переменная должна быть различима в своем контексте (а контекст должен быть, по возможности, не сильно растянут). Т.е. мы должны с легкостью отличать одну переменную от другой. Давать при этом переменным "осмысленные" имена, растягивая их в длину или давать короткие абстрактные - по большому счету, дело вкуса. В любом случае, смысл переменной будет заключаться не в ее имени, а в тех значениях, которые она будет принимать.

Через точку

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

start:
    mov ah,01h
    int 16h
    jz  start
    xor ax,ax
    int 16h
    cmp al,1bh
    je  exit
    cmp al,30h
    jl  start
    cmp al,39h
    jg  start
    push    cs
    pop ds
    mov bx,offset coded
    and al,0fh
    xlatb
    mov ah,0ah
    xor bh,bh
    mov cx,1
    int 10h
    jmp start
exit:

Когда-то это считалось прекрасным, однако опыт показывает, что в сражении между простотой и производительностью выигрывает простота. Ректальный программист спокойно напишет столько точек, сколько потребуется. И также спокойно ректальный программист напишет запрос в цикле. Я прекрасно знаю, что меня назовут рукожопом. Может так оно и есть. Я рукожоп, а разработчик платформы, который поленился на этапе предварительной трансляции вынести запросы к БД из циклов, он - молодец. Думайте, как хотите.

Форматирование

Этот прием ректальными программистами не используется. Сейчас любой редактор кода форматирует его на лету. И надо еще постараться его "расформатировать". А ректальные программисты бессмысленной активностью не занимаются.

Копирование кода и общие модули

Да, ректальный программист копирует код. Предварительно оценив всю боль от возможной будущей правки и умножив ее на вероятность, он хладнокровно делает это. Обычные так, конечно, не поступают. Например, разработчики типовых конфигураций не копируют код. Они создают много-много общих модулей. Потому что понимают - рано или поздно придется что-то менять. И тогда они устанут. Они - молодцы, что заранее позаботились о своей эффективности. Проблема только в том, что есть дебет, а есть кредит. 1С - это одна секунда. Вот эта одна секунда у меня и есть на то, чтобы поменять один символ в проведении документа. Я знаю где найти документ, его модуль, процедуру обработки проведения. И что толку? В типовой конфигурации я не сделаю это и за час. Потому что обычные программисты не копируют код. Они позаботились о своей эффективности, но не о моей. Просто подумайте об этом. Что целесообразнее? Съэкономить рабочее время небольшой группы разработчиков или миллионы человеко-часов всех остальных?

God object

Интересный подход. Но не для ректального программиста. Возможно, когда-нибудь он станет God-программистом. Вот тогда...  

Попытки

Автор утверждает, что ректальные программисты везде вставляют попытки и ничего не пишут в исключениях, потому что боятся пользователей. Это не так. Ректальные программисты пользователей любят и совсем не боятся. Такие конструкции они ставят вовсе не везде, а только там, где по куску кода пройдет робот. В этом случае просто некому сообщать что-либо об ошибке. Конечно, тут следовало бы поставить запись в лог. Но ректальный программист всегда видит на несколько шагов вперед. И понимает: лог-то он сделает, но кто будет тот несчастный, которого заставят этот лог читать?

Юзерфрендли

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

 

ректальный программист наконец принимает для себя философское правило. Не "лечи" клиента, если он об этом не просит.

Кэш

Можно ли улучшить этот код? Ну, конечно, можно.

Если        ЭтаФорма["ДеревоМетаданных"].НайтиПоИдентификатору(ТекСтрока).ПредставлениеОбъекта = "Справочники"
	ИЛИ ЭтаФорма["ДеревоМетаданных"].НайтиПоИдентификатору(ТекСтрока).ПредставлениеОбъекта = "Документы"
	ИЛИ ЭтаФорма["ДеревоМетаданных"].НайтиПоИдентификатору(ТекСтрока).ПредставлениеОбъекта = "Планы видов характеристик"
	ИЛИ ЭтаФорма["ДеревоМетаданных"].НайтиПоИдентификатору(ТекСтрока).ПредставлениеОбъекта = "Планы счетов"
	ИЛИ ЭтаФорма["ДеревоМетаданных"].НайтиПоИдентификатору(ТекСтрока).ПредставлениеОбъекта = "Задачи"
	ИЛИ ЭтаФорма["ДеревоМетаданных"].НайтиПоИдентификатору(ТекСтрока).ПредставлениеОбъекта = "Бизнес-процессы"
	ИЛИ ЭтаФорма["ДеревоМетаданных"].НайтиПоИдентификатору(ТекСтрока).ПредставлениеОбъекта = "Планы обмена"
	Тогда
	ПлчЭлмнт = ЭтаФорма["ДеревоМетаданных"].НайтиПоИдентификатору(ТекСтрока).ПолучитьЭлементы();
КонецЕсли;

Так будет выглядеть гораздо эстетичнее, не правда ли? Мне кажется, тут автор уже начинает придираться к мелочам. 

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

 

12

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо
1. nyam-nyam 21.12.18 10:58 Сейчас в теме
То что методы рациональных программистов порой совпадают с методами ректальных ещё не повод ставить между ними равенство. Пример с понятным названием считаю не корректным, так как понятная не значит длинная и запутывающая, и "СуммаПервогоИВторого=Первое*Второе;" скорее будет означать ошибку, где вместо "*" нужно поставить "+", если только автор сознательно не решил на говнокодить. В изначальной статье имелось в виду что если все переменные назвать как попало, то в коде разобраться будет крайне тяжело, а не абсолютный запрет на короткие имена переменных. И в примере "Кэш" имелось в виду что улучшить нужно именно созданием временной переменной для значения "ЭтаФорма["ДеревоМетаданных"].НайтиПоИдентификатору(ТекСтрока).ПредставлениеОбъекта", а не форматирование.
bulpi; for_sale; +2 Ответить
3. mkalimulin 375 21.12.18 11:11 Сейчас в теме
(1) Не принимайте так близко к сердцу. Обе статьи написаны в полушутливой форме.
Жаль, что вы не смогли понять в чем опасность:

СуммаПервогоИВторого=Первое*Второе;

Похоже, я изобрел экспресс-тест на профессионализм. Спрашиваешь - в чем опасность этой конструкции. И человек либо понимает, либо нет.
Serg O.; kap2; +2 5 Ответить
6. nyam-nyam 21.12.18 12:35 Сейчас в теме
(3)Опасность идеи заведомо запутывающих имён переменных из Вашего примера понятна. Но пример в контексте предыдущей статьи не корректен - её автор наоборот призывает давать понятные имена переменным. Так что для нормального программиста будет очевидным что с выражением:

СуммаПервогоИВторого=Первое*Второе;

явно что-то не то, так как с точки зрения здравого смысла оно содержит логическую ошибку. И скорее всего она заключается в знаке умножения , поставленного вместо знака сложения. Есть вариант что ошибка в слове "Сумма", где должно было быть слово "Произведение", но вероятность такой ошибки существенно меньше, если только из контекста задачи не будет следовать что нужно именно произведение. Мы же про 1С говорим, а не про брейнфак?
2. MenZurKa 21.12.18 11:09 Сейчас в теме
Последнее время мне плакать хочется от читаемого в коде... Я просто бежал по парусам кода и в конце попал в код, который меня утопил в печали:
...
Если ((ПН И ПНП) И (РН И РНП)) ИЛИ 
	(( ПН = Ложь ) И (РН И РНП)) ИЛИ 
	((ПН И ПНП) И (РН = Ложь)) Тогда 
	Док.Обработан = Истина;
	Док.ДанныеОбработан = ТекущаяДата();
	Док.Записать(РежимЗаписиДокумента.Проведение);
КонецЕсли;
Показать

...

По именам переменных догадывайся как хочешь, ищи по простыням, путай
bulpi; for_sale; Светлый ум; +3 Ответить
24. mkalimulin 375 21.12.18 16:23 Сейчас в теме
(2) Какой прелестный пример!
Я вам знаете что скажу... Мы ведь все когда-то учились. Вам разве не приходилось писать-писать какое-то суперсложное условие. А потом, ой, да тут же можно просто одно ИЛИ в одну строку. Не судите автора этого кода строго. Он еще только начинает и у него все впереди. Вы мне лучше вот что объясните.
Вот вы говорите, что имена переменных абстрактные и теперь их надо в коде искать. И вы, конечно, устанете.
Вот тут я не пойму. А если бы имена были осмысленные, вы бы не стали их искать в коде? Просто поверили бы автору вот этого самого замечательного условия? Поверили бы, что он все правильно написал в правой части? На слово? Потому что иначе вы устанете, да?
4. denis1c@ 6 21.12.18 11:47 Сейчас в теме
СуммаПервогоИВторого=Первое*Второе;


Такое имя действительно может только запутать, ведь переменная хранит не сумму, а произведение.
5. for_sale 795 21.12.18 11:48 Сейчас в теме
Так и знал, что пойдут "уточняющие", призванные облить говном автора предыдущей статьи))

Очень мелочно и непрофессионально переходить на личность. Не понравились вам тезисы в статье - ну напишите опровержение. Но вот эти вот - а что вообще за сволочь, этот автор, да он же просто дилетант - ну это школьный двор)) Жаль, что у нас таких "РП с многолетним опытом" вагон и тележка
rpgshnik; lunjio; +2 2 Ответить
7. FB_1811930315551820 21.12.18 13:12 Сейчас в теме
(5) Ну что ж Вы так-то... Написали хороший, провокационный текст (пока читал, чуть не подавился кофе), и так плохо держите ответку. Имхо, в Вашем тексте были спорные (или просто слабые) моменты, и ТС вполне остроумно по ним прошелся, но он же ни разу не переходил на личности и не обвинял никого в дилетантизме, да и слов типа "сволочь" я в тексте не заметил... А провокация - оружие обоюдоострое ))
Артано; A7_Sash; user811769; rose131177; Aggressorak; +5 3 Ответить
14. for_sale 795 21.12.18 14:04 Сейчас в теме
(7)
А зачем мне дежрать ответку?)) Я ж говорю - это что, школьный двор?)) Оценивать нужно информацию, а не личность, переход на личности - это всегда показ слабой позиции, нежелания и невозможности аргументировать. Это же уровень - "ты мне сказал, что у меня код плохой, значит ты дурак". Я обеими руками за споры по теме, но слушать, что "автор написал такую статью, потому что долбо...человек" - ну это как-то... смешно даже))

Так что я с радостью почитаю "ответки" по теме, а не где будет обсуждаться мой опыт и моя личность (слава богу, хоть не стали писать, что я некрасивый и толстый))) ).
user623969_dusa; rpgshnik; bulpi; lunjio; +4 Ответить
21. FB_1811930315551820 21.12.18 14:36 Сейчас в теме
(14) Я сперва даже не понял, о чем речь, на всякий случай еще раз перечитал статью - вдруг действительно не заметил перехода на личности... И только когда начал читать по третьему кругу, заметил:
А достаточно ли автор любит и понимает предмет, о котором пишет? Насколько богат его опыт ректального программирования и занимался ли он им вообще?

Вы на этот фрагмент обиделись?? Но это же явный сарказм, ирония - ТС сомневается в том, что Вы сами являетесь РП... На самом деле это завуалированный комплимент, Вы же это понимаете?
22. for_sale 795 21.12.18 15:11 Сейчас в теме
(21)
Обиделся - это какой-то... странный для меня термин в отношении незнакомых людей))
Недоумение в данном случае подходит больше. Да, этот фрагмент у меня вызвал недоумение. Разухабистая такая шутка получилась)) Но, понятное дело, у всех разный подход и понимание юмора, поэтому вполне возможно, что я неправильно оценил.
13. mkalimulin 375 21.12.18 13:49 Сейчас в теме
(5) Я просто читал вашу статью, радовался и ставил лайк. Но тут я заметил, что вы поставили дизлайк на другую мою статью
https://infostart.ru/public/707283/
И что мне теперь делать, подумал я. Поставить вам дизлайк? Но, это было бы неправильно. Статья-то ведь качественная. А чем больше качественных статей на Инфостарте, тем лучше всем.
Но, с другой стороны, обидно.
И тогда я решил написать свою статью. Пусть она будет вторична, подумал я, но ведь кто-нибудь мне лайк поставит и вернет то, что вы у меня отняли. А на Инфостарте будет уже две качественных статьи вместо одной.
Я постарался взять такой-же полушутливый тон, что и вы. И вовсе не собирался вас обижать. Если вы все же обиделись, то извините. Я пошутил.
Ну на что вам, в сущности, обижаться? Ваша же статья лучше. Она всем нравится.
Артано; +1 Ответить
16. for_sale 795 21.12.18 14:12 Сейчас в теме
(13)
ну вот видите - я ж говорю, какой-то пятый класс)) ты мне дизлайк - а я тебе насру в портфель)) плюсы-минусы - это оценка информации. Я, в отличие от вас, не оценивал лайками-дизлайками вашу личность. Я оценивал информацию. Если я согласен - ставлю лайк, если нет - дизлайк. Этой вашей статье я поставил дизлайк уже после прочтения первого абзаца. Потому что, повторю в который раз, дискутировать надо по теме, а не по личности. Вы бы ещё написали статью - "Автор той статьи - дурак", и жали бы лайков)))

Поэтому вам нужно просто выйти вообще из этой плоскости, перестать оперировать в этом контексте вообще такой терминологией, как "обижаться, нравиться", перестать оценивать чьи-то личные качества - и сконцентрироваться на информации, на теме. Да, и ещё лайкодрочерством тоже перестаньте, это очень смешно и давно уже на всех форумах считается моветоном, читать, что РП со стажем вычисляет, кто ему дизлайки ставит - это прям унижение целой отрасли)) И тогда у вас будет материал, который хотя бы захочется прочесть.

Это чисто моё мнение, знаю, что людям хочется хлеба и зрелищ и они могут радостно принять такие материалы, но если вы хотели подискутировать именно со мной, то пока что не получится - пока дискуссии начинаются в таком виде.
26. mkalimulin 375 21.12.18 16:44 Сейчас в теме
(16) Вы такой серьезный, хотя скоро Новый год. Ну давайте "сконцентрируемся на информации".
Если перенести по-максимуму код из общих модулей в модули документов, станет лучше или хуже?
27. for_sale 795 21.12.18 17:02 Сейчас в теме
(26)
Вы меня на работу хотите взять или вам бесплатная консультация нужна?)))
17. for_sale 795 21.12.18 14:19 Сейчас в теме
(13)
П.С. а дизлайк с той вашей статьи я уберу. Я правда оцениваю так информацию, но если это так болезненно воспринимается и вызывает обиды - то не так уж и важно тогда))
19. Fox-trot 106 21.12.18 14:25 Сейчас в теме
(17) доброе слово и кошке приятно %)
for_sale; +1 Ответить
8. lunjio 62 21.12.18 13:16 Сейчас в теме
Во-первых, много чего искажено, буду последователен:
1. Главное - чтобы работало - Автор имел ввиду, когда ты особо не вдумываясь пишешь серьезный код, под проект или серьезную задачу, как попало, ведь главное работает, работать-то оно должно в любом случае, но ты программист ведь, учти какие-то моменты, дай нормальные имена переменным, отформатируй, вынеси в процедуры повторно используемые участки кода, продумай структуру, но без фанатизма, вы же заявляете о том что потеряете клиента, если ему ещё и время на рефакторинг и прочее впишите, только учтите что когда плата за труд взимается, она взимается за то, как бы писал программист средней руки, без залазываний в СП и раздумываний на продумывания логики кода.
В то время как клиент ещё раз будет платить вам или другому программисту, за то, чтобы поправил ошибки или модифицировал с учетом изменения требований бизнеса, так тому придется либо ваш код приводить в порядок, либо переписывать, в итоге же клиент заплатит повторно, прикольно вы устроились однако, выставляете по факту потраченного времени.

2. Код - это искусство - сам лично могу показать процедуру на 10 тыс строк кода и на 5 тыс строк кода запрос, такие примеры и имелись ввиду у автора, ну потрать ты чуток времени на рефакторинг, сделай проще чуток вруби голову, да у тебя в голове картинка сложилась ты написал, дай более ясные имена переменным, продумай как упростить свою ахинею, почему я должен вникать в 10 строк кода без абстракий ? Это и имел ввиду автор. Опять же не понятно как вы интерпретируете эту часть.
3. Все новое - хорошо забытое старое - автор имел ввиду, что не надо копировать куски кода, ну вынеси ты их в отдельную процедуру, не усложняй поддержку кода. Вы же не понятно как это предоставили. Как раз таки РП и не изучают ничего нового, пару операторов у них заменяют всё ! В то время, как программист всегда должен развивать свой багаж знаний будь то чтение книг или логические выводы и практики взятые при чтении чужого кода.
4. Комментарии в коде - Автор имел ввиду что РП оставляет комментарии только в виде закомментированного старого не нужного кода, а не нормальных пояснений к своему коду, вы же опять искажаете смысл автора.
5. Через точку - автор имел ввиду что к этому надо подходить осторожно, все мы обращаемся через точку, но когда кому-то лень в запросе вышестоящем вывести в отдельное поле реквизит и он долбится через Выборка.Ссылка.НужноеРППоле, а потом пользователь идет пить кофе, каждый раз когда обновляет форму списка, не это ли то, что имел ввиду автор ?А лучше через пару точек. Вы же для сравнения приводите ассемблер, а он то причем? у нас работа с сущностями которые имеют представление в БД и нужно понимать где нужно через точки ставить обращение, а где нет, автор это и имел ввиду, у РП везде на пофиг через точку обращения и где можно и нельзя.
6 God object - имелось ввиду когда все пихается в один регистр, или практика когда а вот если это справочникСсылка.Справочник1 тогда эти поля заполнены иначе заполнены все остальные или когда один справочник скрывает две сущности, вы отделались легким испугом.
7 Попытки - автор утверждал не то, что вы имел ввиду, он утверждал что есть умельцы которые кучу когда пихают в попытку и не обрабатывают исключение, а юзер ломай голову что же не так, сам использую иногда попытки даже не при записи объекта или сущности, когда обосновано.

Мои выводы - автор данной статьи, не вникнул в написанной в исходной статье, ничуть.
pashamob; servetko; ltfriend; user716065; bulpi; for_sale; +6 Ответить
10. acanta 74 21.12.18 13:22 Сейчас в теме
(8)
В то время как клиент ещё раз будет платить вам или другому программисту, за то, чтобы поправил ошибки или модифицировал с учетом изменения требований бизнеса, так тому придется либо ваш код приводить в порядок, либо переписывать, в итоге же клиент заплатит повторно, прикольно вы устроились однако, выставляете по факту потраченного времени

Нет, рефакторинг всегда делается бесплатно в период когда программисту нечего есть скучно и нечем заняться. Это называется домашнее задание.
Просто гораздо интереснее этим заниматься именно тогда, когда вокруг стоит куча народу и у них ничего не работает, а надо сделать срочно обновление/изменение. После того как нечего есть скучно и нечем заняться будет всему трудовому коллективу любимого клиента (кроме отдела кадров, который судорожно ищет замену) за рефакторинг начинают оплачивать программист идет искать другую работу.
11. lunjio 62 21.12.18 13:38 Сейчас в теме
(10)
Ну ну, вижу вам реально нечем заняться, раза три точно редактировали свой ответ ))) Определитесь уже.
Когда куча народу стоит и ничего не работает, нужно найти причину и устранить, без рефакторинга и прочего, вы пытаетесь опять оправдать как-то такой стиль написания, но причем тут эти случаи ?? Имелось ввиду совсем другое.
12. acanta 74 21.12.18 13:43 Сейчас в теме
(11)
Определитесь уже

Выбор клиента при работе с вами стоит между не платить вообще или заплатить какому-то другому программисту. Ваш клиент что выберет?
15. lunjio 62 21.12.18 14:12 Сейчас в теме
(12)
Выбор клиента при работе с вами стоит между не платить вообще или заплатить какому-то другому программисту. Ваш клиент что выберет?

Это только вы так решили )
18. acanta 74 21.12.18 14:24 Сейчас в теме
(15)
Это только вы так решили )

То есть это мне показалось?
20. lunjio 62 21.12.18 14:31 Сейчас в теме
(18)
Вам показалось, что у клиента выбор только между - не платить вообще или заплатить какому-то другому программисту. На самом деле ,у него выбор между качественном,пусть не таком быстром, исполнении, при котором ещё будет много чего уточнено и предусмотрено и между тем, что получить желаемое дешево и быстро, и так как он не может оценить качество, он будет думать ещё и "качественно", ведь работает! А потом удивляться, да что вы ?
Или когда с увеличением штата на 5 человек или оборотов, производительность системы будет уменьшаться в геометрической последовательности.
Предусмотреть ещё такие моменты обойдется во столько-то времени и денег ? Да, но ведь кто это делал, сделал очень быстро и дешевле.
Как правило РП это простые исполнители, они не зададут вам наводящих вопросов, не буду выяснять истинные потребности, а примут ваше видение решения проблемы, да возможно это и ценится в бизнесе, но это ценится только в случае когда это какая-то ну очень мелкая доработка.
for_sale; user1116248; +2 Ответить
9. lunjio 62 21.12.18 13:20 Сейчас в теме
Торопился пока писал, не осветил все моменты, которые искажены в данной статье, возможно где-то допустил ошибки. Прошу заранее прощения.
for_sale; +1 Ответить
23. bulpi 157 21.12.18 16:06 Сейчас в теме
Статья плохая. Хотел поставить минус, а потом подумал - чего человека обижать. Человек-то может и хороший, просто статья плохая :)
servetko; ltfriend; lunjio; for_sale; +4 Ответить
25. mkalimulin 375 21.12.18 16:26 Сейчас в теме
(23) А чем плохая? Мыслей мало, одни шуточки?
36. servetko 24.12.18 15:24 Сейчас в теме
(25)
шуточки как раз не смешные. почитал обе статьи... в первой тонко как-то все... а тут просто ты захотел кусочек славы... и дай думаю напишу такие же шутки... но не взлетело. изини если обидел
for_sale; +1 Ответить
37. mkalimulin 375 24.12.18 15:35 Сейчас в теме
(36) Джинсы с рукавами - это тонко?
А объяснения, почему писать запросы в цикле, не дурной тон - это не тонко? А как, по вашему? Банально?
38. servetko 24.12.18 15:41 Сейчас в теме
(37)
если ты считаешь что то только джинсы с рукавами то все еще хуже чем показалось вначале. Брат, ты там внизу писал что надо понять и простить тех кто пишет неправильный код. вот тут я готов понять тебя и простить почеу ты это пишешь. не надо ему завидовать ты сможеш направить энергию на саморазвитие и другие материалы. сейчас ты просто позоришь себя этой неприкрытой завистью сейчас это большая красная буква:
я хочу тоже чтобы всем понравилоаь почему не понавилось никому??? он написал плохо и вам понравилась а мое не понравилось.!
прекрати. это не соревнование он тебя не оскорблял. успокойся, оставь это. в этот раз у него получилось лучше, в другой раз у тебя. это не соревнование. зачем это писать и выставлять себя? путь зависти это путь разложения ты станешь внутри гнить и пропадешь. это конечно образно но ты понимаешь меня. порадуйся за него что у него получилось и в другой раз он за тебя порадуется что у тебя получилось. извини что неграмотно пишу не умею и хочу мысль сказать а не форму
for_sale; +1 Ответить
39. mkalimulin 375 24.12.18 15:54 Сейчас в теме
(38) Не драматизируй так. Зависть - двигатель прогресса. Потом, как ты понимаешь, я ведь не только этим занимаюсь.
В любом случае, спасибо за заботу.
40. servetko 24.12.18 15:55 Сейчас в теме
(39)
если эта зависть поможет тебе хорошо. но сейас это похоже на обычную детскую зависть со слезами соплями и обидами на всю жизнь и месть навроде поломать все игрушки
41. mkalimulin 375 24.12.18 16:02 Сейчас в теме
(40) Настучать больше 10000 букв - это поломать игрушки?
42. for_sale 795 24.12.18 17:12 Сейчас в теме
(41)
Зашёл сюда только потому, что вы поменяли название статьи и я удивился - вроде в такой статье комменты не оставлял. Но почитал комменты - теперь действительно вынужден согласиться с данным комментатором, чем дальше, тем больше похоже на какие-то обидки-завидки. Действительно, Михаил, успокойтесь уже, никто вас не обижал, что ж вы так завелись совсем. Ладно бы я мерседес или путёвку на мальдивы получил в награду, а вы - нет. А то такую истерику тут закатили за какие-то звёздочки. Я вам уже советовал лайкодрочерство оставить, это детсадовская мелочность, так вы не просто не оставили, а вообще в какой-то отрыв от реальности ушли за эти нарисованные звёздочки. Вам уже и в комментах написали, что ненужный материал, уже и минусов накидали, а вы всё никак не угомонитесь. Поверьте, если бы я был владельцем этого сайта и видел бы, что эти плюсики-минусики так сильно влияют на ваше самочувствие и отношение к окружающим, я бы вам их выдал мешок целый, лишь бы вы перестали кому-то завидовать за такие бессмысленные мелочи и делали бы что-то полезное, хотя бы даже себе.
43. mkalimulin 375 24.12.18 17:53 Сейчас в теме
(42) Не совсем понимаю, что вы мне предлагаете прекратить? Писать статьи? Писать комментарии? И почему собственно?
И в чем, интересно, вы видите отрыв от реальности?
44. for_sale 795 24.12.18 18:22 Сейчас в теме
(43)
Я вам предлагаю прекратить так неприкрыто демонстрировать свою зависть достижениям, которых нет. Никогда не думал, что взрослый человек может так неприкрыто завидовать какому-то сраному десятку лайков на чужой статье средней руки.
45. mkalimulin 375 24.12.18 18:29 Сейчас в теме
(44) В чем выражается эта демонстрация? Конкретно?
И про отрыв от реальности вы тоже ничего так и не сказали. Да и в прошлый раз не стали отвечать на вопрос. Сказали типа "я бесплатных консультаций не даю". Я начинаю подозревать, что вы вобще не любите отвечать по-существу.
46. for_sale 795 24.12.18 18:35 Сейчас в теме
47. mkalimulin 375 24.12.18 18:37 Сейчас в теме
(46) Вы предлагаете перевести разговор на уровень картинок?
48. for_sale 795 24.12.18 18:49 Сейчас в теме
(47)
По существу? Вы опять хотите бесплатную консультацию?)) Я попытался вам намекнуть, потом открытым текстом писал, и не только я. Статью вашу заминусовали, я первый раз вижу на инфостарте статью с минусовым итогом. Какие вам ещё нужны консультации? Провести вам сеанс психоанализа? Вам попытаются подсказать, что вы на неправильном пути - а вы всё равно решили всем доказать, что вы д'Артаньян, в отличие от всех остальных. Вам полегчало? По-фразный обход в цикле ваших творений и в теле, и в комментариях я не хочу делать. Статью я вашу по диагонали только осилил, не буду критиковать (вижу, какую боль вам это доставляет), скажу толерантненько - мне не очень. Поэтому ходить по ней и тыкать вам носом - по-моему, тут и так уже один сплошной стыд, ещё больше туда нырять не хочу. Шутка - она или получается или нет. За ручку вас водить и показывать, что тут вы пошутили несмешно - точно не в рамках бесплатной консультации) Как и ходить и показывать места, где вы в очередной раз пытаетесь намекнуть, какой автор той статьи (я) дурачок, а у вас какие шикарные творения и вы не понимаете, почему они никому не нравятся.

В общем, давайте тут остановимся. Точнее, я точно остановлюсь. Зашёл сюда случайно и зацепился опять)) В общем, сапиенти сат, попытайтесь самостоятельно разобраться, что вы сделали не так и на что вам пытаются указать чуть ли не все присутствующие.
51. for_sale 795 24.12.18 18:59 Сейчас в теме
(48)
всё-таки не смог пройти мимо парочки животрепещущих моментов, как просили)
52. mkalimulin 375 24.12.18 19:00 Сейчас в теме
(48) В прошлый раз вы меня упрекнули в том, что погрязнув в черной зависти, отпускаю сомнительные шуточки. Вместо того, чтобы вести серьезный разговор по-существу.
"Потому что, повторю в который раз, дискутировать надо по теме, а не по личности..." были ваши слова.
Я ведь вам тут же предложил дискуссию по теме. А вы уклонились и продолжаете уклоняться. Что вас так пугает?
57. for_sale 795 24.12.18 19:25 Сейчас в теме
(52)
Ни по какой теме я с вами уже не собираюсь дискутировать)) мне просто смешно смотреть на ваши детские обидки и зависть на нарисованные звёздочки на экране)) по теме нужно было начинать дискутировать, а теперь уже, когда мы тут все сидим в помоях ваших суждений и зависти о какой дискуссии может быть речь? Барахтайтесь теперь тут сами
50. for_sale 795 24.12.18 18:58 Сейчас в теме
(37)
Джинсы с рукавами - это тонко?
А объяснения, почему писать запросы в цикле, не дурной тон - это не тонко?


"ещё один перевод - эта дешёвая халтура со смешными картинками - вы это считаете тонким юмором??? а моё бессмертное творение с THE Истиной (тм) о том, как же всё таки действительно правильно писать - это по вашему не тонко??? а как??? БАНАЛЬНО????" (на этом месте действительно представляю забрызганный слюной монитор).

Вы просили конкретно - такая конкретика вас устроит? Так вам стало понятнее? Самостоятельно вы, я вижу, объективно оценить ваши излияния не в силе - вот вам помощь, как просили.
54. mkalimulin 375 24.12.18 19:14 Сейчас в теме
(50) И все же. Что плохого делает тот, кто пишет запросы в цикле?
28. user1116248 21.12.18 17:56 Сейчас в теме
Прочитал обе статьи и часть комментариев ко второй.
Есть у нас опыт когда в довольно сложную большую и не совсем здоровую информационную систему приглашали разработчиков из 1с-франчайзи под конкретные задачи. И на мой взгляд это как-раз ярый опыт ректального программирования, расскажу подробнее.
Задачу оцениваемую хозяевами системы с учетом малой погруженности исполнителя часов в 20, ректальный программист сделал за 6, при этом не использовал ни одну из уже существующих функций и изобразил свои, прямо в модуле формы. Сразу скажу, да бизнес-функционал работал. Но такой код в продуктиве обязывал бы актуализировать код процедур в нескольких местах, причем не все из этих мест очевидные.

С каждой такой ректальной победой поменять что-то, именно поменять а не добавить новое, становится всё сложнее и сложнее. Для 1с-франчайзи которым важно делать, а не сделать этот подход - манна небесная:) Они кодят (именно кодят, а не разрабатывают) по принципу "я тут покодил, посмотрите", найдете ошибки, исправлю, нет вот там акт и счет....

Автор второй статьи поделил программирование на хорошое и плохое, что же его право:)
Я бы поделил разработчиков относительно системы которую они разрабатывают, на хозяев и временщиков. Если кто-то полагает, что достаточно крупную систему можно заставить работать на длительном горизонте без значимых финансовых потерь для эксплантата разрабатывая её только силами ректальных чародеев, то по моему мнению он сильно ошибается. А вот вести ректальную разработку 1с-ки для сети шаурмячных из 3х ларьков, не только допустимо, но и является единственно верным решением.

з.ы. По моему опыту вытравливать из головы ректальных программистов подход временщиков занятие не быстрое, но весьма посильное, главное плотное взаимодействие и полгода-год времени.
semagin@gmail.com; acanta; lunjio; +3 Ответить
29. genayo 21.12.18 19:32 Сейчас в теме
В комментах ссора детсадовцев в песочнице... Печально это...
30. mkalimulin 375 21.12.18 21:22 Сейчас в теме
(29) Какая тема, такие комменты. А вам пост 24 не понравился?
31. genayo 21.12.18 22:00 Сейчас в теме
Почему он должен не понравится? Мне не понравился уровень дискуссии людей, вроде бы выступающих за правильные вещи.
32. mkalimulin 375 22.12.18 13:57 Сейчас в теме
(31) Это уровень дискуссии людей,которые приходят в восторг от джинсов с рукавами. И в упор не понимают, о чем речь, когда им рассказываешь, что за 18 лет наверное можно было бы найти способ выводить запросы из циклов в момент компиляции байт-кода. Что вы от них хотите?
33. genayo 22.12.18 14:06 Сейчас в теме
(32) Вы даже не поняли, о чём я. Жаль... Но это не так уж и важно, на самом деле. Если хоть один "копрокодер" задумается о том, что он делает - уже хорошо.
servetko; +1 Ответить
34. mkalimulin 375 22.12.18 14:09 Сейчас в теме
(33) Не задумается. Чтобы задуматься, надо сначала отнести себя к этой категории. А он просто прочитает эту статью и поржет.
49. for_sale 795 24.12.18 18:54 Сейчас в теме
(32)
уровень дискуссии людей,которые приходят в восторг от джинсов с рукавами. И в упор не понимают, о чем речь, когда им рассказываешь, что за 18 лет наверное можно было бы найти способ выводить запросы из циклов в момент компиляции байт-кода. Что вы от них хотите?


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

ещё конкретнее вас тыкнуть носом у меня уже не получится, извините
53. mkalimulin 375 24.12.18 19:13 Сейчас в теме
(49) Прелестно. Правило обсуждать суть, а не личность обязательно для всех кроме вас?
Чем вы сейчас занимаетесь? Не надо ни на какой язык переводить. Просто расскажите, почему писать запросы в цикле - это дурной тон.
56. for_sale 795 24.12.18 19:22 Сейчас в теме
(53)
Вы просили вас тыкнуть носом, где вы показывали свою смешную зависть. Долго и упорно добивались. А теперь, когда я вам всё-таки показал, вы решили срочно вернуть тему в техническое русло. Действительно прелестно))
58. mkalimulin 375 24.12.18 20:26 Сейчас в теме
(56) А теперь перейдем к техническому руслу. Вы чего-то отстаете.
35. mkalimulin 375 24.12.18 13:28 Сейчас в теме
Что может быть хуже ректальных программистов?
Рекатальные программисты, которые считают себя неректальными.
Что может быть хуже людей, которые относяться серьезно к несерьезному?
Люди, которые относятся несерьезно к серьезному. (кстати, эти два качества часто идут, держась за руки)
Отвечу сразу всем, кто не понял в чем засада:

СуммаПервогоИВторого=Первое*Второе;

Она заключается в том, что встретив дальше "осмысленное" СуммаПервогоИВторого, вы будете считать, что там действительно сумма. Некоторые задавали вопрос: а откуда это вообще взялось? Зачем автор так написал? Зачем он поменял сумму на произведение?
Заранее прошу прощения, но отвечу вопросом на вопрос.
А вы никогда ничего не путали? Вам не случалось вместо одного поставить другое? И потом тупо пялиться и в упор не видеть - что вы не так сделали? И если вы один, и некого попросить глянуть, подвисать часами в такой ситуации? Нет? Не случалось? А вы точно, много и часто программируете?
semagin@gmail.com; Fox-trot; +2 1 Ответить
59. genayo 24.12.18 20:40 Сейчас в теме
Позорище какое... Хотя-бы в личке срались, а не публично.
60. mkalimulin 375 24.12.18 20:55 Сейчас в теме
(59) А что вы предлагаете? Просто игнорировать посты? Это как-то некультурно.
semagin@gmail.com; +1 2 Ответить
61. aspirator23 405 27.12.18 19:35 Сейчас в теме
(60) люди живут в других измерениях и с другими ценностями. зря ввязался им это пояснять
62. mkalimulin 375 27.12.18 20:05 Сейчас в теме
(61) Спасибо вам. Я все-таки думаю - почему бы и не поделиться, раз уж мы в одном сообществе. Прочли, и уже хорошо.
Оставьте свое сообщение

См. также

"Хочу универсально!" [Часть 1] 65

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Математика и алгоритмы Практика программирования Разработка

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

02.09.2019    4789    SeiOkami    35       

Кодогенерация и метагенерация в 1С 25

Статья Программист Нет файла Бесплатно (free) Практика программирования Математика и алгоритмы Разработка

В своем докладе на конференции INFOSTART EVENT 2018 EDUCATION Дмитрий Белозеров рассказал о разработке инструмента, позволяющего программно работать с метаданными 1С и писать скрипты для выполнения тех же действий, которые выполняет разработчик в конфигураторе –  с какими сложностями и нюансами пришлось столкнуться, и что получилось в итоге.

26.08.2019    4370    kirovsbis    28       

Иерархия без "В ИЕРАРХИИ" 116

Статья Программист Нет файла v8 Бесплатно (free) Математика и алгоритмы

Говорится о том, как эффективно представлять иерархию в СУБД, как получать и использовать эти представления при решении задач в запросной технике. Уточняются и дополняются запросы из статьи "Уровни, глубина, прародители, циклы и аналоги запросом" [https://infostart.ru/public/160707/].

22.08.2019    4832    ildarovich    16       

EnterpriseData – часть 3. Загрузка данных, идентификация объектов 60

Статья Программист Нет файла v8 v8::УФ 1cv8.cf ОС Бесплатно (free) Практика программирования Математика и алгоритмы Перенос данных из 1C8 в 1C8 Разработка

Основные этапы загрузки данных через EnterpriseData. Идентификация объектов загружаемых полностью и по ссылке. Приведены схемы процессов загрузки данных. Описание основных операций и обработчиков. Перечень процедур БСП, используемых при загрузке данных, структура «КомпонентыОбмена».

22.08.2019    4116    ids79    7       

Запрос SQL для нахождения самого большого простого числа меньше заданного 6

Статья Программист Нет файла Windows Бесплатно (free) Математика и алгоритмы

Данный запрос MS SQL демонстрирует некоторые возможности MS SQL Server, о которых часто неизвестно большинству программистов 1С. В тексте постараюсь объяснить интерес данного запроса (или скрипта).

16.08.2019    1468    alex_bitti    18       

Обработчики событий при записи объектов. Зачем и что за чем? 200

Статья Программист Нет файла v8 Бесплатно (free) Математика и алгоритмы

Программисту, имеющему немного опыта на платформе 1С 8.3, бывает сложно разобраться: ПередЗаписью, ПриЗаписи, ПослеЗаписи, на сервере, на клиенте, в модуле формы, в модуле объекта.... Эта шпаргалка была создана в процессе обучения и реального опыта с целью разложить всё по полочкам, чтобы было четкое понимание в каком случае какой обработчик нужно использовать и в какой последовательности они запускаются при записи и проведении документов. Данная статья будет полезна в большей степени начинающим разработчикам. Но и опытным позволит освежить информацию, упорядочить её.

25.07.2019    12512    4    AlbinaAAA    23       

Как проводятся документы в типовых конфигурациях от 1С 137

Статья Программист Нет файла v8::ОУ ERP2 УТ11 Россия УУ Windows Бесплатно (free) Математика и алгоритмы Практика программирования Разработка

В свое время, когда только начинал шаги в 1С и изучал, как проводятся документы в конфигурациях на платформе 1С по книге "Разработка управляемого интерфейса" (Хрусталева Е.Ю.), и там были представлены примеры совсем далекие от того, как сейчас проводятся документы в современных конфигурациях от 1С.

24.07.2019    15919    skv_79    32       

Управление качеством кода 134

Статья Программист Руководитель проекта Нет файла v8 Бесплатно (free) Математика и алгоритмы Рефакторинг и качество кода

О SonarQube, АПК, EDT. Какие преимущества дает их использование. Для каких команд подходит.

22.07.2019    7931    Stepa86    26       

Что делает "В ИЕРАРХИИ" в запросе? 90

Статья Программист Нет файла v8 Бесплатно (free) Математика и алгоритмы

Описание действий платформы 1С при использовании конструкции "В ИЕРАРХИИ" в запросах.

16.07.2019    7728    YPermitin    30       

Создание отчетов с помощью СКД - основные понятия и элементы 208

Статья Программист Нет файла v8 v8::СКД Бесплатно (free) Практика программирования Математика и алгоритмы

Основные принципы работы СКД. Понятия схемы компоновки и макета компоновки. Описание основных элементов схемы компоновки: наборы данных, поля, вычисляемые поля, ресурсы, параметры.

25.06.2019    20525    ids79    17       

Реализуем Стек, Очередь и Приоритетную очередь в 1С 52

Статья Программист Нет файла v8 1cv8.cf Россия Бесплатно (free) Практика программирования Математика и алгоритмы Разработка

В статье рассматриваются способы реализации таких абстрактных структур данных, как стек, очередь и приоритетная очередь, используя готовые типы данных 1С. Выявляются "узкие" места, сложные моменты в реализации и сравнивается скорость работы.

24.06.2019    7742    RonX01    63       

Почему вообще работает мой запрос? или Ещё раз о планах запросов 45

Статья Программист Нет файла v8::Запросы Бесплатно (free) Практика программирования Математика и алгоритмы Разработка

Другие статьи на эту тему объясняют, что такое план выполнения запроса, но не рассказывают о том, как его получить. Эта заметка призвана заполнить этот пробел. Её цель - популяризировать общедоступные инструменты получения плана запроса среди разработчиков, которые ещё не начали их использовать.

10.06.2019    5875    DataReducer    12       

Вычисление 200 тысяч знаков числа pi 73

Статья Программист Нет файла v8 Россия Бесплатно (free) Математика и алгоритмы

В статье рассматриваются возможности платформы выполнять сверхточные вычисления без использования сложных алгоритмов и внешних компонент на примере вычисления числа pi.

28.05.2019    3918    Oleg_nsk    93       

Регистры накопления. Виртуальные таблицы. Часть №1: Обороты 84

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Практика программирования Математика и алгоритмы Разработка

Описание работы платформы 1С:Предприятие 8.2 с виртуальной таблицей "Обороты" регистров накопления.

20.05.2019    10836    YPermitin    5       

Выдержки из книги Чистый код 24

Статья Программист Нет файла Бесплатно (free) Математика и алгоритмы

Недавно я прочитал книгу "Чистый код" Роберта Мартина (Robert Cecil Martin). В ней описываются принципы организации и форматирование исходного кода программы так, чтобы в дальнейшем было легко поддерживать такой код. Эта книга является библией для многих программистов, но вот в среде программистов 1С, к сожалению, не очень распространено чтение подобной фундаментальной литературы. Книга более 400 страниц и так много порой лениво читать, да и времени всегда не хватает. По этому я решил выделить в виде цитирования по разделам самые важные моменты. А также снабдил текст своими примерами кода.

16.05.2019    5971    FreeArcher    82       

Что такое алгоритм? 5

Статья Программист Нет файла Бесплатно (free) Математика и алгоритмы

Как ответить на этот вопрос и не попасть пальцем в небо.

25.02.2019    3205    mkalimulin    272       

Криптовалюты, а также иные взгляды на природу денег в терминах 1С 6

Статья no Нет файла Бесплатно (free) Математика и алгоритмы

Это отчасти полемическая статья. Я задумал написать ее как ответ на другую хорошую статью о криптовалютах. Хотелось поспорить с некоторыми утверждениями автора, а ещё больше с некоторыми комментариями. А чтобы текст был более понятным для местной аудитории, я решил использовать, где только возможно, терминологию и практику 1С.

28.01.2019    3884    mkalimulin    89       

Как писать код? Технологии древних цивилизаций, или все новое - это хорошо забытое старое 70

Статья Программист Нет файла Бесплатно (free) Математика и алгоритмы

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

23.01.2019    8931    starik-2005    43       

Многоязычное программирование: создание систем с использованием нескольких языков 17

Статья Программист Нет файла Россия Бесплатно (free) Математика и алгоритмы

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

09.01.2019    5996    kalyaka    33       

Ректальное программирование: основы для практикующих 1С-программистов 298

Статья Программист Нет файла Бесплатно (free) Математика и алгоритмы

Одной из самых популярных и зарекомендовавших себя методологий программирования в 1С является так называемое ректальное программирование. Редкий проект внедрения и сопровождения учётных систем на платформе 1С обходится без его использования. Зачастую без знания данной методологии программистам даже бывает сложно найти работу в сфере 1С, потому что работодатели, особенно фирмы-франчайзи, в основном отдают предпочтение классическим, зарекомендовавшим себя методикам, а не новомодным заграничным веяниям.

19.12.2018    31602    for_sale    341       

Автоматические и управляемые блокировки применительно к типовым конфигурациям 1С 127

Статья Программист Нет файла v8 v8::blocking 1cv8.cf Бесплатно (free) Математика и алгоритмы Практика программирования

Основные принципы работы с режимами автоматических и управляемых блокировок в 1С Предприятие 8. Теория и применение в типовых конфигурациях: БП, УТ, ЕРП

10.11.2018    22098    ids79    40       

Основные понятия и механизмы оптимизации клиент-серверного взаимодействия в 1C 147

Статья Программист Нет файла v8 Россия Бесплатно (free) Математика и алгоритмы Практика программирования

У многих начинающих 1С программистов часто возникают вопросы про клиент-серверное взаимодействие в 1С и чтобы разобраться в непростых механизмах платформы, необходимо понять, что же такое контекст, для чего предназначены директивы компиляции, что представляют собой контекстные/внеконтекстные вызовы и как наиболее оптимально описывать прикладные задачи в модулях управляемых форм.

23.08.2018    22676    Rain88    42       

Учебный курс. Повышение качества разработки. Ошибки программы 97

Статья Программист Нет файла Бесплатно (free) Практика программирования Математика и алгоритмы Рефакторинг и качество кода

Учебный курс по теории и практике программирования. Бесплатно. В виде структурированного текста. Лекции № 3,4,5. Эти лекции посвящены ошибкам программ, их классификации и способам исправления

10.07.2018    16164    Артано    92       

Що там у них в Java 19

Статья Программист Нет файла Бесплатно (free) Математика и алгоритмы

Развенчание мифа о тяжёлой жизни не 1С программистов на примере создания веб сервиса редактирования таблички с использованием framework spring в Java.

24.05.2018    9413    van_za    62       

Учебный курс. Повышение качества разработки. Вводная лекция, часть 2 49

Статья Программист Нет файла Бесплатно (free) Практика программирования Математика и алгоритмы

Учебный курс по теории и практике программирования. Бесплатно. В виде структурированного текста. Лекция №2. Эта лекция посвящена абстракциям, их свойствами и практическому применению в рамках классических парадигм программирования.

24.05.2018    11055    Артано    36       

Учебный курс. Повышение качества разработки. Вводная лекция 116

Статья Программист Нет файла Бесплатно (free) Математика и алгоритмы

Учебный курс по теории и практике программирования. Бесплатно. В виде структурированного текста.

10.05.2018    15849    Артано    51       

Правила программирования и автоматизации 73

Статья Программист Нет файла Бесплатно (free) Математика и алгоритмы

Изложил свой опыт программирования, больше десяти лет.

21.02.2018    16522    Dzenn    127       

Творим Историю вместе 55

Статья Программист Нет файла Бесплатно (free) Математика и алгоритмы

Расширяем границы, выходим за рамки, ставим новые цели - все, как вы любите.

17.01.2018    15237    1c-intelligence    108       

Использование git при разработке на 1С 122

Статья Программист Нет файла Россия Бесплатно (free) Математика и алгоритмы

Продолжение цикла статей по основам CI. Данная статья расскажет о реализации возможности хранения кода продукта в системе управления версиями git и познакомит со специализированным инструментарием, предназначенным для решения этой и других смежных задач.

27.12.2017    26535    real_MaxA    57       

Об уровне абстракции и сложности системы 14

Статья Программист Нет файла Бесплатно (free) Математика и алгоритмы

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

21.12.2017    9980    m-rv    15       

Двоичное дерево, двоичное дерево поиска, двоичная куча, B-дерево 34

Статья Программист Нет файла Бесплатно (free) Математика и алгоритмы

В большинстве реляционных СУБД в качестве структуры данных для индексов (та или иная их реализация) используются именно деревья. И не просто деревья, а сбалансированные деревья поиска. В этой статье как раз о них.

24.11.2017    12680    Irwin    4       

Введение в CI для 1С 87

Статья Программист Нет файла v8 Россия Бесплатно (free) Математика и алгоритмы

Значение роли тестирования при разработке ПО трудно переоценить, его применение позволяет повысить надёжность продукта и улучшить качество кода. Для продуктов для платформы 1С:Предприятие существует ряд инструментов для проведения тестирования, в том числе и от самого вендора. Но, также появились открытые инструменты, реализующие мировые практики проведения тестирования (проверки продукта), поддерживаемые сообществом. В этой статье описаны базовые принципы, которые необходимо понимать перед началом применения этих инструментов.

21.11.2017    19271    real_MaxA    22       

Как работает серверный вызов в 1С 458

Статья Программист Нет файла v8::УФ Бесплатно (free) Математика и алгоритмы

Клиент-серверная архитектура заложена в платформе изначально — со времен «1С:Предприятие 8.0». Однако при разработке на 8.0 и 8.1 о разделении кода на клиентскую и серверную часть можно было не заботиться, поскольку на клиенте (на толстом клиенте) был доступен тот же функционал, что и на сервере. Всё изменилось с выходом платформы «1С:Предприятие 8.2», когда появился тонкий клиент. Теперь на клиенте доступен один функционал, на сервере — другой. Клиент и сервер «общаются» между собой с помощью серверного вызова. Конечно, это усложнило процесс разработки, но с другой стороны – можно создавать более оптимальные (быстрые) решения, поскольку все сложные задачи выполняются на сервере.

18.11.2017    44093    pahich    75       

#Область ВНЕШНИЕ_ВЫЗОВЫ или MVC в 1С, библиотечность и упрощение интеграции кода 43

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования Математика и алгоритмы Универсальные функции

Зачастую почти любой модуль в 1С содержит от одного до несметного множества вызовов других модулей. Как с этим бороться, чтобы было проще куда-то что-то переносить - в этом посте.

12.10.2017    14766    for_sale    58       

Некоторые особенности разработки ММО-игр на платформе 1С:Предприятие 25

Статья Программист Нет файла Бесплатно (free) Математика и алгоритмы

Добрый день, уважаемые коллеги! На первый взгляд может показаться, что статья посвящена довольно необычным вещам, но поверьте мне, эти вещи всем нам вполне привычны, просто мы их обычно видим под другим углом зрения. Поговорим о том, что такое MMO. Многие из вас уже знают, что это такое, потому что существует такая игра, как World of Tanks, а те, кто в нее напрямую не играл, безусловно, о ней слышали. Игра World of Tanks является классическим MMO. MMO расшифровывается как Массивная Многопользовательская Online-игра. С технологической точки зрения это – нагрузки, нагрузки и еще раз нагрузки.

08.09.2017    9632    Inkasor    21       

Групповая разработка конфигураций в крупном холдинге 68

Статья Программист Нет файла v8 Бесплатно (free) Математика и алгоритмы

О чем мы сегодня поговорим? • О становлении и развитии групповой разработки конфигураций 1С в крупном холдинге с использованием хранилища конфигураций. • Обсудим практически все аспекты использования хранилища в командной разработке. • Я расскажу про те методы и идеи, которые мы пробовали использовать, какие используем до сих пор, от каких отказались и почему.

15.08.2017    17494    stas_ganiev    15       

Применение нейронных сетей и генетических алгоритмов в прикладных решениях на платформе 1С 171

Статья Программист Нет файла Бесплатно (free) Математика и алгоритмы

Сегодня мы поговорим про нейронные сети и генетические алгоритмы. • Для тех, кто не изучал их в университете, я сначала напомню теорию – что это такое, для чего это надо. • Мы рассмотрим, какие задачи с их помощью можно решать в 1С. • И в конце для тех, кто любит что-то делать руками (работать, программировать), мы разберем, как по факту собрать нейронную сеть или генетический алгоритм в 1С – что написать в коде и как это потом применить.

03.07.2017    32591    comol    63       

Автоматизация процесса 1С-разработки 91

Статья Программист Нет файла v8 Бесплатно (free) Математика и алгоритмы

В статье речь пойдет о том, как при разработке в 1С добиться автоматизации и универсальности, о тех инструментах, которые помогают нам, разработчикам 1С, сохранять самое ценное, что у нас есть – наше время.

07.06.2017    22988    ekaruk    9       

Пишем игру Минер. Обработка событий ActiveX в 1С 29

Статья Программист Нет файла v8 Россия Windows Бесплатно (free) Практика программирования Математика и алгоритмы

Пример демонстрирует обработку событий генерируемых компонентой ActiveX в 1С.

29.05.2017    12701    user621724_Dimav1979    11       

Как я доступ на kb.1c.ru получал 91

Статья Программист Нет файла v8 Россия Бесплатно (free) Решение задач на 1С:Специалист Математика и алгоритмы

kb.1c - база знаний по технологическим вопросам крупных внедрений и не только. В этой базе знаний собираются методики и решения технологических проблем эксплуатации 1с, check-list'ы и инструкции по настройке ПО на серверах. Какие-то из размещенных статей дублируются на ИТС. Когда я искал пути получения доступа к нему я столкнулся с проблемой: мало кто доподлинно знает как получить доступ к нему, не работая у франчайзи 1с. Я опишу путь, который прошёл я, как физическое лицо.

01.05.2017    22477    ikekoval    33       

Маленькая хитрость СКД - выводим строки X раз 26

Статья Программист Нет файла v8::СКД 1cv8.cf Россия Бесплатно (free) Практика программирования Математика и алгоритмы

Здесь я расскажу, как вывести в отчет СКД произвольное количество одинаковых строк.

17.12.2016    15624    alexandersh    16       

"Распределение в запросе" или "избавляемся от перебора" 185

Статья Программист Нет файла v8 1cv8.cf Россия Бесплатно (free) Математика и алгоритмы Универсальные функции

Хороший перебор - это отсутствие перебора. Рассмотрим пример замены полного перебора запросом.

16.12.2016    28543    alexandersh    48       

Некоторые принципы оптимизации запросов 1С (+SQL) 115

Статья Программист Нет файла v8 Бесплатно (free) Математика и алгоритмы

Разработка нового функционала часто связана с созданием новых таблиц в базе и написанием запросов. Собственно, размышляя о запросах, мы и формируем в голове содержание таблиц, индексы и количество таблиц и индексов. Заранее можно уверенно рассуждать о том, какая нужна архитектура, если задачу удалось понять. На этом этапе важно привлекать свой опыт. Что же делать, если его нет? Как рассуждать о запросах и формате хранения?

17.11.2016    8855    ture    40       

Использование git для доработки типовых конфигураций 1С 230

Статья Программист Нет файла v8 Беларусь Украина Россия Бесплатно (free) Математика и алгоритмы

Рассмотрены способы доработок типовой конфигурации 1C для различных изменений, и на картинках продемонстрирован подход к разработке с использованием git и частично с тестами.

11.10.2016    188233    pumbaE    31       

Оптимизация запросов 1С:Предприятие – от теории к практике 116

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования Математика и алгоритмы

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

07.10.2016    31967    bpc222    20       

1Script – язык для автоматизации рутины в жизни специалиста по 1С 304

Статья Программист Нет файла Бесплатно (free) Математика и алгоритмы

Мы все здесь – автоматизаторы бизнеса. Мы занимаемся этим каждый день и делаем это хорошо. Но практика показывает, что специалисты по 1С очень редко, очень мало автоматизируют сами себя. Есть много мелких задач, которые мы, 1С-ники, привыкли делать руками, хотя большой класс из этих задач можно было бы переложить на работу машины. Именно об этом и хотелось бы сегодня поговорить.

14.09.2016    44680    Evil Beaver    78