LINUX.ORG.RU

Когда не помещается все в голову

 , , , ,


1

4

Это идет работа над Ergo Framework 3.0. Из вкусняшек, которые в ней появятся:

  • улучшена производительность обмена сообщениями внутри ноды до 100млн сообщ/сек (пруф https://twitter.com/halturin/status/1634165290564034562);
  • будет переработан сетевой стек. (сейчас он дает около 1 млн сообщ/сек между нодами по сети. ожидается улучшение до 15-20 млн);
  • работа с процессами будет проще и понятней;
  • вся эрланговская специфика будет вынесена в отдельный пакет (собственно она и была главным шоу-стопером в перформансе).

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

Из инструментов — NixOS, NeoVim, Tmux, ViFM, Zsh.

На остальных экранах — всякие браузеры со спотифаями.

>>> Просмотр (3840x1600, 889 Kb)

★★★

Проверено: hobbit ()
Последнее исправление: hobbit (всего исправлений: 1)
Ответ на: комментарий от GPFault

не знаком с конкретным языком на котором это написано

поэтому вам сложно понять смысл разногласий :). у @beastie подгорает в силу обыновенной некомпетентности в вопросе при лютой уверенности в обратном, судя по его безаппеляционному слогу

функция DoX(..) и DoXWithMoreArgs(..), причём первая может быть реализована через вторую - кажется странной.

это классический синтаксический сахар. ничего странного в этом нет.

Чтобы не разводить словоблудие я развернуто объясню, что такое интерфейсы в го и почему @beastie стоит немного шире смотреть на вещи, не выпячивая свое чсв

Для простоты усвоения материала разобью на три части.

  1. interface{} (от же с недавних пор any) в го позволяет работать с объектом неопределенного типа. если мы заведомо знаем его тип, то можно его кастануть к конкретному типу
var v any

v = "hello"

str := v.(string)

тут все просто и понятно. идем дальше

  1. интерфейс как набор методов для работы с объектом.
type A interface{
  Method1()
  Method2()
}

при этом работать по этому интерфесу могут объекты разных типов, главное, чтобы у них были реализованны эти два метода. это очень удобный механизм в го для приведения к общему знаменателю разных об’ектов. в тестировании часто эксплуатируют для мокапинга. как я понял, у @beastie на этом понимание интерфейсов заканчивается. поэтому придется немного напрячься и расширить сознание для 3го пункта.

  1. интерфейс объекта - это некий контракт общения с ним. это как API у веб-сервиса. есть методы, которые сервис предоставляет. у такого сервиса, за этим апи может находиться множество других сервисов, которые реально выполняют работу, обслуживая запрос к этому апи. в го - ровно такая же картина. за интерфейсом может находиться не просто объект, а объект с встроенными другими объектами или встроенными интерфейсами. надеюсь это понятно.

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

кубышечка еще не закипела? :) на самом деле это не сложно, просто нужно немного под другим углом смотреть на возможности языка. некоторые просто дальше своих одноклеточных хттп-сервисов не заглядывают.

ergo ★★★
() автор топика
Ответ на: комментарий от ergo

это классический синтаксический сахар. ничего странного в этом нет.

странного нет, я имел ввиду немного другое: может иметь смысл разделять объявление синтаксического сахара и покрывающих функционал методов. Как именно - не скажу, т.к. не знаю специфики языка. Но общая идея такая:

  • интерфейс включает минимально логически необходимый набор методов, они могут быть не самые удобные, но содержать все необхоимые гибкост (например принимать опциональные аргументы).

  • рядом с интерфейсом объявляется дополнительный код, который этот логичный интерфейс делает более удобным в использовании, добавляя к нему синтаксический сахар. Как именно, зависит от языка. В С# это extension-методы, в С++ это свободные функции в том же namespace.

Но суть в том, что интерфейс описывает логическую модель макимально понятным, пусть и переусложнённым образом, а синтаксический сахар добавлеятся отдельно от объявления интерефейса. Это у меньшает перегруженность интерфейсаи делает его более понимаемым.

GPFault ★★
()
Последнее исправление: GPFault (всего исправлений: 1)
Ответ на: комментарий от ergo

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

Какие там детали в каких недоязычках - это никому не интересно.

faq2
()
Ответ на: комментарий от GPFault

Мне сложно рассуждать про шарп или плюсы - не владею предметом. В го наличие методов Do() и DoWithOpts(…) - обычная практика, в том смысле что Do() это обертка к DoWithOps с дефолтами. Но изначально была «претензия» про «интерфейс на два экрана» это неправильно и вот это вот все.

ergo ★★★
() автор топика
Ответ на: комментарий от ergo

Но изначально была «претензия» про «интерфейс на два экрана» это неправильно и вот это вот все

Это претензия как раз и объясняет как происходит то, что описано в заголовке этой темы.

her_s_gory
()
Ответ на: комментарий от ergo

Мне конечно льстит, как часто ты меня упомянул. Но всё же жопа горит скорее у тебя. Наверное от твоей «некомпетентности» или как ты тут привык общаться?

beastie ★★★★★
()
Ответ на: комментарий от ergo

Извинямся, снимам шляпу. Как я мог не заметить такого «профессионального» лыцаря в белом плаще, как ты. /s

явно переплачивают.

Может быть. Но я не жалуюсь.

beastie ★★★★★
()
Ответ на: комментарий от beastie

ты хоть один раз сможешь написать внятно и аргументированно, профессионал? :) а то это невнятно мычание про «интефрейс на два экрана» на профессионализм не тянет.

ergo ★★★
() автор топика
Последнее исправление: ergo (всего исправлений: 1)
Ответ на: комментарий от beastie

Но всё же жопа горит скорее у тебя.

у меня подгорает на подобное невежество, когда персонажи вроде тебя, с раздутым ЧСВ, сеют оное. а ведь здесь джуны есть, они могут прочитать твою нелепость и за правду принять. поэтому приходится развернуто объяснять, в чем именно и почему ты некомпетентен вопросе, чтобы позволять себе развешивать ярлыки «верное» или «неверное».

ergo ★★★
() автор топика
Последнее исправление: ergo (всего исправлений: 2)
Ответ на: комментарий от beastie

Мне конечно льстит, как часто ты меня упомянул.

это называется «носом тыкать», чтобы внимательно читал, что написано. 😄

ergo ★★★
() автор топика
Последнее исправление: ergo (всего исправлений: 1)
Ответ на: комментарий от ergo

Мне неприятно с тобой общаться, Тарас. Метать бисер перед таким профессиональным свином смысла тоже не вижу. У меня есть дела и поинтереснее. Удачи.

beastie ★★★★★
()
Последнее исправление: beastie (всего исправлений: 1)
Ответ на: комментарий от beastie

твиттер свой почисти, а то негоже «интеллигенту» такое писать про людей, с которыми в том числе здесь общаешься. или самозабанься.

у нас в народе это называется «либо крестик сними, либо трусы надень».

ergo ★★★
() автор топика
Ответ на: комментарий от ergo

Норм твиттер. Оскорбиться на такое может лишь подлец и негодяй. Из твоего коммента, кстати, так и брызжет классовая зависть.

Vidrele ★★★
()
Ответ на: комментарий от Vidrele

Оскорбиться на такое может лишь подлец и негодяй

Л - логика )))

брызжет классовая зависть

что, простите? зависть? чему я завидую?

ergo ★★★
() автор топика
Последнее исправление: ergo (всего исправлений: 1)
Ответ на: комментарий от Vidrele

Я уже сказал больше, чем ты того заслуживаешь.

это как «я бежала за вами три дня, чтобы сказать как вы мне безразличны» 😂

ты как beastie, на просьбу развернуть мысль в подробностях, стекаешься в этакую нотку пафоса с претензией на умную мысль. что один

You’re doing it wrong. Это не interface. Это … я не знаю зачем такое может понадобиться

вот так, безапеляционно, самоуверенно… вместо нормального ответа на вполне конкретный вопрос, растёкся в обтекаемых фразах и обиделся. чуешь мысль ? - " не знаю зачем такое может понадобиться", поэтому «You’re doing it wrong». ни разу не ЧСВ.

что другой

брызжет классовая зависть.

на просьбу развернуть мысль и поделиться тайной, чему это я так сильно завидую слился в пафосной риторике.

ребят, с вами истину не родить.

ergo ★★★
() автор топика
Последнее исправление: ergo (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.