Skip to content

Instantly share code, notes, and snippets.

View 0on's full-sized avatar

Andrey Vorontsov 0on

View GitHub Profile

Тестовые задания

Общие требования

  • Код для каждой задачи в отдельном репозитории на github.
  • Для каждого приложения нужна инструкция по запуску.
  • Тесты писать не обязательно, но это будет плюсом.

Фронтенд

Написать простую систему комментариев используя любой известный фреймворк (кроме jQuery) или Vanila JS. Должны быть возможности:

@0on
0on / time.md
Last active March 12, 2019 16:07

Оценка для страховой (1)

Сервисы

Авторизация и аутентификация - 55

  • логин пользователя
  • проверка запросов

Хранилище документов - 55

  • хранение
  • поиск

Internship frontend

Наш фронтенд

Весь фронт лежит в папке frontend/src/main/js и разбит по типам: компоненты, логика, стейт. Основная часть приложения рендерится на клиенте с помощью JS на реакте. С сервера приходит почти пустой хтмл с дивом и подключенными скриптами. Изначальное подключение компонентов реакта происходит в:

  • frontend/src/main/js/index.jsx
  • frontend/src/main/js/root.jsx
  • frontend/src/main/js/routes.jsx

Сборка фронта происходит во время сборки проекта (если запускать из идеи, то переборка не происходит при перезапуске). Сборка нужна для того, что бы в старых браузерах поддерживать современный JS + компиляция реактовских файлов .jsx + компиляция css. Для удобства разработки есть 2 дополнительных режима запуска фронта:

Создание БД

После установки БД нужно создать схему данных, с которой будет работать приложение.

-- CREATE DATABASE
CREATE DATABASE ${db.internal.name};
-- CREATE USER
CREATE USER ${db.internal.user} SUPERUSER PASSWORD '${db.internal.password}';
-- CREATE SCHEMA

internship

  1. Maven
    1. Maven – Maven Getting Started Guide
    2. Структура проекта
      1. structure.md · GitHub
    3. Установка среды
      1. Java + maven
      2. Postresql 9.6 и создание схемы данных
  2. Добавить свой конфиг в проект и соответствующий профиль в мавен

Структура проекта

Общая структура

Весь код в проекте разбит на модули по смыслам. Отдельно модели данных, доступ к внешним ресурсам, внутрення обработка данных, структура БД…

Common

model

Классы - простые модели данных проекта.

dao

Модуль работы с БД, все разбито на объекты доступа связанные с моделью.

@0on
0on / test.js
Last active March 19, 2018 10:53
import favIcon from 'favicon-notification';
import { ORGANIZATION_TYPES } from '../../common/constants';
import notify from '../../common/notify';
import * as actions from '../updaterActions';
import { initialState as initial } from '../../reducers/updater';
import * as ttt from '../communityActions'
import {
getApiMock,
generateMock,
import * as im from 'immutable'
const removeBlock = (editorState, blockKey) => {
const content = editorState.getCurrentContent()
const selection = editorState.getSelection()
const blockMap = content.getBlockMap().delete(blockKey)
return content.merge(
{ blockMap, selectionAfter: selection },
)
}
@0on
0on / logobject.js
Last active October 27, 2015 09:32
Log object methods call
function logObject(obj) {
for (var key in obj) {
if (typeof obj[key] === 'function') {
var fun = obj[key];
obj[key] = function () {
console.log(key, ' -- ', arguments);
fun.apply(this, arguments);
}
}
}