1.1, Xasd (ok), 22:21, 31/05/2018 [ответить] [﹢﹢﹢] [ · · · ]
| –8 +/– |
в кои-то веке Яндекс решил написать что-то на C а не на наколеночном (как он обычно любит) C++ ..
что произошло вдруг ?? :-)
| |
|
|
3.33, Anonim (??), 12:30, 02/06/2018 [^] [^^] [^^^] [ответить]
| +/– |
Чем плох раст? Драйвер для PG, написанный на нём, вполне хорош. Или плохо всё, что на слуху?
| |
|
|
3.8, Аноним (-), 23:40, 31/05/2018 [^] [^^] [^^^] [ответить]
| +/– |
> Жаль что не на go.
В go медленный TLS. Наверное, из-за этого.
| |
|
2.7, XoRe (ok), 23:29, 31/05/2018 [^] [^^] [^^^] [ответить]
| +9 +/– |
> в кои-то веке Яндекс решил написать что-то на C а не на
> наколеночном (как он обычно любит) C++ ..
Это просто новый уровень предъяв.
| |
|
1.11, хрю (?), 07:12, 01/06/2018 [ответить] [﹢﹢﹢] [ · · · ]
| +2 +/– |
>позволяющем создавать приложения для обработки событий в асинхронном режиме с использованием традиционных методов процедурного программирования без применения callback-вызовов.
надо же, кто-то ещё умеет программировать...
| |
|
2.13, ыы (?), 07:40, 01/06/2018 [^] [^^] [^^^] [ответить]
| –4 +/– |
>>позволяющем создавать приложения для обработки событий в асинхронном режиме с использованием традиционных методов процедурного программирования без применения callback-вызовов.
> надо же, кто-то ещё умеет программировать...
а в чем проблема с callback-вызовами?
может предложение нужно иначе интерпретировать? например так:
ниосиляторы для обработки событий в асинхронном режиме использовали примитивный стиль программирования вместо... ?
| |
|
3.29, Ordu (ok), 16:15, 01/06/2018 [^] [^^] [^^^] [ответить]
| +2 +/– |
Коллбеки размазывают логику происходящего по многим функциям. Если язык позволяет создавать замыкания под коллбеки, то результат ещё может быть пристойным, а может и нет. Помимо этого лезут проблемы с асинхронностью этих самых коллбеков, и потенциальными проблемами синхронизации. Ещё очень интересно делать сложные атомарные операции, с откатом их назад, если что-то пошло не так. Логику происходящего по коду разобрать становится вообще никак -- использовать размотку стека для откатов не удастся, соответственно, ... ну ты понел
То есть да, ты прав. Это показатель ниасиляторства. Но это ни о чём не говорит, сегодня почти все ниасиляторы, пишут, видите ли, на языках высокого уровня, про машинные коды и думать забыли. Ведь были люди в наше время, не то что нынешнее племя...
| |
|
2.14, Аноним (-), 07:40, 01/06/2018 [^] [^^] [^^^] [ответить]
| +/– |
>>позволяющем создавать приложения для обработки событий в асинхронном режиме с использованием традиционных методов процедурного программирования без применения callback-вызовов.
> надо же, кто-то ещё умеет программировать...
а казалось бы наоборот. 1 thread per connection per task - это не самая лучшая парадигма.
Тред имеет привычку блокироваться на операциях - и когда можно было его отложить и заняться полезным делом, он будет продолжать жрать ресурсы системы.
| |
|
3.18, Andrey Mitrofanov (?), 09:48, 01/06/2018 [^] [^^] [^^^] [ответить]
| –1 +/– |
>>>позволяющем создавать приложения для обработки событий в асинхронном режиме с использованием традиционных методов процедурного программирования без применения callback-вызовов.
>> надо же, кто-то ещё умеет программировать...
> а казалось бы наоборот. 1 thread per connection per task - это
> не самая лучшая парадигма.
Они сделали не nginx, а apache (надеюсь, пока не "2.4"...) для Pg.
Они круты как Skype!
| |
|
4.24, 1 (??), 11:51, 01/06/2018 [^] [^^] [^^^] [ответить]
| +/– |
По умолчанию оно работает в два потока, один воркер и один DNS-резолвер.
| |
|
3.20, КО (?), 10:15, 01/06/2018 [^] [^^] [^^^] [ответить]
| +/– |
Для программки вся деятельность которой сводится к трем шагам - бери больше, кидай дальше, отдыхай пока летит. И никакой другой деятельностью не занимающейся. Самопальные подходы к пробуждению ото сна (читай "асинхронное программирование") вестимо выиграют у операционной системы. Ее то писали не такие любители смузи. :)
| |
|
2.17, Andrey Mitrofanov (?), 09:45, 01/06/2018 [^] [^^] [^^^] [ответить]
| +1 +/– |
>>позволяющем создавать приложения для обработки событий в асинхронном режиме с использованием традиционных методов процедурного программирования без применения callback-вызовов.
> надо же, кто-то ещё умеет программировать...
Ну-да, ну-да...
[CODE] * machinarium.
* cooperative multitasking engine.[/CODE]---Вызываю дух Гринспена! Фи Фил! Вы с нами??
| |
|
1.21, Аноним (21), 11:07, 01/06/2018 [ответить] [﹢﹢﹢] [ · · · ]
| –1 +/– |
100 лет не видел goto в коде Яндекс порадовал !!!
rc = machine_io_attach(obj);
if (rc == -1)
goto error;
return 0;
error:
if (io->fd != -1) {
| |
|
2.23, VladSh (?), 11:37, 01/06/2018 [^] [^^] [^^^] [ответить]
| –2 +/– |
rc = machine_io_attach(obj);
if (rc != -1) return 0;
if (io->fd != -1) {
| |
|
3.26, КО (?), 12:09, 01/06/2018 [^] [^^] [^^^] [ответить]
| +/– |
Код слегка не эквивалентен, если goto error встречается больше 1 раза. :)
| |
|
|
5.37, Аноним (21), 15:48, 04/06/2018 [^] [^^] [^^^] [ответить]
| +/– |
/*
* machinarium.
*
* cooperative multitasking engine.
*/
#include <machinarium.h>
#include <machinarium_private.h>
MACHINE_API int
machine_bind(machine_io_t *obj, struct sockaddr *sa)
{
mm_io_t *io = mm_cast(mm_io_t*, obj);
mm_errno_set(0);
if (io->connected) {
mm_errno_set(EINPROGRESS);
return -1;
}
int rc;
rc = mm_io_socket(io, sa);
if (rc == -1)
goto error;
rc = mm_socket_set_reuseaddr(io->fd, 1);
if (rc == -1) {
mm_errno_set(errno);
goto error;
}
if (sa->sa_family == AF_INET6) {
rc = mm_socket_set_ipv6only(io->fd, 1);
if (rc == -1) {
mm_errno_set(errno);
goto error;
}
}
rc = mm_socket_bind(io->fd, sa);
if (rc == -1) {
mm_errno_set(errno);
goto error;
}
rc = machine_io_attach(obj);
if (rc == -1)
goto error;
return 0;
error:
if (io->fd != -1) {
close(io->fd);
io->fd = -1;
}
io->handle.fd = -1;
return -1;
}
| |
|
|
|
2.27, Andrey Mitrofanov (?), 13:42, 01/06/2018 [^] [^^] [^^^] [ответить]
| +/– |
> 100 лет не видел goto в коде Яндекс порадовал !!!
Вы невнимательно следите за Инновациями Микрософт.
09.04.2018 18:43 Microsoft открыл код классического фейлового [,,,]
27.03.2018 11:41 Microsoft открыл код для адаптации [,,,]
15.05.2017 09:51 Первый выпуск компилятора Perl 5 в JVM от проекта Perlito
22.02.2017 21:14 Уязвимость в ядре Linux, позволяющая [,,,]
05.03.2014 11:34 Критическая уязвимость в GnuTLS, существенно влияющая на безопасность дистрибутивов Linux
| |
2.30, Ordu (ok), 16:24, 01/06/2018 [^] [^^] [^^^] [ответить]
| +1 +/– |
> 100 лет не видел goto в коде Яндекс порадовал !!!
Кто-то 100 лет не заглядывал в сорцы ядра? Если тебе интересен C, то я очень рекомендую заглядывать туда, хоть иногда. И хоть чего-нибудь пилить в свободное время, работающее в ядерном контексте. Хотя бы развлечения ради. Развивает.
| |
2.34, Аноним (-), 13:40, 02/06/2018 [^] [^^] [^^^] [ответить]
| +/– |
goto error - одно из немногих применений goto, которое не осуждается. Ради интереса посмотрите код ядра Linux, например.
| |
|
|
2.28, Stop (?), 15:11, 01/06/2018 [^] [^^] [^^^] [ответить]
| +1 +/– |
В отличии от многих контор, единого кодестайла у просто Яндекса нет. А если учесть, что куча сильных ребят уходит что бы уехать (тот же Гугл, например), то это и не удивительно: новая волна несет новый мусор в головах.
| |
|
1.36, тот самый парень (?), 09:38, 04/06/2018 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Под видом возможностей тут подсунута возможность использовать софт, который написан с использованием таких-то технологий. Это или hype driven development в чистом виде, или же просто несоответствие техписов/аналитиков/тестеров команды нагрузочного тестирования занимаемым. Следуя волне хайп-драйвен-чекин надо проверить всех причастных на синдром самозванца.
| |
|