- Part 1: Начало статического блога. Immutant, Ring, Compojure, HTML rendering через Rum
- Part 2: Forms, middlewares, redirects, 404 and error handling
- Part 3: id generator, loops, cookies, sessions, authorization, working w/ files, macros
- Part 4: Cookies, рефакторинг, неймспейсы, RSS фид
- Part 5: Infinite Scroll на JS, sitemap.xml, robots.txt
- Part 6: Настраиваем CLJS окружение
- Part 7: Переделываем форму редактирования на Rum, клиент+сервер-сайд рендеринг, EDN-сериализация данных
- Part 8: CLJS, drag-n-drop upload, browser API, Rum mixins, local state
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
L1 | |
Базовые знание диалекта Typescript, основных встроенных примитивов (Array, Object, Function, String, Date) и методов работы с ними, понимание контекста (this) и способов управления им | |
Базовые знания фреймворка React | |
Знание наиболее часто используемых Web API: fetch/XHR, Storage, PostMessage, DOM | |
Умение писать простейшие алгоритмы (поиск, сортировка, сравнение объектов) без требований к их оптимальности. | |
Навыки кроссбраузерной адаптивной верстки по макету с использованием существующего кода, знание CSS и препроцессора SCSS | |
Навыки отладки разметки в браузерах Chrome/Safari | |
Знание принципов работы HTTP, отличий между различными методами, принципов работы Cookies | |
Практическое владение лучшими практиками структурирования кода: SOLID/DRY/KISS и т.д. | |
Базовые знания git, понимание git flow |
Я не пытался тут собрать все вопросы, которые хорошо бы задавать, а лишь те, что мне задавали (если не указано обратное), так что не неситесь жаловаться, что вы не нашли своих любимых и коварных. Так же, я не привожу список всяких логических задачек, которых, слава богу, было минимум и задачек с написанием кода на листке бумажки что, к сожалению, всё ещё распространено.
React:
- Жизненный цикл компонента? В какой метод какие аргументы приходят? Где и как лучше обновлять стейт?
- Что такое функциональный компонент и PureComponent? В чём разница?
- Что такое Redux?
- Что такое сайд-эффекты?
- Какие бывают миддлвары в Redux?
- Для чего нужен redux-thunk?
- На чём построена redux-saga (на генераторах) и для чего она нужна?
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Алгоритмы: | |
1) Стивен Скиена "Алгоритмы. Руководство по разработке" | |
2) Томас Кормен "Алгоритмы. Построение и анализ" | |
3) Дональд Кнут "Искусство программирования" (никто в реальности не читал этот многотомный труд целиком, но в любой подборке по алгоритмам он обязан быть) | |
Общее: | |
1) Род Хаггарти "Дискретная математика для программистов" | |
2) Керниган, Ритчи "Язык программирования С" - для общего понимания принципов программирования | |
3) Дж. Андресон "Дискретная математика и комбинаторика" | |
4) Романовский И.В. "Дискретный анализ" |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const timing = store => next => action => { | |
performance.mark(`${action.type}_start`); | |
let result = next(action); | |
performance.mark(`${action.type}_end`); | |
performance.measure( | |
`${action.type}`, | |
`${action.type}_start`, | |
`${action.type}_end` | |
); | |
return result; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0"?> | |
<root> | |
<devicevendordef> | |
<vendorname>Microsoft</vendorname> | |
<vendorid>0x045e</vendorid> | |
</devicevendordef> | |
<deviceproductdef> | |
<productname>SurfaceErgonomic</productname> | |
<productid>0x0817</productid> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* This code is licensed under the terms of the MIT license | |
* | |
* Deep diff between two object, using lodash | |
* @param {Object} object Object compared | |
* @param {Object} base Object to compare with | |
* @return {Object} Return a new object who represent the diff | |
*/ | |
function difference(object, base) { | |
function changes(object, base) { |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
; Аппликативный и нормальный порядки вычисления | |
; | |
; «полная подстановка, затем редукция» известен под на- | |
; званием нормальный порядок вычислений (normal-order evaluation) | |
; | |
; Пример работы нормального порядка вычисления | |
; Последовательность подстановок | |
; (sum-of-squares (+ 5 1) (* 5 2)) | |
; (+ (square (+ 5 1)) (square (* 5 2)) | |
; (+ (* (+ 5 1) (+ 5 1)) (* (* 5 2) (* 5 2))) |