Александр Кунташов — про 1С и не только
2.47K subscribers
219 photos
10 videos
417 links
Заметки про разработку и смежные штуки: 1С, Vanessa Automation, DevOps в 1С, OneScript, PHP, Linux, JS, Python и всякое вокруг и около ИТ.
Download Telegram
После выполнения этого кода в коллекции ЗапросВСнабжение оказывались какие-то рандомные строки. Что с ним не так? #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/

#УправлениеПроектами
Когда разработчик относится к коду как к магии:
— Волшебный СокрЛП везде
— Страшные заклинания повторяем несколько раз
— Невероятное комментируем
тогда получается💩 #говнокод #codesmells
Пятничный юмор из соседнего чатика @bit24dev #codesmells #говнокод
📚 Что почитать на выходных

Error Mining (The key for solving Rumsfeld problems in modern software)
Про то, что "тестирование в проде" больше не шутка сегодня, а важный этап тестирования ПО. Современные веб-приложения работают в неконтролируемой нами среде (например, AWS), испытывают неравномерные нагрузки и т.д. и т.п. и в целом реальную работу приложения воспроизвести в тестовой среде сложно, а потому и вероятность столкнуться с теми же ошибками, с которыми сталкиваются реальные пользователи, уменьшается. Потому очень важным становится сбор ошибок, возникающих в проде и это меняет взгляд на тестирование ПО. Об этом статья.

Real developers don’t use UIs
Я очень активно пользуюсь командной строкой, но когда меня просят объяснить и спрашивают, почему, например, я не пользуюсь, SourceTree, то чаще развожу руками — "я просто привык делать это в консоли". В статье приведен подробный анализ преимуществ и недостатков интерфейса командной строки в сравнении с GUI, в частности с веб-интерфейсами.

Распутывая узлы интеграции: Построение архитектуры слабосвязанных систем, или Кролики наступают
Андрей Овсянкин рассказывает про альтернативный (существующим) подход к реализации задач интеграции информационных систем, в том числе 1С (но на самом деле тип платформы роль не играет) при помощи очередей сообщений. Как можно понять из названия, для демонстрации подхода будет описано решение, использующее RabbitMQ.

Как Яндекс создавал первое устройство с Алисой. Яндекс.Станция на базе технологии IO
Я пока с трудом нахожу место голосовым интерфейсам в своем быту, но попробовать было бы любопытно. Статьи про поиск решения реальных задач очень люблю, эта такая.

This is not the DRY you are looking for
Про то, что принцип DRY трактуется ошибочно как "не пиши похожий код/избегай дублирование кода", но применение такого подхода на уровне кода приводит к созданию сложносвязанной архитектуры, которую сложно поддерживать. В оригинале принцип - про знания, а не про код.

#ЧтоПочитатьНаВыходных
🛠 Markdown-редактор для встраивания в свое веб-приложение

Смотрел для своих нужд различные онлайн-редакторы markdown. Особенно приглянулись два:

🥇sparksuite/simplemde-markdown-editor (5k+ звезд на гитхабе)
🥈jbt/markdown-editor (2k+ звезд)

У обоих внутри в качестве неонки - codemirror.

Второй (markdown-editor) - не встраиваемый (к сожалению), но у него классный минималистичный интерфейс с live preview и возможностью скачать рендер markdown в чистый HTML, это самодостаточный редактор.

#Инструменты
Что нужно знать об отличиях водопада от эджайла (картинка, которой нехватает в статье Можно ли объять необъятное или чем Agile отличается от водопада?..) (Вместо копирайта: где нашел картинку) #agile
☝️ [IE2018] Роль платформы 1С:Предприятие в сервисе 1С-Коннект

Посмотрите какой интересный доклад на ИЕ от разработчика 1С-Коннект, цитирую анонс:

- Сервис 1С-Коннект использует почти вся партнерская сеть 1С: 500 тыс. пользователей, 120+ тыс. ежедневно, рост трафика 2+ раза ежегодно.
- Используемые продукты и технологии: xmpp, erlang, go, python, rabbitMQ, телефония, туннелирование, 4 СУБД: 1С: Предприятие (PostgreSQL+MSSQL), PostgreSQL, REDIS, MongoDB, описание ролей.
...
- Цикл производства: параллельная разработка выпусков. Ручное тестирование и автотесты (сценарные + API), обновление через механизм поставок, EDT+GIT. Трекер.

И хоть я и уверен, что Олег Филиппов (а именно он назначен модератором секции "Администрирование СУБД. HighLoad оптимизация", в которой анонсирован доклад) воспользуется полномочиями и доклад прозвучит на конференции, призываю вас проголосовать :)

#infostart