Pull to refresh

Comments 21

вы не везде нейрослоповые комментарии убрали/удалили в репозитории

часть кода (большая часть cmd) выглядит как будто его даже не вычитывали после нейронки

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

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

Нейронка использовалась только для генерации GoDoc и английского ридми. Еще как код ревью .

Клод .

Код писался без ИИ .

Могу за каждую строчку ответить

возможно комментарии и ввели в заблуждение

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

Вот например https://github.com/OlegPowerC/powersnmpv3/blob/c4828e37b4609ab587e17ed79942741f34aaa673/cmd/c98800aps/c9800aps.go#L56

Такое нейонка не пишет на просьбу "прокомментируй код", такое нейронка пишет когда сама создает код с подробными комментариями.

Не верите? а это я писал :-) решил прям расписать.

И статью пробовал показать ИИ - ну GPT сказал надо все исправить и переделать.

Я разумеется не стал. Мне кажется ценность "человеческого" материала важнее чем опечатки. Ну и любой ИИ скажет - слабая подача, нет сравнения и прочее.

Но я специально не намерен писать что эта библиотека превосходит другие, я попытался скорее описать чем она интересна .

PS:

Кстати snmpgo не заслуженно непопулярна - тоже рекомендую, писал какой то японец.

Кстати, не пропущена ли заглавная буква в Prtgbody?

И почему функция “выход из программы по ошибке”, то есть, главное действие “выход”, судя по коду и описанию, называется ErrorInProgram?

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

Ну эта функция нужна чтоб PRTG при отображении алагма, писал что пошло не так. А название.... как то давно делал не предал значения.

Суть сенсора в том, что XML (но можно и JSON для более менее свежих версий) может содержать данные каналов, а может содержать секцию:

<error>1</error> и <text> тут сообщение об ошибке </text> и все.

И вот любые ошибки не на уровне каналов я вывожу сюда.

А буква... А где именно? в исходнике примера для С9800? вроде не должна. Давайте проверю

Вы зря написали так много слов. Главная суть функции - она глобально завершается работу программы. При этом ещё и пишет причину. Значит это или ExitOnError, или ProcessErrorAndExit, но никак не совершенно аморфное ErrorInProgram.

Prtgbody - > PrtgBody

А вы про это, ну это никак не влияет на работу, а код вот он - опен сурс, кто желает может как угодно переделать.

Прочитал только водную часть, так как не сетевик. Два комментария.

  1. Спасибо, что есть объяснение того, почему и зачем вообще была создана библиотека. Но.

  2. Чисто по логике, это же одна из стандартнейших задач любой большой фирмы. Неужели нет хотя бы десятка разных open source и десятка коммерческих библиотек или уже готовых продуктов по теме? Прямо странно.

А так, молодец.

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

На мой взгляд у gosnmp слишком "другая" архитектура.

Тогда уж snmpgo - куда более правильная.

И опять же, создание своего велосипеда дает такой опыт который по другому получить крайне сложно. Академический интерес не всегда плохо.

Тогда уж snmpgo - куда более правильная.

Но 132 звезды и, главное, последний коммит 9 лет назад :( Обычно выбираешь что-то хотя бы относительно популярное и точно активно поддерживаемое. А тут явно заброшенный проект, разве что форкнуть и поддерживать дальше самому - но тогда уж и правда проще своё с нуля, понимаю.

Но тем не менее, оно реально хорошо сделано. Если пробежаться по коду то там все достойно. Но честно скажу - ее я особо не тестировал глубоко. Можно будет сделать сравнительные тесты.

мне тоже интересно, хотя бы потому, что в свое время rmon написал с нуля включая snmp и ip stack, примерно лет 30+ назад, на С конечно, proprietary mibs тоже достаточно для сетевого оборудования когда это было нужно, в далеком прошлом, собственно rmon2 примерно за пол года :)

Ну что тут сказать - только выскажу свое почтение.

Я тоже лет 15 назад писал TCP/IP стек под Renesas RX да потом забросил.

Сейчас иногда вспоминаю и пытаюсь доделать.

Делал его чуть продвинутее чем uIP и чуть компактнее чем lwIP

Сейчас конечно скажут зачем когда есть CyclonTCP и lwIP в целом неплох.....

спасибо, но на самом деле это немного, типа 1-2 строки в резюме, последнее место работы Ciena

При чем тут архитектура и академический? Этого в статье как раз и нет, поторопился я с похвалой, выходит)

В статье написано, что библиотека была сделана с чисто прагматической целью.

Так я все написал, причины создания были:

  1. WebNMS имела проблемы а на нее уже было много всего завязано.

  2. gosnmp не понравился по разным пичинам

  3. Неплохое знание ASN.1 и прочих вещей позволило в течение нескольких месяцев создать свою библиотеку

  4. Своя понятнее

  5. gosnmp не нравится парсер ASN.1, не нравится приемник трапов, не нравится работа со строками, не нравится работа с репортами, не нравится работа с буферами, не нравится работа с ошибками и еще много много чего

Есть у меня тесты и того и того с Элтексом которые gosnmp проваливает

Есть тесты с другими девайсами.

Да цель - свой продукт и он есть и не один.

Вот тут я немного рассказал об этом

https://youtu.be/bI66ejMpPnU?list=PLh8giz78WRMzJJIE6DQ2mQQN-b72FtZv8

Возможно кто-то из читателей там был даже (точнее знаю, точно был :-) ).

Добрый вечер.

Большинство использует для высокопроизводительных систем Net-SNMP, SNMP++

Java 'вскую JNMP4J

Python - тут есть из чего выбрать: нативнцй питон, обертка над net-snmp

На Go есть gosnmp и snmpgo

Теперь про коммерческие - есть несколь джаваских и C#

Я свою делал потому что столкнулся с проблемами с некоторыми коммутаторами, но прежде всего был академический интерес.

А - забыл, есть еще что-то на расте, и вот это интересно

Go чем хорош? конечно же множим горутины :-) ну и без зависимостей

Надо бы добавить это “прежде всего” в причины, в начало статьи)

Нейронка использовалась только для генерации GoDoc и английского ридми. Еще как код ревью .

Клод .

Код писался без ИИ .

Могу за каждую строчку ответить

Sign up to leave a comment.

Articles