Вы узнаете, как организовать тесты в классы, модули и каталоги. Затем я покажу вам, как использовать маркеры, чтобы отметить, какие тесты вы хотите запустить, и обсудить, как встроенные маркеры могут помочь вам пропустить тесты и отметить тесты, ожидая неудачи. Наконец, я расскажу о параметризации тестов, которая позволяет тестам вызываться с разными данными.
Пользователь
Изучаем С используя GDB
Исходя из особенностей таких высокоуровневых языков, как Ruby, Scheme или Haskell, изучение C может быть сложной задачей. В придачу к преодолению таких низкоуровневых особенностей C, как ручное управление памятью и указатели, вы еще должны обходиться без REPL. Как только Вы привыкнете к исследовательскому программированию в REPL, иметь дело с циклом написал-скомпилировал-запустил будет для Вас небольшим разочарованием.
Недавно мне пришло в голову, что я мог бы использовать GDB как псевдо-REPL для C. Я поэкспериментировал, используя GDB как инструмент для изучения языка, а не просто для отладки, и оказалось, что это очень весело.
Хрустальный шар с извилинами: как мозг предсказывает речь
Мозг человека считается одним из самых сложных механизмов, на понимание работы, которого люди потратили не одно столетие, но так и не смогли получить полную картину. Именно в мозге протекают процессы, связанные с обработкой и хранением информации, с принятием решений, с контролем действий. Но до сих пор ученый свет не может дать единый ответ на вопрос — каков основной принцип или механизм работы мозга? Многие считают, что мозг работает по принципу сравнения сенсорной информации и построенных в нем предсказаний. К примеру, участвуя в беседе, человек воспринимает ряд сенсорной информации — голос собеседника, речь (т. е. сами слова), мимика, движения. А его мозг постоянно пытается предсказать, что собеседник скажет дальше. Ранее это была лишь теория, но благодаря ученым из Института психолингвистики Макса Планка (Нидерланды) теория была подтверждена на практике. Какие опыты провели ученые, что они показали, и смогли ли они открыть тайну работы мозга? Ответы на эти вопросы мы найдем в докладе ученых. Поехали.
Датчик глюкозы из паутины
Нет ничего удивительно в том, что научный мир постоянно вдохновляется вполне естественными процессами и явлениями, встречающимися в природе. Многие представители флоры и фауны в той или иной степени становятся соавторами тех или иных открытий, изобретений и разработок, меняющих жизнь человека к лучшему. Мы часто слышим о том, как паучий шелк применяется в самых разных отраслях исследований, ввиду его удивительных химических и физических свойств. И череда открытий не останавливается. Ученые из Национального университета Цзяотун (Синьчжу, Тайвань) преобразовали паучий шелк в оптическое волокно, которое можно использовать для создания датчиков глюкозы. Каковы оптические свойства паутины, как ученые преобразовали ее в оптоволокно, и как данная разработка может помочь диабетикам? Ответы на эти вопросы мы найдем в докладе ученых. Поехали.
Батарейки из воды и чернил
Ничто не стоит на месте и постоянно развивается. Это касается и живых организмов, проходящих долгий и тернистый путь эволюции, и рукотворных творений человека, которые приобретают новые свойства и функции посредством развития технологий и науки. Как и в случае эволюции, новые разработки порой выглядят крайне необычно, а их работоспособность на первый взгляд кажется как минимум сомнительной. Однако даже самые странные изобретения рано или поздно приносят пользу, будь то на практике или как вдохновение для последующих изобретений. Ученые из Швейцарских федеральных лабораторий материаловедения и технологий (Швейцария) разработали необычный аккумулятор, состоящий из простой бумаги и чернил. Что необычного в бумажной батарейке, каков принцип ее работы, и насколько она эффективна? Ответы на эти вопросы мы найдем в докладе ученых. Поехали.
Библиотека СleanAPI: cоздаем микросервис на Python за 30 секунд
Использование микросервисной архитектуры для построения корпоративных приложений взамен традиционной монолитной — популярный тренд в веб-разработке.
Первая проблема, которую вам предстоит решить, столкнувшись на практике с задачей написать микросервис на Python — выбор подходящего фреймворка.
Мой выбор — Tornado. Поработав с Tornado в паре коммерческих проектов, я в целом остался доволен результатами. Однако, как бы ни было хорошо, всегда хочется чего-то большего.
Результатом моих раздумий стала небольшая библиотека CleanAPI, представляющая собой оболочку над Tornado, позволяющую повысить удобство разработки и снизить порог вхождения для новичков.
Подробно о корутинах в C++
В рамках проработки темы С++20 нам в свое время попалась уже довольно старенькая (сентябрь 2018) статья из хаброблога «Яндекса», которая называется "Готовимся к С++20. Coroutines TS на реальном примере". Заканчивается она следующей весьма выразительной голосовалкой:
«Почему бы и нет», — решили мы и перевели статью Давида Пиларски (Dawid Pilarski) под названием «Coroutines introduction». Статья вышла чуть более года назад, но, надеемся, все равно покажется вам очень интересной.
Юнит-тесты на Python: Быстрый старт
Юнит-тестирование кода является неотъемлемой частью жизненного цикла разработки программного обеспечения. Юнит-тесты также формируют основу для проведения регрессионного тестирования, то есть они гарантируют, что система будет вести себя согласно сценарию, когда добавятся новые функциональные возможности или изменятся существующие.
В этой статье я продемонстрирую основную идею юнит-тестирования на одном классе. На практике вам придется писать множество тестовых случаев, добавлять их в тестовый набор и запускать все вместе. Управление тест-кейсами мы рассмотрим в следующей статье.
CLI на питоне. Пускаем пользователя на сервер
Казалось бы, можно дать клиенту урезанный шелл и контролировать исполнение «опасных» команд при помощи sudo. Однако даже если с точки зрения безопасности удается все удачно «разрулить», это не решает всех проблем. Клиента приходится учить основам работы в командной строке, отвечать на шквал вопросов и разбираться, что и почему у него не получается. Время, затрачиваемое на поддержку, увеличивается значительно.
Пытаясь найти решение я наткнулся на описание модуля Cmd для Python. Данный модуль позволяет с минимальными затратами написать подобие интерфейса командной строки c необходимым набором команд.
Чистая архитектура в Python: пошаговая демонстрация. Часть 1
Год назад мой друг Roberto Ciatti познакомил меня с концепцией, которую Роберт Мартин называет чистой архитектурой. Дядя Боб много говорит об этой концепции на конференциях и пишет о ней очень интересные статьи. «Чистая архитектура» представляет собой способ структурирования системы программного обеспечения, набор соглашений о различных слоях и ролях их участников, нечто большее, чем строгие правила.
Как он уже говорил в своей статье «Чистая архитектура» (перевод на хабре), идея самого подхода не нова, она строится на множестве концепций, которые продвигались многими разработчиками программного обеспечения в течение последних 3-х десяти лет.
Как организовать код в Python-проекте, чтобы потом не пожалеть
Каждая минута, потраченная на организацию своей деятельности, экономит вам целый час.
Бенджамин Франклин
Python отличается от таких языков программирования, как C# или Java, заставляющих программиста давать классам имена, соответствующие именам файлов, в которых находится код этих классов.
Python — это самый гибкий язык программирования из тех, с которыми мне приходилось сталкиваться. А когда имеешь дело с чем-то «слишком гибким» — возрастает вероятность принятия неправильных решений.
19 полезных возможностей файла .htaccess
Спорим, о некоторых вы не подозревали. Мы собрали варианты применения .htaccess для улучшения работы сайта. Он часто используется оптимизаторами для корректной настройки 301 редиректов. Но этим возможности файла не ограничиваются. Тут и безопасность, и оптимизация, и параметры отображения — с помощью .htaccess вебмастер может сделать много полезного, чтобы сайт работал корректно.
Python-пакеты и их использование
Всем добрый день!
На Хабре уже поднималась тема организации работы с внешними пакетами с использованием подмодулей или деревьев в Git. Это показалось хорошим решением, но на деле вылилось в неудобства и запутанность. Тогда я решил перенести всё на python-пакеты. Чем и поделюсь сейчас на примере Django приложения.
Основы компьютерных сетей. Тема №1. Основные сетевые термины и сетевые модели
[в закладки] Шпаргалка системного администратора по сетевым инструментам Linux
В некоторых из рассматриваемых здесь примеров вы столкнётесь с сокращением
<fqdn>
(fully qualified domain name, полное доменное имя). Встретив его, замените его, в зависимости от обстоятельств, на адрес интересующего вас сайта или сервера, например, на нечто вроде server-name.company.com
.Вскрытие трафика в публичных сетях
Эта статья о том, как стать кулхацкером (или по-английски Script Kiddie) — условным злоумышленником, который испытывает недостаток знаний в области программирования и использует существующее программное обеспечение, чтобы провести атаку на смартфоны и планшеты своих одноклассников.
Шучу. На самом деле передо мной стояла задача понять две вещи:
- Насколько опасно пользоваться публичным WiFi в 2020 году, в мире где господствуют браузеры и сайты с повсеместно победившими технологиями HTTPS (на основе TLS 1.1+) и HSTS
- Сможет ли человек моего уровня знаний (не самого высокого) “залезть” в чужой браузер и стащить ценные данные.
- Да, Опасно!
- Вполне сможет
Создание сайта с помощью C++
Возможно ли это?
Да.
Знаю, звучит странно и больше похоже на упражнение в бесполезности, но это не так.
В этой статье я расскажу, как можно использовать С++ в разработке сайта, и приведу несколько достойных причин этому.
Будет не только интересно, но также полезно и очень практично.
Полноценный веб-сайт на C++ и немного диванной аналитики
Невежливо отвечать вопросом на вопрос, но: а почему бы и нет? Просто потому, что можно.
Ладно, я пошутил. Чтобы пояснить причину, хотелось бы кратко описать историю моего знакомства с веб-разработкой. Но, дабы не нарушать последовательность повествования, я решил поместить ее в конце. В общем, с причинами мы еще разберемся.
Думаю, многим знакома такая разновидность веб-форумов, как имиджборды. Да-да, вы правильно поняли — именно на примере имиджборды я расскажу об опыте создания сайта на C++. Что же сподвигло меня заняться столь сомнительной пользы проектом? Левая пятка. В этом случае действительно никаких особых причин не было. Просто проснулся однажды утром и понял — хочу. Но это все лирика.
На Хабре хватает статей о веб-сайтах на C++: например, с использованием FastCGI или CppCMS. Но все это — HelloWorld'ы и туториалы. Я же вам расскажу о полноценном (пусть и не идеальном с точки зрения архитектуры и чистоты кода) проекте, постараюсь осветить различные тонкости.
Web-приложение на C/C++ с помощью FastCGI — это просто
В этой статье я бы хотел рассказать про протокол FastCGI и способы работы с ним. Не смотря на то, что сам протокол и его реализация появились ещё в 1996 году, подробных руководств по этому протоколу просто нет — разработчики так и не написали справки к собственной библиотеке. Зато года два назад, когда я только начал пользоваться этим протоколом, часто встречались фразы типа «я не совсем понимаю, как пользоваться этой библиотекой». Именно этот недостаток я и хочу исправить — написать подробное руководство по использованию данного протокола в многопоточной программе и рекомендации по выбору различных параметров, которым могли бы воспользоваться все желающие.
Functools – сила функций высшего порядка в Python
В стандартной библиотеке Python есть множество замечательных модулей, которые помогают делать ваш код чище и проще, и functools
определенно является одним из них. В этом модуле есть множество полезных функций высшего порядка, которые можно использовать для кэширования, перегрузки, создания декораторов и в целом для того, чтобы делать код более функциональным, поэтому давайте отправимся на экскурсию по этому модулю и посмотрим, что он может нам предложить.
Кэширование
Давайте начнем с самых простых, но довольно мощных функций модуля functools
. Начнем с функций кэширования (а также декораторов) - lru_cache
, cache
и cached_property
. Первая из них - lru_cache
предоставляет кэш последних результатов выполнения функций, или другими словами, запоминает результат их работы:
Информация
- В рейтинге
- Не участвует
- Зарегистрирован
- Активность