Иногда приходится писать код в 1С. В настройках переключаю язык кода на английский и работаю. Мне то удобно, а вот когда приходит "одинэсник", жопа у него полыхает. А я злобно смеюсь. Муахахаха!
А я злобно смеюсь. Муахахаха!
люди негатив ловят иногда только из за того что скобочки на новой строке, а не в той же.
зачем так делать?
хм, а как же бестпрактикс и code style? зачем ловить негатив когда изначально проще следовать стандартам.
так и я о том же.
бестпрактикс и code style в контексте положения скобочек имхо гораздо менее критично, чем замена привычной кириллицы на латиницу и наоборот
Может они сами код пишут только на одной строке. Ебнул точку с запятой, нажал пробел и дальше ебенят код. Это как открыть нормальный код в блокноте. Извращенцы...
C++ пишется с открывающей скобкой на той же строке, где объявление.
void main( string[] args ) {
}
https://en.wikipedia.org/wiki/Indentation_style#Brace_placem...
Но разумеется, каждый считает себя единственно правильным, а остальные долбоёбы.
В данном случае лично мне удобнее отслеживать начало и конец блоков кода.
А гореть должно скорее с чего-то такого:
P.S. Код мой, да xD
Ну это ИДЕ. Текстовые редакторы на порядок(ки) легче, кроме того, иногда разрабатываешь на нескольких языках одновременно...
Я же не сказал, что я код пишу в блокноте xD
Да и на шарпе это будет проблематично..
А разработку пока веду в Visual Studio 2017
Если интересен интерфейс, то:
Сам перешёл не так давно на тёмные темы в редакторах.
У меня почему то в темных темах глаза садятся сразу + с бумаги тяжко читать :D Видимо я люблю жосткий контраст, хотя в dev отделе меня все чмырят в шутку за белые интерфейсы D;
О, тёмных тем с большим контрастом много. Видимо, вам неудачные попадались :)
Я люблю тёмные темы именно за контраст. Белое с цветным не так сильно контрастирует, как тёмно-серое с ярко-цветным. Потому что это яркий цвет на фоне ничего по сравнению с ярким цветом на фоне яркого белого.
Не то, чтобы я от этого "горел", но такой синтаксис навсегда отбил у меня желание идти в кровавый энтерпрайз с джавой и плюсами.
Я тоже тащусь от шрифтов с лигатурами. =)
Однако, да, такие тернарные операции — зло в чистом виде. =)
Копипастаааа!!!!!!!!!!!!
Попробуйте вынести в отдельную переменную то, что я заскринил, и реализовать обычный геттер.
Или сделайте кейс по acessor (это читабельней).
Я очень надеюсь, что это не боевой код, а вы ради забавы захотели всё запихать в linq...
Копипасты тут есть, да. Вытащить в переменную? Там же t-шка..
Можно сделать иначе.
P.S. Стрелочка на строчку выше должна была показывать
Вложенный метод конечно можно, но не стоит (плохой тон).
Вынесите такую переменную (1 скрин).
Добавьте дополнительный where для той проверки
Итого получится:
var tmpVar = *****;
return (access == SerializationAccessMode.OnlyByteFields)
? tmpVar.Where(t => Attribute.IsDefined(t, typeof(ByteFieldAttribute)))
: tmpvar;
Сложность О алгоритма не увеличится..
Если у вас не бигдата, конечно..
Как по мне, копипаста тут легко убирается переносом внешнего условия туда, где оно действительно на что-то влияет: [см. скриншот]
Во вторых, тут, кмк, стоит отказаться от этого тернари-флоу в пользу простого и понятного switch(accessor)
А вы внимательно читали? я это уже писал.
#comment_133556866
"Или сделайте кейс по acessor (это читабельней)."
Да, я ошибся - написал кейс, а не свич, но оппонент не дурак, догадался бы, что я имею ввиду элемент конструкции switch-case.
В моём комментарии не только про switch же.
Про «access !== ... || ...» вы тоже уже писали? Ну извините, тогда, видимо был невнимателен.
@GUCEEB, вы же не пропустили мой коммент выше? Был бы рад, если бы он оказался полезен :)
Не видел ваш коммент, так как уведомления на Пикабу не было. Текущий вариант кода ниже. От двух Where просадки не будет, так как энумерация произойдет только на ToArray.
Да, это как вариант. Сериализатор в основном запиливался под обработку сетевых пакетов, бигдата/не бигдата будет зависеть от области применения..
Не, не приходится. И нет, не переключаешь, потому что там ничего не надо для этого переключать. Ну и на месте коллеги я бы с твоим начальством пообщался на тему намеренного усложнения работы)
Поясните плиз, то есть можно писать на англ?
На пример
FUNCTION ATATA() ит.д? А не все это ...
Можно. А нужно? Всю терминологию нужно тогда переводить. А еще потом и следовать этой терминологии. На 1С пишут всякую мелочь на коленках, никому там не нужно вот это все.
Конечно мелочь, крупный продукт никто не будет писать на 1С. Не для того этот инструмент нужен.
Что рассказать? Вы знаете хоть один продукт, работающий на 1С:Что-нибудь-там, в котором одновременную разработку ведут хотя бы пара сотен человек? У 1С своя ниша, смысла ее сравнивать с другими нет.
Это далеко не мс/гугл. Но тем не менее, ниша 1С — это небольшие проекты, которые чаще всего поддерживаются силами всего нескольких человек. Там даже нормальных инструментов для совместной работы нет.
Это не плохо и не хорошо, это вот такая область применения.
Ой, ну хватит. Гит уже давно и надежно прикручивали к 1С и девтулу.
Проекты на 1С- это всегда внутреннее ПО: CRM, бухгалтерии, производство. Есть множество фирм с десятками разработчиков и сотнями пользователей.
"1С:Что-нибудь-там, в котором одновременную разработку ведут хотя бы пара сотен человек"- да, таких не знаю. Но это масштабы России, бро. У нас в принципе таких проектов в стране мало.
И как много компаний давно и надежно используют Git? Как часто пишутся тесты для 1с, я уж молчу о разработке через тестирование. Как часто практикуется кодревью? Идет ли вообще речь о документации?
К 1с претензия только в той части, что он способствует появлению плохого кода и следованию плохих метод разработки ПО. В остальном это просто узкоспециализированный язык для ограниченной области применения. А уж о бедности самого языка и его окружения и говорить нечего.
Претензия к 1с-программистам в том, что за пределами руководства пользователя/программиста 1с они не высовываются. И да, оно им и не надо. Просто задачи не те.
В управлении торговлей около миллиона строк кода, конфигурации типа ERP намного больше, там может быть миллионов 5 строк кода. Написание такой конфигурации на других языках заняло бы ахулиард строк кода. Такие себе маленькие проекты
Эти конфигурации написала ведь сама компания 1С, чтобы продать свой продукт другим, чтобы те другие ничего не писали. А я спрашивал, что пишут внедренцы на основе этой продукции.
Я не знаю зачем бы кто-то взялся что-то реализовать самостоятельно на 1С с большой кодовой базой. Это лишено смысла, проще и надежнее взять Java или C#, где гораздо сложнее совершить ошибку, где выстроена человеческая система тестирования и версионирования кода. Где можно писать расширяемый и универсальный код, а не размазывать лапшу по формам. Где можно создать ту же микросервисную архитектуру и добиться большей отказоустойчивости системы. И вообще не замыкаться на одном языке, а использовать все их разнообразие, пользуясь преимуществом каждого из них.
В разработке ПО ценность несет не количество строчек кода, а его поддерживаемость. Внесение изменений в систему должно быть управляемым и безопасным. Конечно, можно писать в лоб, возможно получится и короче (скорее всего не получится), но поддерживать это будет невозможно.
Я не хейтю 1С, просто я указываю на его (её?) нишу. Она узкая и специфичная. Возможно, даже уместна в своем роде. Не знаю даже, зачем затеяли сравнение, ведь не хотел я противопоставлять. Но разработка ПО и разработка на 1С — совершенно разные и непохожие друг на друга сферы человеческой деятельности.
Я не знаю зачем бы кто-то взялся что-то реализовать самостоятельно на 1С с большой кодовой базой.
Зависит от задач. Для реализации бизнес-приложений 1С можно рассматривать как хороший фреймворк или использовать БСП, как фреймворк на 1С. Самостоятельная реализация регистров сведений, бухгалтерии, накопления, структуры метаданных, механизмы бизнес-процессов, разграничение доступа на уровне метаданных и на уровне записей в таблицах, СКД и т.д. Работа в линуксе, через браузер, через десктопное приложение из коробки, без доработок, работа с несколькими видами СУБД, внешние источники данных и т.д.
Если брать БСП, то у тебя из коробки плюсом идет работа с прикрепленными файлами, версионирование объектов, администрирование прав пользователей,интеграция с другими учетными системами, адресные классификаторы, классификаторы банков,структура подчиненности объектов, единиц измерения и т.д.
Все это нужно либо собирать Франкенштейна из десятка фреймворков на других языках, либо писать с нуля, что заняло бы очень много человекочасов с неясным результатом. Поэтому ответ на вопрос зачем будет - потому что это может ускорить разработку некоторых систем. С другой стороны если всё вышеперечисленное не нужно, то и 1С незачем использовать
Некоторые даже маленькие задачки на 1С могут вылиться в большую задачу для C# или другого языка. Вот, например, пример задания на 5 часов работы на экзамене 1С специалист по платформе, с 7 страницы 4 задания http://static.1c.ru/rus/partners/training/files/ATT83PL.rtf Расчет себестоимости по FIFO/LIFO, бухгалтерские проводки, расчет зарплаты, три отчета, интерфейс программы
Да, для быстрой разработки — это, скорее всего, хороший инструмент. Но если уже настроился разрабатывать что-то крупное, вряд ли кто-то возьмет 1С.
Вот, например, пример задания на 5 часов работы на экзамене 1С специалист по платформе, с 7 страницы 4 задания http://static.1c.ru/rus/partners/training/files/ATT83PL.rtf
А есть эталонный код решения? Такой, который считается хорошим и правильным среди 1С-разработчиков? Не обязательно реализация именно этого задания (задание сформулировано скорее как настройка системы, чем программная реализация), я просто хочу посмотреть на код, который считается хорошим.
задание сформулировано скорее как настройка системы, чем программная реализация
Это нужно реализовать программно
А есть эталонный код решения?
Эталонного кода нет, есть набор требований, что делать нельзя. За каждую ошибку начисляется определенное количество штрафных баллов, если накопил 3 балла экзамен провален. Например, использование регистра с остатками, если нужны только обороты, отсутствующая проверка на Null, там где в запросе может быть Null, использование данных документа, вместо данных регистров и т.д.
Приемлемое решение, например, здесь, только для запуска нужно установить платформу (учебная версия бесплатная) и в конфигураторе загрузить базу через администрирование->загрузить информационную базу
Можно писать на английском, единственное, нужно знать английские названия разных объектов, которые могут быть достаточно нетривиальные, типа DataCompositionResultSpreadsheetDocumentOutputProcessor
Как будто ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент (ИмениНуралиеваБориса) лучше звучит на русском. Слава богу, что в контекстной подсказке всплывает быстро