
Отзыв о книге “Интроверты – как использовать особенности своего характера” или почему не стоит смотреть порно на рабочем месте
8 min

Java-разработчик
В начале прошлого года мне пришла в голову идея написать собственный язык интерфейсов (IDL), который был бы похож на Protobuf или Thrift, но предназначался бы для веба. Я надеялся закончить его где-нибудь месяца за три. До первой стабильной версии прошло чуть больше года.
github.user(1).repos().all()
.message Human {
id int64;
name string;
birthday datetime;
sex Sex;
continent ContinentName;
}
{
"id": 1,
"name": "Ivan Korobkov",
"birthday": "1987-08-07T00:00Z",
"sex": "male",
"continent": "europe"
}
Human human = new Human()
.setId(1)
.setName("John")
.setSex(Sex.MALE)
.setContinent(ContinentName.ASIA)
String json = human.toJson();
Human another = Human.fromJson(json);
human = Human(id=1, name="John")
human.birthday = datetime.datetime(1900, 1, 2)
s = human.to_json()
another = Human.from_json(s)
Human *human = [[Human alloc]init];
human.id = 1;
human.name = @"John";
human.sex = Sex_MALE;
human.continent = ContinentName_EUROPE;
NSError *error = nil;
NSData *data = [human toJsonError:&error];
Human *another = [Human messageWithData:data error:&error];
? extends T
и ? super T
можно значительно повысить удобство вашего интерфейса.