Некоторое время назад я и другие автоматизаторы начали показывать небольшие куски кода и описывать решения c которыми мы сталкиваемся каждый день ( [Заметка] Как уменшить уровень логирования для SudsLibrary библиотеки с помощью Python в Robot Framework? спасибо @TIT, @dzhariy, @DmitriyZverev за поддержку, очень ценю).
Все выглядит хорошо, и мы двигаемся плавно и стабильно, но я хочу чтобы это было мейнстрим, т.е. чтобы мы больше думали об обмене знаний и значительно больше делились полезной информацией, а не обсуждали только свои точечные проблемы. Таким образом мы значительно быстрее будем узнавать новые фишки, паттерны, смотреть как автоматизируют другие люди, с какими проблемами сталкиваются и как решают их, возможно просто и красиво, а иногда сложно и тяжело. Это все опыт и мы все вместе сможем получать этот опыт значительно быстрее и в концентрированном виде.
Цель
Насытить at.info аккумулированным проверенным опытом в виде небольших статей и кусков кода, которые мы разрабатываем каждый день. Я хочу создать движение, которое поможет нам всем черпать новую информацию. А ты готов быть активным автоматизатором?!
Наш опыт в наших руках. Присоединяйтесь, зовите знакомых, которые могут что-то описать, и агитируйте других автоматизаторов. Движению быть!
Чем делиться?
- Небольшие решения частых проблемы
- Костыли, затычки и воркараунды, которые помогают сделать ежедневную работу проще
- Написанный код, неидеальный, но который может пригодиться другим автоматизаторам
- Мысли вслух, теории и модели построения кода и автоматизации
- Паттерны создания кода и автоматизации от простых до сложных
- Инсайты, озарения, правила, как делать автоматизацию хорошо
- Описание типичных проблем, которые вы встречаете, возможно из проекта, который вам достался. Чем это чревато и с чем столкнулись.
- и т.д. я думаю ход мыслей понятен, в общем, все с чем мы работаем каждый день
Объем не имеет значение, то ли это будет 3 абзаца текста или это будет кусок вставленного кода с 3мя предложениями. Т.е. если у вас есть небольшой кусок кода или небольшая хорошая мысль, не стоит держать ее только у себя! Делимся, получаем обратную реакцию и развиваемся вместе.
Как это может выглядеть?
Написать большую и хорошую статью сложно и это требует времени. Мир неидеален. Давайте адаптироваться, так чтобы нам было удобно. Для того чтобы поделиться информацией, вам не нужны недели подготовок и кучу бессонных ночей, чтобы подготовить идеальную статью или код. Все что нам нужно уже есть под рукой. Рецепт обмена знаниями\информации предельно простой в несколько шагов:
- Логинимся на сайт
- Создаем обычную тему с информативным названием и контентом (внимание используется markdown, используйте читлист для того, чтобы посмотреть команды Markdown Cheatsheet · adam-p/markdown-here Wiki · GitHub)
- Бурно обсуждаем все в комментариях.
Но все же, как это может выглядеть? Да как сделаете так и будет, можно например посмотреть уже написанные статьи и заметки в базе знаний база знаний - automated-testing.info, но в общем это может быть так
Пример 1: Просто кусок кода и небольшое описание
Название: Как написать универсальную функцию создания рандомной строки под своих нужды на Python?
Тело: При разработке новой библиотеки для RobotFramework написал удобный метод создания универсальной строки по заданному паттерну.
class _StringDataGeneration(object):
def __init__(self):
self._overall_pattern = re.compile(
r'((?:[dcw]{1}(?!\*\d+))|(?:[dcw]{1}(?:\*\d+))|[\D\W\S])')
self._expression_pattern = re.compile(r'[dcw]{1}(?:\*\d+)')
self.SUPPORTED_CHARS = {
'c': self._generate_chars,
'd': self._generate_numbers,
'w': self._generate_chars_and_numbers,
}
def get_random_string_by_pattern(self, format):
"""Generate random string by pattern:
Examples:
| ${string} | Get Random String By Pattern | ddd*10d-c*2ccc-d*2-cc*2-w-w*5ww | """
groups = self._overall_pattern.findall(format)
return "".join(map(self._replace, groups))
def _replace(self, pattern):
if self._expression_pattern.search(pattern):
parsed_expression = pattern.split('*')
return self.SUPPORTED_CHARS[parsed_expression[0]](int(parsed_expression[1]))
elif pattern in self.SUPPORTED_CHARS.keys():
return self.SUPPORTED_CHARS[pattern]()
else:
return pattern
...
Пример 2: Пошаговая инструкция
Пример 3: Небольшая статья с деталями
Ну что сделаем обмен знаний лучшее и качественнее, тем самым повышая свою экспертизу в области автоматизации? Комментарии, предложения, инициатива, проактивность и самостоятельность приветствуется! А в замен я буду поощрять инициативных. Начну с этого Наклейка at.info на ваш ноутбук! Становимся at.info superstar