Skip to content

Instantly share code, notes, and snippets.

@Magons
Last active February 5, 2024 21:55
Show Gist options
  • Save Magons/16370f731cf790b94d60b4d55670a235 to your computer and use it in GitHub Desktop.
Save Magons/16370f731cf790b94d60b4d55670a235 to your computer and use it in GitHub Desktop.
Привет. У меня спрашивали в основном все что спрашивают везде. Единственное было два сложных вопроса:
1. Описать все что происходит когда грузится страница в браузере. Типа от отправляется запрос на dns, после его обрабатывает веб сервер и тд уже в рельсу
2. Если вдруг появится репорт что медленно работает фронт, то с чего начну деббагинг
Знание React ( работал или нет )
Lambda , proc, block
Service Object - что это и тд
http пакет, из чего состоит
http vs soap
микросервисы vs монолит
each vs for
Sidekiq - что такое, как работает нах нужен
Elastic Search - что такое, как работает нах нужен
написать свою реализацию map, inject ( на руби через each )
TEST:
⁃ Почему Elexir - на чем основывался выбор?
⁃ Elexir(Erlang) vs Ruby - плюсы/минусы? ( телефоны )
⁃ Самая сложная задача
⁃ Самый большой факап?
⁃ Откуда получаешь инфу
⁃ Какими проектами занимался? - Что ты там делал?
⁃ Какие паттерны ты знаешь - какие применял ? какие встречал в руби-рельсы или вообще сам делал ?
⁃ Rails vs Hanami vs Sinatra
⁃ Rails - что не нравится? ( колбеки, аццепт нестед аттрибутес, default_scope )
⁃ Как работает B-tree
⁃ Как работает Hash-table O(1)
⁃ GIT, Threads, Parallelism vs Concurrency, Thread-safe?
⁃ Какие технологии хотел бы выучить в ближайшее время? ( DDD, TDD, SQRS, RXjs? )
ТЕСТЫ: На чем пишешь? пишешь ли тесты? - ЗАЧЕМ? Rspec, Minitest
ТЕСТЫ: Unit VS Integration
ТЕСТЫ: TDD vs BDD?
ТЕСТЫ: Capybara - писал ли тесты ?
ТЕСТЫ: Hooks: Before, After, and Around
ТЕСТЫ: Shared Examples
ТЕСТЫ: Factories
ТЕСТЫ: Mocks, Stubs
ТЕСТЫ: Как рабоать с отложенными задачами в RSPEC?
ТЕСТЫ: SimpleCov
ТЕСТЫ: VCR
GIT: Работал ли когда-то в команде?
GIT: Rebase vs Merge
GIT: Rebase -i
SQL: PostgreSQL vs MySQL (
Scheme - нет в MySQL - т.е. Мультитенанси не создашь в MySQL
Materialized view НЕТ в MySQL
JSON - нет в MySql(last version),
GroupBy - не работает в MySql,
Mass Update,
UUID(last version)
)
SQL: Having vs Where ( SQL view )
SQL: joins, includes, preload, and eager_load
SQL: pluck
SQL: Партиционирование шардироыание
SQL: Какую базу предпочитаешь? Отличия?
SQL: Реляционные базы, Документные, Key-value ( Indexed DB, Firebase, MOngo DB )
SQL Есть БД - идет долгий запрос, как ускорить? ( Explain and ANALYZE, Indexes, SQL View )
SQL: JSONB vs Serialize
Ruby: Три кита ООП: Inheritance, Polymorphism, - Abstraction
Ruby: De-coupling, Тесное связывание обьектов, чем плохо?
RUBY: MVC
RUBY: KISS, SOLID
RUBY: Query Object, Value Object, Callable Object?
RUBY: O(1), O(n)
RUBY: Reject, linked list
RUBY: Ruby Linked List
RUBY: Modul vs CLASS
RUBY: include vs exclude
Ruby's Exception vs StandardError: What's the difference?
RAILS: за что отвечает модель, контроллер, вьюха - толстый контроллер тонкая модель и наоборот.
RAILS: Choosing Between belongs_to and has_one
RAILS: Conditional Validation
RAILS: Callbacks Overview
RAILS: Polymorphic Associations
RAILS: STI
RAILS: Redis
RAILS: Arel
RAILS: как работает сессия куки ?
RAILS: CSRF, XSS, виды атак.
RAILS: Rspec ? Моки стабы в тестах чем отличаются? Писал ли их?
RAILS: Background Jobs (Resque, Sidekiq, Delayed Job)
RAILS: method_missing
RAILS: define/undefine methods, alias
RAILS: Block, Proc, Lambda
RAILS: Singleton and Class Methods
RAILS: Rack
RAILS: Middleware
JS: JQUERY
JS: React
JS: Ajax
JS: JSON, JSONb,
DDD - ?
CQRS - Command query segregation?
Event Store - ?
Задачи:
1. Залить фотки ( в бекграунде, с пост обработкой )
2. Есть ссылки - распарсить надо
3. Eсть емейлы - надо разослать миллиард - как? ( Sidekiq | Spam Filter )
>>>>>>>> Graphql language to communicate Cliend and serves
>>>>> Mongo DB
>>>> Rails callbacks | accept_nested_attribute |
Функциональное программирование
? SOLID
——————
json-p (padding)
JS - Наследование какое - чем отличается ?
proto vs prototype
function F(A,B) {
return A+B
}
var f = function(A,B) {
return A+B
}
shadow dom vs virtual dom
Callback hell - отличие коллбеков vs promises vs async avait
—————
private vs public vs protected
protected - ведет себя как приват - из вне низя дернуть
A.new.protected - will fail
а внутри класса он может быть вызван с Self или без - ему пофик
ведет себя как public и как private.
—————
https://medium.com/@leo_hetsch/ruby-modules-include-vs-prepend-vs-extend-f09837a5b073
———————————————————
вот это мой список который я спрашивал ( и по которому я готовлюсь )
Ruby
3 принципа ООП
реализация множественного наследования в ruby
duck typing
многопоточность в ruby
Differences between Procs and Lambdas
Rails
что такое MVC и зачем это нужно
локига в контроллере, должна ли быть и почему
синхронные и асинхронные операции — предложить варианты решения
назначение миграций
Тесты
зачем нужны
что такое TDD
Web специфика
javascript, опыт работы с ним, используемые библиотеки
Настройка http-серверов
nginx, его отличие от apache
балансировка нагрузки на сервера приложений (haproxy)
Базы данных
Общие вопросы
транзакции
блокировочные и версионные СУБД
индексы (зачем нужны, плюсы и минусы)
репликация
шардинг (партиционирование)
типичные bottle necks
синхронные и асинхронные операции
Организация разработки
Система контроля версий
зачем нужна
какими пользовались
Git (если есть опыт)
как перенести изменени из одной ветку в другую (2 способа)
зачем нужна команда git rebase
разница между git и svn (если есть)
Задачи
Числа Фибоначчи – это ряд чисел, в котором каждое последующее число равно сумме двух предыдущих: 1, 1, 2, 3, 5, 8, 13 и т.д.
Формула:
F1 = 1
F2 = 1
Fn = Fn-1 + Fn-2
Пример вычисления:
F3 = F2 + F1 = 1 + 1 = 2
F4 = F3 + F2 = 2 + 1 = 3
F5 = F4 + F3 = 3 + 2 = 5
F6 = F5 + F4 = 5 + 3 = 8
и т.д.
def fibonacci(n)
return 1 if ((n==0) || (n==1))
fibonacci(n-1) + fibonacci(n-2)
end
def fib(n)
n < 2 ? n : fib(n-1) + fib(n-2)
end
puts fibonaci(10)
So without concerns this how a typical module will be.
```
module M
def self.included(base)
base.extend ClassMethods
base.class_eval do
scope :disabled, -> { where(disabled: true) }
end
end
def instance_method
...
end
module ClassMethods
...
end
end
```
After refactoring with ActiveSupport::Concern.
```
require 'active_support/concern'
module M
extend ActiveSupport::Concern
included do
scope :disabled, -> { where(disabled: true) }
end
class_methods do
...
end
def instance_method
...
end
end
```
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment