Если не было задания от работадателя - то всё написанное ПО принадлежит автору (программисту) :-) например nginx Работадателю принадлежит то что он просил (давал задания)
Написано очень правильно и гениально ! Я сделал почти то же самое скриптами, только не смог уговорить девопсов запускать мой мини скриптик при сборке... теперь скрипт запускаю у себя, он создаёт файл version.txt, всё хорошо только номер версии всегда на 1 меньше настоящего :-(
Как должно быть: 1. Создаём структуру 2. Заполняем все поля в структуру автоматически из окружения/.env/.yaml одной строчкой кода (обязательно одной строчкой) без заполнения никаких настроек, если совпадает имя поля структуры и имя переменной окружения - то заполняем. Весь код будет состоять из 1 строчки кода, будет универсально для любых типов и названий полей. (я уже так сделал почти, ещё доделаю)
Все предсталенные ненужные, а вот более-менее нужный: Автоответчик для мессенджера WhatsApp и Telegram, с искуственным интеллектом ChatGPT https://github.com/ManyakRus/whatsapp_chatgpt
Хочу использовать поле xmin как номер версии записи в коде go, чтобы случайно не записать в БД устаревшую версию записи из памяти. Сейчас это бесполезно т.к. 32битный ИД может стать меньше чем был. Хочу 64битный xmin :-)
Тут слишком много букв, поэтому ничего не понятно (и много неправильно)
Как должно быть:
а) для библиотек:
ошибки не выводить в лог, т.к. у всех логгеры разные
делать "Текстовый wrapping %w" ошибок
все ошибки возвращать
не делать панику (или fatal)
б) для остальных приложений:
все ошибки выводить в лог сразу же в месте появления ошибки, даже если ошибку возвращаем наверх.
при возвращении ошибки наверх - надо ошибку вывести в лог ещё раз, второй раз с новым "Текстовый wrapping %w" ошибок
делать "Текстовый wrapping %w" ошибок
ошибки старться обработать на месте, возвращать как можно меньше ошибок
при старте приложения при ошибке сразу делать панику, после старта паники стараться не делать.
Если не было задания от работадателя - то всё написанное ПО принадлежит автору (программисту) :-)
например nginx
Работадателю принадлежит то что он просил (давал задания)
надо делать отдельный пакет для этого, а не в main,
например вот такой:
https://github.com/ManyakRus/starter/blob/main/stopapp/stopapp.go
Написано очень правильно и гениально !
Я сделал почти то же самое скриптами, только не смог уговорить девопсов запускать мой мини скриптик при сборке... теперь скрипт запускаю у себя, он создаёт файл version.txt, всё хорошо только номер версии всегда на 1 меньше настоящего :-(
написано всё правильно, но похоже что текст придумал ИИ :-(
Похоже что всё придумал ИИ, т.к. автор использует все языки подряд Scala, Java, Rust, Go - обычный человек так не будет делать.
Слишком сложно всё тут.
Как должно быть:
1. Создаём структуру
2. Заполняем все поля в структуру автоматически из окружения/.env/.yaml
одной строчкой кода (обязательно одной строчкой)
без заполнения никаких настроек,
если совпадает имя поля структуры и имя переменной окружения - то заполняем.
Весь код будет состоять из 1 строчки кода,
будет универсально для любых типов и названий полей.
(я уже так сделал почти, ещё доделаю)
Хорошая статья.
У вас получилось "собрать в одном месте ключевые понятия и принципы"
Спасибо авторам.
far2l - самая полезная программа в линуксе :-) и виндовсе тоже
Правильно ! Я заметил уши ИИ только через 20 строк текста :-( остальное не читал
у меня в каждой горутине отлавливается паника и отправляется лог в Телеграм :-) а потом только паника
1) main.go должен быть не в папке cmd
а в папке cmd/application_name
2) "internals" должен называться "internal",
IDE следит чтобы pkg не лазил в internal,
название "internals" - это способ обмануть IDE и стандарты.
3) у меня нет объекта "Repository",
у моделей есть методы Read(), Save() и др.,
программмисты даже не знают (не видят) что где-то есть репозиторий :-)
Я тоже не верил в аккупункуру, но оно лично меня вылечило от неизлечимой болезни Тиннитус. Рекомендую всем.
Пользуюсь DBeaver, самый лучший :-)
Правильная статья :-)
grok.com
This service is not available in your region.
Не работает для русских.
https://github.com/ManyakRus/crud_generator
у меня сделано наоборот:
делаешь таблицы в БД, а потом код на go сам сгенерируется :-)
Все предсталенные ненужные, а вот более-менее нужный:
Автоответчик для мессенджера WhatsApp и Telegram, с искуственным интеллектом ChatGPT
https://github.com/ManyakRus/whatsapp_chatgpt
Хочу использовать поле xmin как номер версии записи в коде go, чтобы случайно не записать в БД устаревшую версию записи из памяти.
Сейчас это бесполезно т.к. 32битный ИД может стать меньше чем был.
Хочу 64битный xmin :-)
Я думал что металлокаркас вреден для здоровья и поэтому запрещён в жилом строительстве
(может и нет)
Для даты лучше использовать NULL, с датой 01.01.1970 вы потом не отличите пустое значение и не пустое