Как стать автором
Обновить
5
0.5

веб-разработчик

Отправить сообщение

У меня Alice раскладка, поэтому у меня два пробела. :-)
В итоге у меня левый пробел - это нормальный пробел. А правый пробел это модификатор. И при нажатии на эту клавишу кнопки jkli превращаются в стрелочки, а u и o превращаются в Home и End соответственно. Очень удобно, потому что для навигации даже не нужно двигать руку из позиции слепой печати. (И да, на клаве есть нормальные большие стрелки навигации, но они далеко, а тут даже тянуться не надо)

Давайте так: а сколько операционных систем для десктопа вы в принципе знаете?
Винда, Макось и Linux. Есть еще ChromeOS, но там вообще все плохо с процентом.
Винда и Макось продукты коммерческие. Их делают и продвигают за деньги. Отсюда поддержка железа, софт и все такое. Создатели ОС тратят деньги на экосистему и пользователь попадая в эту экосистему просто не видит смысла из нее уходить.

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

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

Удивительно, да? Сначала загрузили в компьютер книжку по истории, а потом спросили у компьютера и он ответил. Прямо магия. Чего-то другого ожидали? Это же не задачи со звёздочкой решать, тут думать не надо - просто память хорошая нужна.

А оно уже научилось нормально работать с MS Exchange? Это вроде было основное, что мешало использовать Громоптицу на рабочих компах.

"Неистово плюсую"
Организация проекта таким образом дает невероятную гибкость. Напримр, позволит потом (если нужно) вынести какой-нибудь из модулей в отдельный сервис и отдать другой команде, например. А другие модули ничего об этом знать не будут.

вы не понимаете - у них настолько крутая low-code платформа, что пользоваться её может научиться даже младенец за полчаса.

Это просто удивительная статья!
Первый раз пробежав её глазами я подумал: "Что за фигня, опять заставляют на листочке компилировать!"
Но что-то заставило вернуться к примерам кода и посмотреть повнимательнее и мнение переменилось. Прикольно, я думаю на поведении слайсов можно народ ловить на собесах постоянно. Это гошная фишка :-)

А пример с парсингом урлов я бы реализовал наоборот :-) (И да, я знаю, что у меня контекст в http клиент не пробрасывается, это было уже лень реализовывать.)

type Result struct {
	Url string
	Code int
}

func ParseList(ctx context.Context, list []string) {
	limit := 10
	urlChan := make(chan string)
	resultChan := make(chan Result)

	wg := sync.WaitGroup{}
	wg.Add(limit)

	for i := 0; i<limit; i++ {
		go func() {
			defer wg.Done()
			for {
				url, ok := <-urlChan

				if !ok {
					return
				}

				response, err:= http.Get(url)

				if err != nil {
					resultChan <-Result{url, 0}

					continue
				}

				resultChan <-Result{url, response.StatusCode}
				response.Body.Close()
			}
		}()
	}

	go func() {
		defer close(urlChan)
		for _, url := range list {
			select {
			case <-ctx.Done():
				return
			default:
				urlChan <- url
			}
		}
	}()

	go func() {
		wg.Wait()
		close(resultChan)
	}()

	for v := range resultChan {
		fmt.Printf("%s: %d\n", v.Url, v.Code)
	}
}

Это, кстати, очень ценное дополнение. Я сколько не пытался натравливать сетки на наш монструозный монолит на работе, оно такой бред выдавало. А это был Claude с ассистентом от Jetbrains. Собственно там и полный индекс проекта и VecDb и весь жир, но все равно тупит и неюзабельно.

Oops, что-то пошло не так, но мы работает над этим. Пожалуйста попробуйте ещё раз через несколько минут 😁

Он нужен только в случае, если там у вас несколько инстансов за ним :-)

Я про то, что у вас тогда часть логики переносится на балансировщик и здесь у вас уже L7 балансировка, а не просто разбрасывание раунд-робином. И это даже не совсем sticky-sessions, потому что у вас сервер зависит не от пользователя, а от урла, с которым обратились.

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

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

занимаясь архивированием вы только что променяли нагрузку по памяти, на нагрузку по процессору :-)

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

Вот есть у меня умный робот пылесос. Вроде там и камеры со всех сторон и лидар и говорить умеет. И даже умеет с помощью ИИ определять тип валяющихся предметов и если увидит, что на полу лежат подарки говно от домашних животных, он не будет их размазывать по всей квартире, а аккуратно объедет.
Но при этом, эта высокотехнологичная штуковина постоянно застревает везде, волосы всюду наматываются и все такое. Т.е. завели себе очень умного Тамагочи, которому то воду вылей, то наоборот залей, то датчики протри, то еще чего-нибудь.... Машины не смогут обойтись без людей.... Блин, только что понял, что я уже работаю на пылесос.

Потому что оно напарсило гитхаба, где джуны писали эти игрушки.
А попробуй его спросить почему у тебя либа chromedp в гошке по памяти (и процу, кстати) течет и всё, приплыли.
А когда спрашиваешь, что может там контекст позакрывать, вдруг поможет, оно весело соглашается и предлагает тебе использовать методы либы, которых не существует. Занавес.

У вас в примере пароль от базы лежит во внешнем хранилище. Получается, что даже для локальной разработки мне нужен этот vault сервис?
Конфиги на файлах мне очень напоминают .env файлы, которые удобны локально, но ужасно неудобны при деплое в AWS и прочий kubernetes.

Почему приложение должно вообще об этом думать? Ему снаружи дали логин/пароль/хост от базы данных и оно пытается к ней подключиться. Если не получается, то оно падает на этапе инициализации и девопс/разраб видит ошибку. Если случайно передали на прод пароль от стейджа, то прод просто не стартанет.

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

И если вы итак через переменные окружения передаете название площадки для которой конфиг фетчить, то почему сами параметры подключения к БД тоже бы не пробросить через переменные окружения?

1
23 ...

Информация

В рейтинге
2 306-й
Откуда
Hamburg, Hamburg, Германия
Зарегистрирован
Активность