Антипаттерн "ВводНаОсновании77". 2018 год на дворе, а все еще встречаются такие вот жемчужины программирования. #codesmells #говнокод
Чтение метаданных из CF/CFE 1С в 8.3.13 (штатно)
Интересное промелькнуло в одном небезысвестном гиттер-чатике фанатов EDT: оказывается, в 8.3.13 был добавлен конструтор объекта
Цитирую из публично доступного описания нового в 8.3.13.1198:
Реализована возможность анализа метаданных, расположенных в файлах .cf или .cfe. Реализован конструктор для объекта ОбъектМетаданныхКонфигурация.
Реализована возможность получения имени конфигурации, номера версии и поставщика на основании файлов .cf или .cfe. Реализован объект ОписаниеКонфигурации.
Реализована возможность получить из файла .cfu список версий конфигурации, которые могут быть обновлены данным обновлением, а также версию конфигурации, которая получится в результате обновления. Реализован объект ОписаниеОбновленияКонфигурации.
Примеры использования привожу ниже.
#1С
Интересное промелькнуло в одном небезысвестном гиттер-чатике фанатов EDT: оказывается, в 8.3.13 был добавлен конструтор объекта
ОбъектМетаданныхКонфигурация
. Его предназначение - чтение метаданных из внешних файлов конфигураций и расширений 1С.Цитирую из публично доступного описания нового в 8.3.13.1198:
Реализована возможность анализа метаданных, расположенных в файлах .cf или .cfe. Реализован конструктор для объекта ОбъектМетаданныхКонфигурация.
Реализована возможность получения имени конфигурации, номера версии и поставщика на основании файлов .cf или .cfe. Реализован объект ОписаниеКонфигурации.
Реализована возможность получить из файла .cfu список версий конфигурации, которые могут быть обновлены данным обновлением, а также версию конфигурации, которая получится в результате обновления. Реализован объект ОписаниеОбновленияКонфигурации.
Примеры использования привожу ниже.
#1С
Пахнет фичами из воздуха и тэгом @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
Пользователь хабра воплотил эту шутку в реальность, он создал стили, которые превращают GitHub в Windows 95. Все свои действия он описал в статье, а код выложил на GitHub.
Превращаем GitHub в Windows 95
#article #css
Вся правда про побочку от работы в ИТ. Смешно и грустно.
Осторожно, присутствует нецензурная лексика (много).
https://youtu.be/K6oZuB8_dU8
Доклад отличный, тем, кто любит доклады Дорофеева, особенно понравится.
Осторожно, присутствует нецензурная лексика (много).
https://youtu.be/K6oZuB8_dU8
Доклад отличный, тем, кто любит доклады Дорофеева, особенно понравится.
YouTube
Илья Якямсев "Эффективность не работает", конференция FrontDays 2018
Сайт конференции: https://frontdays.ru/
Группа в вк: https://vk.com/frontdays
Группа в фб: https://www.facebook.com/frontdays/
Группа в вк: https://vk.com/frontdays
Группа в фб: https://www.facebook.com/frontdays/
Обсуждаем в @Unofficial1C, почему для 1Сников мероприятий мало (якобы).
Forwarded from Александр Кунташов
Опять из пустого в порожнее, что кто-то кому-то что-то должен организовать.
Разработчики, кому интересен обмен опытом или просто тусовка с единомышленниками, по собственной инициативе проводят мини-конференции и семинары.
Недавние тусы для тех, кому было надо:
* Омск: https://tavalik.ru/konferenciya_na1s_2018/
* Хабаровск: https://ha1s.ru/ (регулярная, для некоторых здесь это важно)
* Хакатон СБ: https://isthisdesign.org/ (хот тут про него и так все знают)
Я в 2012 году организовывал мероприятия в Саратове, и потом еще несколько раз пытался и знаю, что очень тяжело собрать заинтересованную аудиторию 1Сников, чтобы провести что-то более-менее заметное даже в локальных масштабах. Всем потенциальным участникам чаще всего пилить надо, пилу точить некогда. Плюс открыто обмениваться опытом в нашей сфере пока все еще не очень принято (но ситуация с каждым годом все лучше).
Резюме: мероприятий ровно столько, сколько востребовано сообществом разработчиков 1С, и они ровно в том формате, который удобеен активному большинству.
Да, большие игроки рынка труда в сфере 1С должны "подогревать" сообщество, собственно поэтому 1С и вложилась в Инфостарт, и вкладывается в Клуб будущих 1Сников, проводит для студентов мероприятия (кстати, чего их-то не посчитали выше?).
Но чтобы что-то начиналось, должны быть энтузиасты, вокруг которых эта тусовка и будет аккумулироваться.
p.s. Разговор о первом ИнфостартЭвенте начинался как обсуждение планов очередной неформальной тусовке 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-модуль и реализовать свое сколь угодно сложное поведение.
#Тестирование #Инструменты
В простейшем варианте использования просто подсовываешь ему фикстуру в виде json-файлика с описанием результата. По содержимому json-server сам определит, по каким маршрутам (routes) какие данные из этого файла нужно возвращать.
Для нестандартных случаев можно задать свои правила маршрутизации.
В совсем сложных случаях json-server можно подключать как nodejs-модуль и реализовать свое сколь угодно сложное поведение.
#Тестирование #Инструменты
GitHub
GitHub - typicode/json-server: Get a full fake REST API with zero coding in less than 30 seconds (seriously)
Get a full fake REST API with zero coding in less than 30 seconds (seriously) - typicode/json-server
🏗 С чего начать изучение паттернов проектирования
На ИЭ уже который раз в списке новых статей мелькают названия паттернов проектирования. Наконец-таки решился посмотреть (заманил автор своей последовательностью). Но в конечном итоге совсем не впечатлило.
Задел обнадеживающий: есть Декоратор, Цепочка обязанностей, Посетитель, Наблюдатель, и вот сегодня добавился Итератор. Но примеры кода - спорные, назначения паттернов и критерии применимости практически не описаны... В общем знакомиться по такому с паттернами кому-либо не посоветую. Как точка входа в спор про ООП в 1С сойдет (но судя по скудным комментариям и это не точно), но не более того.
Зачем я вообще про это написал? На самом деле за тем, что бы порекомендовать правильную точку входа для изучения паттернов, и нет, это не будет ссылка на книгу Банды Четырех.
🚀 Правильно начинать отсюда: https://refactoring.guru/ru/design-patterns
Паттерны описаны простым и доступным языком: какую проблему паттерн решает, как решает, область применения, конкретные примеры на псевдокоде и на конкретных языках.
Для тех, кто изучает - рекомендую, и не важно, 1Сник ты или нет :)
И да, про рефакторинг там тоже отменный раздел.
На ИЭ уже который раз в списке новых статей мелькают названия паттернов проектирования. Наконец-таки решился посмотреть (заманил автор своей последовательностью). Но в конечном итоге совсем не впечатлило.
Задел обнадеживающий: есть Декоратор, Цепочка обязанностей, Посетитель, Наблюдатель, и вот сегодня добавился Итератор. Но примеры кода - спорные, назначения паттернов и критерии применимости практически не описаны... В общем знакомиться по такому с паттернами кому-либо не посоветую. Как точка входа в спор про ООП в 1С сойдет (но судя по скудным комментариям и это не точно), но не более того.
Зачем я вообще про это написал? На самом деле за тем, что бы порекомендовать правильную точку входа для изучения паттернов, и нет, это не будет ссылка на книгу Банды Четырех.
🚀 Правильно начинать отсюда: https://refactoring.guru/ru/design-patterns
Паттерны описаны простым и доступным языком: какую проблему паттерн решает, как решает, область применения, конкретные примеры на псевдокоде и на конкретных языках.
Для тех, кто изучает - рекомендую, и не важно, 1Сник ты или нет :)
И да, про рефакторинг там тоже отменный раздел.
refactoring.guru
Паттерны/шаблоны проектирования
Паттерны проектирования описывают типичные способы решения часто встречающихся проблем при проектировании программ.
Forwarded from Evil Martians
Серьезное воскресное чтение. Многие новички постоянно путаются в интерпретаторах, виртуальных машинах, не понимают, как имплементации языков программирования работают, что быстрее и почему.
Соавтор нескольких виртуальных машин Smalltalk на Quora объясняет, почему, несмотря на то что и Python, и Java работают с байткодом, Java намного быстрее. Подробно, со ссылками на литературу и вежливым объяснением самых основ.
https://amp.gs/7yri
Соавтор нескольких виртуальных машин Smalltalk на Quora объясняет, почему, несмотря на то что и Python, и Java работают с байткодом, Java намного быстрее. Подробно, со ссылками на литературу и вежливым объяснением самых основ.
https://amp.gs/7yri
Quora
If Python and Java both compile to bytecode, why is Java so much faster? What's the JIT doing with bytecode that CPython isn't?…
The answer is captured in two papers and a thesis: [DS84] “Efficient implementation of the smalltalk-80 system”, L. Peter Deutsch, Allan M. Schiffman, POPL '84 Proceedings of the 11th ACM SIGACT-SIGPLAN symposium on Principles of programming langu...
🚦Как веб-сервису сигнализировать об ошибке: HTTP-статус vs тело ответа?
Отличный комментарий к неплохой (в целом) статье про HTTP-сервисы, в котором наглядно объясняется, когда нужно информацию об ошибке передавать клиенту при помощи стандартного HTTP-статуса, а когда - в теле HTTP-ответа со статусом
Я запрашиваю
Я запрашиваю
Все что было выше - это ошибки БИЗНЕС логики.
А теперь я запрашиваю
Это ошибка транспорта HTTP.
Отличный комментарий к неплохой (в целом) статье про 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.
forum.infostart.ru
HTTP Сервисы: Путь к своему сервису. Часть 1 - Форум.Инфостарт
Форум 1С программирование, форум: общие вопросы программирования (Dev), тема: HTTP Сервисы: Путь к своему сервису. Часть 1
Forwarded from Wangoff. RuИТ комьюнити для лидеров.
🕸 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/
#УправлениеПроектами
Сейчас в соцсетях вирусит ролик художника (ссылка в конце поста), который рисует спайдермена за ограниченные интервалы времени: 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/
#УправлениеПроектами
Бюро Горбунова
ФФФ
Аббревиатура ФФФ означает fix time, fix budget, flex scope. Мы работаем с фиксированными сроками и бюджетом, а функциональность оставляем гибкой