Джеймс Хоган — «Звёзды в наследство»
Вообще это пенталогия, на русском вышли три книги, я прочитал все три, особенно мне понравилась первая, но и остальные достойные. Я вам как-то писал, что авторы нередко умеют придумывать интересные миры, но сюжет остаётся довольно простым и посредственным. Так вот, тут — обратная ситуация. Очень интересный сюжет, подобного которому я особо не встречал. Я бы сказал, что «Звёзды в наследство» — это научный детектив. Человечество в недалёком будущем сталкивается с необъяснимым феноменом: на Луне находят труп в скафандре, которому пятьдесят тысяч лет. И учёные с помощью научных методов разгадывают эту загадку.
При этом сама вселенная мне показалась не слишком правдоподобной. У автора в будущем царит всеобщий мир, дружба и демилитаризация, а ля «Полдень», но при этом сохранилась капиталистическая экономика, а государства заказывают у корпораций за деньги разного вида работу и технологии. Если у Стругацких мир на Земле неизбежно связан с коммунизмом и оценкой работы в терминах блага для общества, то здесь капитализм, в основе которого лежит конкуренция. Это и само по себе не вяжется, и по непонятной причине не привело в книге к росту влияния корпораций, подобно более классическим антиутопиям. Отдельно современному читателю будет заметна глубоко второстепенная роль женщин в сюжете. Для американца семидесятых это нормально, но сейчас странно читать про общество будущего, где абсолютно все учёные, руководители и инженеры мужчины, а женщины — просто красивые секретарши.
Однако, сюжет интересный и затягивает, если вы фанат всякого наукообразного и непротиворечивого. Точнее так: выкладки, связанные с программированием и работой ИИ (из второй и третьей книги) показались мне наивными, как специалисту. Но выкладки по теории эволюции очень зашли: например, автор одной небольшой эволюционной деталью показал, как гипотетически могло бы образоваться общество, в котором нет войн. Возможно, профессиональный антрополог кривился бы, а я прям кайфанул.
История появления первой книги тоже очень любопытная: Хоган работал продавцом электроники и жаловался коллегам на концовку фильма «Космическая одиссея 2001» и рассказов Артура Кларка, которые легли в основу (я согласен, концовка очень плохая). На что коллеги сказали ему, дескать, возьми и попробуй сам написать роман и сделать концовку лучше. Он и написал, роман стал супер популярным, и позже даже Артур Кларк при встрече признал, что концовка у Хогана получилась лучше. Впрочем, он добавил, что его «Одиссея» заработала больше денег. Типичные американцы.
Рекомендовать трилогию однозначно могу. #fiction
https://code.tutsplus.com/tutorials/behavior-driven-development-in-python--net-26547
Behavior-Driven Development (which we will now refer to as "#BDD") follows on from the ideas and principles introduced in #Test-Driven Development. The key points of writing tests before code really apply to BDD as well. The idea is to not only test your code at the granular level with unit tests, but also test your application end to end, using acceptance tests. We will introduce this style of testing with the use of the Lettuce testing framework.
http://pythonhosted.org/behave/
behave is behaviour-driven development, Python style.
Behavior-driven development (or #BDD) is an agile software development technique that encourages collaboration between developers, #QA and non-technical or business participants in a software project. We have a page further describing this philosophy.
behave uses tests written in a natural language style, backed up by Python code.
Once you’ve installed behave, we recommend reading the
tutorial first and then
feature test setup,
behave API and
related software (things that you can combine with behave)
finally: how to use and configure the behave tool.
https://pypi.python.org/pypi/pytest-bdd
#BDD library for the py.test runner
#pytest-bdd implements a subset of Gherkin language for the automation of the project requirements testing and easier behavioral driven development.
Unlike many other BDD tools it doesn’t require a separate runner and benefits from the power and flexibility of the #pytest. It allows to unify your unit and functional #tests, easier continuous integration server configuration and maximal reuse of the tests setup.
Pytest fixtures written for the #unit_test s can be reused for the setup and actions mentioned in the feature steps with dependency injection, which allows a true BDD just-enough specification of the requirements without maintaining any context object containing the side effects of the Gherkin. imperative declarations.