Александр Кунташов — про 1С и не только
2.47K subscribers
219 photos
10 videos
417 links
Заметки про разработку и смежные штуки: 1С, Vanessa Automation, DevOps в 1С, OneScript, PHP, Linux, JS, Python и всякое вокруг и около ИТ.
Download Telegram
Антипаттерн "ВводНаОсновании77". 2018 год на дворе, а все еще встречаются такие вот жемчужины программирования. #codesmells #говнокод
Чтение метаданных из CF/CFE 1С в 8.3.13 (штатно)

Интересное промелькнуло в одном небезысвестном гиттер-чатике фанатов EDT: оказывается, в 8.3.13 был добавлен конструтор объекта ОбъектМетаданныхКонфигурация. Его предназначение - чтение метаданных из внешних файлов конфигураций и расширений 1С.

Цитирую из публично доступного описания нового в 8.3.13.1198:

Реализована возможность анализа метаданных, расположенных в файлах .cf или .cfe. Реализован конструктор для объекта ОбъектМетаданныхКонфигурация.

Реализована возможность получения имени конфигурации, номера версии и поставщика на основании файлов .cf или .cfe. Реализован объект ОписаниеКонфигурации.

Реализована возможность получить из файла .cfu список версий конфигурации, которые могут быть обновлены данным обновлением, а также версию конфигурации, которая получится в результате обновления. Реализован объект ОписаниеОбновленияКонфигурации.

Примеры использования привожу ниже.

#1С
А вот примеры использования. Скопипастить можно по ссылке. #1C
Пахнет фичами из воздуха и тэгом @tree, если вы понимаете, о чем я. Когда "BDD-сценарии" занимают 10К строк, это уже не BDD. Голосуем за доклад, узнаем, что это за BDD такое #infostartevent #BDD #1C
Новая рубрика #НеФотошоп. "Что-то с памятью моей стало, что-то стало мне ее мало..." (с) или "Когда EDT укусил конфигуратор" #1C
После выполнения этого кода в коллекции ЗапросВСнабжение оказывались какие-то рандомные строки. Что с ним не так? #codesmells #говнокод
Правильный ответ: в свойстве ВыделенныеСтроки ТаблицыФормы - массив идентификаторов строк, а не их индексы. Иногда они могут совпасть с индексом строки, но обычно - нет и рассчитывать на совпадение, конечно же - бред.

Нужную строку (точнее элемет с типом ДанныеФормыЭлементКоллекции) по идентификатору получать нужно методом НайтиПоИдентификатору, т.е. в том примере выше ожидаемое пользователями поведение достигается так:

ЭЛ = Объект.Товары.НайтиПоИдентификатору(Тек);

Код 💩 все еще ужасен, но по крайней мере теперь работает правильно :-) #1С #codesmells #говнокод
Даже страшно подумать, что чуваки пилят.
Forwarded from WebDEV
​​В Твиттере какое-то время назад запостили шутку в честь приобретения Майкрософтом GitHub'а — страницу сайта, перестилизованную в стиле Windows 98. Шутка слишком хороша, чтобы оставаться шуткой.

Пользователь хабра воплотил эту шутку в реальность, он создал стили, которые превращают GitHub в Windows 95. Все свои действия он описал в статье, а код выложил на GitHub.

Превращаем GitHub в Windows 95

#article #css
Вся правда про побочку от работы в ИТ. Смешно и грустно.
Осторожно, присутствует нецензурная лексика (много).

https://youtu.be/K6oZuB8_dU8

Доклад отличный, тем, кто любит доклады Дорофеева, особенно понравится.
Обсуждаем в @Unofficial1C, почему для 1Сников мероприятий мало (якобы).
Опять из пустого в порожнее, что кто-то кому-то что-то должен организовать.

Разработчики, кому интересен обмен опытом или просто тусовка с единомышленниками, по собственной инициативе проводят мини-конференции и семинары.

Недавние тусы для тех, кому было надо:
* Омск: https://tavalik.ru/konferenciya_na1s_2018/
* Хабаровск: https://ha1s.ru/ (регулярная, для некоторых здесь это важно)
* Хакатон СБ: https://isthisdesign.org/ (хот тут про него и так все знают)

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

Резюме: мероприятий ровно столько, сколько востребовано сообществом разработчиков 1С, и они ровно в том формате, который удобеен активному большинству.

Да, большие игроки рынка труда в сфере 1С должны "подогревать" сообщество, собственно поэтому 1С и вложилась в Инфостарт, и вкладывается в Клуб будущих 1Сников, проводит для студентов мероприятия (кстати, чего их-то не посчитали выше?).

Но чтобы что-то начиналось, должны быть энтузиасты, вокруг которых эта тусовка и будет аккумулироваться.

p.s. Разговор о первом ИнфостартЭвенте начинался как обсуждение планов очередной неформальной тусовке 1Сников, который вылился в то, что получилось (у меня где-то заскринена картинка того обсуждения, найду - покажу).
💩Старый веселый скриншотик из моей коллекции. #говнокод #codesmells
json-server - эмулятор любого REST API (без программирования, регистрации и СМС!)

В простейшем варианте использования просто подсовываешь ему фикстуру в виде json-файлика с описанием результата. По содержимому json-server сам определит, по каким маршрутам (routes) какие данные из этого файла нужно возвращать.

Для нестандартных случаев можно задать свои правила маршрутизации.

В совсем сложных случаях json-server можно подключать как nodejs-модуль и реализовать свое сколь угодно сложное поведение.

#Тестирование #Инструменты
🏗 С чего начать изучение паттернов проектирования

На ИЭ уже который раз в списке новых статей мелькают названия паттернов проектирования. Наконец-таки решился посмотреть (заманил автор своей последовательностью). Но в конечном итоге совсем не впечатлило.

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

Зачем я вообще про это написал? На самом деле за тем, что бы порекомендовать правильную точку входа для изучения паттернов, и нет, это не будет ссылка на книгу Банды Четырех.

🚀 Правильно начинать отсюда: https://refactoring.guru/ru/design-patterns

Паттерны описаны простым и доступным языком: какую проблему паттерн решает, как решает, область применения, конкретные примеры на псевдокоде и на конкретных языках.

Для тех, кто изучает - рекомендую, и не важно, 1Сник ты или нет :)

И да, про рефакторинг там тоже отменный раздел.
Forwarded from Evil Martians
Серьезное воскресное чтение. Многие новички постоянно путаются в интерпретаторах, виртуальных машинах, не понимают, как имплементации языков программирования работают, что быстрее и почему.

Соавтор нескольких виртуальных машин Smalltalk на Quora объясняет, почему, несмотря на то что и Python, и Java работают с байткодом, Java намного быстрее. Подробно, со ссылками на литературу и вежливым объяснением самых основ.

https://amp.gs/7yri
🚦Как веб-сервису сигнализировать об ошибке: HTTP-статус vs тело ответа?

Отличный комментарий к неплохой (в целом) статье про HTTP-сервисы, в котором наглядно объясняется, когда нужно информацию об ошибке передавать клиенту при помощи стандартного HTTP-статуса, а когда - в теле HTTP-ответа со статусом 200 OK:

Я запрашиваю /account/123, мне сервис возвращает { status: 400, msg: "incorrect guid" }, я точно понимаю, что я ввел не верный гуид.

Я запрашиваю
/account/t140762c2-0742-4046-9a0e-c4f81931c549 мне возвращает { status: 404, msg: "account not found" }, я точно понимаю, что акка с таким гуидом нету.

Все что было выше - это ошибки БИЗНЕС логики.

А теперь я запрашиваю
/accounttttt/t140762c2-0742-4046-9a0e-c4f81931c549 и мне тупо возращается HTTP код 404 и тут я понимаю, что я накосячил с УРЛом.

Это ошибка транспорта HTTP.
🕸 10-1-10 challenge как иллюстрация метода FFF

Сейчас в соцсетях вирусит ролик художника (ссылка в конце поста), который рисует спайдермена за ограниченные интервалы времени: 10 минут (законченный рисунок), 1 минуту (скорее эскиз) и 10 секунд (грубый набросок).

Коллеги из ИТ этот ролик репостят как смешную иллюстрацию ситуации, когда заказчик требует многого за неадекватные сроки и получает в итоге продукт неудовлетворительного качества (рисунок, сделанный за 10 секунд выглядит менее красивым, чем рисунок, сделанный за 10 минут).

Но ролик совершенно не про неадекватного заказчика! 10-1-10 challenge больше подходит для иллюстрации стратегии адекватного исполнителя, который даже в ограниченный срок способен создать минимальный полезный продукт (=узнаваемого персонажа).

В среде дизайнеров и веб-разработчиков известны метод прогрессивного джипега Артемия Лебедева и принцип управления проектами FFF Дизайн-бюро Артёма Горбунова. Вот ролик как раз и является демонстрацией подходов, основой которых является принцип:

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

Ссылки:
— Видео, из-за которого весь сыр-бор: https://www.youtube.com/watch?v=x9wn633vl_c
— Немного не-ИТшных подробностей про то, откуда взялся 10-1-10 challenge: https://themindcircle.com/speed-drawing-challenge/

#УправлениеПроектами