Size: a a a

2020 October 05

IK

Ilya Kaznacheev in Go-go!
Это переводчик в рантайме?
источник

ВС

Владимир Столяров... in Go-go!
да, там можно сообщать идентификатор строки и параметры, а библиотека сгенерирует строку
источник

AK

Andrey Kolkov in Go-go!
Ilya Kaznacheev
Это переводчик в рантайме?
Переводчик нужен? Я думал, как тексты отдавать...)
источник

VS

Vladimir Smirnov in Go-go!
Andrey Kolkov
Имеется ввиду защита памяти, вирус не может получит доступ к памяти другого процесса чисто физически.
А тут можно вспомнить вчерашний разговор…
источник

VS

Vladimir Smirnov in Go-go!
о теории построения ОС
источник

IK

Ilya Kaznacheev in Go-go!
Andrey Kolkov
Переводчик нужен? Я думал, как тексты отдавать...)
Нет, тексты отдавать
источник

IK

Ilya Kaznacheev in Go-go!
А я так понимаю, что это вроде переводчика... Или просто окончания подставляет?
источник

AK

Andrey Kolkov in Go-go!
Vladimir Smirnov
о теории построения ОС
https://github.com/mit-pdos/biscuit кстати, об OS на Golang. Мне очень понравилось)
источник

ВС

Владимир Столяров... in Go-go!
о, кто-то таки сделал) я помню на хабре начинали писать ядро, но там совсем чуть-чуть было
источник

AK

Andrey Kolkov in Go-go!
Ilya Kaznacheev
Нет, тексты отдавать
В чем задача то состоит? Можно поподробнее плиз.
источник

AK

Andrey Kolkov in Go-go!
Владимир Столяров
о, кто-то таки сделал) я помню на хабре начинали писать ядро, но там совсем чуть-чуть было
Тут полноценная POSIX. Писал какой-то аспирант.
источник

AK

Andrey Kolkov in Go-go!
Переслано от Andrey Kolkov
Ядро было написано аспирантом MIT Cody Cutler в рамках исследования «The benefits and costs of writing a POSIX kernel in a high-level language» и доступно на GitHub странице MIT PDOS (Parallel and Distributed Operating Systems group at MIT CSAIL) под лицензией MIT.

Biscuit неплохо документирован и содержит 27 тысяч строк на Go, из которых всего 90 функций содержат небезопасные вызовы («unsafe»), необходимые для задач вроде доступа к регистрам процессора. Есть также небольшой загрузчик, написанный на ассемблере.

Особенности:

Многоядерность.
Управляемые ядром потоки.
Журналируемая файловая система.
Виртуальная память с поддержкой copy-on-write.
Реализация TCP/IP стека.
Поддержка AHCI SATA дисков.
Поддержка Intel 10Gb NIC.
Скомпилировать и опробовать ядро довольно просто:

git clone https://github.com/mit-pdos/biscuit.git
cd biscuit/src
./make.bash && make -C ../biscuit qemu CPUS=2
При этом сборка с нуля занимает всего 38 секунд, из которых 33 секунды приходится на немного модифицированный рантайм Go, и всего 5 секунд непосредственно на сборку ядра.
Интересны результаты исследования. После проведения тестов производительности на таких приложениях, как NGINX, Redis, и CMailbench — обнаружилось, что сравнение производительности эквивалентных путей кода на Си и на Go показало всего 15% разницы. Доля процессорного времени, потребляемого сборкой мусора и проверками безопасности, по результатам авторов статьи — составляет менее 15%.
источник

IK

Ilya Kaznacheev in Go-go!
Andrey Kolkov
В чем задача то состоит? Можно поподробнее плиз.
Ну вот у меня есть бэк, в который фронт отправляет запросы
Есть ошибка, и я хочу, чтобы на фронте показывалось не "database error: entity with ID 12345 not found in the table abcd", а что-то вроде "Данные не найдены"
источник

IK

Ilya Kaznacheev in Go-go!
Но локализованные тексты не хардкодить, а где-то хранить вне кода приложения
источник

AK

Andrey Kolkov in Go-go!
Ilya Kaznacheev
Ну вот у меня есть бэк, в который фронт отправляет запросы
Есть ошибка, и я хочу, чтобы на фронте показывалось не "database error: entity with ID 12345 not found in the table abcd", а что-то вроде "Данные не найдены"
Посмотри, как у qianghue сделано. Ссылку я выше давал. Мне кажется, это как раз то самое.
источник

AS

Andrei 🦉 Sergeev in Go-go!
Ilya Kaznacheev
Ну вот у меня есть бэк, в который фронт отправляет запросы
Есть ошибка, и я хочу, чтобы на фронте показывалось не "database error: entity with ID 12345 not found in the table abcd", а что-то вроде "Данные не найдены"
отдавать фронту код ошибки, на фронте уже хранить таблицу код ошибки, язык пользователя - текст
источник

AK

Andrey Kolkov in Go-go!
Ilya Kaznacheev
Но локализованные тексты не хардкодить, а где-то хранить вне кода приложения
Там в обсуждениях на гитхабе и этот вопрос оговаривался...
источник

IK

Ilya Kaznacheev in Go-go!
Andrei 🦉 Sergeev
отдавать фронту код ошибки, на фронте уже хранить таблицу код ошибки, язык пользователя - текст
Как бороться с рассинхроном ошибок на фронте и на бэке по коду?
источник

IK

Ilya Kaznacheev in Go-go!
Я бы скорее хотел в репе сервиса на бэке хранить, тогда всегда будет up-to-date
источник

AS

Andrei 🦉 Sergeev in Go-go!
Ilya Kaznacheev
Как бороться с рассинхроном ошибок на фронте и на бэке по коду?
а вы уверены, что вам вообще нужно будет с этим бороться? это очень гипотетическая ситуация, которую пользователь встретит только поймав оишбку, причем именно ту, для которой код неправильный)
источник