Посты | OTUS
Новогодняя распродажа!
Все курсы со скидкой 30%. Торопитесь!
Подробнее

Курсы

Курсы в разработке Подготовительные курсы
+7 499 110-61-65
Scrum и командообразование: принцип «чёрного ящика»

ScrumDeep_14.05_SITE.png

Одна из главных задач Scrum-мастера – помочь команде разработки стать настоящей командой. Часто «командой» называют просто рабочую группу: людей, собранных вместе для работы над каким-то продуктом или проектом. Команда – тоже группа людей, работающих вместе. Но у неё есть ряд отличий от рабочей группы, и два самых главных из них – синхронизация целей и командная ответственность.

Функции потерь Дискриминатора: стабилизация обучения

ML_Deep_14.06_SITE.png

В первом посте я в общих чертах рассказал о том, что такое генеративные состязательные сети. Идея заставить соревноваться две нейронные сети выглядит очень просто и красиво, однако при реализации для конкретных задач обязательно возникают трудности. В этот раз я расскажу о том, как немножко изменить функции потерь так, чтобы стабилизировать процесс обучения.

Аннотация @Autowired: что к чему?

Spring_Deep_13.06_Site_NEW.png

Решил рассказать немного про аннотацию @Autowired. Принцип её работы очень прост.

Допустим у нас есть bean-зависимости:

@Configuration
public class Config {
    // тип бина - ServiceDependency, имя - dependency
    public ServiceDependency dependency() {
        return new ServiceDependencyImpl()
    }
}

Spring Context

SpringDeep_10.06_Site.png

Под словом «Spring» обычно подразумевают просто IoC-контейнер, помогающий структурировать Java-приложения. В действительности под словом «Spring» скрывается целый мир.

IoC-контейнер, это замечательный способ собрать приложение «по кусочкам» из разных компонентов. Spring же предоставляет удобные способы как написания данных «кусочков», так и объединения их в единое приложение. Например, у нас есть два класса.

Theories в JUnit

JavaDeep_07.06_Site.png

Часто случается, что в unit-тестировании выполняется серия тестов, которые отличаются только входными значениями и ожидаемыми результатами. Обычный @Test метод позволяет проверить поведение в одном конкретном сценарии. Что делать, если хочется протестировать некоторую функциональность на некотором множестве входных данных?

Типичная ошибка Agile-трансформации

ScrumDeep_06.06_Site.png

Agile – отличный фундамент для построения современных бизнес-процессов, но... Конечно же, есть большое НО! Agile требует глубокого понимания своих ценностей и принципов, неукоснительного следования им и постоянного, непрерывного совершенствования своих процессов и инструментов.

На практике же часто встречаются компании, где всё сделано «наоборот»: вместо понимания принципов и следования ценностям где-то «подсмотрены» конкретные решения и практики, в абсолют возведено следование именно им, а о постоянном совершенствовании никто не задумывается.

Spring Integration, EIP и Messaging

SpringDeep_06.06_Site.png

Spring Integration – очень специфичный проект Spring. По своей сути он содержит в себе реализацию так называемых Enterprise Integration Patterns (EIP) и различные способы их настройки, включая свой собственный Java-DSL.

Чтобы разобраться, что такое Spring Integration и EIP, необходимо понять, какую проблему они решают.

MRO: линеаризация в Python

Python_Deep_06.06_Site.png

Допустим, есть следующая иерархия классов:

class X(object): pass
class Y(object): pass
class A(X, Y): pass
class B(Y, X): pass

И в ней, вообще говоря, ничего криминального нет. Но если вы захотите отнаследоваться от A и B, то вас ждёт разочарование.

Warning: (to_be || !to_be) if always true!

C++Deep_05.06_Site.png

Чем так хорош язык C++? Конечно, возможностью перегрузки операторов для своего класса! Ну ладно, разумеется, не только этим, но это классная возможность, разве нет? Давайте поговорим о перегрузке логических операторов, стоит ли это делать и чем это грозит (кроме непонятного кода в результате).

Первая встреча: цели и задачи рекрутера

IT_HR_Deep_04.06_Site.png

Хочу поделиться с вами мыслями о том, почему так важна первая встреча в рамках собеседования при подборе персонала. Несомненно очень важно для начала найти и заинтересовать нужного вам кандидата. Сейчас не будем разбирать все тонкости именно поиска и завлечения соискателей. Но вот после того, как вы все же смогли это сделать и согласовали с ним встречу, настаёт важный момент самого собеседования.