Pull to refresh
1
0
Send message

Понимаем декораторы в Python'e, шаг за шагом. Шаг 1

Reading time6 min
Views432K

На Хабре множество раз обсуждалась тема декораторов, однако, на мой взгляд, данная статья (выросшая из одного вопроса на stackoverflow) описывает данную тему наиболее понятно и, что немаловажно, является «пошаговым руководством» по использованию декораторов, позволяющим новичку овладеть этой техникой сразу на достойном уровне.

Итак, что же такое «декоратор»?


Впереди достаточно длинная статья, так что, если кто-то спешит — вот пример того, как работают декораторы:
def makebold(fn):
    def wrapped():
        return "<b>" + fn() + "</b>"
    return wrapped
 
def makeitalic(fn):
    def wrapped():
        return "<i>" + fn() + "</i>"
    return wrapped
 
@makebold
@makeitalic
def hello():
    return "hello habr"
 
print hello() ## выведет <b><i>hello habr</i></b>

Те же из вас, кто готов потратить немного времени, приглашаются прочесть длиииинный пост
Total votes 119: ↑106 and ↓13+93
Comments38

Асинхронная библиотека для работы с API Mikrotik

Reading time1 min
Views10K
Категорически приветствую.

Недавно мне понадобилось поработать с Mikrotik через его API. Вроде бы ничего примечательного, есть официальная библиотека, есть еще на гитхабе обёртка, но вот беда — мне надо было работать асинхронно через asyncio и c использованием плюшек async/await. И такой библиотеки я не нашел.

Читать дальше →
Total votes 19: ↑18 and ↓1+17
Comments9

Чистая архитектура в Python: пошаговая демонстрация. Часть 1

Reading time8 min
Views88K

Примечание переводчика
Данная статья является переводом. Дословный перевод занял 35 страниц А4 в ворде. Планирую разбить её на 5-6 частей. Думаю, данная тема должна быть полезна многим программистам, желающим писать свои web-приложения лучше и чище. Так же статья полезна тем, кто хочет научиться писать web-приложения с методологией TDD с применением именно модульных тестов, а не интеграционных, как это обычно делалось в тех статьях, что попадались мне на глаза. Если где-то использованы неверные термины или перевод кажется слишком машинным — напишите мне в личку, вряд ли это гугл-транслятор, скорее всего дело в моей косноязычности и посредственном знанием английского языка.

Содержание

Год назад мой друг Roberto Ciatti познакомил меня с концепцией, которую Роберт Мартин называет чистой архитектурой. Дядя Боб много говорит об этой концепции на конференциях и пишет о ней очень интересные статьи. «Чистая архитектура» представляет собой способ структурирования системы программного обеспечения, набор соглашений о различных слоях и ролях их участников, нечто большее, чем строгие правила.


Как он уже говорил в своей статье «Чистая архитектура» (перевод на хабре), идея самого подхода не нова, она строится на множестве концепций, которые продвигались многими разработчиками программного обеспечения в течение последних 3-х десяти лет.

Читать дальше →
Total votes 18: ↑16 and ↓2+14
Comments4

Ускоряем работу Ansible

Reading time7 min
Views25K

Под капотом d2c.io мы используем Ansible. С его помощью мы создаем виртуальные машины у облачных провайдеров, устанавливаем программное обеспечение, а также управляем Docker-контейнерами с приложениями клиентов.


Ansible – удобный инструмент, который готов к работе почти без настройки. Это возможно благодаря отсутствию агентов (agentless system), поэтому не нужно ничего предустанавливать на обслуживаемые хосты.


Для подключения к хостам в большинстве случаев используется ssh. Однако оборотной стороной этой медали является определенная медлительность, так как вся логика находится на управляющем сервере и каждую задачу (task) Ansible формирует локально и отправляет на исполнение через SSH-подключение. Затем он принимает результат, анализирует его и переходит к следующему шагу. В статье мы рассмотрим, как можно ускорить работу Ansible.

Читать дальше →
Total votes 35: ↑34 and ↓1+33
Comments6

Мой нереализованный проект. Сеть из 200 маршрутизаторов MikroTik

Reading time8 min
Views25K


Всем привет. Данная статья рассчитана на тех, у кого в парке находится много устройств микротик, и кому хочется сделать максимальную унификацию, чтобы не подключаться на каждое устройство в отдельности. В этой статье я опишу проект, который, к сожалению, не дошел до боевых условий из-за человеческих факторов. Вкратце: более 200 маршрутизаторов, быстрая настройка и обучение персонала, унификация по регионам, фильтрация сетей и определенных хостов, возможность легкого добавления правил на все устройства, логирование и контроль доступа.
Читать дальше →
Total votes 9: ↑8 and ↓1+12
Comments14

Работа с ssh в Python

Reading time3 min
Views193K
Всем добрый день.

Хочу рассказать про paramiko — модуль для работы с ssh в python.
С его помощью можно написать скрипт, который получит доступ к удаленному серверу (или многим) и что-то на нем сделает.

Кому интересно — прошу под кат.
Читать дальше →
Total votes 31: ↑27 and ↓4+23
Comments15

Давайте уже разберемся в DNS

Reading time8 min
Views440K

image
Внимательный читатель найдет на этой картинке IPv6


Люди часто озадачены доменами. Почему мой сайт не работает? Почему эта хрень поломана, ничего не помогает, я просто хочу, чтобы это работало! Обычно, вопрошающий или не знает про DNS, или не понимает фундаментальных идей. Для многих DNS — страшная и непонятная штука. Эта статья — попытка развеять такой страх. DNS — это просто, если понять несколько базовых концепций.


Что такое DNS


DNS расшифровывается как Domain Name System. Это глобальное распределенное хранилище ключей и значений. Сервера по всему миру могут предоставить вам значение по ключу, а если им неизвестен ключ, то они попросят помощи у другого сервера.


Вот и все. Правда. Вы или ваш браузер запрашивает значение для ключа www.example.com, и получает в ответ 1.2.3.4.

Читать дальше →
Total votes 52: ↑48 and ↓4+44
Comments36

Хочешь <s>похудеть</s> учиться ИТ самостоятельно? Спроси меня как

Reading time11 min
Views34K
Есть мнение, с которым я часто сталкиваюсь, — учиться самостоятельно невозможно, нужны профессионалы, которые будут вас вести по этому тернистому пути — объяснять, проверять, контролировать. Попробую опровергнуть это утверждение, а для этого, как известно, достаточно привести хотя бы один контрпример. В истории есть такие примеры великих автодидактов (или по-простому, самоучек): археолог Генрих Шлиман (1822–1890) или гордость Грузии — художник Нико Пиросмани (1862–1918). Да, эти люди жили, учились и творили по большей части в XIX веке и были крайне далеки от мира информационных технологий. Однако по-прежнему «самая важная цель обучения — научиться учиться», как говорил Аристотель.  В этой статье я поделюсь с вами практическими примерами, позволяющими эффективно организовать самостоятельный учебный процесс.

Total votes 81: ↑73 and ↓8+65
Comments28

Information

Rating
Does not participate
Registered
Activity