Обновить
3
Александр Пикеев@starwalkn

Пользователь

2
Подписчики
Отправить сообщение
  1. Перекрытие переменной: будьте аккуратны с использованием:= в if . Это может привести к созданию новой локальной переменной**err .**

    var err error
    // ...if data, err := json.Marshal(obj); err != nil { // This creates a new 'err'    
    return err // Returns the inner err, not the outer one
    }// The outer err is unchanged here

Интересно, кому придет в голову вернуть какую-то ошибку из тех что выше, если ошибка произошла при маршалинге?

Но понимание того, что моё понимание сеньора не совпадает с их пониманием, снимает мою тревогу

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

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

Комментарий ради комментария

Соглашусь. Пора внедрять ответы "автор комментария нейросеть". В последнее время кажется, что если человек не смог понять то что написано в статье - она автоматически становится сгенерированной.

Общение происходит с помощью API Кафки, которые реализуют всякие клиентские библиотеки для разных языков. Есть еще CLI - это всякие kafka-topics.sh, kafka-console-producer.sh - и так далее.

Когда miss > len(dirty)

Тут небольшое уточнение - когда miss >= len(dirty), если судить по исходникам:

func (m *Map) missLocked() {
	m.misses++
	if m.misses < len(m.dirty) {
		return
	}
	m.read.Store(&readOnly{m: m.dirty})
	m.dirty = nil
	m.misses = 0
}

И начиная, кажется, с 1.19 - read стал atomic.Pointer[readOnly] вместо atomic.Value.

После серии невзлетевших велосипедов еще остались деньги?

Все еще считаете что деньги не берутся из воздуха?

Взгляни на DDD архитектуру, также известную как "Чистый код"   

Так ведь "чистый код" это вообще не про архитектуру, а набор рекомендаций для поддержания читабельности кода.

func Contains(s []string, el string) bool

Вы либо используете Go 1.17 и ниже, либо не знаете про наличие такой фукнции в пакете slices.

_math "math/rand

Ну и такой подход смущает - для чего тут нужно подчеркивание или это флэшбеки из другиз языков?

userId := applicantAuthenticator.UserID.UUID

if userId == uuid.Nil {

Просится проверка на applicantAuthenticator.UserID.Valid

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

Та самая книга авторства матери Илона Маска, которая начинается с фразы «У моих родителей был самолет».

Спасибо за статью! Кажется, вы забыли u = &User{} здесь:

Смотрите на два идентичных по сути выражения:

type User struct {    
  Name string    
  Age  int
}

u := new(User)

Спасибо за статью! Но довольно странно, что упомянут kingping, а про urfave/cli ничего - хотя она одна из самых популярных cli-пакетов.

Попрошу Вас проекратить использование слова "кретинизм", так как оно уже запатентовано мной.

то уволить сотрудника из штата будет дороже

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

разделить ответствености генерации миграций и прикладного кода

И чем описание миграций на "сыром" SQL в отдельной директории будет лучше описания ямлика и добавления большого количества тегов в структуры?


В процессе разработки на Go нередко встаёт вопрос о создании удобного уровня абстракции

Гораздо реже чем где-либо еще. Обмазываться абстракциями ради абстракций может и принято, например, в Java, но точно не в Go.


это CLI-инструмент, которая не нуждается в прямой интеграции в go.mod

Но потребует дополнительной установки бинарника в контейнеры.


SetMaxResults(10)

А чем вам слово LIMIT не угодило? ИМХО, когда разработчик использует query builder, то он интуитивно ищет методы, схожие по названию с операциями в SQL.

И так же я не понял, в чем смысл объединения генератора миграций и query builder.

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

Пришлось повторить
Пришлось повторить

И получилось довольно интересно. Ваш вариант куда-то выложен или только для личного пользования?

Интересный у вас шрифт используется, не поделитесь названием?

По статьям автора видно, что это просто бездумно сгенерированный текст (статьи из серии "Каждый День") ради получения чего? Кармы? Даже жаль, что модерация такое пропускает.

1

Информация

В рейтинге
Не участвует
Откуда
Чебоксары, Чувашия, Россия
Дата рождения
Зарегистрирован
Активность

Специализация

Бэкенд разработчик
Ведущий
Golang
PostgreSQL
Redis
MongoDB
Apache Kafka
Docker
Kubernetes
Git