Pull to refresh
149
0
Антон Жиянов @nalgeon

Go, SQLite и разработка софта

Send message

Если бы автор так яростно не кривлялся, статья была бы лучше.

Пожалуйста, не пишите так на Go. Оставьте эту дрянь для джавы. Решайте реальные задачи вместо построения сферических коней в вакууме — и обнаружите, что они прекрасно решаются простыми средствами. Например, через замыкание.

var nCalls = 0

func count(fn func()) {
    fn()
    nCalls++
}

func main() {
    sum := func(a int, b int) int {
        return a + b
    }

    total := 0
    count(func() { total += sum(1, 2) })
    count(func() { total += sum(3, 4) })
    count(func() { total += sum(5, 6) })

    fmt.Println(total)
    // 21
    fmt.Println(nCalls)
    // 3
}

песочница

Да, в основном страдали только в первый раз. Но зато все :)

GPT-4, перелогиньтесь!

А начиная с версии 3.37 типы полей и вовсе не проблема, потому что можно использовать STRICT-таблицы.

Это как раз ясно. Я о том, что мне не близок вот этот подход:

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

Простое решение было, но вы его не выбрали. А выбрали вот это, где дженерик на дженерике сидит и дженериком погоняет. Я за то, чтобы в продакшене такого кода было как можно меньше.

Вот поэтому не все в сообществе были рады появлению дженериков. Потому что понимали, что немедленно найдутся люди, которые будут писать код так:

func ProcessCommands[T Calculator[T, V], V any](calc Calculator[T, V], commands ...Command[T, V]) Calculator[T, V] {
    // ...
}

func ProcessCommands[T any, V any](calc Calculator[T, V], cast func(*T) Calculator[T, V], commands ...Command[V]) Calculator[T, V] {
    // ...
}

А нам потом это поддерживать.

Ну зачем так делать? Go задумывался как простой язык. Да, многословный. Но простой. Пожалуйста, не пишите на нем как на джаве.

С днём рождения!

Мы хотим поддержать частных авторов, желающих рассказывать о своих коммерческих проектах

С удовольствием платил бы какие-то вменяемые деньги за право ставить ссылку на свои платные проекты в статьях. Для инди-разработчиков существующие тарифы Хабра — заградительные.

Зависит от реализации. Если новая функция написана на C — будет работать быстрее, чем ваша самописная на Python. Если нет — возможны варианты.

А теперь можно сохранять и делиться ссылками без регистрации.

Вообще я планировал небольшую заметку, но не преуспел: получилась здоровенная статья. Старался выбрать только самое интересное, но все равно в обзор попало три десятка доработок. Питон, он такой ツ

Я не знаю, зачем вы sql используете. Но если используете, то это вариант. Странно предъявлять претензии sqlite, что он не умеет как монга (она нереляционная), а на предложение использовать нереляционные фичи sqlite спрашивать «а зачем тогда вообще sql».

Почему нельзя сделать одно общее поле для данных в таблице messages?

Спасибо! Мне больше нравится без подсветки синтаксиса. Без регистрации на гитхабе никак, к сожалению.

Спасибо!

Поделиться можно по кнопке share.

Запрос в local storage сохраняется автоматически.

У replit очень древняя версия sqlite.

Немного суровой реальности для поклонников экономики внимания.


Если вы решили завести блог (канал, рассылку, whatever) просто потому, что хочется писать, или как публичный конспект — это отличный вариант.


Но если думаете, что:


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

То особо на это не рассчитывайте. Всем плевать (ну почти). Простите за прямоту.


То есть блог — это не про популярность. Есть, конечно, исключения. Но ваши шансы набрать заметную аудиторию — околонулевые.


Блог — как любой продукт. «Сделай хорошо и они придут» давно не работает — нужен отличный маркетинг, чтобы люди вас заметили и начали читать. Если маркетолог вы так себе (как большинство технических ребят), не создавайте себе завышенных ожиданий.


Вы потратили неделю на классную, подробную, понятную техническую статью — и получили пару десятков просмотров? Это норма. Если такое вас расстраивает — блог не для вас. Комментировать тоже никто не будет, конечно. Делиться с другими? Пффф.


Ваша реальная аудитория (те, кому не наплевать) — около 1% подписчиков. 1000 фолловеров в твитере? Ваша аудитория 10 человек. 10000 подписчиков телеграм-канала? 100 человек.


Да, бывают исключения. Нет, не стоит надеяться, что вы в них попадете.


Вывод из всего этого простой: если вы готовы и хотите вести блог для себя — он принесет радость и пользу. А если надеетесь на аудиторию — боль и разочарование.


Такие дела.

1
23 ...

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Registered
Activity