Go Language
54 flashcards · Programming Languages · by Anastasia Balashova
Что такое горутина?
горутина это легковестный поток
Что такое ссылка указатель?
переменная которая хранит адрес другой пременной var x = 5 var p *int p = &x fmt.Printf("x = %d", *p)
Как эффективно сложить строки в ГО?
use strings.Builder
может ли функция возвращать множество значений
Канешна
Can Go have optional parameters?
No
ест ли в го арифметика для ссылок?
No
Можно ли обьявить множество переменных в одной строке?
Yes var a,b,c = 1, 2, "lol"
Го это обьектно ориентированный язык?
Да, но у него нет наследование
Когда параметры функции передаются по значению?
Все в го передается по значению
Когда создается переменная она идет в stack или heap?
You don't need to know. The storage location does have an effect on writing efficient programs. (c) Go
Как скопировать slice?
to = append(to, from...) copy(to, from)
В чем отличие протоколов TCP и UDP?
UDP быстрее доставка пакетов не гарантирована для UDP
В каком случае UDP предпочтительнее перед TCP?
когда нам не важно если какие то данные потеряются в процессе
Что, по твоему, такое микросервисы?
это когда приложение состоит из небольших компонентов
Какие преимущества ты видишь у микросервисной архитектуры по сравнению с монолитом?
independent services which can be scaled when needed teams can work separately easier for developer to understand a small piece of code
С какими NoSQL решениями работал?
Redis
как string выглядит под капотом?
это массив байтов
Можно ли изменить определенный символ в строке?
strings are immutable we have to: convert string to []rune change what we want convert []rune back to string
Что происходит при склеивании строк?
new string created
Как эффективно склеивать множество строк?
strings.Builder{}
Что будет происходить при конкуррентной записи в map?
race condition
Как решить проблему конкуррентной записи в map?
использовать mutex
Что такое мьютекс ?
Это примитив синхронизации который ограничивает доступ к ресурсу другим потокам в отличие от того который завладел мьютексом
Что такое deadlock?
deadlock происходит когда горутины ждут друг друга и ни одна не может продолжить выполнение
Что такое слайс и чем он отличается от массива?
слайс это обертка над массивом, для более удобного использования
Что такое len в слайсе?
количество элементов которые уже хранятся
Что такое cap в слайсе?
сколько можно положить элементов до того как массив будетувеличен
Что делает defer ?
defer используется длч того что бы отложить выполнение
iota ?
способ задать контстанты начиная с 0
Что такое race condition ?
когда 2 горитины пытаються получить достук к одному и тоже же ресурсу одновременно
Можно ли добавить что то к array?
Нет, только к слайсу
Что такое SOLID
S - single responsibility у класса должна быть только одна причина что бы меняться функции, типы и методы нужно ложить в отдельные пакеты O - open / closed principle открыт для расширения, закрыт для модификации простые структуры можно обьединить в сложные L - liskov substitution зависимости нужно описывать как интерфейсы I - interface segregation do not depend on methods you don't use define functions and methods that depend only on what they need (using small interfaces like: io.Reader) D - d…
Как сравнить два slice?
используя цикл for
Что такое duck typing?
если struct реализовывает методы, значит он реализовываен интерефейс не нужно использовать ключевое слово implements
что такое rune ?
UTF-8 символ
Можем ли мы сравнитьstructs?
можем используя ==
What is concurrency?
это подход к написанию програм, при котором вещи могут выполняться паралельно
Строки в го изменяемые?
неизменяемые
Если нет наследования, что импользуется вместо него?
Композиция
можно ли изменить константу?
Ноу
Что такое MySQL
это база данный
Какие типы дыннах MySQL ты знаешь?
int, float, char, varchar, text, binary
Какой обычно задают размер varchar d MySQL
255
Какие операторы MySQL ты знаешь?
INSERT, UPDATE, DELETE, SELECT
Какие типы JOIN ты знаешь?
JOIN, LEFT JOIN, RIGHT JOIN, INNER JOIN
Для чего нужны индексы?
для того что бы запрос выполнился быстрее
Какие индексы ты изначешь?
INDEX, UNIQUE, PRIMARY INDEX
Как ускорить завпрос в MySQL?
использовать индекс анализировать с EXPLAIN
Какие недостатки у индексов?
каждый из них занимает память на диске
Что такое каналы?
для комуникации между горутинами
Что такое мьютекс?
только одна горутина меняет значение в момент времени
Что такое слайс?
обертка над масивом
Как сделать функциб публичной?
Написать ее с большой буквы
Как сделать функцию приватной?
написать ее с маленькой буквы