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
Прочитал только водную часть, так как не сетевик. Два комментария.
Спасибо, что есть объяснение того, почему и зачем вообще была создана библиотека. Но.
Чисто по логике, это же одна из стандартнейших задач любой большой фирмы. Неужели нет хотя бы десятка разных open source и десятка коммерческих библиотек или уже готовых продуктов по теме? Прямо странно.
А так, молодец.
На мой взгляд у gosnmp слишком "другая" архитектура.
Тогда уж snmpgo - куда более правильная.
И опять же, создание своего велосипеда дает такой опыт который по другому получить крайне сложно. Академический интерес не всегда плохо.
Тогда уж snmpgo - куда более правильная.
Но 132 звезды и, главное, последний коммит 9 лет назад :( Обычно выбираешь что-то хотя бы относительно популярное и точно активно поддерживаемое. А тут явно заброшенный проект, разве что форкнуть и поддерживать дальше самому - но тогда уж и правда проще своё с нуля, понимаю.
Но тем не менее, оно реально хорошо сделано. Если пробежаться по коду то там все достойно. Но честно скажу - ее я особо не тестировал глубоко. Можно будет сделать сравнительные тесты.
мне тоже интересно, хотя бы потому, что в свое время rmon написал с нуля включая snmp и ip stack, примерно лет 30+ назад, на С конечно, proprietary mibs тоже достаточно для сетевого оборудования когда это было нужно, в далеком прошлом, собственно rmon2 примерно за пол года :)
Ну что тут сказать - только выскажу свое почтение.
Я тоже лет 15 назад писал TCP/IP стек под Renesas RX да потом забросил.
Сейчас иногда вспоминаю и пытаюсь доделать.
Делал его чуть продвинутее чем uIP и чуть компактнее чем lwIP
Сейчас конечно скажут зачем когда есть CyclonTCP и lwIP в целом неплох.....
При чем тут архитектура и академический? Этого в статье как раз и нет, поторопился я с похвалой, выходит)
В статье написано, что библиотека была сделана с чисто прагматической целью.
Так я все написал, причины создания были:
WebNMS имела проблемы а на нее уже было много всего завязано.
gosnmp не понравился по разным пичинам
Неплохое знание ASN.1 и прочих вещей позволило в течение нескольких месяцев создать свою библиотеку
Своя понятнее
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 и английского ридми. Еще как код ревью .
Клод .
Код писался без ИИ .
Могу за каждую строчку ответить
Библиотека SNMP на Go, зачем я создал еще одну и чем она может быть интересна