Комментарии 10
Пожалуйста аргументируйте советы и критику.
«От себя добавлю, php и Go немного похожи, » — чтооооо?
Посмотрел Ваш код, пройдите gotour сначала ваш код ужасен.
Начиная с того, что при перезапуске сервиса вы удаляете таблицы и снова их создаете.
Посмотрел Ваш код, пройдите gotour сначала ваш код ужасен.
Начиная с того, что при перезапуске сервиса вы удаляете таблицы и снова их создаете.
Аргументируйте, что именно не так.
Начиная с того, что при перезапуске сервиса вы удаляете таблицы и снова их создаете.— где это в моем коде? Сервис инициализируется один раз — при установке сервера. Далее при старте это простые обращения к БД и отображение результатов.
PidFile := postcode.Init(Versio) -> err = InitMysql() -> _, err = Db.Exec("DROP TABLE IF EXISTS citys ")
что значит при установке? А если служба упала и надо рестартануть?
P.S.
Зачем вы так делаете не пойму. Что мешает писать нормально?
str := "(SELECT NAME FROM indexes WHERE TOP_ID in"
for i:= level-2; i>tLevel; i-- {
str = fmt.Sprintf("%s (SELECT ID FROM %s WHERE TOP_ID in ", str, table[i])
}
str = fmt.Sprintf("%s (%s)", str, id)
for i:= level-1; i>tLevel; i-- {
str = fmt.Sprintf("%s )", str)
}
fmt.Printf("%s\n",str)
Могу написать еще, но не вижу смысла. А так куча антипаттернов.
ещЁ раз
err = InitMysql() — этого вызова не происходит при рестарте службы
и приведенный кусок кода формирует один sql, да не очень красиво, чистый sql
PidFile := postcode.Init(Versio) -> err = InitMysql() -> _, err = Db.Exec(«DROP TABLE IF EXISTS citys „)
err = InitMysql() — этого вызова не происходит при рестарте службы
и приведенный кусок кода формирует один sql, да не очень красиво, чистый sql
Ну если честно у Вас гавнокод. Не обижайтесь.
Если считаете иначе, покройте данный код тестами.
Это должна быть отдельная структура, не говоря уже о глобальных переменных (DB)
Если считаете иначе, покройте данный код тестами.
initdbPtr := flag.String("init", "", " - Path to file data, create database and init params")
Это должна быть отдельная структура, не говоря уже о глобальных переменных (DB)
Я не обижаюсь. Я стараюсь учится и понять как правильно. Да и Вы правы что глобальные переменные надо убирать, я сам написал в статье. Постараюсь переписать код, что бы он был удобочитаемым. Да и тесты я добавлю.
Как человек, который тоже учит Golang и вообще современные ЯП — конкатенация строк через "+" не самое лучшее решение. В Го можно пользоваться fmt.Sprintf() для таких целей, а у вас много где.
Но это, вполне возможно, субъективно.
И у Го принято писать тесты прямо рядом с файликом основной программы в формате "*your_filename*_test.go" и тестировать с помощью пакета testing
Но это, вполне возможно, субъективно.
И у Го принято писать тесты прямо рядом с файликом основной программы в формате "*your_filename*_test.go" и тестировать с помощью пакета testing
Спасибо, я конкатенацию строк в проекте переписываю на strings.Builder, как будет работать выложу, проект как пример компиляции кода(вставки с разных проектов), хочется узнать как правильно. И с тестирование базовую теорию я прочитал, хочется все стороне этот вопрос изучить.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Применение Go в производственных системах. Валидаторы