- •2. Поменять местами значение двух переменных
- •20. Декоратор @property
- •21. Что происходит если свойство не найдено?
- •27. Какие есть решения для синхронизации данных при работе с потоками?
- •28. Что такое итераторы?
- •38. Что такое middleware?
- •39. Как сделать сообщение с трейсбеком при ошибке(500.Html недостаточно)?
- •40. Какие типы отношений между таблицами бывают в Django-orm?
- •41. Как реализовать отношение ManyToMany без orm?
- •42. Какие встроенные сигналы бывают в Django?
- •43. Что такое mod_wsgi?
- •44. Что такое fixtures?
- •Outer join
- •56. Что такое git rebase?
- •61. Какие есть способы обхода дерева?
- •62. Что такое doctype в html?
- •63. Что такое meta в html?
- •Мета-тег Description, Generator, Keyword, Robots, Content-Language и т д
Outer join
Соединение двух таблиц, в результат которого в обязательном порядке входят строки либо одной, либо обеих таблиц.
LEFT OUTER
SELECT *
FROM
Person
LEFT OUTER JOIN
City
ON Person.CityId = City.Id
Результат:
|
Person.Name |
Person.CityId |
City.Id |
City.Name |
|
Андрей |
1 |
1 |
Москва |
|
Леонид |
2 |
2 |
Санкт-Петербург |
|
Сергей |
1 |
1 |
Москва |
|
Григорий |
4 |
NULL |
NULL |
RIGHT OUTER JOIN
Оператор правого внешнего соединения RIGHT OUTER JOIN соединяет две таблицы. Порядок таблиц для
SELECT *
FROM
Person
RIGHT OUTER JOIN
City
ON Person.CityId = City.Id
Результат:
|
Person.Name |
Person.CityId |
City.Id |
City.Name |
|
Андрей |
1 |
1 |
Москва |
|
Сергей |
1 |
1 |
Москва |
|
Леонид |
2 |
2 |
Санкт-Петербург |
|
NULL |
NULL |
3 |
Казань |
UNIX
50. Можно ли сделать ssh подключение к другому компьютеру с компа, к которому ты итак уже подключен через ssh? как это сделать?
SCM
51. Можно ли удалить коммиты из репозитория в git? Как?
А) делаем откат изменений в репозитории для примера на два коммита назад git reset --hard HEAD~2 Б) Можно сделать до какого-то определенного коммита по хешу git reset --hard HEAD hash
52. Можно ли восстановить коммиты?
создадим ветку с именем recover-branch, указывающую на этот коммит (ab1afef):
$ git branch recover-branch ab1afef
53. Если не известен SHA код, то использовать инструмент под названием git reflog. Во время вашей работы Git записывает все изменения HEAD. Каждый раз при переключении веток и коммите, добавляется запись в reflog.
54. В чем отличие веток git от веток в svn?
Git — распределённая VCS. Это значит, что мы работаем не с одним репозитарием на сервере, а каждый имеет у себя локальную копию репозитария. Соответственно, такие операции, как checkout и commit производятся с локальным репозитарием. Друг с другом же (или с тем, что на сервере) репозитарии синхронизируются специально предназначенными командами pull (fetch) и push.
55. Что такое git reset?
Тег HEAD (англ. «голова», прим. пер.) — как курсор, который обычно указывает на последний коммит, продвигаясь с каждым новым коммитом. Некоторые команды Git позволяют перемещать этот курсор. Например,
$ git reset HEAD~3
переместит HEAD на три коммита назад. Теперь все команды Git будут работать так, как будто вы не делали последних трех коммитов, хотя файлы останутся в текущем состоянии. В справке описано несколько способов использования этого приема.
Но как вернуться назад в будущее? Ведь предыдущие коммиты о нем ничего не знают.
Если у вас есть SHA1 изначальной «головы», то:
$ git reset 1b6d
Но допустим, вы его не записывали. Не беспокойтесь: для комнад такого рода Git сохраняет оригинальную «голову» как тег под названием ORIG_HEAD, и вы можете вернуться надежно и безопасно:
$ git reset ORIG_HEAD
56. Что такое git rebase?
Rebase — один из двух способов объединить изменения, сделанные в одной ветке, с другой веткой.
Перемещение работает следующим образом: находится общий предок для двух веток (на которой вы находитесь сейчас и на которую вы выполняете перемещение); для каждого из коммитов в текущей ветке берётся его дельта и сохраняется во временный файл; текущая ветка устанавливается на тот же коммит, что и ветка, на которую выполняется перемещение; и, наконец, одно за другим применяются все изменения.
57. Чем git rebase отличается от git merge?
rebase запоминает коммиты из ветки в виде патчей, «перематывает» текущую ветку (как будто и не было никакого branch) и применяет патчи, оформляя их в виде коммитов. В отличие от rebase, merge делает слияние двух веток в одну.
АЛГОРИТМЫ
58. Что такое сложность алгоритмов? Как вычисляется?
Пространственная эффективность измеряется количеством памяти, требуемой для выполнения программы.
Временная эффективность программы определяется временем, необходимым для ее выполнения
59. Какова сложность алгоритма
for i in x:
for j in y:
i*j
ответ: x*y или n**2
60. Какие алгоритмы сортировки знаете?
Сортировка пузырьком
Сортировка выбором
Шаги алгоритма:
находим номер минимального значения в текущем списке
производим обмен этого значения со значением первой неотсортированной позиции (обмен не нужен, если минимальный элемент уже находится на данной позиции)
теперь сортируем хвост списка, исключив из рассмотрения уже отсортированные элементы
Сортировка слиянием
Сортируемый массив разбивается на две части примерно одинакового размера;
Каждая из получившихся частей сортируется отдельно, например — тем же самым алгоритмом;
Два упорядоченных массива половинного размера соединяются в один
