Skip to content

Instantly share code, notes, and snippets.

Stanislav c01nd01r

Block or report user

Report or block c01nd01r

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
@c01nd01r
c01nd01r / repository.md
Created Jun 25, 2019 — forked from maestrow/repository.md
Паттерн репозиторий
View repository.md

Паттерн репозиторий

Источник: Серия статей.

Репозиторий - это слой абстракции, инкапсулирующий в себе всё, что относится к способу хранения данных. Назначение: Разделение бизнес-логики от деталей реализации слоя доступа к данным.

Паттерн Репозиторий стал популярным благодаря DDD (Domain Driven Design). В противоположность к Database Driven Design в DDD разработка начинается с проектирования бизнес логики, принимая во внимание только особенности предметной области и игнорируя все, что связано с особенностями базы данных или других способов хранения данных. Способ хранения бизнес объектов реализуется во вторую очередь.

Применение данного паттерна не предполагает создание только одного объекта репозитория во всем приложении. Хорошей практикой считается создание отдельных репозиториев для каждого бизнес-объекта или контекста, например: OrdersRepository, UsersRepository, AdminRepository.

@c01nd01r
c01nd01r / launch.json
Created Jan 29, 2018
vue jest vscode dubug config
View launch.json
{
"version": "0.2.0",
"configurations": [
{
"name": "Debug Jest Tests",
"type": "node",
"request": "launch",
"port": 9229,
"sourceMaps": true,
"runtimeArgs": [
@c01nd01r
c01nd01r / index.js
Created Oct 21, 2017
Hyphenate a camelCase string. (Vue.js)
View index.js
/**
* Hyphenate a camelCase string.
*/
var hyphenateRE = /\B([A-Z])/g;
var hyphenate = function(str) {
return str.replace(hyphenateRE, '-$1').toLowerCase()
};
View .bash_profile
alias subl='/Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl'
export PS1="\[\033[36m\]\u\[\033[m\]@\[\033[32m\] \[\033[33;1m\]\w\[\033[m\] (\$(git branch 2>/dev/null | grep '^*' | colrm 1 2)) \$ \n| => "
export PS2="| => "
export CLICOLOR=1
export LSCOLORS=ExFxBxDxCxegedabagacad
export PATH="$HOME/.yarn/bin:$PATH"
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function*
export PATH="/usr/local/sbin:$PATH"
@c01nd01r
c01nd01r / filters.es6.js
Last active Apr 8, 2017
multiple array filters with functions
View filters.es6.js
const data = [
{id: 1, total: 9, type: 'cashout'},
{id: 2, total: 8, type: 'cashin'},
{id: 3, total: 5, type: 'cashout'},
{id: 4, total: 4, type: 'cachin'},
{id: 5, total: 3, type: 'cashout'},
];
const filters = {
total(val) {
@c01nd01r
c01nd01r / index.html
Created Feb 21, 2017 — forked from anonymous/index.html
Quick example / vue-bem-cn
View index.html
<div id="app"></div>
<script type="text/x-template" id="example">
<div>
<textarea v-model="test" rows="10" style="width: 900px">
</textarea>
<textarea v-model="comp" rows="10" style="width: 900px">
</textarea>
@c01nd01r
c01nd01r / index.html
Created Feb 21, 2017 — forked from anonymous/index.html
Quick example / vue-bem-cn
View index.html
<div id="app"></div>
<script type="text/x-template" id="example">
<div>
<textarea v-model="test" rows="10" style="width: 900px">
</textarea>
<div>
@c01nd01r
c01nd01r / index.html
Last active Feb 13, 2017
browserUpdate
View index.html
<link rel="stylesheet" type="text/css" media="screen" href="http://www.devslide.com/public/labs/browser-detection/browser-detection.css" />
<script type="text/javascript" src="http://www.devslide.com/public/labs/browser-detection/browser-detection.js">
<script type="text/javascript">
<!--
var displayPoweredBy = false;
var noticeLangCustom = {
"title": "Ваш браузер устарел",
"notice": "Здравствуйте. По всей видимости, ваш браузер устарел. Мы настоятельно рекомендуем Вам обновить ваш браузер. Иначе, мы не может гарантировать полное функционирование нашего сервиса. ",
"selectBrowser": "Рекомендуем выбрать Google Chrome, как самый современный и безопасный браузер",
"remindMeLater": "Напомнить позже",
@c01nd01r
c01nd01r / drag.vue
Created Jan 15, 2017
vue draggable
View drag.vue
<template>
<div class="hello">
<draggable :list="list" :options="{animation: 150}" >
<div v-for="element in list" class="element">{{element.name}}</div>
</draggable>
</div>
</template>
<script>
import draggable from 'vuedraggable';
@c01nd01r
c01nd01r / VueComponents.md
Created Dec 27, 2016
Best OpenSource Vue.js Components
View VueComponents.md
You can’t perform that action at this time.