Рекомендации по улучшению хорошего кода на 1С

  Рет қаралды 14,645

Желтый клуб — 1С программирование

Желтый клуб — 1С программирование

Күн бұрын

Записывайтесь на следующий поток курса «Чистый код на 1С» по ссылке: codeway.school/?...
Отправим ссылку на сайт курса в телеграмм бота.
Разбираю код на 1С Матвея Серегина. Это не продуктивный код, а учебный пример.
НАВИГАЦИЯ
00:00 - Программный интерфейс
01:53 - Получить в именах Функций
03:00 - Использование глаголов в именах функций
04:03 - Где объявлять переменные
05:09 - Лишняя абстракция
06:23 - Функция-конструктор
06:52 - Внедрение зависимостей
07:43 - Адаптеры
08:27 - Побочный эффект метода
09:05 - Связность метода
10:00 - Выделение внешнего формата
10:50 - Хороший пример объявления выходного значения
11:45 - Метод должен либо обрабатывать данные, либо возвращать
13:05 - Дата провайдеры пишем в модуле менеджера
14:00 - Паттерн фасад
14:35 - Блокировки
16:35 - ОбменДанными.Загрузка = Истина
17:30 - Общий модуль не должен много знать об объектах
18:55 - Презентер
20:00 - ad-hoc полиморфизм
20:37 - Использование Знач
22:37 - Детали и бизнес-логика
23:37 - ВызватьИсключение - это хорошо
25:10 - Комментарии
26:14 - Метод делает два действия и это плохо
27:40 - Лучше использовать метод Заполнить
28:57 - Как попасть на курс «Чистый код на 1С»
ДОП. МАТЕРИАЛЫ
Ссылка на репозиторий: github.com/matvey-seregin/gam...
==========
Информационные площадки "Жёлтого клуба":
Телеграмм канал: t.me/+h2Ipfl1Gdms3OGYy
Телеграм чат: t.me/yellowclub_vrn
Группа ВКонтакте: vk: yellowclub_official
Подписывайся на канала Желтого клуба, чтобы не пропустить интересных гостей
/ @yellow_club

Пікірлер: 100
@sergeytormozit7000
@sergeytormozit7000 5 ай бұрын
Знач убирать не стоит, т.к. какой то вызов мог передавать в этот метод свою переменную со значением Неопределено. Тогда ты изменишь ее в месте вызова - она уже станет там неожиданно структурой.
@yellow_club
@yellow_club 5 ай бұрын
Для такого сценария согласен. Лучше оставить
@user-kg7sn9qz2k
@user-kg7sn9qz2k 5 ай бұрын
Спасибо за качественный материал
@yellow_club
@yellow_club 5 ай бұрын
Рад, что полезно
@commonaccount6453
@commonaccount6453 5 ай бұрын
Знач имеет смысл поставить, если метод серверный, но вызывается с клиента, тогда после завершения серверного метода будет меньше данных передаваться на клиент
@arshanskiysergey2791
@arshanskiysergey2791 5 ай бұрын
А что за расширение для VSC используете? Прикольно выглядит что названия параметров видны в вызываемых методах
@yellow_club
@yellow_club 5 ай бұрын
Это Language 1C (BSL)
@AlexeyNecro
@AlexeyNecro 4 ай бұрын
А у вас в курсе получается реализация игры Elite с ZX Spectrum?
@yellow_club
@yellow_club 4 ай бұрын
Нет. У нас в курсе учётные задачи. А сюжетная линия о космическом путешествии
@CuriousAlehandro
@CuriousAlehandro 3 ай бұрын
Продолжу свои нападки :). По поводу метода «Обработать очередь сообщение», что плохо, когда метод и обрабатывает данные и возвращает («методы должны либо обрабатывать либо возвращать»). Во-первых, возвращение данных - это вообще не задача. Задача может быть на чтение данных, на создание или изменение. Просто иногда после создания или изменения данных нужно получить результат этой работы: иногда иноформация об успешности выполнения, иногда сами созданные/измененные данные. И это не просто нормально, а совершенно естественно, когда функция создает и возвращает созданное. Опять же, перейдем в реальную жизнь: человеку можно сказать «купи в магазине хлеб», подразумевая, что он должен купить хлеб и принести (вернуть результат), а можно сказать «оплати в магазине хлеб», а потом сказать «возьми оплаченный хлеб и принеси домой».
@yellow_club
@yellow_club 3 ай бұрын
Мне очень нравится твой стиль 👍 Те это не говнаревый стиль, а прям дискуссия классная 👍 Возвращение данных это одна из задач. Как раз для этого функции придумали. Второй сценарий с хлебом предпочтительнее. Хотя и может казаться усложнённым.
@alan-1c
@alan-1c 5 ай бұрын
В итоге какая стоимость курса? Нигде не нашел.
@yellow_club
@yellow_club 5 ай бұрын
В бот придёт цена. Цены ещё не утвердили. Будут разные пакеты. От 60к где-то
@SMit1C
@SMit1C 5 ай бұрын
@@yellow_club давай за 10-ку )
@alaveda5424
@alaveda5424 5 ай бұрын
Не сработало добавление бота после заполнения анкеты. Пришлось искать ссылку в просмотре кода. =)
@yellow_club
@yellow_club 5 ай бұрын
Плохо (( напиши, пожалуйста свой ник в тг. я проверю нормально ли прошла регистрация в боте. А то ссылка может не прийти
@TheWinkingSkeever-eo1gf
@TheWinkingSkeever-eo1gf 5 ай бұрын
Уже второй поток, а где сама программа чему учат? Или как опытному специалисту понять насколько нечто предлагаемое для него актуально?
@yellow_club
@yellow_club 5 ай бұрын
Заполняй анкету и все узнаешь
@TheWinkingSkeever-eo1gf
@TheWinkingSkeever-eo1gf 5 ай бұрын
@@yellow_club извините, это не серьезно. Мне 09.01 у CTO согласовывать годовой бюджет на обучение коллег. Когда спросят что/зачем, мне тоже ему сказать "заполняй анкету и все узнаешь"?
@naughtyraccoon211
@naughtyraccoon211 5 ай бұрын
​@@TheWinkingSkeever-eo1gfподдерживаю
@yellow_club
@yellow_club 5 ай бұрын
Я понимаю ваше недовольство. Но пока цены и пакеты не согласованы. Согласованные цены придут в бота. Ориентироваться можно на от 60-70к
@TheWinkingSkeever-eo1gf
@TheWinkingSkeever-eo1gf 5 ай бұрын
​@@yellow_club Мой вопрос не про цену, а про содержание. Я не могу покупать и предлагать другим кота в мешке.
@naughtyraccoon211
@naughtyraccoon211 5 ай бұрын
12:24 Вопрос: получается, что мы будем лишний раз дергать базу данных? Разве это оптимально, если у нас эти данные уже есть?
@yellow_club
@yellow_club 5 ай бұрын
Ты прав. Это не очень оптимально. Поэтому вариант на видео допустим, но все равно это плохой вариант. Как решить задачу лучше, я не знаю.
@AZhdanov
@AZhdanov 5 ай бұрын
@@yellow_clubпредставь что твоя база весит 20 терабайт и попробуй ответить на вопрос с этой точки зрения
@user-tw9bi8mg1s
@user-tw9bi8mg1s 5 ай бұрын
Выгружать результат запроса в таблицу значений и далее работать с ней, что бы не дергать базу повторным запросом. Этот вариант будет не оптимален, если выборка будет 100К+ записей, но в случае с телегой, такое количество сообщений в очереди маловероятно. Вообще, использование справочника, а не РС для хранения очереди сообщений выгляди странно, РС будет работать заметно быстрее. Так же в коде проскакивало "НайтиПоКоду" - лютый моветон.
@triviumfan9411
@triviumfan9411 5 ай бұрын
@@user-tw9bi8mg1s "РС будет работать заметно быстрее", - а ты шутник))
@Starponyx
@Starponyx 4 ай бұрын
@@user-tw9bi8mg1s в каких операциях рс быстрее справочника?
@k33alexey
@k33alexey 5 ай бұрын
В разработке на англ. в других языках программирования нормальным считаются функции “get… “. Почему же «Получить» не подходит? Если фактически это есть «получение» когда мы говорим о функциях
@Spec1C
@Spec1C 5 ай бұрын
Потому что на 1С:ИТС, в разделе "1С:Предприятие 8. Система стандартов и методик разработки конфигураций", написано требование: "Имена процедур, функций и формальных параметров следует образовывать от терминов предметной области таким образом, чтобы из имени было понятно назначение. Следует стремиться к тому, чтобы имена были "говорящими" (документировали сами себя)". Поэтому "Выполнить" или "Получить", использовать не желательно.
@k33alexey
@k33alexey 5 ай бұрын
@@Spec1Cможно пару примеров для более ясного понимания, пожалуйста?
@Spec1C
@Spec1C 5 ай бұрын
​@@k33alexey В поиске яндекса забиваем "Имена процедур и функций", сразу первая ссылка
@Spec1C
@Spec1C 5 ай бұрын
@@k33alexey имена функций должны быть очень краткими, и информативными, приписывать постоянно "получить", вообще не зачем, так будет тысячу и одна функция именем получить, оно будет забивать глаза. Можно конечно взять и "получить" написать в конце, ну вместо "ПолучитьБлаБла", написать "БлаБлаПолучить", но не вижу в этом какой-то смысл. Главное в названии понятность, что это за функция, к чему она.
@k33alexey
@k33alexey 5 ай бұрын
@@Spec1Cкак можно было бы назвать «ПолучитьСтруктуруДанных», «ПолучитьВыборкуПоДокументу»?
@worthyplayer666
@worthyplayer666 5 ай бұрын
Понял что на курсе кайфы полные
@yellow_club
@yellow_club 5 ай бұрын
Да, кайфы кайфы кайфули)
@user-zo8rw2vy9m
@user-zo8rw2vy9m 5 ай бұрын
"Кто сам себя выставляет на свет, тот не блестит."
@ocean1487
@ocean1487 5 ай бұрын
Сколько курс стоит?
@vama9606
@vama9606 5 ай бұрын
Если нет цены, то наверно бесплатно. Это Так?
@user-xy1ru4zy2t
@user-xy1ru4zy2t 5 ай бұрын
@@vama9606 бесплатно попозже думаю появится.
@yellow_club
@yellow_club 5 ай бұрын
А как думаете сколько должен стоить такой курс?
@ocean1487
@ocean1487 5 ай бұрын
@@yellow_club 20тысяч да, выше 30 до 90 уже вопросы и смотреть надо на другие составляющие, что я получу взамен за эти деньги.
@SMit1C
@SMit1C 5 ай бұрын
@@yellow_club напишите цифру, хватит вилять 😄
@postalleon
@postalleon 4 ай бұрын
Понимаю, что стандарты 1С - это святое… Но вот есть допустим две функции: получить данные из такой-то базы, и записать данные из такой-то базы. Первая просто получает данные и возвращает, допустим структуру. Вторая внутри себя вызывает первую и записывает в РС, а возвращает какую-то информацию, например что удалось и не удалось записать. Если убрать глаголы, то придется поизвращаться с наименованиями этих функций, хотя с глаголами все четко и понятно
@AlexeyNecro
@AlexeyNecro 5 ай бұрын
извиняюсь, а цена?
@yellow_club
@yellow_club 5 ай бұрын
Придёт в бота
@CuriousAlehandro
@CuriousAlehandro 3 ай бұрын
Вот это требование «не использовать Получить», потому что везде будете использовать, а лучше «забрать», «запросить» - по-моему довольно странное требование. Представляю картину из реальной жизни: курьеру говорят «отнеси пакет туда-то», «теперь отнеси эту коробку туда-то», «отнеси конверт туда-то» и т.д. И тут волшебный эйчар делает замечание: «хватит говорить «отнеси», вы ведь все время так говорите, ну скажите «перенеси», «доставь», «перемести», ну «закинь» в конце концов». Можно еще 1с-никам претензию высказать, чтобы вместо слова «Процедура» можно было написать «Метод»,«Просиджа», «Делалка», «Запускалка» и т.д. Даешь разнообразие!
@yellow_club
@yellow_club 3 ай бұрын
Речь не об этом. В именах функций глаголы используются в определенных ситуация, обычно глаголы в именах функций не нужны и только усложняют понимание кода
@CuriousAlehandro
@CuriousAlehandro 3 ай бұрын
@@yellow_club Насчет усложнения кода (ухудшения читабельности) - это очень субъективно. Во-первых, если не внушать себе что «получить» в названии функции - это плохо, то это не бросается в глаза. Во-вторых, программисты именно потому и пишут «получить», что для них такой код более комфортен для чтения. В третьих, большинство методов - это все же процедуры, а не функции, поэтому как правило в коде нечасто можно встретить более одного вызова функции с префиксом «Получить» (есть ведь еще «Проверить», «Это» и т.д.). Чем ближе программный код к человеческой речи, тем легче читается. Кстати в типовых конфигурациях от 1С регулярно встречаются функции «получить».
@yellow_club
@yellow_club 3 ай бұрын
@CuriousAlehandro у тебя может быть такое мнение и это нормально. Я исхожу из опыта людей, которые с 60-70 годов пишут код. Подозреваю, что они не зря это рекомендуют.
@TheBaza1978
@TheBaza1978 4 ай бұрын
автор тебе говорили что ты похож на Фиксина? Ты его брат?
@mobilitymoon5232
@mobilitymoon5232 4 ай бұрын
Сова на глобус. Стандарт кода, это последнее, чем нужно заниматься в 1С, и то. когда уже знаешь многое и сделал карьеру.
@yellow_club
@yellow_club 4 ай бұрын
С таким подходом «карьера» это максимум 100к
@mobilitymoon5232
@mobilitymoon5232 4 ай бұрын
@@yellow_club с чего это вдруг? Не пишите ерунды. В любой компании дадут список стандартов и укажут на ошибки, на которые ты и сделаешь поправки своего кода, проще говоря попросят писать так как они там привыкли. Вот и все, расходимся.
@phat80
@phat80 4 ай бұрын
@@yellow_clubЯ знал людей с 250К в месяц и срать они хотели на стандарты и на все новое, что появилось после того, как они научились говнокодить в 1С. Они не признают не HTTP сервисы, ни JSON, ни асинхронщину и т.д. Просто проработали уже 10 лет в компании и считают, что достойны именно такой зарплаты. Ведь в 1С знания - ничто, тебя судят по времени, которое ты отработал. Бред, но так и есть. Новичку, что бы он там не знал, и 40 нормально, деду в 1С, пусть он не освежал свои знания уже лет 10, меньше 200 как-то стыдно платить 😂 Именно поэтому сбежал из той конторы. Работу выполняешь одну и ту же, но коллега получает за нее в 5-6 раз больше просто потому, что он уже лет 10 отработал, а ты всего год.
@user-wc5fy9ef8t
@user-wc5fy9ef8t 4 ай бұрын
Приветствую ребят. Хотел спросить, мне 16 лет и я учусь в 9 классе, думаю уходить после 11 класса, сдаю физику и информатику, буквально недавно у нас по информатике , у нас был впервые урок про программирование , а именно про язык программирования Phyton. И такой вопрос, что мне делать, на данный момент когда такая ситуация, что можете предложить, как будущему программисту ?
@yellow_club
@yellow_club 4 ай бұрын
Иди в университет и там продолжай учить информатику
@user-nx6eq8fu1i
@user-nx6eq8fu1i 3 ай бұрын
а почему вы не берёте интервью у спецкоснулов, которые решают ваши проблемы двумя кликами?
@yellow_club
@yellow_club 3 ай бұрын
А какие у меня проблемы, которые решаются двумя кликами?
@user-nx6eq8fu1i
@user-nx6eq8fu1i 3 ай бұрын
вы не видите реальности, вы даже не знаете потребностей, чёт там себе решаете, а реальных клиентов в глаза не видели. И это проблема - начиная с Чистова, который ставит задачи под самых умных в пбу, где нет компаний, и и если они есть, то там главбухи умнее Чистова на порядок, и заканчивая вашими решениями которые нафиг никому не нужны @@yellow_club
@user-nx6eq8fu1i
@user-nx6eq8fu1i 3 ай бұрын
@@yellow_club а зачем всё это? нет отсылок к реальным задачам, нет понимания именно в чём вопрос. ага, всё клёво
@yellow_club
@yellow_club 3 ай бұрын
Это называется программированием, а то, что описываешь ты называется знанием типовых и предметной области. Это сильно разные вещи.
@user-nx6eq8fu1i
@user-nx6eq8fu1i 3 ай бұрын
@@yellow_club но ведь за вас уже всё решено ((( ну ок,у вас там курсы, все крутые, вам видней
@user-ff7ei4ob8b
@user-ff7ei4ob8b 5 ай бұрын
хороший код не пропустит кривые данные в уровень бизнес логики
@hochroch
@hochroch 5 ай бұрын
А если не опытный,то бвдет лишним ? Кау по мне лучше сразу посомтркть как правильно делать чем потом занова учиться
@yellow_club
@yellow_club 5 ай бұрын
Не надо. Мы не учим базовым вещам: что такое циклы, ветвления и тп. Сначала нужно базу освоить, а потом уже наш материал
@timko_nzt
@timko_nzt 3 ай бұрын
22:43 Двухсотый код состояния - стандартный ответ успешного хттп-запроса. Всё тут нормально с ответственностью, имхо. Не надо обработку кодов поднимать на уровень бизнес-логики.
@user-tv5ki4zd9n
@user-tv5ki4zd9n 5 ай бұрын
+
@user-uy7cm5dz1t
@user-uy7cm5dz1t 4 ай бұрын
Какой смысл телеграм -ботов писать на 1С, если есть нормальные типизированные языки - джава, котлин, тайп скрипт? С возможностями на два порядка больше чем в 1С?
@EvilBloodEye
@EvilBloodEye 5 күн бұрын
Т.к. рядом с бизнес-логикой есть база данных с объектной моделью с очень простым доступом к хранящимся там данным.
@triviumfan9411
@triviumfan9411 5 ай бұрын
Грамотный зрелый код, а все эти "претензии" высосаны из пальца :)
@yellow_club
@yellow_club 5 ай бұрын
Согласен. Код хороший
@netheroisoldcoder
@netheroisoldcoder 5 ай бұрын
Ахах, какая жесть) зачем вообще кто то это учит?
@user-ok8bi6vz9y
@user-ok8bi6vz9y 5 ай бұрын
те, кто сертификаты сдают)
@yellow_club
@yellow_club 5 ай бұрын
Чтобы деньги зарабатывать и получать удовольствие от помощи людям
@yan-digger
@yan-digger 5 ай бұрын
​@@yellow_clubХочу ещё добавить: для того, чтобы твое лицо не становилось похоже на известную картину 😱, когда заказчик просит сделать серьезную доработку
@user-tw9bi8mg1s
@user-tw9bi8mg1s 5 ай бұрын
Те, кто хотят работать в высокооплачиваемых и спокойных продуктовых командах.
@netheroisoldcoder
@netheroisoldcoder 5 ай бұрын
@@user-tw9bi8mg1s Дружечек, высокооплачиваемые - это про go, rust, etc в англии. 1с в России, это не про это)
@ktotoanonimnyj7500
@ktotoanonimnyj7500 2 ай бұрын
Не слышали вас java-висты :) с их геттерами и сеттерами :)
Разбор загрузки из Excel для мидлов и сеньоров
23:16
Желтый клуб — 1С программирование
Рет қаралды 16 М.
Почему?
0:37
Желтый клуб — 1С программирование
Рет қаралды 10 М.
The delivery rescued them
00:52
Mamasoboliha
Рет қаралды 7 МЛН
Парсим админку Мегамаркета с помощью скрытых API
30:56
Алексей Куличевский
Рет қаралды 31 М.
8K VR180 - Munich / Germany
4:26
Immerpsive by Burak Him
Рет қаралды 864
Быстрый способ развития программиста 1С - Иван Белокаменцев
16:13
Желтый клуб — 1С программирование
Рет қаралды 28 М.
Стандарты разработки в 1С
15:56
IRONSKILLS - Курсы по 1С
Рет қаралды 24 М.
Занятие 81.  Объект VS Запрос
13:10
Курсы 1С и экзамены (1С:Учебный центр №1)
Рет қаралды 3 М.
BPMN за 25 минут (основы нотации и как ее учить)
27:06
Бизнес анализ BPMN требования
Рет қаралды 67 М.