Search
Write a publication
Pull to refresh
12
0
Дима Козлов @hummerd

Разработчик

Send message
А вы точно уверены, что там будет копирование? У вас есть 100% доказательства?
Я вот попробовал такой пример:
package main

import "fmt"

func main() {
	var xs [2048]byte
	for _, x := range xs {
		printb(x)
	}
}

//go:noinline
func printb(b byte) {
	fmt.Println(b)
}

И в дизассемблированном варианте я копирования не вижу
Есть только выделение массива на стеке, его обнуление и цикл по самому массиву — не по копии.
"".main STEXT size=122 args=0x0 locals=0x818
        0x0000 00000 (main.go:5)        TEXT    "".main(SB), ABIInternal, $2072-0
        0x0000 00000 (main.go:5)        MOVQ    (TLS), CX
        0x0009 00009 (main.go:5)        LEAQ    -1944(SP), AX
        0x0011 00017 (main.go:5)        CMPQ    AX, 16(CX)
        0x0015 00021 (main.go:5)        JLS     115
        0x0017 00023 (main.go:5)        SUBQ    $2072, SP
        0x001e 00030 (main.go:5)        MOVQ    BP, 2064(SP)
        0x0026 00038 (main.go:5)        LEAQ    2064(SP), BP
        0x002e 00046 (main.go:5)        FUNCDATA        $0, gclocals·33cdeccccebe80329f1fdbee7f5874cb(SB)
        0x002e 00046 (main.go:5)        FUNCDATA        $1, gclocals·33cdeccccebe80329f1fdbee7f5874cb(SB)
        0x002e 00046 (main.go:5)        FUNCDATA        $2, gclocals·39825eea4be6e41a70480a53a624f97b(SB)
        0x002e 00046 (main.go:7)        PCDATA  $0, $1
        0x002e 00046 (main.go:7)        PCDATA  $1, $0
        // set 2048 bytes to zero
        0x002e 00046 (main.go:7)        LEAQ    ""..autotmp_2+16(SP), DI
        0x0033 00051 (main.go:7)        MOVL    $256, CX
        0x0038 00056 (main.go:7)        XORL    AX, AX
        0x003a 00058 (main.go:7)        PCDATA  $0, $0
        0x003a 00058 (main.go:7)        REP
        0x003b 00059 (main.go:7)        STOSQ
        0x003d 00061 (main.go:7)        XORL    AX, AX
        0x003f 00063 (main.go:7)        JMP     91
        // start print loop
        0x0041 00065 (main.go:7)        MOVQ    AX, ""..autotmp_6+8(SP)
        0x0046 00070 (main.go:7)        MOVBLZX ""..autotmp_2+16(SP)(AX*1), CX
        0x004b 00075 (main.go:8)        MOVB    CL, (SP)
        0x004e 00078 (main.go:8)        CALL    "".printb(SB)
        0x0053 00083 (main.go:7)        MOVQ    ""..autotmp_6+8(SP), AX
        0x0058 00088 (main.go:7)        INCQ    AX
        0x005b 00091 (main.go:7)        CMPQ    AX, $2048
        0x0061 00097 (main.go:7)        JLT     65
        // end print loop
        0x0063 00099 (<unknown line number>)    MOVQ    2064(SP), BP
        0x006b 00107 (<unknown line number>)    ADDQ    $2072, SP
        0x0072 00114 (<unknown line number>)    RET
        0x0073 00115 (<unknown line number>)    NOP
        0x0073 00115 (main.go:5)        PCDATA  $1, $-1
        0x0073 00115 (main.go:5)        PCDATA  $0, $-1
        0x0073 00115 (main.go:5)        CALL    runtime.morestack_noctxt(SB)
        0x0078 00120 (main.go:5)        JMP     0
В случае «нужна — не нужна» приоритет у автора кода. Потом устрйте коммандный митинг и выработайте стратегию насколько код должен быть расширяемым.
Имеются. Для линукса perf. Для интела vtune.
Мне тоже кажется вам стоит как-то разделить — Local от Development, и не надо будет ангуляр-нод сервер в контйенер пихать. Например выкатывать можно staging, а локально использовать Development. Я почему-то не могу спать спокойно, когда знаю что в контейнере есть что-то лишнее :)
Тогда нужно больше деталей. Для чего нужен приведенный в примере докер файл — для деплоя на тетсинг? Зачем dotnet publish делается в отдельном стейдже? Зачем в контейнере запускать if (env.IsDevelopment()) нельзя ли обойтись без него (запускать тестинг или стейджинг)? Какого размера получется dev контейнер? Нужно ли отдельно запускать RUN npm install angular/cli -g ведь для билда вроде должно быть достаточно RUN npm install, который запускается позже.
Мультистейдж да, в показанном докер файле 4 стеджа. Во 2 и 3 ноды нет, а в 1 и 4 есть.
В итоговом образе конечно не должно быть ноды. Ангуляр приложение — это скомпилированная статика, которая раздается веб сервером и делает вызовы к АПИ, для какой цели нам там нода?

Надо взять контейнер с нодой, сбилдить в нем ангуляр приложение (АСП для этого не нужен), потом полученную статику переложить в контейнер с веб сервером, который ее будет раздавать — это вообще может быть отдельный контейнер от бекенда. Плюс делаем конейнер с беком (АСП приложением). Можно и объеденить АСП + статику в один контейнер, но тогда деплоиться будут всегди фронт и бек, а это не всегда удобно.
Но золотое правило такое — в итоговых контейнерах не должно быть ничего, кроме минимума необходимого для его работы (например, никаких тулзов для сборки).

А разве спринг по дефолту не синглтоны делает?

Вы бы показали код на GO человеку, умеющиму писать на GO.
Зачем на каждый чих вызывать newDb()?
DB.Close
It is rare to Close a DB, as the DB handle is meant to be long-lived and shared between many goroutines.
Вы бы и в джаве тогда BankPostgresRepository сконфигурили бы как per call.
Баг про копирование с 2014 года, это ведь важная штука. Странные у вас приоритеты. Или нет человека который может это починить?
3д это хорошо, но вы когда копирование больших файлов-то почините?
А большие файлы можно уже копировать?
  1. «Юра, это провокация»©
  2. Фотограф — молодец. Поймал Наталью Алексеевну.
  3. А еще возникли ассоциации с передачей «Спокойной ночи малыши» с ведущей Оксаной Федоровой.
  4. И попросите тетю Наташу написать статью про OpenAI Universe.
А что значит документно-ориентированная?
Есть строчка «Поддержка общих форматов данных (MongoDB) JSON (Document), Key-Value, XML — (Postgres) JSON (Document), Key-Value, XML». Или вы что-то большее вкладываете в это понятие?
А сколько коммитов у гугла в ядре windows? или сколько коммитов у гугла в internet explorer?

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

Но дело то в другом, что другого способа получить развитие невозможно, для этого и придуман антимонопольный закон.
А вот это спорно. Десктопный Chrome в России — 30%, это при том, что в России винда не предлагает выбора, а втюхивает всем ИЕ по умолчанию. Просто хороший продукт + реклама + продвижение.

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

Если быть честным, то нам надо быть благодарным яндексу

Нам надо быть благодарным Яндексу, за то что они сделали в России технологичную компанию с нуля, показали, что возможен прибыльный, растущий бизнес не только по добыванию чего-то из земли. Они ведут образовательные и стртап программы, они дают работу многим моим друзьям и знакомым. Они сделали маркет! И т.д. т.п. Но это не значит, что их не надо критиковать.
По закону, действительно оба могут зарабатывать, но мне кажется, это не честно. Я вложил, я зарабатываю, Вы не вложили, вы не зарабатываете.
От конкуренции выигрывают все

Обычно это действительно так. Но в этом конкретном случае, я не вижу для себя плюсов от установки на мой телефон кучи софта от Яндекса.

Тут сложный вопрос — с одной стороны конкуренция в перспективе даст пользователям благо, но с другой корпорации перестанут вкладываться в открытые проекты, чтобы не делиться своим софтом с конкурентами — это минус.
Я очень люблю Яндекс. Но! Сколько комитов от Яндекса в андроиде? Сколько денег он вложил в эту платформу? А сколько, вложил Гугл? А зарабатывать теперь на андроиде все должны на конкурентной основе?
Гугл сделал ошибку на открытии Андроида и Яндекс его на этом подловил, больше такого не будет, в следующий раз Гугл сделает полностью проприетарную ОС, будет раздавать ее только вендорам и Яндекс не подкопается. А мы не увидим цианогена, МИЮИ, ОМНИ и других форков.
Ну так надо же на себе тестировать. В реальных кейсах. Пусть вся команда разработки, перед релизом, поставит себе программку на свои телефоны и поедет домой по навигатору. А потом снимет дампы, посмотрит сколько памяти жрала, сколько ЦПУ обсудит на обеде ощущения от пользования своим софтом)
Еще интересно, а вы говорили менеджеру в лицо — «Релиз надо отложить, есть проблемы босс!»?
А ссылка на репозиторий кода есть? Гитхаб там какой-нибудь…
Разница в том можете ли Вы при общении с родителями или коллегами употреблять это слово или попытаетесь его заменить. Если вы свободно его употребляете — то для Вас нет, а есть люди для которых это не допустимо — значит неприлично.

Information

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